无法使用 APDU 命令从 Contact VISA 卡读取信息

Unable to read information from Contact VISA Card using APDU commands

我正在使用Telpo TPS300 POS 终端尝试从VISA 银行卡读取信息。终端带有 C 库,因此发送命令要容易得多。但是当我 运行 SELECT APDU 命令时 (00 A4 04 00 )Lc=0, returns如下18byte长的十六进制数据如下 6F 10 84 08 A0 00 00 00 03 00 00 00 A5 04 9F 65 01 FF。 我阅读了 ISO 7816-4 规范和 EMV 规范,从外观上看,我的 returned 数据似乎缺少 EMV 规范 11.3.4 中指定的强制性标签 88 之一 当我尝试 SELECT returned DF 名称时,即带有标签 84 (A0 00 00 00 03 00 00 00) 的 DF 名称,它 return 是相同的信息。所有其他命令也不成功,特别是我尝试了读取记录、验证、获取处理选项、获取挑战,它们都是 return SW 6D 00(指令代码不支持或无效)。我只想从卡中检索用户信息并使用验证命令对 PIN 执行离线验证。

我在网上找了一圈,但似乎没有人回答我。我已经一次又一次地阅读了关于命令和响应交互的标准 ISO 7816-4 和 EMV 规范,但到目前为止运气不好,因为我无法超越这一步(SELECT 命令响应)

I am using the Telpo TPS300 POS terminal to try and read information from a VISA bank Card

正如您所说,您尝试使用空白卡,此处来自卡的信息是正确的。

当您发送 select 命令时,例如, 00 A4 04 00 00 ,它 select ISD - 发行者安全域 和 return ISD AID 即 A0 00 00 00 03 00 00 00 带有标签 9F 65 表示-命令消息中数据字段的最大长度

Recv - 6F 10 84 08 A0 00 00 00 03 00 00 00 A5 04 9F 65 01 FF

您收到的显示 ISD 的 AID 和标签 9F65 的值。好像是对的。

my returned data seems to be lacking one of the mandatory tag 88 as specified in EMV Specification 11.3.4

Tag 88 -当你使用命令select PSE目录时,目录基本文件的SFI从卡中出来,

00 A4 04 00 0E 315041592E5359532E4444463031 (select PSE command)

如果卡中安装了 PSE,它会给你标签 88。

I tried READ RECORD, VERIFY, GET PROCESSING OPTIONS, GET CHALLENGE and they all return the SW 6D 00 (Instruction code not supported or invalid).

要读取 emv 卡,必须在卡中安装和个性化 EMV 应用程序,然后才能使用命令序列从卡中获取信息。试试- how to read emv card 它给出了使用命令序列读取 emv 卡的基本思路。

希望对你有帮助..