Como gerenciar o par de chaves RSA no TPM2 usando Linux

Como gerenciar o par de chaves RSA no TPM2 usando Linux

Estou tentando usar o chip TPM 2.0 em meu laptop para gerenciar um novo par de chaves RSA e criar um CSR sobre uma nova chave privada, mas quando listo certificados gerenciados por meu TPM, recebo apenas chaves rotuladas como públicas e não sei como obter o URL da minha chave privada que desejo usar para geração de CSR.

Eu usei o seguinte procedimento:

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

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

Mas todos os URLs de certificados que obtive quando tento listá-los são rotulados como públicos:

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

e listar chaves privadas não retorna nenhum objeto:

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

Você tem alguma ideia de como obter URL de uma lista de chaves privadas ou outra maneira de gerar um novo par de chaves rsa para criar CSR posteriormente?

Obrigado.

Responder1

Geralmente esses objetos são criados com o atributo CKA_PRIVATE, indicando que estão ocultos da lista normal – você deve especificar--logine forneça o PIN do token para vê-los.

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

Mas se o módulo PKCS#11 tiver uma chave privada armazenada, então o URI para as metades pública e privada quase sempre terá exatamente o mesmo id=, então você pode simplesmente editar o URI manualmente. A chave privada pode ter um object=rótulo diferente (portanto, remova esse parâmetro) e, é claro, terá type=private.

Por exemplo, este deve ser um URL funcional:

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

ou mesmo:

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

Observe quetpm-pkcs11ainda está longe de estar concluído. Houve muitas correções de bugs relacionadas à API recentemente (algumas delas foram mescladas literalmente ontem).

informação relacionada