我正在使用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命令响应)
答案 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卡的基本思路。
希望它可以帮助你..