1

我有一堆 Java 卡,供应商声称 SCP 是 01,关键多样化算法是 Visa2。在过去两天的大部分时间里,我一直在尝试使用 JCOP 工具对他们进行身份验证,但无济于事。

据我了解,选择AID后,init-update命令的响应是KEYDATA,应该是用KMC生成ENC、DEC、MAC密钥的。但有趣的是,虽然我得到SW12 = 0x9000了 28 字节的数据来响应init-update,但 JCOP 工具说:

jcshell:错误代码:-5(身份验证失败)

jcshell:错误的响应 APDU

我的问题是,JCOP 工具是否支持 Visa2 密钥多样化算法?如果不是,使用 Visa2 算法生成 ENC、DEC 和 MAC 密钥的正确事件顺序是什么?

4

1 回答 1

1

JCOP 工具返回错误,因为在检查init-update响应后,卡返回的卡密码未通过检查 - 卡用于生成此密码的密钥不是 JCOP 工具所期望的密钥。

我不知道 JCOP Tools 是否支持 Visa2 多样化,但您可以使用以下解决方法:

GPShell ( http://sourceforge.net/p/globalplatform/wiki/GPShell/ ) 实现了 Visa2 算法。它是开源的,所以你可以在它的源代码中看到整个算法序列,也可以用它来验证你自己的结果。或者只是用它来处理你的卡......

于 2014-07-17T08:25:28.697 回答