PDA

Visualizza la versione completa : chiarimento su protocolli e software NFC


nik600
06-01-2015, 09:25
Ciao a tutti

premetto che non sono esperto della tecnologia in questione, vorrei usare un questo reader semplicemente per identificare degli operatori, non mi servono particolari controlli o meccanismi di sicurezza.

In sostanza mi basterebbe scrivere uno uniqueID sulla carta e andare a leggerlo successivamente.
ho acquistato un reader / writer NFC (ACR122U) e alcune card NFC (Topaz NFC Tag )

utilizzando pcsc_scan riesco a collegarmi al reader e ricevere degli eventi con informazioni sul tipo di carta accostata al device.

Di seguito l'output che ottengo:



Mon Jan 5 09:04:27 2015Reader 0: ACS ACR122U PICC Interface 00 00
Card state: Card inserted,
ATR: 3B 8F 80 01 80 4F 0C A0 00 00 03 06 11 00 30 00 00 00 00 49


ATR: 3B 8F 80 01 80 4F 0C A0 00 00 03 06 11 00 30 00 00 00 00 49
+ TS = 3B --> Direct Convention
+ T0 = 8F, Y(1): 1000, K: 15 (historical bytes)
TD(1) = 80 --> Y(i+1) = 1000, Protocol T = 0
-----
TD(2) = 01 --> Y(i+1) = 0000, Protocol T = 1
-----
+ Historical bytes: 80 4F 0C A0 00 00 03 06 11 00 30 00 00 00 00
Category indicator byte: 80 (compact TLV data object)
Tag: 4, len: F (initial access data)
Initial access data: 0C A0 00 00 03 06 11 00 30 00 00 00 00
+ TCK = 49 (correct checksum)


Possibly identified card (using /usr/share/pcsc/smartcard_list.txt):
3B 8F 80 01 80 4F 0C A0 00 00 03 06 11 00 30 00 00 00 00 49
3B 8F 80 01 80 4F 0C A0 00 00 03 06 .. 00 30 00 00 00 00 ..
Topaz NFC Tag (as per PCSC std part3)




Ho provato anche i vari software scriptor e gscripor con i quali riesco a collegarmi alla scheda e dare il comando di RESET, ricevendo una risposta.

Oltre a questo però non so cosa fare, ho visto che per windows esiste un software commerciale chiamato gototags ma non ho trovato alternative per Linux.

In alternativa ho visto che potrei usare uno smartphone con NFC abilitato (es: Samsung Galaxy S3) con apposita app, ma al momento non ne ho uno sotto mano.

In sostanza, avrei bisogno di una dritta in merito a:

- eventuali software Linux che mi consentano di scrivere una semplice stringa sulla scheda
- eventuali info o chiarimenti sul funzionamento dei protocolli T0/T1 in modo da scrivere autonomamente il tag con i software di cui sopra

Vi ringrazio!

Ciao

nik600
07-01-2015, 21:55
Ok, ho capito un pò come funziona...diciamo che di standard c'è ben poco... o meglio, diciamo che ci sono così tanti standard e protocolli che qualcosa di pronto e funzionante "out of the box" non c'è.

Intanto ho capito da questo documento

http://www.acs.com.hk/download-manual/6071/TDS_TOPAZ.pdf

che per la mia specifica scheda la lettura dello UID è fatta tramite il comando 0x78, che si può inviare con scriptor o gscriptor.

denis76
08-01-2015, 16:00
Ciao, nfc dovrebbe essere simile and un lettore - scrittore mifare, 125.
Basta avere il protollo del dispositivo, scrivere un programma che lo implementa e poi avere i dati delle tessere.
Le tessere sono come delle eeprom, ci sono dei blocchi in cui scrivere dati protetti da una password che puoi impostre te.
Non è difficile.

Ciao ciao.

nik600
08-01-2015, 23:21
Ciao, nfc dovrebbe essere simile and un lettore - scrittore mifare, 125.
Basta avere il protollo del dispositivo, scrivere un programma che lo implementa e poi avere i dati delle tessere.
Le tessere sono come delle eeprom, ci sono dei blocchi in cui scrivere dati protetti da una password che puoi impostre te.
Non è difficile.

Ciao ciao.

Ciao

sei se esiste un demone simile a pcsc_scan che consenta di triggerare degli script quanto viene rilevata una scheda?

Grazie

denis76
09-01-2015, 09:56
Questo non los so.
Volendo posso farti un programma a doc. Che modello di lettore hai?

nik600
09-01-2015, 11:07
se leggi il post iniziale trovi tutto:

ACR122U

Ad ogni modo non voglio darti tanto disturbo...ci mancherebbe!

Era solo per sapere se esisteva già qualcosa

la mia idea senza stare lì a diventarci matto è fare un seplice script:

pcsc_scan | grep "Card state: Card inserted" > log.txt

poi mi faccio uno script che verifica se log.txt è cambiato e quando cambia triggera il mio eseguibile che parla con la scheda.

E' un pò brutale, ma credo sia la cosa più semplice da fare senza messersi a fare polling sul lettore.

Ciao

Matwei
20-05-2016, 17:38
Ciao a tutti, mi intrometto in questa discussione perché anche io sto utilizzando un lettore NFC acr122u per leggere dei tag. Utilizzando pcsc_scan rilevo delle informazioni sui tag ma non il contenuto. Avete dei suggerimenti per scrivere un programma apposito? Non saprei da dove iniziare e anche il più piccolo aiuto sarebbe fantastico,
Grazie infinite

denis76
20-05-2016, 17:48
Ciao, quel lettore non lo conosco, quello che usavo io aveva un protocollo proprietario.

Ad ogni modo la tessera mifare la puoi pensare come una chiavetta usb da 1 kb di spazio disco (oppure da 4 Kb). Lo spazio è diviso a blocchi (mi pare che ogni blocco sia di 4 byte ma non ricordo bene). Il primo byte (o 2, non ricordo bene) di ogni blocco serve per decidere come criptare in lettura e scrittura gli altri 3 byte del blocco. Per cui ti consiglio di iniziare senza andare mai a scrivere sul primo byte perché rischi di bruciarti la tessera.

Ad ogni modo dovresti avere delle api che ti permettono di leggere il contenuto di un determinato blocco da 0 ad n, api che dovrebbe avere come argomento il numero del blocco che vuoi leggere e con quale password. Una seconda api per scrivere e via così.

Loading