【问题标题】:How does ISO 7816-3 T=0 work?ISO 7816-3 T=0 如何运作?
【发布时间】:2020-08-04 13:24:54
【问题描述】:

我正在尝试了解发送 APDU 命令-响应对的通信。 谁能简单地解释一下 T=0 是如何工作的?

APDU和TPDU有什么区别?

例如,命令头为 CLA、INS、P1、P2 和 P3=0x20 32 字节数据。卡如何知道命令的第 5 个字节是 Lc 还是 Le? 卡如何知道不期望任何命令数据,以及它如何知道阅读器是否期望响应中的数据?

另外一件事,程序字节何时参与场景?是程序字节吗?或者,过程字节?卡是否必须发送程序字节?

【问题讨论】:

  • 除非您尝试实现此协议,否则这对于Stack Overflow 来说是题外话。网络上有许多资源可以帮助您。 Google 是您的朋友。
  • 你应该一次问一个问题。
  • 虽然第一条评论原则上是正确的,但我确实看到开发智能卡需要了解该协议。我真的不知道还有什么地方可以问这个问题。没有(也可能不会)与智能卡相关的 SE 网站。

标签: smartcard


【解决方案1】:

APDU 是应用协议数据单元,TPDU 是传输协议数据单元。如果为 T=0 定义了 APDU 命令响应对并且它同时具有命令数据和响应数据(情况 4S),则将生成单独的 TPDU 来发送和接收数据 (GET RESPONSE) .请参阅 ISO/IEC 7816-3 (2006) 第 12.2.1 章。

卡知道 P3(字节 5)的含义,因为它是服务器。每个命令都应该以 P3 只能具有单一含义的方式实现。 ISO/IEC 7816 在这方面不符合 OSI 堆栈 - 层没有严格分离。这是 ISO 7816 的主要问题之一。

过程字节是 T=0 传输协议的一部分。它没有在应用程序协议中定义,尽管它可能映射到状态字的第一部分 SW1。它只是发送来指示接口设备(IFD)做什么。有关详细信息,请参阅 ISO/IEC 7816-3 (2006) 第 10.3.3 章。第10章定义了T=0,T=1不包含过程字节。

【讨论】:

    【解决方案2】:

    APDU 用于应用层,TPDU 用于物理层。 如果您向卡发送“00 84 00 00 08”,卡可以响应“xx xx xx xx xx xx xx xx 90 00”。 p3后面没有数据,所以p3代表le。否则,p3 代表 lc。 但是,我认为没有必要区分 le 和 lc。

    【讨论】:

      【解决方案3】:

      假设通信分为 3 个部分- -PC 到控制器(控制器有 2 个部分 A MCU,连接到 Rcontroller unit by i2c or SPI or UART & Radio 控制器单元)。 -控制器到无线电控制器(天线和无线电传输芯片) - 无线电控制器到目标或其他 NFC 设备。 APDU 从 PC 到 Controller,TPDU 从 Controller 到 Radio Controller。

      【讨论】:

        猜你喜欢
        • 2014-12-16
        • 1970-01-01
        • 2022-01-21
        • 1970-01-01
        • 1970-01-01
        • 2020-06-24
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多