mifare classico 1k per micropagamenti

3

È possibile utilizzare Mifare Classic 1k per i pagamenti micro in modo sicuro?

Ho in mente un sistema da utilizzare in una sala giochi arcade. Stai ricevendo una carta dal cassiere e puoi ricaricarla ad esempio con 100 punti (sono scritti sulla carta non nel database e solo usando l'ID). Quindi puoi andare su ciascuna macchina, scansionare la carta sul lettore e i tuoi punti saranno diminuiti, e i punti rimasti saranno visualizzati sul display LCD.

Quindi ogni volta che si scansiona la carta, scrive nuovi dati e ne controlla l'integrità.

È possibile essere completamente a prova di proiettile e non può essere copiato su un hardware personalizzato?

Creerò l'hardware per accettare pagamenti sui giochi arcade e software / hardware per le operazioni di ricarica.

Stavo pensando a una soluzione in cui salverò un hash (con qualche seme segreto) dell'ID univoco della carta, e l'ammontare dei punti correnti e lo salverò nella eeprom della carta (con una certa quantità di punti). Posso avvolgerlo all'interno di un blocco AES o 3DES per maggiore sicurezza. Conserverò le chiavi e l'hashing nell'hardware, quindi sarà abbastanza sicuro.

Le mie preoccupazioni sono:

  1. Cosa succede se qualcuno prenderà la carta durante l'operazione di scrittura?
  2. Qualcuno potrà copiare la carta su qualche tipo di emulatore con il suo identificatore univoco e il contenuto di eeprom?
  3. Forse c'è un'altra routine da usare, meglio di "leggere, scrivere, controllare" e accendere il gioco?
  4. Ho scoperto che lo standard Mifare DesFire è per soluzioni di micropagamenti, ma le carte sono più costose, probabilmente anche l'hardware. Tuttavia, forse qualcuno ha qualche esperienza e non è così spaventoso come sembra?
  5. Qualcuno ha raccomandazioni sull'hardware per Mifare, ovviamente.

Molto apprezzato qualsiasi input.

    
posta Gilles 27.11.2016 - 22:02
fonte

3 risposte

3

Il classico di Mifare può essere completamente clonato. Puoi anche comprare carte con UID modificabile - ho appena ordinato un mucchio. I blocchi della scheda che richiedono chiavi non predefinite possono essere incrinati su un PC utilizzando hardware a basso costo. Ad esempio: Proxmark o Adafruit PN532 / Elechouse PN532 V3, utilizzando libnfc e alcuni altri programmi. Tutti gli strumenti necessari sono disponibili in Kali linux.

Non ho avuto fortuna ad accedere a questi blocchi che richiedono ancora chiavi non predefinite, ma solo perché non ho applicato uno sforzo serio. Desfire EV1 (IIRC) è una revisione post-2008, e queste carte sono considerate sicure e sono indifferibili p.t .. Se si sa che questo non è corretto, si prega di fornire collegamenti.

Molti luoghi usano i tag Mifare classici per il controllo degli accessi e così via - più potere per quello - ma non userei niente di meno che almeno Desfire da NXP (niente knock-off della Cina) per qualsiasi cosa riguardi denaro.

Google "mifare classica clonazione".

Dalla lettura di varie fonti stimiamo che ci vorranno 25-30 minuti per leggere tutti i dati da queste carte. Per le carte che usano chiavi predefinite, ci vuole meno di un secondo. L'Adafruit PN532 (ha un'antenna decente) può farlo da una distanza di 7 cm - questa gamma può essere aumentata con antenne personalizzate. Il desfire può essere letto da 3-4 cm. Sembra che più potenza richiede la scheda per elaborare e comunicare, minore è la portata di uno scanner. Curiosità: un singolo strato di foglio di alluminio impedisce questo ... non c'è bisogno di un 'portafoglio in acciaio'. Basta fissarlo con nastro adesivo su un porta carte di credito standard e conservarlo nel portafoglio.

Modifica: qualsiasi informazione supplementare da pentesters e ingegneri sarebbe utile per OP. Correggi tutti i malintesi che posso avere su NFC;)

    
risposta data 28.11.2016 - 14:50
fonte
1

