微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Javacard J2A040使用GPShell脚本更改默认密钥不起作用

如何解决Javacard J2A040使用GPShell脚本更改默认密钥不起作用

我想更改认密钥,但GPShell上的以下脚本返回6A80。

mode_211 
enable_trace 
establish_context 
card_connect 
select -AID A000000003000000 
open_sc -scp 2 -scpimpl 0x15 -security 1 -keyind 0 -keyver 0 -mac_key 404142434445464748494A4B4C4D4E4F -enc_key 404142434445464748494A4B4C4D4E4F // Open secure channel
put_sc_key  -keyver 0 -newkeyver 1 -mac_key 404142434445464748494A4B4C4D4E4E -enc_key 404142434445464748494A4B4C4D4E4E -kek_key 404142434445464748494A4B4C4D4E4E  -current_kek 404142434445464748494A4B4C4D4E4F 
card_disconnect 
release_context

pyResMan

怎么了?

我的J2A040已预先个性化,但没有融合并且没有保护。

感谢您的帮助

解决方法

put_sc_key  -keyver 0 -newkeyver 1 -mac_key 404142434445464748494A4B4C4D4E4E -enc_key 404142434445464748494A4B4C4D4E4E -kek_key 404142434445464748494A4B4C4D4E4E  -current_kek 404142434445464748494A4B4C4D4E4F

正在创建一个新密钥。因为密钥集版本1中的密钥已经存在,所以命令失败。要替换密钥,请使用以下语法:

put_sc_key  -keyver 1 -newkeyver 1 -mac_key 404142434445464748494A4B4C4D4E4E -enc_key 404142434445464748494A4B4C4D4E4E -kek_key 404142434445464748494A4B4C4D4E4E  -current_kek 404142434445464748494A4B4C4D4E4F

如果失败,那么对我来说,知道添加一个新的密钥集版本是否有用将会很有趣。请尝试(添加密钥集版本2):

put_sc_key  -keyver 0 -newkeyver 2 -mac_key 404142434445464748494A4B4C4D4E4E -enc_key 404142434445464748494A4B4C4D4E4E -kek_key 404142434445464748494A4B4C4D4E4E  -current_kek 404142434445464748494A4B4C4D4E4F

我认为代码中还存在一些问题,目前我正在对此进行调查,您的支持可能会对您有所帮助。您是否正在使用Windows / Homebrew的最新二进制版本?

,

此脚本现在对我有用

var serializeOptions = new JsonSerializerOptions
{
    PropertyNamingPolicy = new JsonFirstCharToLowerNamingPolicy(),WriteIndented = true
};
var jsonString = JsonSerializer.Serialize(weatherForecast,serializeOptions);

与此:

mode_211 
enable_trace 
establish_context 
card_connect 
select -AID A000000003000000 
open_sc -scp 2 -scpimpl 0x15 -security 1 -keyind 0 -keyver 0 -key 404142434445464748494A4B4C4D4E4F -mac_key 404142434445464748494A4B4C4D4E4F -enc_key 404142434445464748494A4B4C4D4E4F -kek_key 404142434445464748494A4B4C4D4E4F // Open secure channel
put_sc_key  -keyver 1 -newkeyver 0 -mac_key 404142434445464748494A4B4C4D4E4E -enc_key 404142434445464748494A4B4C4D4E4E -kek_key 404142434445464748494A4B4C4D4E4E  -current_kek 404142434445464748494A4B4C4D4E4F 
card_disconnect 
release_context

它也起作用。 但是我真正想要的是替换3个默认密钥(S-ENC,S-MAC,DEK)而不添加新密钥,现在我有了版本2的3个新密钥,请看“图片”。

Picture from new version 2 key pyResMan

现在如何删除版本2的密钥

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。