TPM Key相关概念
1. Storage Keys:存储密钥,用来加密数据和其它密钥的通用非对称密钥,这里的其它密钥可以是另外一个存储密钥,也可以是绑定密钥或签名密钥。它本身是长度2048bit的RSA私钥;它既可以是可迁移密钥,也可以是不可迁移密钥。
2. SRK:storage Root Key,存储根密钥,是存储密钥的一个特例。整个系统拥有一个最高权限的存储密钥,这个最高级密钥也就是存储根密钥。它很特殊,在每个用户创建的时候生成,管理这个用户的所有数据,也就是存储可信根(Root of Trust for Storage, RTS).和签署密钥(Endorsement Key,EK)一样,一个TPM仅存在唯一一个。所有其它的密钥都在存储根密钥的保护之下。
3. 签名密钥(Signing Key):是非对称密钥,用于对应用数据和信息签名。签名密钥可以是可迁移或不可迁移的。可迁移密钥能够在TPM之间传递,通过迁移密钥传递保密数据。TPM中的签名密钥都遵循RSA签名密钥的标准,它们有若干种不同长度。TPM能够正确地进行处理的最大密钥长度是2048bit。
4. 签署密钥,或背书密钥(Endorsement Key,EK)是一个TPM平台的不可迁移的解密密钥,它是一个2048bit的RSA密钥对。它生成于平台的生产过程中,代表着每个平台的真实身份,每个平台都拥有唯一的一个。在确定平台所有者时,用于解密所有者的授权数据,还有解密与生成AIK相关的数据。签署密钥从不用作数据加密和签名。签署密钥的主要功能是生成身份证明密钥(AIK)和建立TPM平台的所有者,由TPM的所有者来生成存储根密钥SRK,使用SRK来加密、存储其他的密钥。
EK可以通过密钥生成服务器,采用两种方法来产生:一种使用TPM命令,TCG规范定义了一组背书密钥操作命令,其中创建背书密钥对的命令为TPM_CreateEndorsementKeyPair,产生密钥长度要求至少2048位。另外一种方法是密钥注入技术,在信任制造商的前提下,由TPM制造商产生背书密钥对,然后采用人工方式注入,注入方法有:键盘输入、软盘输入、专用密钥抢输入等。
对比这两种方法,前者必须依赖硬件中提供受保护的功能和被隔离的位置,从而保证在设备内部产生密钥对,而且密钥对是在篡改保护的环境下产生,能够很好地减少密钥对泄露的风险。
5. AIK:认证身份密钥,或平台身份认证密钥(Attestation Identity Key)是不可迁移密钥。专用于对TPM产生的数据(如TPM功能、PCR寄存器的值等)进行签名,用来证明平台的身份和平台的环境配置,凡是经过AIK签名的实体,都表明已经经过TPM的处理。每个用户可以拥有多个AIK,每个AIK的生成都需要可信第三方的支持。
6. 绑定密钥(Binding Keys):用于在一个平台中加密小规模数据(如对称密钥),然后在另一个TPM平台上进行解密。由于使用平台所特有的密钥加密,所以与该平台绑定。这个密钥的用法同传统非对称密钥加密相同。
7. 密封密钥(Sealing Keys):内置TPM的计算机可以创建一个密钥,该密钥不仅被绑定,而且还被连接到特定硬件或软件条件,这就是密封密钥。首次创建密封密钥时TPM将记录配置值和文件哈希的快照。仅在这些当前系统值与快照中的值想匹配时才能解封或释放密封密钥。
8. 遗留密钥(legacy Keys):在TPM之外生成,它们被定义为可迁移的,在被用来签名或加密之后才能载入TPM。这些密钥用在一些需要在平台之间传递数据的场合。
9. 鉴别密钥(Authentication Keys):用来保护涉及TPM传输会话的对称密钥。
10. Key Management:为了更有效地管理存储在TPM外边的密钥,引进一种密钥缓冲管理机制(Key Cache Manager),它主要管理TPM中受限制的资源,并且对应用程序调用隐藏这些限制。应用程序可以通过利用KCM来载入密钥到TPM中,并假定此密钥可以进一步利用。KCM负责保证当应用程序某个命令需要密钥时,这个已经被应用程序载入的密钥存在于TPM中。如果所有TPM资源被占用,KCM需要释放资源将不经常使用的密钥从TPM取出来,以便为那些经常进出TPM的密钥腾出空间,将需要的密钥放入TPM。应用程序需要利用KCM来将密钥载入TPM中。
11. 可迁移密钥和不可迁移密钥:在整个TPM/TCM的密钥体系中,每个密钥在开始创建的时候都需要指定密钥属性。密钥按照属性不同分为:可迁移密钥(Migratable Key)和不可迁移密钥(Non-Migratable Key)。可迁移密钥并不局限于某个特定平台,可以由平台用户的控制在平台之间迁移。不可迁移密钥则永久地与某个指定平台关联。不可迁移密钥能够用来加密保护可迁移密钥,反之则不可。
不可迁移密钥由TPM内部产生,在TPM产生之后就被打上了TPM的标记。不可迁移密钥本身的安全性要比可迁移密钥高,因为不可迁移密钥全部由TPM内部产生并且从产生到销毁整个周期私钥部分都不会离开TPM(除非不可迁移密钥转化为可迁移密钥,这个时候安全级别降低,注意的是由于可迁移密钥安全级别低所以无法转化为不可迁移密钥)。同时不可迁移密钥可以被TPM签名,从而可以向挑战者或者用户证明其不可迁移的属性,从而证明其安全性。
摘自:TPM核心功能