TPM相关知识了解

EK和SRK

     TPM内置了一个称为Endorsement Key(EK)的非对称密钥,它在制造时被注入到TPM中。
EK是每个TPM独特的,可以用于标识TPM。EK的公钥称为EKpub,私钥称为EKPriv。       

SRK(Storage Root Key)
      SRK 是 TPM 中的一个特殊密钥,用于保护其他密钥。它是一个加密的密钥,通常由 TPM 制造商预先生成并存储在芯片内部。SRK 用于加密其他密钥的私钥,以便在存储或传输时保护其机密性。当你执行 stpm-keygen 时,生成的私钥会使用 SRK 加密,形成一个称为“blob”的数据结构。这个 blob 包含了私钥的加密版本,只有在正确提供 SRK 密码的情况下才能解密。

EK 和 SRK 的关系如下

       EK 通常是在TPM制造过程中生成的,它是TPM的身份证明。因此,EK 是第一个生成的密钥,它确保了TPM的真实性和可信性。

      SRK 是在用户获得TPM所有权时生成的。它是由EK的公共部分加密的。在使用之前,SRK 下的所有子密钥都需要加载到TPM中并由SRK解密。因此,SRK 依赖于EK的存在。

//一个代表TPM的身份,一个用于保护其他密钥,是TPM平台的存储根密钥

TPM如何在生成或获取密钥时进行身份认证?

      SRK PIN是由用户设置的个人识别码,用于访问TPM(可信平台模块)中的SRK(存储根密钥)。当您首次启用TPM时,您会被要求设置SRK PIN。这是一种安全措施,确保只有授权用户可以使用SRK来保护其他密钥和数据。因此,您可以将SRK PIN视为您与TPM之间的“密码”。

使用TPM的举例

创建TPM密钥: 首先,使用 tpm2_create 命令在 TPM 中创建一个密钥。例如,你可以创建一个 RSA 密钥:
tpm2_create -C primary.ctx -G rsa -u key.pub -r key.priv
在这里,key.pub 和 key.priv 是 TPM 中生成的公钥和私钥。

加密文件: 假设你要加密名为 my_secret.txt 的文件。使用 TPM 密钥加密文件:
tpm2_encryptdecrypt -c key.pub -i my_secret.txt -o my_secret.enc

这里的 -c key.pub 表示使用 TPM 中的公钥进行加密操作。
解密文件: 当你需要访问文件时,使用 TPM 密钥解密文件:

tpm2_encryptdecrypt -c key.priv -d -i my_secret.enc -o my_secret_decrypted.txt
现在,my_secret_decrypted.txt 包含原始文件的内容,而密钥仍然保留在 TPM 中,没有导出到外部文件。

-c 参数:如果你之前使用TPM生成了密钥对,并且将公钥保存在了TPM内部,那么你可以在这里指定该公钥的名称(例如 key.pub)。TPM将使用这个公钥来加密你的数据。
如果你之前将公钥保存在了磁盘上,那么你需要提供公钥文件的路径,例如 -c /path/to/key.pub。

//这个说法是bing回答的感觉不一定靠谱因为它也说公钥不能离开TPM
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值