问题标签 [emv]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
6 回答
3369 浏览

smartcard - EMV卡的数据结构

谁能告诉我EMV卡的数据结构是什么?

如果使用磁条卡跟踪数据,其中包含 PAN、用户详细信息、到期日期、CVV 等。

将EMV卡插入读卡器时,我们读到了什么?

我浏览了一些文件和网站,我很难理解。

一点帮助将不胜感激。

0 投票
1 回答
1314 浏览

encoding - 用于验证 ARQC 的 HSM KW 命令

我正在尝试向KWThales HSM 发送命令,其中一个字段数据的描述是:

假设我的数据是6542000000193400.

这是否意味着我必须将其从十六进制转换为字符?

0 投票
0 回答
519 浏览

c - emv 加密引脚

我正在使用加密密码进行持卡人验证,并发送验证命令来验证密码密码块,但我得到的是 6700 分辨率。

加密数据为 128 字节。

0 投票
1 回答
1295 浏览

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

我正在使用 Telpo TPS300 POS 终端尝试从 VISA 银行卡中读取信息。终端带有 C 库,因此发送命令要容易得多。但是,当我运行 SELECT APDU 命令 (00 A4 04 00 )Lc=0 时,它返回以下 18 字节长的十六进制数据,长度低于 6F 10 84 08 A0 00 00 00 03 00 00 00 A5 04 9F 65 01 FF。我阅读了 ISO 7816-4 规范和 EMV 规范,从外观上看,当我尝试选择返回的 DF 名称时,我返回的数据似乎缺少 EMV 规范 11.3.4 中指定的强制性标签 88 之一,即一个带有标签 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 回答
7877 浏览

apdu - 手动生成 AC 密码

我正在尝试手动生成 AC,我有一个生成 AC 的工具,但我想自己生成它以了解相同的算法。

我的计算对于 Discover 卡来说很好,但对于万事达卡来说却失败了。据我了解,用于生成 AC 的数据取决于标签 8C - CDOL1,我们使用 Gen AC 命令 + AIP + ATC 提供给卡。

AIP 和 ATC - 由 ICC 内部访问。

用于生成交流电的数据是:-

这是我的逻辑,可能是我使用错误的数据来计算 AC,这就是为什么我的测试工具得到不同的结果。

终端提供的数据
数量,授权 - 000000000201
金额,其他 - 000000000000
终端国家代码 - 0826 - 英国
终端验证结果 - 00 00 00 00 00
交易货币代码 - 0826 - 英镑
交易日期 - 15 04 28
交易类型 - 00 - 货物和服务
不可预测的数量 - 30 90 1B 6A
终端类型 - 23 - 有人值守,仅离线。由商户
数据验证码操作 - 00 00
ICC 动态编号 - 1E AB C1 26 F8 54 99 76
CVM 结果 - 00 00 00

Gen AC 使用 CDOL1 80 AE 40 00 2B 00000000020100000000000000826000000000008261504280030901B6A2300001EABC126F8549976000000 此命令返回 9F26。我用于计算的数据是:-

0000000002010000000000000826000000000008261504280030901B6A2300001EABC126F8549976000000 3800000180 [数据是 8 的倍数]

其中 3800 是 AIP 0001 是 ATC 和 80 用于填充 [填充方法 2 EMV] 这是我的逻辑,有没有人告诉我应该更多地关注哪里来生成与我的工具生成的相同的 AC。

0 投票
1 回答
898 浏览

smartcard - IssuerScripts 的要求是什么

我对 EMV 中的颁发者脚本感到非常困惑。我知道它们是什么,并且我已经阅读了 EMV 书 3。我想知道是否有人有一个很好的总结告诉我:

  1. 根据“86”解析脚本。
  2. 然后根据一些值做这个或那个。

谢谢

0 投票
1 回答
399 浏览

performance - 销售点 EMV 性能测试

我正在开发 POC 以测试使用 EMV 概念的销售点应用程序 - 芯片和 PIN 信用卡。

过去有任何性能测试过吗?如果是这样,如何在性能测试期间模拟刷卡。在 EMV 中,每次刷卡都会创建一个唯一的数据,并且不能重复用于多次交易。

谢谢安娜

0 投票
3 回答
14022 浏览

emv - EMV 离线批准/拒绝

我正在开发一个 VeriFone VX 终端的接口。虽然,这确实是一个通用的 EMV 问题。我们的处理器的下限为零,因此将始终在线发送。但是,如果它发生变化,您如何知道(哪些标签)交易是离线批准还是拒绝?或者,换句话说,你怎么知道上网与否?

0 投票
1 回答
2049 浏览

nfc - 如何查找我当地交通卡的 AID 号码?

我有一张城市交通的交通卡。我需要知道卡的辅助(应用程序标识符)号码是什么。根据 EMV Book 1,我必须使用 AID 列表方法(第 141 页)。但是怎么做?

我还有一个 ACR122U 读卡器。我可以向卡发送 APDU 命令。我需要的只是卡的 AID。此外,我总是得到 SW=6A82 错误。这意味着“未找到文件”。我想,我需要知道真正的 AID 号码才能解决这个问题。我想看到 SW=9000 (成功)响应...

编辑:用于创建选择 apdu 命令的代码

谢谢..

0 投票
1 回答
936 浏览

c# - Girocard-Maestro 智能卡读卡器问题,读取持卡人姓名和 IBAN

按照此读卡器项目中描述的例程,并使用此 AID 列表,我能够读取 VISA 卡,而强制使用 AID 列表没有任何问题。现在我在阅读来自德国的 EC-Karten (Sparkasse Girocard) 时遇到了问题。

  1. 当我尝试强制读取 AID 列表时,使用

    /li>

注:AID 选择成功读取为 A0000003591010028001

如果我没有将 APDU 命令的长度参数专门设置为 95 而不是所有项目中看到的标准 0(以获得最大长度),它将不会响应 90-00(成功)。我发现这个值只是通过迭代来查看哪个长度是可以接受的。为什么?

通过这个程序,我可以读取 BIC 和卡片类型(“girocard”),以及 PDOL 等数据:

9F33029F35019F4001

然后我尝试按照这篇文章提高安全级别。但是在我的情况下,那些选择和读取的 APDU 命令不会抛出 90-00(而是 6700)。

  1. 我试图通过 SFI 记录

    /li>

正如我从包括Openscdp 的 Initiate Application Process在内的许多其他来源中读到的,但将 PDOL 发送为

或者

在 apduGPOResponse 上没有进一步(再次出现错误 6700,抛出异常 Fail Reading GPO as result is notsuccesful),所以我无法将 SFI 记录添加到列表中以进一步迭代 Data[0] 并查找要阅读的记录。没有 90-00 响应。

关于我错过了什么的任何想法?

更新

我运行这段代码直接强制读取所有可能的值,而不使用 GPO:

在结果中我找到了一些我需要的信息(现在我可以直接指向我需要的数据来加速这个过程),以及一些其他有趣的信息:

我将使用从卡返回的上述 AID 值运行相同的程序来比较结果,看看会发生什么以便更好地理解。感谢您为我指明正确的方向。