gpt4 book ai didi

smartcard - 通过非接触式或 NFC 的 ATS(选择应答)与通过接触卡的 ATR(重置应答)之间的区别

转载 作者:行者123 更新时间:2023-12-04 13:13:27 28 4
gpt4 key购买 nike

ATSATR 是否应该与非接触式和接触式读卡器上的同一张卡相同? 双接口(interface)卡上的 JavaCard 应用程序以不同的 ATSATR 响应会影响该小程序的执行吗?

这里还有另一个问题:Difference between contact card and contactless(RF) card这似乎表明如果它们使用相同的传输协议(protocol),它们可以是相同的。

举个具体的例子,我有一个 JavaCard J3H145,它在非接触式读卡器和接触式读卡器上提供不同的 ATR(通过 pcsc_scan 显示)。这是否意味着读者正在自己做某事(the Identiv 3700f)?我有几个 javacard 小程序可以通过接触而不是非接触式工作。当我通过 pcscd 跟踪 ADPU 时,一切都是 Attempting PTS to T=1(这需要读者从 T=CL 翻译吗?)。


编辑:额外研究

有一些相关的问题开始讲述这个故事:

  1. Determine card type from ATR

详细说明了ATRATQ-AATQ-B之间的转换过程,而

  1. Smartcard with different historical bytes depending on interface
  2. How to change applet's privilege and the card Historical Bytes?

显示可以从 GP API 更改历史字节(因此 ATS/ATR 是可编辑的),所以我假设有一种方法可以修复他们手动相同。

我也在 PN532 屏蔽上测试了 J3H145(测试我特定的阅读器翻译),我得到了一个看似被截断的 ATR:3B 80 80 01 01(没有历史字节的 ISO 14443 类型 B) 和接触(当一切正常时!)ATR:3B DC 18 FF 81 91 FE 1F C3 80 73 C8 21 13 66 05 03 63 51 00 02 50(JCOP3 SecID P60 CS(JavaCard))

为了完整起见,我尝试运行 https://github.com/ANSSI-FR/SmartPGP通过非接触式接口(interface),这目前在双界面卡上的接触式接口(interface)上工作。 ATR/ATS 的差异是罪魁祸首吗?

相关SO问题:ATR command when programming PC/SC reader

最佳答案

这是一个复杂的问题。

表面上很简单的答案:它们不可能相同,因为它们的格式完全不同。 ATR 以 3B/3F 开头,然后是 T0、TAx/TBx/TCx/TDx(对于 [1..4] 中的 x),最多 15 个历史字节和一个单字节校验和。根据您的卡是符合 ISO 14443 的 A 类还是 B 类,您将获得 ATS 或 ATQB,它们具有不同的格式,但都以双字节校验和结尾。

现在事情变得复杂了,因为 PCSC 迫切需要一个 ATR,因此为非接触式读卡器(通常由读卡器或驱动程序)创建了一个合成的 ATR。这种合成的 ATR 通常非常短(只是符合格式)并且不会与 ATR/ATS/ATQB 有惊人的相似性。由于传输速率协商发生在读卡器和卡之间,因此合成 ATR 与应用程序无关。虽然读者将使用原始的 ATS/ATQB 来解决冲突等问题,但您不会在主机上看到它。友好的读者名称足以将信息引导至正确的读者界面。

关于smartcard - 通过非接触式或 NFC 的 ATS(选择应答)与通过接触卡的 ATR(重置应答)之间的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62669363/

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