可信计算组织TCG提出了“信任链”和“信任度量”的概念,认为如果从一个初始的“信任根”出发,在平台计算环境的每一次转换时,这种信任可以通过传递的方式保持下去不被破坏,那么可信环境下的各种操作也是可信任的,不存在不被信任的实体,这样就不会破坏平台本身的完整性,从而可以很好的保证平台及应用的安全。
可信引导确保了系统按照经过严格验证的路径进行引导。它对主引导记录、操作系统装载器、操作系统内核、系统配置信息进行验证,确保引导过程中各部件的完整性。
可信引导中所需的“信任根”,在TCG的可信方案中是以TPM模块为基础的,而国内推出了对应的TCM安全芯片标准。信任链建立所需的可信度量根可以是整个BIOS,也可以是BIOS中的一段代码。
(1) 系统引导过程
系统引导过程通常包括下列步骤:
1)平台加电,BIOS开始执行,首先是电自检(POST-Power-OnSelf Test),然后对系统内的硬件设备进行监测和连接用。
2)BIOS自检完毕,按照CMOS的引导顺序设置,将从引导设备上读入引导装载程序(Boot Loader)。Boot loader被分为两级,第一级为MBR。
3)MBR开始执行,将装入Boot Loader的第二级,即特定操作系统的装载程序。
4)特定操作系统装载程序将装入操作系统内核。
5)操作系统内核开始执行。
所有的可执行代码,在执行之前,都经过完整性验证,只有信任根是无条件相信的。从信任根出发,引导过程中的可信建立在可信链传递的机制上。由于整个引导过程是发生在实模式下,因此是由一系列的有先后顺序的执行过程组成。在此阶段,需要保证每一个执行阶段的可信。这早的可信要求,主要是对硬件平台本身和各个可执行实体的完整性验证。从引导过程的分析可以看出,可信的引导过程包括下列要求:
a)平台加电后,BIOS中最先执行的代码段要求作为“信任根”,而被无条件相信,因此,该段代码必须经过BIOS生产商的担保,确定是可信的。或者,BIOS的整体可以被要求作为“信任根”。
b)BIOS执行期间,BIOS调用的其他设备上的执行体要求是可信的,可通过BIOS对这些执行体进行计算和校验来完成。
c)平台的配置信息要求是可信的,该配置信息主要是指平台的硬件信息。
d)BIOS所加载的引导设备中的MBR是可信的。这其中也包括MBR中的磁盘分区信息。
e)操作系统装载程序是可信的。
f)操作系统内核是可信的。
(2) 可信引导过程
在进行可信引导之前,我们要对系统进行相应的安装过程。这其中主要包括一些预存验证码的生成和存储,将MBR和OS装载程序替换成可信增强的MBR和OS装载程序等。可信增强的MBR和OS装载程序和普通的区别主要是,在将控制权转移到下一个引导组件前,首先对启动各个阶段进行可信度量(完整性度量),以确定是否进行控制权的转移。
我们可以认为从加电开始、TPM/TCM安全芯片运行到BIOS运行完毕之前系统都是可信的。信任的传递从MBR开始,往后的3个阶段建立信任链:MBR、OS装载程序、OS内核。
其可信引导过程如下图:
可信引导过程必须保证以下三点:
a)保证信任是逐层传递。当前一个可执行实体被度量并验证是可信并执行后,其转移控制权至下一个可执行实体之前,必须先对其进行度量,验证可信后方可转移控制权,信任从而传递至下一个执行实体。
b)所有在可信链的建立过程中涉及到的度量和验证方法不能采用软件实现,而是依赖于TPM/TCM的实现。所有的度量和验证调用将最终由TPM/TCM验证模块来完成。
c)可信链是建立在逐层的度量和验证基础上的,这种验证要求由TPM/TCM来保证重要秘密数据的完整性和保密性。在可信链传递过程中涉及的所有重要数据、需要预存的验证码都必须由TPM/TCM来保存,不能使用可移动的存储装置或PC机的系统内存,并且这些数据在使用过程中不能脱离TPM/TCM。TPM/TCM也不能提供访问这些数据的外部调用接口,以保证这些重要数据的秘密和可信。