无法识别智能卡上的 AFL

Unable to identify AFL on a smart card

我正在使用我卡住的 AID 列表从 VISA(例如 PAN、到期日...)信用卡获取有用数据。

我已经能够手动访问所有数据。使用下一教程:http://www.openscdp.org/scripts/tutorial/emv/reademv.html

>>00 A4 04 00 07 A0 00 00 00 03 10 10 00

在 ASCII 中:

<<o<EM>„<BEL> <0><0><0><ETX><DLE><DLE>¥<SO>P<EOT>VISA¿<FF><ENQ>ŸM<STX><VT><LF><0>

十六进制:

<<6F 19 84 07 A0 00 00 00 03 10 10 A5 0E 50 04 56 49 53 41 BF 0C 05 9F 4D 02 0B 0A 90 00

之后我使用了:

>>33 00 B2 01 0C 00 //sfi1, rec1
...
...
>>33 00 B2 10 FC 00 //sfi31, rec16

我继续学习教程,了解到获取数据的正确方法是使用 GPO(获取处理选项)命令。接下来尝试:

>>80 A8 00 00 0D 83 0B 00 00 00 00 00 00 00 00 00 00 00 00 // pdo = 83 0B 00 00 00 00 00 00 00 00 00 00 00 which suposse to be the correct one for VISA.
<< 69 85

所以不满足使用条件

>> 80 A8 00 00 02 83 00 00 //pdo= 83 00 that should work with every non visa card
<< 80 0E 3C 00 08 01 01 00 10 01 04 00 18 01 03 01 90 00

如果此回复正确并且对我来说看起来不错,因为它从 80 开始到 90 00 结束,我无法识别 AFL,我认为这可以让我确定 PAN、到期日期...有人可以帮我吗?

您收到的响应 select 命令的 FCI (00 A4 0400 07 A0000000031010 00) 解码为

6F 19  (File Control Information (FCI) Template)
    84 07  (Dedicated File (DF) Name)
        A0000000031010
    A5 0E  (File Control Information (FCI) Proprietary Template)
        50 04  (Application Label)
            56495341  ("VISA")
        BF0C 05  (File Control Information (FCI) Issuer Discretionary Data)
            9F4D 02  (Log Entry)
                0B0A  (SFI = 11; # of records = 10)

此 FCI 不包含任何 PDOL(处理选项数据列表)。因此,您需要为 PDOL 假设一个默认值(对于您的卡类型,它是一个空列表)。因此,GET PROCESSING OPTIONS 命令中与 PDOL 相关的数据字段必须为空:

83 00

其中 0x83 是 PDOL 相关数据的标记,0x00 是零字节的长度。

因此,正确的 GPO 命令是(正如您已经发现的那样):

80 A8 0000 02 8300 00

您已收到回复

800E3C00080101001001040018010301 9000

解码为

80 0E  (Response Message Template Format 1)
    3C00  (Application Interchange Profile)
    08010100 10010400 18010301  (Application File Locator)

因此,应用程序文件定位器包含以下三个条目:

  • 08010100:SFI=1,首条记录=1,末条记录=1,涉及离线数据鉴权的记录=0
  • 10010400:SFI=2,首条记录=1,末条记录=4,涉及离线数据鉴权的记录=0
  • 18010301:SFI=3,首条记录=1,末条记录=3,涉及离线数据鉴权的记录=1

因此,您可以使用 READ RECORD 命令读取这些记录:

00 B2 010C 00
00 B2 0114 00
00 B2 0214 00
00 B2 0314 00
00 B2 0414 00
00 B2 011C 00
00 B2 021C 00
00 B2 031C 00