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
Что не так?
мой J2A040 предварительно персонализирован, но не слит и не защищает.
Спасибо за вашу помощь
2 ответа
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
Если это не удастся, мне было бы интересно узнать, работает ли addign для новой версии набора ключей. Попробуйте (добавление набора ключей версии 2):
put_sc_key -keyver 0 -newkeyver 2 -mac_key 404142434445464748494A4B4C4D4E4E -enc_key 404142434445464748494A4B4C4D4E4E -kek_key 404142434445464748494A4B4C4D4E4E -current_kek 404142434445464748494A4B4C4D4E4F
Я думаю, что у меня остались некоторые проблемы в коде, сейчас я изучаю это, ваша поддержка может быть здесь полезна. Вы используете последнюю версию двоичных файлов для Windows / Homebrew?
Этот сценарий работает для меня сейчас
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
С этим:
put_sc_key -keyver 0 -newkeyver 2 -mac_key 404142434445464748494A4B4C4D4E4E -enc_key 404142434445464748494A4B4C4D4E4E -kek_key 404142434445464748494A4B4C4D4E4E -current_kek 404142434445464748494A4B4C4D4E4F
Это тоже работает. Но на самом деле я хочу заменить 3 ключа по умолчанию (S-ENC, S-MAC, DEK) и не добавлять новые ключи, теперь у меня есть 3 новых ключа с версией 2, посмотрите на картинку l '.
Картинка из новой версии 2 ключа pyResMan
Теперь как удалить ключи для версии 2