手动生成AC密码

时间:2015-11-18 09:47:40

标签: apdu emv mastercard

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

我的计算适用于Discover卡,但MasterCard失败了。根据我的理解,用于生成AC的数据取决于标签8C - CDOL1,我们通过Gen AC命令+ AIP + ATC向卡提供。

AIP和ATC - 由ICC内部访问。

用于生成AC的数据是: -

data part of Gen AC command + value of tag 82 + value of tag 9f36 + 80 + optional 00 to make it multiple of 8.

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

终端提供的数据
金额,授权 - 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 0000000002010000000000000826000000000008261504280030901B6A2300001EABC126F8549976000000 此命令返回9F26。 我用于钙化的数据是: -

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

其中3800是AIP 0001是ATC,80是填充[填充方法2 EMV]这是我的逻辑,是否有人告诉我应该把更多的注意力集中在生成与我生成的工具相同的AC上。

1 个答案:

答案 0 :(得分:4)

MasterCard应用程序密码( 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值。
  3. 可以通过密码版本号( CVN )和应用程序控制位检测使用的方法和数据变量。 CVN是IAD标记0x9F10的子字段。

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

    有关它的深入学习,请查看“ M /芯片卡应用程序加密算法”和M /芯片卡应用程序参考。