Autenticazione simmetrica Mifare Desfire con chiave master su Android

2

Volevo utilizzare il chip Mifare Desfire ai fini dell'autenticazione del prodotto, in cui il chip sarebbe stato incorporato nei prodotti. In quanto tale, sto cercando una soluzione NFC che renda praticamente impossibile (o il più difficile possibile) la clonazione del chip.

L'attuale soluzione che avevo in mente di usare il Desfire era di usare l'autenticazione simmetrica supportata per avere una parte del chip con memoria bloccata in cui memorizzare le informazioni sul prodotto. Quindi creeremo chiavi diversificate, utilizzando una chiave master, l'UID del chip e alcuni metadati e useremo quella chiave diversificata per condurre l'autenticazione simmetrica (ulteriori informazioni su di essa possono essere trovate qui .

Ora, il problema sta nel fatto che l'autenticazione simmetrica deve essere eseguita su un'app per Android, il che significa che dovremmo memorizzare la chiave master nell'app per Android o inviarla tramite rete a una versione potenzialmente dannosa dell'app . Quindi mi chiedevo se qualcuno avesse un suggerimento su come proteggere la chiave master o una soluzione di autenticazione completamente diversa per evitare la clonazione di chip usando il Mifare Desfire o altri chip NFC simili.

    
posta LongJeongS 21.12.2016 - 22:45
fonte

1 risposta

3

La chiave non deve risiedere nell'app.

Quando chiedi l'autenticazione, otterrai un numero casuale, crittografato con la chiave, indietro. Questo numero casuale, è possibile inviare di nuovo al server con l'app, e lasciare che il server faccia l'autenticazione con la chiave. Il server ti invierà quindi un nuovo pacchetto crittografato con un valore crittografato, che dovrai solo inoltrare al chip. Quindi riceverai una risposta dal chip, che rimanderai al server.

Dopodiché, la cella che stai utilizzando potrebbe contenere alcune informazioni sul prodotto, "firmate" con un MAC. Queste informazioni sul prodotto e MAC vengono anche inviate al server come fase finale. Solo dopo che tutti i passaggi sono stati completati correttamente, il prodotto è autentico.

Se si utilizzano librerie per le comunicazioni NFC, è necessario eseguirle in modalità manuale per poter autenticare in questo modo.

È possibile creare un'app rogue che leggerà i dati risultanti e copierà le informazioni sul prodotto incluso il MAC, quindi inserirli in un chip DESFire EV1 falso che accetterà qualsiasi autenticazione. Questo è il motivo per cui il server deve convalidare il valore casuale che viene restituito, che questo decrittografa correttamente al valore inizialmente selezionato dal server, ma spostato a sinistra. (leggi i dettagli di implementazione su come fai un'autenticazione).

Usando le chiavi che non possono scrivere il chip, si impedisce anche a qualcuno di aggiornare un chip originale per contenere informazioni su un prodotto più costoso del prodotto su cui si trova il chip.

Fai anche attenzione che qualcuno possa spostare il chip da un prodotto genuino a un prodotto falso, quindi mantenere il prodotto autentico e vendere il prodotto falso. Utilizzare chip resistenti alla manomissione per questo, che smetteranno di funzionare una volta che sono stati rimossi dal prodotto. O legare il prodotto a un servizio che richiede l'autenticazione con l'app per funzionare, quindi il prodotto originale che il truffatore avrà sarà inutile senza il chip.

    
risposta data 22.12.2016 - 00:10
fonte

Leggi altre domande sui tag