【问题标题】:Unable to read information from Contact VISA Card using APDU commands无法使用 APDU 命令从 Contact VISA 卡读取信息
【发布时间】:2015-11-17 10:30:09
【问题描述】:

我正在使用 Telpo TPS300 POS 终端尝试从 VISA 银行卡读取信息。终端带有 C 库,因此发送命令要容易得多。但是,当我运行 SELECT APDU 命令时 (00 A4 04 00 )Lc=0,返回如下18byte长的十六进制数据如下 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 之一 当我尝试选择返回的 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 命令响应)

【问题讨论】:

  • 换一张卡试试?确保它是一张有效的卡,只是为了确定。
  • @PaulOgilvie 我尝试了大约 5 种不同的借记卡,当我将卡插入 POS 终端时,它们都返回相同的结果。

标签: c emv


【解决方案1】:
I am using the Telpo TPS300 POS terminal to try and read information from a VISA bank Card

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

当您发送选择命令时, 00 A4 04 00 00 ,它选择 ISD - Issuer Security Domain 并返回 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 卡的基本思路。

希望对你有帮助..

【讨论】:

  • 嘿@Arjun 感谢您的精心回复。它有帮助。我从另一个安装了 EMV 应用程序的卡那里得到了一张卡片,并且能够输出。该链接也很有帮助。
猜你喜欢
  • 2014-08-29
  • 1970-01-01
  • 1970-01-01
  • 2020-03-01
  • 1970-01-01
  • 2012-03-27
  • 1970-01-01
  • 1970-01-01
  • 2014-05-09
相关资源
最近更新 更多