【问题标题】:SELECT APDU and logical channels选择 APDU 和逻辑通道
【发布时间】:2014-06-30 10:02:07
【问题描述】:

据我所知,要打开/关闭逻辑通道,我们必须使用MANAGE CHANNEL APDU 命令。

  • 打开一个逻辑通道:00 70 00 P1 P2 LE
  • 关闭逻辑通道:00 70 80 P1 P2 LE
  • P1-P2 = 0000-0003
  • LE= 01(如果 P1-P2=0000)或空(如果 P1-P2!=0000

。默认情况下唯一开放的逻辑通道是基本通道。

问题:

1-为什么当我通过关闭的逻辑通道发送SELECT APDU时,它会自动打开?

2-我们何时必须/需要使用打开/关闭逻辑通道命令(MANAGE CHANNEL)?

这是 Opensc-tool 的输出,如您所见,我成功发送和接收 SELECTGET RESPONSE 命令和响应,通过逻辑通道 1 和 2,之前没有打开它们:

逻辑通道 1:

C:\>cd E:\OpenSC\tools

E:\OpenSC\tools>opensc-tool -s 01A40400 -s 01C0000012

Using reader with a card: ACS CCID USB Reader 0
Sending: 01 A4 04 00
Received (SW1=0x90, SW2=0x00)
Sending: 01 C0 00 00 12
Received (SW1=0x90, SW2=0x00):
6F 10 84 08 A0 00 00 00 03 00 00 00 A5 04 9F 65 o..............e
01 FF                                           ..

逻辑通道 2:

E:\OpenSC\tools>opensc-tool -s 02A40400 -s 02C0000012

Using reader with a card: ACS CCID USB Reader 0
Sending: 02 A4 04 00
Received (SW1=0x90, SW2=0x00)
Sending: 02 C0 00 00 12
Received (SW1=0x90, SW2=0x00):
6F 10 84 08 A0 00 00 00 03 00 00 00 A5 04 9F 65 o..............e
01 FF                                           ..

E:\OpenSC\tools>

【问题讨论】:

    标签: smartcard javacard apdu globalplatform


    【解决方案1】:

    自 1995 年的 ISO 7816-4 版本以来,SELECT 被定义为打开逻辑通道的替代方法。除了提到的 MANAGE CHANNEL 之外,没有其他命令能够这样做。逻辑通道的管理信息通常会消耗大量资源(例如,用于获得的访问权限、会话密钥、当前安全环境的 RAM)。一旦你得到指向那个方向的错误(有点合理的是 6A 84 意味着文件中没有更多的内存,65 81 内存错误,但无论如何你的卡文档在这里优先)你应该之前关闭它。通常,使用逻辑通道是有充分理由的,它源自不再需要的用例。

    【讨论】:

      【解决方案2】:

      这些 ISO 命令直接进入 ISD,根据Global Platform,所有可用逻辑通道默认选择 ISD。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2021-04-13
        • 1970-01-01
        • 1970-01-01
        • 2015-01-08
        • 2011-01-24
        • 2023-03-16
        • 2011-02-24
        相关资源
        最近更新 更多