2013-09-05 29 views
6

Questo mi sta uccidendo ... Sto cercando di trovare un tag/RFID NFC che:Tag crittografico NFC/RFID?

  1. Implementa la crittografia e/o firma crittografica dei dati inviati al tag in modo che il tag può essere autenticata dal lettore. Non mi importa se il tag tenta di autenticare il lettore, e

  2. è ampiamente supportato dai telefoni Android e le librerie standard NFC, e

  3. Memorizza la chiave crittografica (s) in modo sicuro (lettura dovrebbe essere impossibile dopo che un fusibile di configurazione è saltato).

Non mi interessa quale tipo di payload può essere memorizzato sul tag e non ho alcun utilizzo per i messaggi NDEF. Non mi interessa se la crittografia utilizzata è simmetrica o asimmetrica. Tutto quello che voglio fare è inviare un po 'di dati al tag e averlo, utilizzando un segreto condiviso, crittografarlo o firmarlo e inviarlo al telefono, dopodiché il mio codice eseguirà la stessa funzione e confronterà i risultati con il la risposta del tag per convalidare il tag.

Ho campioni di tag Atmel CryptoRF * e mentre probabilmente farebbero la maggior parte di ciò che mi serve, non vengono rilevati correttamente dall'unico telefono Android che possiedo. Il telefono suona e sto filtrando per 'android.nfc.action.TECH_DISCOVERED' con le voci della tech-list appropriate ma non ottengo nulla. Il supporto tecnico di Atmel è peggio che inutile (perché ho perso tempo a fare domande a cui non si sono mai presi la briga di rispondere). Logcat assomiglia:

  • 09-04 21: 03: 53,474 1012-1012 /? D/NativeNfcTag: Connect Failed - status = 146
  • 09-04 21: 03: 53.474 1012-1012 /? E/NFCJNI: doDisconnect() - Target già disconnesso

Non vedo alcuna voce precedente che suggerisca che il tag sia stato mai riconosciuto da Android.

Questo sembra un tipo di tag così semplice, ovvio e necessario che deve esistere da qualche parte.

NFCGuy o altri - qualche idea?

Grazie!

* La scheda tecnica Atmel CryptoRF dice il seguente, che può o non può essere utile per determinare se queste cose potrebbero mai essere letti da un telefono Android:

  • ISO/IEC 14.443-2: 2001 Tipologia B Conforme
  • ISO/IEC 14.443-3: 2001 Tipo B Conforme anticollisione protocollo
+1

Sembra che questo tag/scheda non sia supportato dal dispositivo. Provare con un altro dispositivo abilitato NFC se ne possiedi uno e probabilmente meglio ottenere un tag più usato come Mifare Ultralight-C o Desfire (versione AES). –

risposta

3

Mifare Desfire farà quello che chiedi, tranne che per una cosa:

Il supporto per Crypto non è disponibile a livello di API.

Devi scrivere il codice che fa tutto l'autenticazione e la crittografia e parla direttamente con il tag Desfire. L'API di Android fornisce gli strumenti per farlo tramite la funzione di accesso a basso livello IsoDep.transceive.Le funzioni crittografiche possono essere trovate in javax.crypto.spec

A differenza di altri tag con documentazione crittografica, i passaggi necessari per eseguire l'autenticazione e la crittografia sono disponibili su Internet.

+1

Grande, grazie. A volte penso che i ragazzi di ISO siano un po 'sadici quando scelgono i loro schemi di numerazione ... Ho dei campioni sia di DESFire EV1 che di MiFare Ultralight C in arrivo. Spero che questo possa funzionare. Ottenuto sulla crittografia. Sarà facile una volta ricevuta una carta che parlerà al telefono. Glad NXP usa la crittografia standard invece della "sicurezza attraverso l'oscurità" di Homegrown scelta da Atmel. –

+1

NXP ha iniziato a utilizzare la crittografia standard solo dopo che il loro Crypto1 nostrano si è rotto e non è riuscito a coprirlo. –

Problemi correlati