Как управлять парой ключей RSA в TPM2 с помощью Linux

Как управлять парой ключей RSA в TPM2 с помощью Linux

Я пытаюсь использовать чип 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 (некоторые из них были объединены буквально вчера).

Связанный контент