tpm
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了tpm相关的知识,希望对你有一定的参考价值。
Tpm芯片通过以下三个功能达到
1 公钥认证功能
2 完整性度量功能
3 证明功能
?
公钥认证功能
采用硬件随机数产生器在芯片内部产生密钥对,以及公钥签名、验证、加密、解密。
通过在芯片中产生私钥,有病要在其传送至芯片外部时候进行加密等方法,TPM可以保证而已软件完全不能访问密钥。
因为密钥在芯片外若不解密是不可见,所以密钥拥有者也不能取得私钥,避免网络钓鱼攻击。
?
完整性度量
防止恶意代码获取私钥。
可信引导过程中,引导序列中的配置信息的散列值被存储到芯片中的平台配置寄存器 PCR
,一旦平台启动,数据(如私钥)就在当时的PCR值得情况下被密封,仅当PCR值与数据被密封的值相同时,才能被解封。
?
证明功能
手机提交给PCR的所有软件度量的列表 然后用只有TPM知道的私钥进行签名,这样,一个可信的客户端就可以像第三方证明其软件有危险
?
安全是确保机密数据能在拥有者控制之下
隐私是私有数据即使到了外部环境也能被拥有者控制
远程身份证明 公众匿名权
认证技术的问题之一如何能后再不获取用户知识的条件下,认证该用户。用户有默认选项可以进行相关配置,并要求用户提供明确的身份证明,那么采用TPM进行身份认证是不错的选择,而便于用户使用的方法就是提供相应接口,这样就无需在方便性和隐私性之间做出选择。
?
密钥拥有者的安全能力TPM密钥的备份和恢复 密钥迁移
?
?
?
?
安全报告当前环境:平台状态
首要设计目标之一是提供一种可信的方法去度量和报告平台的环境
使用系统启动序列来判断平台的可信状态。包含了Bios,启动过程中要求控制权的板卡、引导加载程序、操作系统内核以及其他用户选择的部件(OS启动的第一个程序)
?
CMOS是硬件,是可擦写的芯片。BIOS是程序,是驱动硬件运行软件,是可以升级的。与操作系统类似的软件。它保存在CMOS里面。和操作系统保存在硬盘里一样。
? ?
在BIOS?ROM芯片的容量方面,现在主板上常用的Flash?ROM的容量一般多为1M或2M一直到8M。在486时代,一般只用512KBits的BIOS ROM,从Pentium级以后就主要采用1M Bits的BIOS ROM了,随着BIOS的功能越来越多,支持的硬件越来越多,因此程序码也越来越长,1M Bits的容量已不使用,目前出的主板上大多采用2M甚至8M Bits的BIOS ROM。
?
当一个系统启动时,首先是BIOS取得控制权,BIOS系统建一个基本的输入输出子系统并且初始化一些板卡,然后BIOS将控制权传递给系统安装的各个板卡的BIOS,当这些板卡完成了相应的操作,BIOS回收控制权,控制权将传递给引导加载程序,然后引导加载程序把控制权传递给操作系统内核,操作系统将装载设备驱动和服务
?
TPM链式设计,信任根是整个系统中第一个获得控制权的模块,系统从很小的信任根开始启动,信任根是BIOS的一部分(可信度量根CRTM),这个模块记录控制权传递给整个BIOS之前哪一个bios将被用来启动系统…………………….TPM正是用来存储这些记录值并且安全报告这些情况的重要部件。
?
TPM依预定义的方式与平台直接连接,因此链式设计可以利用硬盘存储空间较大的优势来存储密钥。另外,由于TPM确保在系统启动序列中处于主导,因此bios可以依赖TPM。
并在操作系统引导之前的早期系统启动序列中敬爱那个度量值存储于TPM的平台配置寄存器(PCR)
?
?
系统启动过程中,序列中的每一个执行程序在执行之前的度量摘要值都要存储于PCR中
这样在BIOS将控制权交给引导加载程序之前,他就会加速那引导加载程序的散列值,并将值扩展到PCR中,尽到加载程序将系统控制权交给了操作系统内核之前,就会将计算操作系统内核的散列值,并将值扩展到另一个PCR中
?
这样信任根记录了BIOS的状态,BIOSji.ule各类板卡固件和引导加载程序的信任状态,引导加载程序记录了操作系统内核的信任状态。通过检查保存在PCR中的值,那么可以判断这些值是否对应着可信的程序。
?
系统所有者授权的用户 远程访问 假设的是本地主机安全 关注的是远程计算机是否安全 nonce机制 返回的当前pcr签名加入nonce
?
远程使用 本地主机不确定是否安全 签名密钥能够运用于简单的报告机制外,还能被锁定到某个或某几个PCR寄存器中。
在密钥或数据创建时,就为用户指定相关联的PCR寄存器和相应的值。这个过程将数据密封到某个系统状态中去。
?
TCG对数据和签名密钥的安全存储
- 用独立的存储介质来存储数据 在存储介质的输入输出管道上实施访问控制
- 使用加密解密来实现对数据的访问控制
?
TPM与大容量永久存储器通过PC直接连接,可以安全存储大量的与TPM相关的加密数据。Tpm本身能够在内部存储少量的加密数据,但是对称秘钥存储可以讲存储空间无限扩展,非对称秘钥可以是1024bit或者2048bitRSA密钥
TPM最多可以存储256bit对称秘钥
?
将密钥从TPM中导出到硬盘上 通常采用PKCS#1V2格式(一种抵抗密码分析的算法),用2048位RSA密钥对齐加密
?
?
Tpm不做
以上是关于tpm的主要内容,如果未能解决你的问题,请参考以下文章
TPM 程序设计基础 2-2 :tpm_func.c 以及 spnam_check.c 分析