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 관련 버그 수정이 있었습니다(그 중 일부는 말 그대로 어제 병합되었습니다).

관련 정보