【问题标题】:Read smart card files读取智能卡文件
【发布时间】:2014-03-24 20:09:29
【问题描述】:

我正在尝试读取智能卡文件,经过长时间的搜索后,我现在可以发送 APDU 命令来选择 MF(主文件)但我需要访问 EF(基本文件),这是我正在发送的命令:

ResponseAPDU r = channel.transmit(new CommandAPDU(new byte[] { 0X00,(byte) 0XA4, 0X00, 0X00, 0X02, 0X3F, 0X00 }));

这是回复:

6F 1C 82 01 38 83 02 3F 00 85 02 03 7F 86 0C 7F 7F 7F 7F 41 60 60 7F 7F 7F 60 00 8A 01 05 90 00

我知道我得到了一个肯定的响应 90 00,那么接下来我应该怎么做才能访问 EF。

【问题讨论】:

  • 您好,您使用什么设备读取智能卡文件?

标签: java smartcard apdu


【解决方案1】:

您现在需要选择一个文件并使用相同的命令选择它。如果你谷歌 ISO7816-4,你会发现一些描述读取二进制和读取记录命令的站点。取决于您选择的文件类型。但是,没有用于列出 DF 和 EF 的标准 ISO 命令。首先尝试 EFICCID (2FE2 IIRC),它存在于大多数卡中。

【讨论】:

  • 有 ISO 7816-15 描述了卡片的内容。然而,并非每张卡都部署 ISO 7816-15 定义的结构。
【解决方案2】:

继续的最佳方式是了解详细说明应用程序逻辑数据结构的规范。这些通常包含您应该用来访问/使用应用程序数据的命令集。

【讨论】:

    【解决方案3】:

    PKCS#15 aka ISO 7816-15 并非出现在所有卡上。请改为使用 ISO 7816-4。基本文件 EF.DIR(路径 3F002F00,即 MF/EF.DIR)是查找智能卡布局的正确位置。 首先,您应该发出一个 SELECT 命令(空路径表示 MF)并设置 P1-P2 以读取 FCP 模板。如果智能卡完全个性化,它会分别列出 MF 中的所有 EF 或 DF。如果存在 EF.DIR (2F00),请读取并解析它。它由卡上存在的所有卡应用程序(以及如何选择它)组成。之后,您可以递归地扫描您的卡。

    【讨论】:

      猜你喜欢
      • 2017-06-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-04-05
      • 1970-01-01
      相关资源
      最近更新 更多