TPM 和私钥保护



假设我在Powershell中创建了一个自签名证书,如下所示:

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

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

由于提供程序MS platform crypto provider密钥将由嵌入在我的主板中的受信任平台模块 (TPM) 芯片生成。

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

TPM 创建的任何密钥都已包装,由以下任一方式包装:

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

因此,在创建密钥时,密钥由其中一个根密钥包装,您无需执行任何特殊操作即可实现它。事实上,你不能让它发生。

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

此外,您还可以使上述任何密钥受密码保护。您是否这样做取决于您的具体要求。但请记住,TPM 规范并不专注于防止物理攻击,因此,如果您失去对计算机的物理访问权限,则可能应该将其视为已受到威胁。

相关内容

  • 没有找到相关文章

最新更新