Visa2密钥多样化和JCOP工具

时间:2014-07-16 12:59:39

标签: smartcard javacard jcop

我有一堆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密钥的正确事件序列是什么?

1 个答案:

答案 0 :(得分:1)

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

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

GPShell(http://sourceforge.net/p/globalplatform/wiki/GPShell/)实施Visa2算法。它是开源的,因此您可以在其源代码中查看整个算法序列,并使用它来验证您自己的结果。或者只是用它来处理你的卡片......