Linux を使用して TPM2 で RSA キーペアを管理する方法

Linux を使用して TPM2 で RSA キーペアを管理する方法

ラップトップの TPM 2.0 チップを使用して新しい RSA キーのペアを管理し、新しい秘密キーの上に CSR を作成しようとしていますが、TPM によって管理されている証明書を一覧表示すると、公開としてラベル付けされたキーのみが表示され、CSR 生成に使用する秘密キーの URL を取得する方法がわかりません。

私は以下の手順を使用しました:

#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 リストを取得する方法、または後で CSR を作成するために新しい RSA キー ペアを生成する別の方法をご存知ですか?

ありがとう。

答え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 関連のバグ修正が多数行われました (そのうちのいくつかは文字通り昨日マージされました)。

関連情報