I lettori della smartcard "Mifare DESFire EV1" hanno davvero bisogno di conoscere la chiave segreta della carta per autenticare la carta?

17

Sto cercando di capire la sicurezza di un sistema di smartcard senza contatto, utilizzato per il controllo degli accessi e il pagamento. La scheda è un Mifare DESFire EV1 che implementa ISO 14443 (vedi questa raccolta di documentazione ).

Ho letto degli attacchi ai canali laterali mirati all'estrazione della chiave privata dalla smartcard (vedi Side- Analisi del canale di RFID crittografici con Demodulazione analogica ). Hanno avuto successo ma sembrano essere piuttosto difficili da eseguire.

Poiché comprendo il processo di autenticazione di tali carte, il lettore e la carta devono entrambi dimostrare la loro conoscenza della chiave segreta mediante una procedura di risposta alla sfida (il protocollo non è pubblico ma è stato invertito nel documento Clonazione di schede RFID crittografiche per 25 $ nel capitolo 3.2.). Quindi tutti i dispositivi di lettura devono conoscere anche la chiave segreta. Ma ci possono essere molti lettori di molti venditori (ad esempio macchine per il caffè, piccoli lettori USB ai registratori di cassa, pannelli di controllo degli accessi ...), tutti hanno davvero la chiave segreta? C'è uno standard su come la chiave deve essere memorizzata? In alcuni casi è possibile che le carte siano autenticate attraverso la rete, ma so che alcuni dispositivi funzionano offline.

Mi aspetterei che fossero un vettore di attacco abbastanza promettente, dato che i distributori di macchine da caffè in genere non si preoccupano molto della sicurezza. Ci sono documenti che descrivono un attacco riuscito? O c'è solo un chip simile in nessuno di questi lettori in cui la chiave è memorizzata nello stesso modo?

    
posta Beat 06.11.2015 - 11:58
fonte

3 risposte

2

MIFARE DESFire EV1 può avere più applicazioni (28) e ogni applicazione può avere più file (32) di tipi diversi (4). La carta stessa ha una chiave master PICC più tra 1 e 14 tasti per applicazione. Le chiavi di ogni applicazione sono utilizzate per controllare l'accesso ai suoi file.

Ogni servizio utilizzato dalla tua carta può essere, e probabilmente lo è, una diversa applicazione. Se le chiavi della macchina da caffè sono compromesse (applicazione A), ciò non implica il compromesso delle chiavi per l'applicazione di controllo di accesso (applicazione B) nella stessa scheda.

Considerare un'applicazione della macchina da caffè sulla scheda che utilizza una chiave K1 per detrarre il credito e un'altra chiave K2 per aggiungere credito alla scheda DESFire EV1. La macchina che usi per prendere il caffè e che detrae il credito dalla carta ha solo bisogno della chiave K1, non è necessario che la chiave K2 aggiunga credito (che viene fatta da qualche altra parte). Quindi, se comprometti la chiave delle macchine da caffè, l'unica cosa che puoi fare è prendere i soldi dalle carte e non aumentare il tuo credito. Per aggiungere credito hai bisogno delle chiavi per farlo e questa può essere una procedura eseguita in un posto diverso in un ambiente più sicuro e forse anche da un operatore umano.

C'è sempre il rischio di compromessi, ma può essere mitigato dall'uso intelligente delle chiavi e dalla separazione dei servizi in diverse applicazioni. Forse hai 200 macchine da caffè sparse per tutta l'area dell'ufficio che possono funzionare offline, ma solo 10 per ricaricare la carta e forse questo è addirittura fatto online per una maggiore sicurezza.

La macchina da caffè può utilizzare un modulo di accesso di sicurezza per memorizzare le chiavi. Se lo fanno o no, e se ne hanno bisogno, questa è un'altra storia.

    
risposta data 09.03.2017 - 13:35
fonte
5

A cura: OK. Poiché esiste una richiesta di "risposta breve", qui è "riepilogo esecutivo":

Domanda: "Quindi tutti i dispositivi di lettura devono conoscere anche la chiave segreta. Ma ci possono essere molti lettori di molti venditori (ad esempio macchine per il caffè, piccoli lettori USB ai registratori di cassa, pannelli di controllo degli accessi ...), tutti hanno davvero la chiave segreta? C'è uno standard su come la chiave deve essere archiviata? "

Risposta: "Sì. Oltre alla comunicazione avviata da remoto / server con la scheda DESFire, tutti i lettori devono conoscere anche le chiavi segrete. E sì - c'è standard su come la chiave deve essere immagazzinata - uso del modulo Secure Access - MIFARE SAM (attualmente modello AV2).

Tutti i contenuti sottostanti possono essere dimenticati se non interessati;)

Ci sono fondamentalmente due famiglie di carte MIFARE: MIFARE Classic e DESFire (e derivati simili). Inoltre c'è MIFARE Plus, che è stato inizialmente preso di mira dai mercati MIFARE Classic (che supporta pienamente, se configurato per farlo), ha due ulteriori modalità di sicurezza, che aggiungono maggiore sicurezza alle infrastrutture MIFARE Classic fino a un livello simile a DESFire.