Potresti usare un tale schema. Ci sono alcune cose di cui occuparsi, comunque.

Memorizzando nella carta l'ammontare, insieme a un hash dell'ammontare della carta UID +, impedisce di copiare l'importo da una carta a un'altra.

Non impedisce tuttavia a un utente di leggere i dati della carta, utilizzando la carta nel gioco (diminuendone quindi la quantità), e successivamente riscrivendo i dati della carta precedente per ripristinare il suo importo iniziale. Per evitare ciò, è necessario assicurarsi che solo i terminali autorizzati (macchine da gioco) siano in grado di scrivere sulla carta.

Mifare risolverà questo problema consentendo di caricare chiavi personalizzate nella scheda, che proteggerà i settori dalla lettura e / o dalla scrittura. Queste chiavi dovranno essere conosciute dalla macchina.

Ora per prevenire l'emulazione / clonazione delle carte, se carichi le chiavi personalizzate nella carta, risolvi anche questo problema. Il terminale dovrà autenticarsi con le tue chiavi personalizzate prima della transazione, quindi assicurati che la carta sia autentica. Nota che, a questo punto, non devi nemmeno memorizzare un hash di importo + UID nella carta per garantire che l'importo non venga trasferito su un'altra carta, perché solo le tue macchine (di cui ti fidi) possono leggere / scrivere su vero carte.

Quindi stai per lo più bene, a patto di impostare correttamente le chiavi e accedere ai bit dei settori mifare. Dovrai proteggere anche l'hardware delle tue macchine da gioco, perché un hacker che ha accesso a tale macchina potrebbe scoprire come modificare la quantità memorizzata nelle carte.

Ora per le tue domande dettagliate:

  1. Se la carta viene ritirata durante la scrittura, Mifare classic non ti dà alcuna garanzia. Ciò significa che il settore può finire danneggiato. Per evitare ciò, puoi scrivere i tuoi dati su più settori e fare un controllo di coerenza quando rileggi le carte. Suggerisco anche di tracciare pesantemente / registrare gli eventi / dati delle carte all'interno delle macchine, in caso di controversia con un cliente.

  2. Indirizzato sopra (le carte non possono essere copiate / emulate se si impostano le chiavi di mifare e le condizioni di accesso in modo appropriato).

  3. Preferisco dire leggere, controllare, scrivere e accendere il gioco. Non scrivere nulla sulla carta senza previa verifica dell'integrità della carta. Altrimenti, va bene.

  4. Mifare DESFire ha comandi di credito / debito che potrebbero soddisfare le tue esigenze. Ciò che questi comandi permetteranno è di allentare i requisiti di sicurezza attorno alle macchine. Con l'approccio classico, se l'hardware / firmware della macchina viene violato, si finisce con il rischio di frode. Tuttavia, se le carte diventano in grado di eseguire il debito / credito reale da soli, è possibile attenuare questo rischio. Fino a te per verificare se ne vale la pena.

  5. Non so se era quello che stavi chiedendo, ma naturalmente, NXP ha off-the-shelf chip di quanti puoi usare per progettare un terminale Mifare.

risposta data 27.11.2016 - 23:40
fonte
0

Mi sembra che l'unica opzione ragionevolmente sicura per la "memorizzazione" del denaro sia trattare la carta solo come un contenitore un po 'sicuro per un GUID e gestire centralmente la verifica e la modifica del saldo.

C'è una ragione per cui le politiche standard per le carte di credito EMV spesso limitano gli acquisti offline (se esistenti) a qualcosa come 20 dollari cumulativi; ci sono troppi scenari di attacco diversi per mantenere un sistema offline sicuro a meno che le puntate siano abbastanza basse, anche se si utilizzano chip molto più sicuri (e costosi).

Se si tratta di un 'arcade game saloon' nel senso che le persone possono pre-pagare per alcune ore di intrattenimento, i rischi sono bassi e puoi mitigarli con mezzi non tecnici (una persona ha trascorso una dozzina di ore nel tuo arcade senza mai ricaricare la carta?), ma se coinvolge ad es il gioco d'azzardo e le possibili vincite, quindi è una questione completamente diversa.

    
risposta data 28.11.2016 - 15:16
fonte

Leggi altre domande sui tag