TPM和私钥保护

时间:2018-12-23 20:02:11

标签: powershell public-key-encryption tpm

可以说我像这样在Powershell中创建自签名证书:

New-SelfSignedCertificate -Provider "Microsoft Platform Crypto Provider" -Subject "CN=foobar" -KeyExportPolicy NonExportable -KeyAlgorithm RSA  -KeyLength 2048 -CertStoreLocation "Cert:\CurrentUser\My" -NotAfter $((Get-Date).AddYears(10))  

证书的预期用途是对Powershell脚本进行代码签名。

由于提供者是MS platform crypto provider,因此密钥将由主板中嵌入的可信平台模块(TPM)芯片生成。

因此,私钥现在存储在“黑盒” TPM中。那么,是否需要包装/密码保护私钥?

1 个答案:

答案 0 :(得分:1)

TPM创建的任何密钥已经被包装,可以通过以下方式进行包装:

  • TPM 1.2的存储根密钥,或者
  • 指示为TPM 2的主键的主键之一

因此,在创建密钥时,该密钥由根密钥之一包裹,并且您无需执行任何特殊操作即可使密钥变为现实。实际上,您无法使其发生。

TPM规范保证根密钥本身不会离开TPM。如果要保证新生成的密钥也不会离开TPM,请使其不可迁移。

此外,您还可以使上述任何键受密码保护。是否执行此操作取决于您的特定要求。但是请记住,TPM规范并不专注于防御物理攻击,因此,如果您无法物理访问计算机,则可能会认为它受到了损害。