So verwalten Sie RSA-Schlüsselpaare in TPM2 unter Linux

So verwalten Sie RSA-Schlüsselpaare in TPM2 unter Linux

Ich versuche, den TPM 2.0-Chip in meinem Laptop zu verwenden, um ein neues RSA-Schlüsselpaar zu verwalten und eine CSR über dem neuen privaten Schlüssel zu erstellen. Wenn ich jedoch die von meinem TPM verwalteten Zertifikate aufliste, erhalte ich nur Schlüssel, die als öffentlich gekennzeichnet sind, und weiß nicht, wie ich die URL zu meinem privaten Schlüssel bekomme, den ich für die CSR-Generierung verwenden möchte.

Ich habe folgendes Verfahren verwendet:

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

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

Aber alle Zertifikats-URLs, die ich beim Versuch, sie aufzulisten, erhalte, sind als öffentlich gekennzeichnet:

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

und die Liste der privaten Schlüssel gibt kein Objekt zurück:

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

Haben Sie eine Idee, wie man an die URL-Liste mit privaten Schlüsseln kommt oder wie man auf andere Weise ein neues RSA-Schlüsselpaar generiert, um anschließend ein CSR zu erstellen?

Danke.

Antwort1

Normalerweise werden diese Objekte mit dem Attribut CKA_PRIVATE erstellt, was bedeutet, dass sie in der normalen Liste ausgeblendet sind. Sie müssen angeben--loginund geben Sie die Token-PIN ein, um sie anzuzeigen.

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

Wenn das PKCS#11-Modul jedoch einen privaten Schlüssel gespeichert hat, ist die URI für die öffentliche und private Hälfte fast immer genau gleich id=, sodass Sie die URI einfach manuell bearbeiten können. Der private Schlüssel hat möglicherweise eine andere object=Bezeichnung (entfernen Sie also diesen Parameter) und wird natürlich enthalten type=private.

Dies sollte beispielsweise eine funktionierende URL sein:

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

oder auch:

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

Beachten Sie, dasstpm-pkcs11ist noch lange nicht abgeschlossen. In letzter Zeit gab es viele API-bezogene Bugfixes (einige davon wurden buchstäblich gestern zusammengeführt).

verwandte Informationen