gpt4 book ai didi

smartcard - 什么 APDU 命令获取卡 ID

转载 作者:行者123 更新时间:2023-12-04 05:20:25 42 4
gpt4 key购买 nike

哪个 APDU 命令获取卡 ID 的 7 个字节?
我使用带有 ISO14443 层的 T=CL (ISO7816) 协议(protocol)。在检测卡上,我只能看到卡 ID 的 4 个字节。
我发现这应该是获取卡ID的APDU命令。
例如它的:0xFF, 0xCA, 0x00, 0x00, 0x00但是这个命令的结果是:6E 00 ,关于 APDU 答案的规范说明“不支持类”
然后我发现它的APDU命令可能为:0x00, 0xCA, 0x00, 0x00, 0x00此命令返回 6A 88在哪里 6A XX - “错误的参数 P1-P2”和 88 - “未找到引用数据”
你怎么想的?
谢谢!
附言所有命令为:CLA, INS, P1, P2, LenData, Data其他我的命令正常工作(例如sellect aplet并使用它),仅在获取卡ID时出现问题

最佳答案

之前给出的答案是错误的。这是因为我们在这里讨论的不是 ISO 7816 命令,而是 PC/SC API 的内部命令。

APDU“0xFF 0xCA 0x00 0x00 0x00”实际上是正确的,我有卡,我得到一个 7 字节的答案。请注意,这仅适用于非接触式 (RFID) 卡,因为此 UID 是 radio 协议(protocol)的一部分。请进一步注意,某些芯片会在每次上电后返回一个新的随机 UID。例如,我的护照芯片和德国国民身份证就是如此,以及防止追踪持卡人的对策。理论上,此类随机 UID 应以 0x08 开头,但并非总是如此。

由于 UID 是协议(protocol)的“内部”值,所讨论的 APDU 不会发送到卡,而只是(PC/SC 接口(interface)的)内部命令,用于从读卡器驱动程序获取 UID。 CLA 0xFF 通常不正常使用,因为它仅用于为“协议(protocol)参数选择”(PPS)保留。 PC/SC 滥用此 CLA 执行内部命令。

这里的命令是 PC/SC 内部“获取数据”命令,在 PC/SC 规范的第 3 部分第 3.2.2.1.3 节中指定。这里 P1 和 P2 具有特殊的预定义含义,因此尝试不同的值是没有意义的。该标准仅定义 P1=0,P2=0 用于获取 UID,P1=1,P2=0 用于“来自没有 CRC 的 ISO 14443 A 卡的 ATS 的所有历史字节”。不支持其他值。

有趣的是,标准中没有定义答案 0x6A 0x88。 0x6a 0x81 表示“不支持功能”,即没有 UID 的卡(标准提到 7816-10 联系卡)。其他两个定义的答案(0x62 0x82 和 0x6C 0xXX)定义了请求的答案长度和实际数据量之间的不匹配,并且不会在此处发生,因为我们只是通过在请求的最后一个字节中指定 0 来请求任何长度的数据.

那么为什么它对我不知道的提交者不起作用。对我来说它有效,一些卡返回 4 个字节,其他返回 7 个字节。

请参阅 PC/SC 标准,特别是第 3 部分,此处:http://www.pcscworkgroup.com/specifications/specdownload.php

关于smartcard - 什么 APDU 命令获取卡 ID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9514684/

42 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com