可以这样说,我在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
,因此密钥将由嵌入在我主板中的Trusted Platform Module(TPM)芯片生成。因此,私钥现在存储在“黑盒” TPM中。那么,是否需要包装/密码保护私钥?
最佳答案
TPM创建的任何密钥已经被包装,可以通过以下方式进行包装:
因此,在创建密钥时,该密钥由根密钥之一包装,并且您无需执行任何特殊操作即可使它发生。实际上,您不能使它不发生。
TPM规范保证根密钥本身不会离开TPM。如果要保证新生成的密钥也不会离开TPM,请使其不可迁移。
此外,您还可以使上述任何键受密码保护。是否执行此操作取决于您的特定要求。但是请记住,TPM规范并不专注于防御物理攻击,因此,如果您无法物理访问计算机,则可能会认为它已受到威胁。
关于powershell - TPM和私钥保护,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/53906783/