两个阅读器对 GET DATA 命令的响应不同

Posted

技术标签:

【中文标题】两个阅读器对 GET DATA 命令的响应不同【英文标题】:Two readers have different response to GET DATA command 【发布时间】:2015-07-22 04:56:26 【问题描述】:

我有两个智能卡读卡器连接到我的计算机:

    ACS ACR122U非接触式读卡器 CRT-603-CZ1非接触式读卡器

我阅读了两位读者的手册。正如手册中提到的,对于 GET DATA APDU 命令,两者都使用以下 APDU 命令:

CLA  | INS  |     P1    |  P2  |  Le
0xFF | 0xCA | 0x00/0x01 | 0x00 | 0x00

P1 = 0x00 --> UID will return.
P1 = 0x01 --> ATS or Historical Byte of ATS will return.

嗯,我先在ACR122U读卡器的领域放了一张ISO14443(Maybe Mifare)卡,然后在CRT-603-CZ1的领域,我试了上面命令:

OSC:> OSC.exe -r "ACS ACR122 0" -s FFCA000000
Failed to connect to card: Card is invalid or cannot be handled

OSC:> OSC.exe -r "ACS ACR122 0" -s FFCA010000
Failed to connect to card: Card is invalid or cannot be handled

OSC:> OSC.exe -r "CREATOR CRT-603 (CZ1) CCR RF 0" -s FFCA000000
Sending: FF CA 00 00 00
Received (SW1=0x00, SW2=0x00):
FF 16 7F 29 ...)

OSC:> OSC.exe -r "CREATOR CRT-603 (CZ1) CCR RF 0" -s FFCA010000
Sending: FF CA 01 00 00
Received (SW1=0x90, SW2=0x00)

正如您在上面看到的,结果是不同的。实际上ACR122U无法返回这张卡的ATS和UID。

好吧,我用 JCOPv2.4.2r3 卡重复上述步骤:

OSC:> OSC.exe -r "ACS ACR122 0" -s FFCA000000
Sending: FF CA 00 00 00
Received (SW1=0x90, SW2=0x00):
EF B6 09 2E ....

OSC:> OSC.exe -r "ACS ACR122 0" -s FFCA010000
Sending: FF CA 01 00 00
Received (SW1=0x90, SW2=0x00):
0E 78 F7 B1 02 4A 43 4F 50 32 34 32 52 33 .x...JCOP242R3

OSC:> OSC.exe -r "CREATOR CRT-603 (CZ1) CCR RF 0" -s FFCA000000
Sending: FF CA 00 00 00
Received (SW1=0x00, SW2=0x00):
EF B6 09 2E ....

OSC:> OSC.exe -r "CREATOR CRT-603 (CZ1) CCR RF 0" -s FFCA010000
Sending: FF CA 01 00 00
Received (SW1=0x90, SW2=0x00):
4A 43 4F 50 32 34 32 52 33 00 JCOP242R3.

如您所见,两者都返回几乎相同的结果。

谁能帮我理解为什么我第一张卡收到不同的结果?

注意OCS.exe是OpenSC-Tool的执行文件

【问题讨论】:

【参考方案1】:

您针对的是相应的阅读器,而不是卡片,因此可能存在差异。

我的假设是,您的第一张卡虽然支持 ISO 14443,但不是 A 类卡,因此没有 ATS。可能值得检查一下,读卡器是否完全支持 B 类卡,以及如何为 B 类卡检索 ATQB。

【讨论】:

谢谢。第一张卡,ACR122不返回UID,CRT-603返回。为什么?对于第二张卡,两者的效果相同。 您正在寻址相应的读卡器,而不是卡片我无法在 OpenSC-Tool 中寻址卡片。而且,那个界面只有一张卡,我认为它不会有任何改变。

以上是关于两个阅读器对 GET DATA 命令的响应不同的主要内容,如果未能解决你的问题,请参考以下文章

架构之美阅读笔记01

对不同 HTML 页面的 GET 请求

具有不同响应的命令上的 discord.js-commando 参数

Web端响应式设计规范

URLConnection,为啥有两个不同的超时? (连接并阅读)[重复]

Bootstrap响应式实用工具是啥,有啥作用