通过 SFI 选择智能卡上的 EF

发布于 2024-09-13 06:42:41 字数 808 浏览 11 评论 0原文

某些智能卡提供通过 SFI(短文件标识符)引用文件的选项,SFI 是一个 5 位数字。相比之下,典型的文件标识符的长度为 2 个字节。

我需要一些帮助来弄清楚如何做到这一点,因为我未能在 ISO 7816-4

首先,第 5.3.1.1 节指出(强调我的)

通过短 EF 标识符选择 — A 短 EF 标识符可以引用任何 EF。它由五个位组成,并非全部 等于,即从一到任意数字 三十。用作短 EF 时 标识符,数字零,即 二进制 00000,引用 当前 EF。在 MF 级别, 数字三十,即 11110 二进制,被保留(参见 8.2.1.1)。 短 EF 标识符不能在路径中使用或用作 EF 标识符(例如,在 SELECT 命令)。

我对这句话的解释是“你不能使用 SFI 来选择智能卡上的文件”——这不是我所期望的。

此外,第 7.1.1 节指定了 SELECT APDU 命令应该如何使用;表39规定了P1的内容。然而,没有一个示例表明如何通过 SFI 对其进行寻址(所有示例都是关于 2 字节标识符)。

所以我的问题是:

  1. 添加 SFI 的理由是什么?每个标识符 2 个字节太多了?
  2. 如果文件的 SFI 已知,如何选择文件?

Some smart cards offer the option to reference a file by an SFI (short file identifier), which is a 5-bit number. In contrast, a typical file identifier is 2 bytes long.

I need some assistance with figuring out how to do that, because I failed to find an answer inside ISO 7816-4.

First of all, section 5.3.1.1 states (emphasis mine)

Selection by short EF identifier — A
short EF identifier may reference any
EF. It consists of five bits not all
equal, i.e., any number from one to
thirty. When used as short EF
identifier, the number zero, i.e.,
00000 in binary, references the
current EF. At MF level, the
number thirty, i.e., 11110 in
binary, is reserved (see
8.2.1.1). Short EF identifiers cannot be used in a path or as an EF
identifier (e.g., in a SELECT
command).

My way of interpreting this sentence is "you cannot use an SFI to select a file on the smart card" - which is not what I expect.

Further, section 7.1.1 specifies how the SELECT APDU command is supposed to be used; table 39 specifies the contents of P1. However, none of the examples indicate how to address it via SFI (all of them are about 2-byte identifiers).

So my questions are:

  1. What is the rationale behind adding SFI? 2 bytes per identifier was too much?
  2. How can a file be SELECTed, if its SFI is known?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

旧竹 2024-09-20 06:42:41

经过一些额外研究后,我找到了问题的答案。

  1. 可以通过 SFI 直接读取文件,而无需先进行选择。这可以让您节省时间(因为没有时间花在选择上)。
  2. 正如 #1 中所讨论的,SFI 的要点是您可以立即读取它,因此解释如何在已知 SFI 的情况下读取文件的说明可以在其他命令的描述中找到 - READ BINARY、READ RECORD等。请参阅同一文档的第 7.2.2 节

I found the answers to my questions after some extra-research.

  1. A file can be read directly via the SFI, without having to be SELECTed first. This allows you to save time (since no time is spent on selection).
  2. As discussed in #1, the point of an SFI is that you can read it immediately, thus the instructions that explain how a file can be read if its SFI is known are found in the description of the other commands - READ BINARY, READ RECORD, etc. See section 7.2.2 of the same doc
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文