可以说我像这样在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中。那么,是否需要包装/密码保护私钥?
答案 0 :(得分:1)
TPM创建的任何密钥已经被包装,可以通过以下方式进行包装:
因此,在创建密钥时,该密钥由根密钥之一包裹,并且您无需执行任何特殊操作即可使密钥变为现实。实际上,您无法使其不发生。
TPM规范保证根密钥本身不会离开TPM。如果要保证新生成的密钥也不会离开TPM,请使其不可迁移。
此外,您还可以使上述任何键受密码保护。是否执行此操作取决于您的特定要求。但是请记住,TPM规范并不专注于防御物理攻击,因此,如果您无法物理访问计算机,则可能会认为它受到了损害。