Ho provato per più di una settimana a effettuare l'autenticazione di un telefono Android con un Mifare Ultralight C. Ho confermato che posso scrivere sul tag (scrivendo su una pagina di memoria non protetta e poi leggendo ciò che ho scritto). Posso anche scrivere sulle pagine chiave (44-47) e avere scritto 0x00 per tutti i 16 byte chiave.Android: autenticazione con NXP MiFare Ultralight C
Quando si tenta di eseguire l'autenticazione, il seguente è un esempio dei dati coinvolti durante uno scambio: si tratta di un log scritto dalla mia applicazione. Qualcuno può dirmi se sto facendo qualcosa di sbagliato? I AM in caso di mancata comunicazione e accesso alle schede tecniche complete. Si noti che le stringhe esadecimali di seguito sono ovviamente versioni leggibili dall'uomo dei dati inviati e ricevuti, che nel codice sono costituiti da matrici di byte.
comando Invia autenticazione
Received rndB: 8A5735694D9D7542
Key: 00000000000000000000000000000000
IV: 0000000000000000
Decrypted rndB: EF340C62E1B866D4
rndB': 340C62E1B866D4EF
rndA: 6E262630E299F94F
rndA+rndB': 6E262630E299F94F340C62E1B866D4EF
Key: 00000000000000000000000000000000
IV: 8A5735694D9D7542
ek(RndA+rndB'): E36C6C46FAAC60BA45DDF5F5A0802C79
Dopo l'invio 0xAF + E36C6C46FAAC60BA45DDF5F5A0802C79
perdo immediatamente la connessione con il tag. Ho letto la scheda tecnica e ho letto tutti i post che riesco a trovare qui. Ho anche guardato il codice libfreefare e onestamente non riesco a capire cosa sto facendo male.
Il supporto tecnico NXP non rispondeva completamente.
Qualche idea? Sono in perdita.
Ho trovato gli esempi in NXP Application Note AN0945 molto istruttivo e utile per il debug del mio codice. –
Grande, grazie! L'ho perso perché è un documento DESFire e non ho prestato attenzione a quella cartella in DocStore. Ho appena scaricato e sembra promettente. Grazie ancora - apprezzo molto il tuo contributo. –
NFCGuy - Hai (o qualcuno che conosci) eseguito con successo un'autenticazione end-to-end con un Ultralight-C utilizzando un dispositivo Android? –