可信根即信任根,在可信计算机系统中作为信任的基点。
在可信计算体系中,我们要从不同方向实现可信,主要体现在:启动程序(软件、固件)的可信、存储数据(状态、策略、资源)的可信、对外报告的可信。由此,可信计算从三个概念来实现信任的基点:可信度量根(RTM)、可信存储根(RTS)、可信报告根(RTP)。
以TPM为例:(引用自《可信计算》,张焕国,赵波等著)
可信存储根:是指TPM中PCR的存储器和存储根密钥。
可信报告根:是指TPM芯片中PCR和背书密钥(Endersement Key,EK)。
可信度量根:是指整个计算机上电后,被执行的一段代码,也叫做CRTM(Core Root of Trust for Meaurement)。
因为可信根中使用了密钥和密码算法,所以可信根也必须是一个硬件形态的密码芯片,可信密码芯片实质上就是一个基于密码芯片的SoC(System on Chip)。
我们应该如何理解这三个根呢? 在现实生活中,我们如何判断一个人身份呢?当然是通过此人的身份证来判断。权威机构颁发的身份证,就是每个人的信任根。在每个人出生时,就采集了指纹、DNA等信息,在颁发身份证时,可以唯一标识一个人的身份。 可以设想这样一个场景:乘坐火车出行时,我们首先到火车站售票窗口,持身份证购买车票。进站时,通过安检、查验身份证或车票后进站乘车。上车后,乘务员会对乘车人查验身份证和车票(人、证、票合一)。 在上面描述的场景中:身份证就是可信根。身份证在签发时,唯一绑定了每个人的特征:指纹和DNA,所以其唯一代表一个人。存储在身份证中的关键信息(指纹信息、DNA、身份证号)等受到身份证芯片的物理保护,在这个过程中身份证就扮演了可信存储根的作用(这里只是类比,可信存储和密钥相关)。我们购买的车票和身份证进行了绑定,在我们进站时出示车票和身份证时,就可以将车票理解为对外的报告,身份证证明我们的身份和提供的票据的正确性,二者共同证明本人具备乘车资格(即报告合法,又身份合法),在这个过程中,身份证扮演了可信报告根。为了保证整个乘车系统的安全,车站安排了可靠的验票员,有验票员检查每个乘客的票据信息。此时,验票员就扮演了可信度量根的角色。 由于可信存储根(RTS)和可信度量根(RTP)都和密钥有关,所以这个场景不是十分贴切,但总体上表达了三个根的含义。 (关于三根和密钥的关系,可以参考本人博客的其他文章) 在三根的定义中,可信度量根(RTM)比较特别。在TPM的计算机平台上,可信度量根是在BIOS启动之前的一段代码,这段代码我们定义为CRTM。CRTM有两个特点:1、作为第一段运行的代码,其安全性由计算机提供商从硬件层面来保证(如:来源可靠、不可更改等);2、CRTM启动后使用密码算法计算BIOS主程序的完整性(HASH值),并与TPM预选存储的HASH值进行比较,判断BIOS是否被篡改。因此,我们发现在上个例子中可信度量根是验票员,而不是身份证。
版权归原作者 积微子 所有, 如有侵权,请联系我们删除。