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

时间:2015-11-17 10:30:09

标签: c emv

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

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

1 个答案:

答案 0 :(得分:1)

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

正如你所说,你试过空白卡,这里来自卡的信息是正确的。

发送select命令时,   00 A4 04 00 00,选择ISD - 发卡机构安全域并返回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

使用命令选择PSE目录时,目录基本文件的标签88 -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卡的基本思路。

希望它可以帮助你..