Я пытаюсь использовать чип TPM 2.0 в своем ноутбуке для управления новой парой ключей RSA и создания CSR поверх нового закрытого ключа, но когда я перечисляю сертификаты, управляемые моим TPM, я получаю только ключи, помеченные как открытые, и не знаю, как получить URL-адрес моего закрытого ключа, который я хочу использовать для генерации CSR.
Я использовал следующую процедуру:
#generate rsa key:
p11tool --login --so-login --generate-rsa --bits=2048 --label=dave4 "$token"```
#list my certificates:
p11tool --list-all ""
Но все URL-адреса сертификатов, которые я получил, когда попытался составить их список, помечены как публичные:
pkcs11:model=NPCT75x;manufacturer=Nuvoton;serial=0000000000000000;token=dave4;id=%34%39%30%66%65%35%65%34%30%30%34%64%65%33%65%30;object=myfirstkey;type=public
и список приватных ключей не возвращает никаких объектов:
p11tool --list-privkeys pkcs11:model=NPCT75x;manufacturer=Nuvoton;serial=0000000000000000;token=dave4
No matching objects found
Есть ли у вас какие-либо идеи, как получить список URL-адресов закрытых ключей или другой способ создания новой пары ключей RSA для последующего создания CSR?
Спасибо.
решение1
Обычно эти объекты создаются с атрибутом CKA_PRIVATE, указывающим, что они скрыты от обычного списка – необходимо указать--login
и укажите PIN-код токена, чтобы увидеть их.
p11tool --login --list-privkeys 'pkcs11:model=NPCT75x;manufacturer=Nuvoton;token=dave4'
Но если модуль PKCS#11 хранит закрытый ключ, то URI для открытой и закрытой половин почти всегда имеет точно такой же id=
, поэтому вы можете просто отредактировать URI вручную. Закрытый ключ может иметь другую object=
метку (поэтому удалите этот параметр), и он, конечно, будет иметь type=private
.
Например, это должен быть рабочий URL:
pkcs11:model=NPCT75x;manufacturer=Nuvoton;serial=0000000000000000;token=dave4;id=%34%39%30%66%65%35%65%34%30%30%34%64%65%33%65%30;object=myfirstkey;type=private
или даже:
pkcs11:model=NPCT75x;token=dave4;id=%34%39%30%66%65%35%65%34%30%30%34%64%65%33%65%30;type=private
pkcs11:model=NPCT75x;token=dave4;object=myfirstkey;type=private
Обратите внимание, чтоtpm-pkcs11все еще далек от завершения. В последнее время было много исправлений ошибок, связанных с API (некоторые из них были объединены буквально вчера).