EMV CAPK 选择

EMV CAPK Selection

我正在使用移动支付终端和测试 EMV 交易的测试工具。终端设置的一部分涉及将多个 CAP 密钥加载到终端中以用于不同类型的卡。

我很好奇,终端如何选择合适的 CAP 密钥?我是否可以从 APDU 日志中获得任何信息来指示我将使用哪个 CAP 密钥?

我 运行 遇到的具体问题是我有一个成功处理 AMEX 卡的演示项目,但我无法在自己的项目中处理它们。我收到诸如 "No key was found to do the verification (65)" 之类的错误。我认为匹配应用程序标识符就足够了,但我没有在演示项目中看到任何 AMEX 标识符,即使它正在工作 (A0 00 00 00 25)。

我相信您知道如何使用 AFL(应用程序文件定位器)信息进行 READ。阅读所有文件,您会发现一个元素 Certification authority public 关键索引。这与应用程序 RID 相关联。浏览一下这个link你就明白了。它拥有最多的 CA PK。

在您的情况下,您需要为 A000000025 添加索引 65 的选定 PK

问:终端如何选择合适的 CAP 密钥?

A:通常在EMV/NFC内核初始化时添加的终端CAP Key记录。对于关键确定,记录通常具有下一个值:

  • RID - 已注册的应用程序 ID。 'A000000025' 你的情况。
  • 关键索引。 '65' (0x65) 在你的情况下。
  • 关键指数。此密钥的“03”。
  • Key Modulus - 正好是键值。 "E53E...400D" 用于此测试 Amex 密钥。

根据您的 EMV 内核要求,还可能需要:

  • 密钥激活和到期日期。
  • 密钥校验和算法
  • 密钥校验和

问:我是否可以从 APDU 日志中获得任何信息来指示我将使用哪个 CAP 密钥?

A:是的,您可以从卡 APDU 跟踪中确定所需的密钥索引、密钥指数和 RID。搜索下一个标签:

  • 标记 0x9F32:发行者 Public 密钥指数。
  • 标记 0x8F:证书颁发机构 Public 密钥索引。
  • RID 是应用程序 ID (AID) 的前 5 个字节。标记 0x4F:应用程序标识符 (AID)。