【发布时间】:2014-05-01 08:21:10
【问题描述】:
是否可以使用 ATR 来确定我是否拥有 ISO14443A 或 ISO14443B 类型的卡?如果是,怎么做?
【问题讨论】:
标签: nfc smartcard rfid pcsc contactless-smartcard
是否可以使用 ATR 来确定我是否拥有 ISO14443A 或 ISO14443B 类型的卡?如果是,怎么做?
【问题讨论】:
标签: nfc smartcard rfid pcsc contactless-smartcard
正如mictter 正确explained,真正的 ATR 仅适用于 ISO 7816 联系人卡片。我可以遵循这样的论点,即 ISO 14443 等效项可能是 ATQA/ATQB,因为这是您在激活后从标签中获得的第一个答案,尽管我更愿意说 ATR 的等效项是 ATQA + SAK + ATS 的组合( A 类)和 ATQB + ATTRIB 答案的组合(B 类)。
关于 ATR你,我假设这是根据PC/SC specification 的 PC/SC 模拟 ATR。
对于智能卡(ISO 14443-4 传输协议),此 ATR 的格式为
3B 8n 80 01 T[1]..T[n] xx
T[1] 到 T[n] 是
T[1] T[2] T[3] T[4])、ATQB 协议信息字段 (T[5] T[6] T[7]) 和 ATTRIB MBLI 字段 (T[8]) 的串联。因此,如果它是 A 型或 B 型智能卡,您也许可以进行某种形式的匹配以 猜测。 IE。如果 n == 8 并且 T[1] 到 T[n] 中的参数与您对 B 类卡的这些字段的预期匹配。我仍然怀疑你会得到任意卡片的可靠结果。
对于非接触式存储卡,情况肯定更好。对于这些卡,模拟的 ATR 如下所示:
3B 8n 80 01 T[1]..T[n] xx
T[1] 到 T[n] 包含应用程序标识符存在指示符(标记 4F)。所以T[1] 到T[n] 通常看起来像这样:
80 4F yy A000000306 ss nnnn 00000000
用ss 识别卡的协议:
0x01: ISO 14443-1 Type A
0x02: ISO 14443-2 Type A
0x03: ISO 14443-3 Type A
0x05: ISO 14443-1 Type B
0x06: ISO 14443-2 Type B
0x07: ISO 14443-3 Type B
和nnnn 识别卡名称(完整列表请参见PC/SC specifications)。
【讨论】:
ATR 仅适用于接触式智能卡。对于非接触式卡,它的等价物称为 ATQ,它有两种变体:ATQ-A 和 ATQ-B,分别对应两种 ISO14443 类型。
所以我推荐的方式是:
非接触式阅读器的驱动程序应将此信息传递给您的软件。 我建议您获取一份 ISO 14443-3 标准的副本,它解释了卡发现和防冲突协议的初始步骤,因此您可以看到类型 A 和 B 之间的区别。
【讨论】:
@haythem souissi
您可以在 pcsc3_v2.01.09_sup (http://pcscworkgroup.com/Download/Specifications/pcsc3_v2.01.09_sup.pdf) 中找到卡的列表
【讨论】: