Cómo administrar el par de claves RSA en TPM2 usando Linux

Cómo administrar el par de claves RSA en TPM2 usando Linux

Estoy intentando usar el chip TPM 2.0 en mi computadora portátil para administrar un nuevo par de claves RSA y crear una CSR además de la nueva clave privada, pero cuando enumero los certificados administrados por mi TPM, solo obtuve claves etiquetadas como públicas y no Sé cómo obtener la URL de mi clave privada que quiero usar para la generación de CSR.

Utilicé el siguiente procedimiento:

#generate rsa key:
p11tool --login --so-login --generate-rsa --bits=2048 --label=dave4 "$token"```

#list my certificates:
p11tool --list-all ""

Pero todas las URL de los certificados que obtuve cuando intento enumerarlos están etiquetadas como públicas:

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

y la lista de claves privadas no devuelve ningún objeto:

p11tool --list-privkeys pkcs11:model=NPCT75x;manufacturer=Nuvoton;serial=0000000000000000;token=dave4
No matching objects found

¿Tiene alguna idea de cómo obtener una lista de URL de claves privadas u otra forma de generar un nuevo par de claves rsa para crear CSR posteriormente?

Gracias.

Respuesta1

Normalmente estos objetos se crean con el atributo CKA_PRIVATE, lo que indica que están ocultos de la lista normal; debes especificar--loginy proporcione el PIN del token para poder verlos.

p11tool --login --list-privkeys 'pkcs11:model=NPCT75x;manufacturer=Nuvoton;token=dave4'

Pero si el módulo PKCS#11 tiene una clave privada almacenada, entonces el URI para las mitades pública y privada casi siempre tiene exactamente el mismo id=, por lo que puede editar el URI a mano. La clave privada puede tener una object=etiqueta diferente (por lo tanto, elimine ese parámetro) y, por supuesto, tendrá type=private.

Por ejemplo, esta debería ser una URL que funcione:

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

o incluso:

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

Tenga en cuenta quetpm-pkcs11todavía está lejos de estar completo. Recientemente se han corregido muchos errores relacionados con la API (algunos de ellos se fusionaron literalmente ayer).

información relacionada