在不知道文件标识符的情况下读取SmartCard ISO 7816的文件结构

问题描述

我正在使用ISO 7816卡,需要从MF开始读取卡的文件结构并跟踪其中的所有子文件

首先,我开始使用SELECT命令选择MF(3F00)并使用CLS:0x00 INS:0xA4 P1:0x00 P2:0x06 Le:0x00

读取其FCP模板

它响应我SW1:61 SW2:XX信息,因此我将GET RESPONSE命令与CLS:0x00 INS:0xC0 P1:0x00 P2:0x00 Le:XX一起使用,并以TLV格式获得了所有FCP参数的响应为该文件设置

现在对于选定文件(即MF:3F00),如何在不直接了解其子文件标识符的情况下选择直接子文件,然后再选择其对应子文件遍历整个文件结构。

我的问题是,当我使用P1作为0x01(选择子DF)或0x02(选择EF)进行文件选择时,由于需要传递DF / EF标识符,因此长度错误给我6700的错误,但是我不知道文件标识符,那么我在哪里可以读取子文件文件标识符?

解决方法

具有标准化功能的唯一选择是遍历所有可能的文件标识符。如果响应指示DF,请记住以后进行递归,并立即选择父级以完成级别。可能存在一些专有命令,这允许使用更具针对性的方法。

通常,我不认为对所有现有文件ID的了解会有所帮助,因为这并不意味着您可以对文件做任何事情。无论如何,下一步都需要一些信息,从一开始就把它弄清楚,可以节省无聊的工作。