У меня есть javacard, и это S_ENC
, S_MAC
и DEK
ключами являются 404142434445464748494A4B4C4D4E4F
. вопрос в том, как я могу изменить этот ключ через gpj, gpshell или jcmanager?Как изменить стандартные ключи javacard?
ответ
С gpshell, вы можете использовать put_sc_key команду:
put_sc_key -keyver <current key version> -newkeyver <new key version> -mac_key <mac key> -enc_key <enc key> -kek_key <kek key> [-current_kek <kek key>]
Я не думаю, что изменение ключей можно с GPJ. Графический интерфейс jcManager имеет приятные пояснительные текстовые поля и кнопки, которые следует довольно легко понять (например, «Новые ключи:», «Добавить/изменить ключи»).
Команда PUT KEY - это команда GP для смены ключа.
Формат APDU является "80/84 D8 P1 P2 Lc данных Le", для получения более подробной информации вы можете увидеть "Спецификация GlobalPlatform Card"
Команда PUT KEY используется либо:
• Заменить существующий ключ с новым ключом: новый ключ имеет тот же или другой номер версии ключа, но тот же идентификатор ключа, что и заменяемый ключ;
• Заменить несколько существующих ключей новыми клавишами: новые ключи имеют одинаковый или другой номер версии ключа (идентичный для всех новых клавиш), но те же ключевые идентификаторы, что и используемые ключи;
• Добавить один новый ключ: новый ключ имеет другую комбинацию. Идентификатор ключа/номер ключа, отличный от существующих ключей;
• Добавить несколько новых клавиш: новые ключи имеют разные комбинации идентификаторов клавиш/номер версии ключа (идентичные всем новым клавишам), чем у существующих ключей; Если для операции управления ключами требуется несколько команд PUT KEY, рекомендуется обеспечить целую последовательность команд PUT KEY для обеспечения целостности операции. В этой версии Спецификации общедоступные значения асимметричных ключей представлены в ясном тексте
Попробуйте провести некоторое исследование перед публикацией вопросов или указав, что вы это сделали. Этот вопрос почти тривиален, если вы прочитали документацию по GP. –