我有非接触式卡,我知道它是MIFARE卡。我没有文档,也没有身份验证密钥。重置后,我收到了以下ATS:


myubuntu @ lol-MS-7693:〜$ nfc-list
nfc-list使用libnfc 1.7.1
NFC设备:ACS / ACR122U PICC接口已打开
找到1个ISO14443A被动目标:
ISO / IEC 14443A(106 kbps)目标:
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中搜索上述ATS之后,我发现了以下信息here

nfc - DESFire和DESFire EV1卡之间有什么区别?-LMLPHP

因此,我的卡是DESFire卡或DESFire EV1卡。问题是,我如何才能准确地检测出我的两张卡中的哪一张?

最佳答案

MIFARE DESFire EV1是MIFARE DESFire的后续产品。 DESFire EV1增加了对新加密算法(特别是AES)的支持,并提高了加密操作针对MIFARE DESFire已知的边信道攻击的安全性。

您可以通过向卡发送GetVersion命令(命令代码0x60)来区分这两个版本。

如果您使用的是本机命令模式,则类似于:

读者--->卡:60
卡读者--->卡:AF
卡读者--->卡:AF


字节HH包含主要软件版本,对于DESFire为0x00,对于DESFire EV1为0x01。

如果您使用PC / SC读卡器与卡进行通信,则可能需要使用DESFire APDU包装的本机命令集:

读者--->卡:90 60 00 00 00
卡读者--->卡:90 AF 00 00 00
卡读者--->卡:90 AF 00 00 00

08-04 09:47