Ci sono molti protocolli di autenticazione usati da quelle famiglie MIFARE, alcuni sono abbastanza simili ma a volte differiscono in piccoli dettagli, il che può portare a leggere le infrastrutture NON essere in grado di gestire un altro protocollo anche se sembrano molto simili all'inizio ...

Ciò che è più importante per la tua domanda su DESFire EV1: l'approccio di base per la sicurezza del lettore è l'uso dei cosiddetti "Secure Access Modules" (SAM), che sono smart card specializzate, fornendo funzionalità di sicurezza ai lettori / terminali. Il SAM contiene tutte le chiavi e ha anche un motore per condurre i protocolli di sicurezza, utilizzati all'interno della comunicazione sicura tra la scheda e il lettore. Questo è l'ancoraggio della sicurezza del lettore in termini di utilizzo di DESFire EV1. Le chiavi potrebbero anche essere derivate individualmente per ogni carta, quindi NON usano la stessa chiave per tutti i protocolli di autenticazione e crittografia della carta. La chiave in un modulo SAM può essere caricata in modo sicuro sul SAM in campo utilizzando protocolli crittografati aggiuntivi dall'host O da un caricamento batch offline (da una chiavetta USB, ad esempio).

Alcuni protocolli basati su RSA sono anche supportati per la firma / verifica per garantire che alcune azioni siano autenticate senza l'uso di protocolli a chiave condivisa.

Il SAM è progettato in modo intelligente e abbastanza solido in termini di sicurezza, quindi mettere un modulo SAM in un distributore automatico supporta tutta la sicurezza richiesta. Anche una modifica della scheda DESFire, avviata da un host remoto, può essere stabilita in modo sicuro poiché il SAM può fungere da "proxy sicuro" stabilendo un canale sicuro verso l'host e un altro verso la carta, fornendo un "proxy di re-crittografia" nel mezzo. Ovviamente SAM è una scheda standard che è "client" e qualsiasi scambio di comandi, quindi il lettore deve supportare tali protocolli inviando, ricevendo, inoltrando APDU tra le parti partecipanti. Il SAM supporta anche connessioni dirette al chip del lettore, fungendo da proxy trasparente.

Supporta 2DES, 3DES, AES, CRYPTO1, RSA e alcune varianti proprietarie di algoritmi standard.

SAM ha un concetto ancora più intelligente di "contatori di operazioni", che aiuta ad affrontare la minaccia alla sicurezza di essere rubato e usato frequentemente: ogni operazione diminuisce un contatore. I contatori devono essere periodicamente incrementati da un'azione avviata dall'host, online o offline. Gli "script" cifrati e firmati devono essere portati nel SAM in un modo (ad esempio, una chiavetta USB). Le chiavi possono anche essere versionate per supportare il rollover sicuro delle chiavi durante la vita del sistema.

Lo stesso SAM ha una logica di controllo dell'accesso, basata su crittografia avanzata, per applicare il modello di sicurezza progettato. Uno schema di gestione delle chiavi attentamente pianificato e progettato, supporta la distribuzione sicura delle chiavi tra i molti giocatori del sistema. Di solito, il contenuto SAM iniziale viene distribuito da una personalizzazione SAM sicura e da una consegna controllata al partecipante designato (come il distributore automatico), che ha già alcune chiavi di autenticazione per ottenere l'accesso iniziale alle operazioni SAM / DESFire consentite. Una delle operazioni tipiche può essere lo scambio di chiavi di autenticazione SE queste chiavi sono assegnate solo a giocatori in particolare.

Un altro commento all'UID, la sua clonazione e così via: i moderni prodotti MIFARE supportano comandi separati per accedere a un RandomUID, da utilizzare nei protocolli anti-collisione, e un UID statico per identificare la carta (opzionalmente protetta anche da autenticazione e crittografia protocolli che forniscono un "canale sicuro"). Ciò offre ai progettisti del sistema gli strumenti adeguati per migliorare la protezione contro la clonazione o l'emulazione UID. Ma molti "progettisti della sicurezza" sono piuttosto pigri e non usano queste possibilità anche se esistono ...

    
risposta data 13.03.2016 - 13:02
fonte
3

La maggior parte dei sistemi che conosco in effetti utilizzano una connessione di rete per autenticare le carte tramite challenge-response.

Ho visto alcuni dispositivi offline che confrontano solo l'UID della carta con i valori memorizzati. Questo non è sicuro, tuttavia, poiché puoi copiare questi ID emulando un dispositivo RFID o semplicemente facendo lampeggiare una carta speciale.

Sono d'accordo con te per quanto riguarda i dispositivi offline promettenti. Ho già ingannato alcuni di loro semplicemente inviando un UID noto. Non ho nemmeno dovuto approfondire lo stack del protocollo poiché l'UID è già stato trasmesso allo strato anti-collisione.

Se vuoi approfondire la questione, ti consiglio di utilizzare un dispositivo hardware con cui giocare. È molto divertente vedere queste cose in azione: -)

La soluzione all'avanguardia sarebbe il PROXMARK link

O una soluzione di budget inferiore se vuoi solo copiare alcune carte link

Ho visto anche alcuni dispositivi portachiavi per meno di 20 $ su eBay ma non riesco a trovarli in questo momento.

    
risposta data 12.11.2015 - 23:24
fonte

Leggi altre domande sui tag