3

У меня есть бесконтактная карта, и я знаю, что это карта MIFARE. У меня нет документа и нет ключа аутентификации. После сброса, я получил следующий ATS:В чем разница между картами DESFire и DESFire EV1?

 

[email protected]:~$ nfc-list 
nfc-list uses libnfc 1.7.1 
NFC device: ACS/ACR122U PICC Interface opened 
1 ISO14443A passive target(s) found: 
ISO/IEC 14443A (106 kbps) target: 
    ATQA (SENS_RES): 03 44 
     UID (NFCID1): 04 8c 4c 92 e9 48 80 
     SAK (SEL_RES): 20 
       ATS: 75 77 81 02 80 

После поиска выше АТС в Google, я нашел следующую информацию here:

enter image description here

Итак, моя карта является либо DESFire карты или карту DESFire EV1. Вопрос в том, как я могу определить, какая из двух моих карт точно?

ответ

6

MIFARE DESFire EV1 - это последующее поколение MIFARE DESFire. DESFire EV1 добавляет поддержку новых криптографических алгоритмов (в частности, AES) и улучшает безопасность криптографических операций против атак бокового канала, известных для MIFARE DESFire.

Вы можете отличить две версии, отправив команду GetVersion (код команды 0x60) на карту.

Если вы используете режим родной команды, это будет выглядеть что-то вроде:

 
READER ---> CARD: 60 
CARD <--- READER: AF 04 01 XX XX XX XX 05 
READER ---> CARD: AF 
CARD <--- READER: AF 04 01 01 HH LL XX 05 
READER ---> CARD: AF 
CARD <--- READER: 00 XX XX XX XX XX XX XX XX XX XX XX XX XX XX 

Байт HH содержит основную версию программного обеспечения, которое 0x00 для DESFire и 0x01 для DESFire EV1.

Если вы используете для чтения PC/SC для обмена данными с картой, вам, вероятно, потребуется использовать DESFire APDU-обернутый родной набор команд вместо:

 
READER ---> CARD: 90 60 00 00 00 
CARD <--- READER: 04 01 XX XX XX XX 05 91 AF 
READER ---> CARD: 90 AF 00 00 00 
CARD <--- READER: 04 01 01 HH LL XX 05 91 AF 
READER ---> CARD: 90 AF 00 00 00 
CARD <--- READER: XX XX XX XX XX XX XX XX XX XX XX XX XX XX 91 00 
0

Вы можете определить тип карты у Major Hardware номер версии который вы получили бы, как этот

Reader  Card 
60  -> 
     <- AF 04 01 XX HH LL XX 05 
AF  -> 
     <- AF 04 01 01 XX XX XX 05 
AF  -> 
     <- 00 XX XX XX XX XX XX XX XX XX XX XX XX XX XX 

где HH будет:

  • 0x00 = DESFire (MF3ICD40)
  • 0x01 = MIFARE DESFire EV1
  • 0x12 = MIFARE DESFire EV2