Bra*_*rad 3 smartcard nfc fingerprinting mifare contactless-smartcard
我有一张非接触式卡,我知道它是一张MIFARE卡.我没有文档,也没有身份验证密钥.重置后,我收到了以下ATS:
myubuntu@lol-MS-7693:~$ 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
在谷歌上面搜索ATS之后,我在这里找到了以下信息:
所以,我的卡是DESFire卡或DESFire EV1卡.问题是,如何才能检测到我的卡中的哪一张正好?
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包含主要软件版本,DESFire为0x00,DESFire EV1为0x01.
如果您使用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