【问题标题】:Authentication failed to java card Manager after changing Global Platform default key in gpshell在 gpshell 中更改全局平台默认密钥后,Java 卡管理器的身份验证失败
【发布时间】:2016-04-15 18:38:47
【问题描述】:

我想更改用于加载小程序和安全消息传递给卡管理器的 globalplatform 默认密钥。 我可以使用以下命令成功更改我的 gemalto 默认 GP 卡密钥:

mode_211
enable_trace
establish_context
card_connect -readerNumber 1
select -AID A000000018434D00
open_sc -security 1 -keyind 0 -keyver 1 -key 47454d5850524553534f53414d504c45  -keyDerivation visa2 // Open secure channel
put_sc_key -keyver 0 -newkeyver 1 -key 505152535455565758595a5b5c5d5e5f // Put secure channel keys
card_disconnect
release_context

但是当我想通过新密钥为卡管理器建立安全通道时,主机端产生的密码与卡端不匹配。旧钥匙也不行。 对卡管理器进行身份验证的命令是:

open_sc -security 1 -keyind 0 -keyver 0 -key 505152535455565758595a5b5c5d5e5f  -keyDerivation visa2 // Open secure channel

我也测试过

open_sc -security 1 -keyind 0 -keyver 1 -key 505152535455565758595a5b5c5d5e5f  -keyDerivation visa2 // Open secure channel

open_sc -security 1 -keyind 1 -keyver 0 -key 505152535455565758595a5b5c5d5e5f  -keyDerivation visa2 // Open secure channel

open_sc -security 1 -keyind 1 -keyver 0 -key 505152535455565758595a5b5c5d5e5f  -keyDerivation visa2 // Open secure channel

我还用smartcafe smart Expert 3.2(G&D卡)测试了这个过程,结果是一样的。

如果有人可以帮助我,我将不胜感激。

【问题讨论】:

  • 我看到你只改变了一个键。我想您还应该更改密钥 #2,如果我没记错的话,它是用于身份验证的 MAC 密钥。所以那个可能仍然是旧值。如果这个有根据的猜测是正确的,请通知我,以便我将其更改为答案。

标签: javacard globalplatform


【解决方案1】:

你需要使用:

open_sc -security 1 -key 505152535455565758595a5b5c5d5e5f

由于新密钥没有多样化(派生),所以必须直接使用。

祝你好运!


请注意,不成功的身份验证是有限制的——您可能会锁定您的卡。

【讨论】:

  • 非常感谢,vlp。你是对的,它有效。
  • 考虑到您的观点,gpshell 1.4.4 可以正常工作。
  • @MohsenGorgani 感谢您的反馈,我已从答案中删除了注释。
猜你喜欢
  • 2016-04-23
  • 2014-05-22
  • 1970-01-01
  • 2011-09-09
  • 1970-01-01
  • 2018-01-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多