cryptography - 具有两个 AID 的 EMV 芯片卡中是否有相同的 IMK-AC key ?

标签 cryptography payment emv

在具有两个 AID 的 EMV 芯片卡中,为每个 AID 使用不同的 IMK-AC key 还是为两个 AID 使用相同的 IMK-AC key 是否正确?

我问这个问题是因为我们在验证 EMV 芯片卡的 ARQC 时遇到问题。仅当卡使用一种AID时ARQC验证成功,当卡使用另一种AID时ARQC验证失败。我们对此进行了多次测试并得到了相同的结果。我的理论是用于发出 AID 的 IMK-AC 是不同的,但我不知道这是否有意义?

有什么方法可以知道AID EMV芯片卡中的IMK-AC KCV吗?

此外,交易的TVR(终端验证结果)为:

  • ARQC 成功:8000048000(已输入在线 PIN 码)
  • ARQC 失败:8000008000(在线 PIN 输入为“关闭”) 我不知道 TVR 是否会以任何方式影响 ARQC 验证?

对于此问题的任何帮助,我将不胜感激。

谢谢!

最佳答案

两个不同的应用程序,因此有两个不同的卡号,对吗?

当您个性化时,IMK AC不会发送到卡,它是从IMK-AC派生的 key ,通过潘和卡序列号进行多样化,称为发送到卡的唯一派生 key ,因此两张卡都会有两个 UDK,即使 IMK-AC 相同。

由于 AID 不同,请确保 ARPC 验证适合密文验证号。您可以从 9F10(发行人申请数据)获取此信息。 TVR中的值对于ARQC验证并不重要,但是从终端接收到的值应该用于验证,因为它是由芯片生成的。

您可以在此处添加来自终端、主机和 HSM 的一些日志(如果使用实时卡执行,则在屏蔽敏感数据之后)。

关于cryptography - 具有两个 AID 的 EMV 芯片卡中是否有相同的 IMK-AC key ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/73832769/

相关文章:

java - 如何构建与 Verifone 或 Ingenico EMV 设备配合使用的桌面应用程序

java - SlowAES加密和java解密

php - 从比特币私钥中检索公钥

ruby-on-rails - 如何在后台处理事务时向用户显示 'your payment is processing...' 页面?

c# - 在 C# 中检查 paypal 订阅状态

paypal - 使用 Paypal 付款选项拆分付款

c# - Linux 友好的 C# 中的智能卡 API

encryption - 创建加密 API key 的最佳方法

c - 如何使用 OpenSSL 将生成器点添加到 EC 公钥?

encryption - MSR DUKPT 的 MAC 变体?