手动生成交流密码

Arj*_*jun 2 apdu emv mastercard

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

我的计算适用于发现卡,但对于万事达卡则失败。据我了解,用于生成交流电的数据取决于标签8C-CDOL1,我们通过Gen AC命令+ AIP + ATC将其提供给卡。

AIP和ATC-由ICC内部访问。

用于生成交流的数据为:-

data part of Gen AC command + value of tag 82 + value of tag 9f36 + 80 + optional 00 to make it multiple of 8.
Run Code Online (Sandbox Code Playgroud)

这是我的逻辑,可能是我使用了错误的数据来计算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 0000000002010000000000000000000826000000000008261504280030901B6A2300001EABC126F8549976000000此命令返回9F26。我用于校准的数据是:-

00000000020100000000000008268260000000000008261504280030901B6A2300001EABC126F8549976000000 3800000180 [数据为8的倍数]

其中3800是AIP,0001是ATC,而80是填充[填充方法2 EMV]这是我的逻辑,请问有人能告诉我应该在哪里集中更多精力来生成与生成的工具相同的AC。

iso*_*ort 5

万事达卡应用密码(AC)的生成比其他卡方案更为复杂。

  1. 卡可以使用不同的ICC会话密钥派生(SKD)方法:

    • 万事达卡专有SKD,其中涉及申请交易计数器(ATC)和不可预测的号码(UN);
    • EMV2000方法,仅涉及ATC-参见EMV 4.0,规格书2
    • EMV公用会话密钥(CSK)方法,其中仅涉及ATC-请参阅EMV 4.2,第2册
  2. 数据对象(DO)可以具有不同的附加值或修改值集:

    • 卡验证结果(CVR)可以为6或4个字节。
    • 可以包括发卡行应用程序数据(IAD)的脱机计数器。
    • 可以包含最后的在线ATC值。

可以通过密码版本号(CVN)和应用程序控制位来检测所使用的方法和数据变体。CVN是IAD标签的子字段0x9F10

详细信息是专有信息,可供万事达卡会员使用。

要深入了解它,请查看“ M /芯片卡应用程序加密算法 ”和M / Chip Card应用程序参考。

  • 它由密码版本号 (CVN) 和应用程序控制位检测。CVN 是 IAD 标签 0x9F10 的子字段。 (2认同)