CN101901319B - 一种可信计算平台以及信任链传递验证方法 - Google Patents
一种可信计算平台以及信任链传递验证方法 Download PDFInfo
- Publication number
- CN101901319B CN101901319B CN2010102378134A CN201010237813A CN101901319B CN 101901319 B CN101901319 B CN 101901319B CN 2010102378134 A CN2010102378134 A CN 2010102378134A CN 201010237813 A CN201010237813 A CN 201010237813A CN 101901319 B CN101901319 B CN 101901319B
- Authority
- CN
- China
- Prior art keywords
- control module
- credible
- platform control
- trusted node
- trust chain
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Landscapes
- Storage Device Security (AREA)
Abstract
信任链是可信计算机系统的一个关键组成部分。它的存在保证了计算机系统从可信源头开始至系统启动整个过程的安全可信性。但是现有的信任传递方式为链式传递方式,由于链式传递的信任度逐层衰减的问题,造成了可信计算平台的信任链建立过程存在安全隐患。本发明通过可信平台控制模块TPCM授权CPU对可信计算平台进行链式度量,同时TPCM尾随CPU对信任链进行实时的、随机的、分块的进行度量,并在平台信任链的各部分代码中嵌入检查点,统计并比较运行总时间与预期总时间,以及各块的运行时间和预期时间,从而判断各个信任节点是否被篡改。本发明提高了对信任链建立和检查的实时性,尤其可以防御TOUTOC攻击。
Description
技术领域
本发明涉及信息安全领域,具体为一种在可信平台中信任链传递过程中的验证方法。
背景技术
在基于网络的信息系统中,终端计算机只有从芯片、主板等硬件BIOS、操作系统等底层软件综合采取措施,才能有效的提高其安全性,正是基于这一技术问题催生了可信计算的诞生,其基本思想是在计算机系统中首先建立一信任根,再建立一条信任链,一级测量认证一级,一级信任一级,把信任关系扩大到整个计算机系统,从而确保计算机系统的可信。因此,信任根和信任链传递是可信计算的基本问题。
在技术领域,信任链传递技术得到了广泛的研究和较大的发展。TCPA和TCG已经制定了关于可信计算平台技术规范。在该规范中,解决了系统可信根的问题,提出了可信传递的概念,阐述了系统从加电开始应该如何开展可信度量,并将系统运行控制权转移到操作系统直至应用的基本原则和过程。由于现实应用的迫切需要,在信任链相关的研究领域,国际上的研究活动非常活跃,TCG的可信计算技术的核心思想是通过硬件实现的信任根支持软件可信性的实现一级软件可信性对外证明的实现。国内方面也相继研究出来了相关的可信产品,国内对基于TPM的操作系统扩展可信路径机制、基于TPM的可信文件系统等进行了经验型研究并取得了相应的成果,这些工作及响应的成果为信任链理论模型的研究奠定了一定的基础。
TCG提出的信任链,是以信任根TPM芯片为核心,起点为CRTM。CRTM可以看成是引导BIOS的程序,是一段简单的可控的代码模块,认为气绝对可信。从加电开始,CRTM引导BIOS并验证BIOS的完整性,如果BIOS代码段完整没有被篡改,就说明BIOS与最初的状态一致,因此认为其是安全的,则把CPU控制权交给BIOS代码。BIOS运行其代码,进行计算机硬件的初始化,当BIOS运行即将结束且需要递交CPU控制权时,它要验证OS Loader的完整性,确保其没有被篡改过,是安全的,验证通过之后再把CPU控制权交给OS Loader代码。类似的,再到OS,再到应用程序,这样以一级验证一级,一级信任一级的方式,实现了信任链的传递,最终形成一个可信的运行环境,从根本上保证了计算机系统的安全性。
然而,以上这种传递信任链的度量方法存在着以下几点不足:
1.以上这种链式的信任链传递方式存在信任度衰减问题,即伴随着信任链的传递各部分的信任度有锐减的现象,这是链式传递的弊端。
2.以上这种以一级度量一级传递信任链的方式来保证系统的安全性,并不能防御TOCTOU(Time Of Check to Time Of Use)攻击。TOCTOU攻击即攻击者利用软件度量和软件程序使用这两个时间点的时间差,对程序内存进行篡改,从而导致TPCM所提供的平台信息无法反映平台的实际运行情况。这种传统的度量信任链及传递方式并不能防御这种攻击。
发明内容
本发明的目的是针对上述现有技术的不足,提出了一种新型的信任链验证方法。有效地解决随着信任链的传递信任度衰减的问题以及防御TOCTOU攻击。
为了实现上述目的,本发明采用的技术方案如下:
1、一种可信计算平台,其特征在于,硬件组成包括:处理器、可信平台控制模块、时钟频率发生器、显示设备控制器、内存设备、北桥控制器、南桥控制器、外围设备和BOOT ROM;
在可信计算平台上,可信平台控制模块、处理器、内存设备、显示设备控制器和南桥控制器的输入输出接口,分别连接到北桥控制器;
时钟频率发生器的端口1连接到可信平台控制模块的频率信号输入接口1,时钟频率发生器的端口2分别连接到可信平台控制模块的频率信号输入接口2和处理器的频率信号输入接口;
可信平台控制模块的输入输出接口,连接到处理器的控制接口;
可信平台控制模块包括:微处理器、密码算法引擎、非易失性存储单元、易失性存储单元、通信总线、输入输出接口、频率信号输入接口1和频率信号输入接口2;
可信平台控制模块的微处理器,用于执行可信平台控制模块内部的固件代码;
可信平台控制模块的密码算法引擎,用于为可信计算平台提供数据加解密和数字签名服务;
可信平台控制模块的的非易失性存储单元,用于存储掉电不丢失的数据,包括固件代码、完整性度量结果、完整性度量参考值、两个相邻信任节点之间的时间间隔参考值、两个相邻的检查节点之间的时间间隔参考值、加密密钥和会话密钥;
可信平台控制模块的易失性存储单元,用于可信平台控制模块固件代码运行过程中,生成数据的临时性存储;
可信平台控制模块的内部总线,用于连接可信平台控制模块内部各个单元;
可信平台控制模块的输入输出接口,用于可信平台控制模块与可信计算平台之间进行数据交互;
可信平台控制模块的频率信号输入接口1,用于从可信计算平台接收可信平台控制模块的工作频率;
可信平台控制模块的频率信号输入接口2,用于从可信计算平台采集可信计算平台的处理器的工作频率,同时也用于统计处理器的执行时间;
外围设备和BOOT ROM分别通过信号线连接到南桥设备控制器。
BOOT ROM是可信计算平台的输入输出系统BIOS的存储载体,一般多为可读写的非易失性存储单元;
外围设备中至少包括外部存储设备;外围设备存储器除用于用户数据存储外,还用于存储信任链中各个信任节点的备份代码;
2、信任链验证方法,其特征在于可信平台控制模块进行初始化自检后,向处理器发送启动信号,让处理器开始进行信任链的建立操作;在处理器进行信任链的建立过程中,每当处理器执行到检查点时,就立即向可信平台控制模块发送中断信号,并停止执行,等待可信平台控制模块发送继续执行或者重新启动的控制信号;然后,可信平台控制模块顺序的或者有选择地,对信任链代码中前一个检查节点与当前检查节点之间的代码,以及当前检查点之前的任意两个相邻的检查点之间的代码进行完整性度量操作;
可信计算平台的信任链传递验证方法如下:
整个可信计算平台的信任链传递验证方法包括:a、可信计算平台首次使用时执行时间统计和完整性度量的操作;b、可信平台控制模块向信任链中各个信任节点插入检查点;c、可信计算平台启动阶段,可信平台控制模块对信任链的主动检查和d、可信平台控制模块删除和改变信任链中的检查点,一共四个部分。可信计算平台出厂后的首次使用时,需要首先进行可信计算平台首次使用时执行时间统计和完整性度量的操作,以及可信平台控制模块向信任链中各个信任节点插入检查点。当用户启动可信计算平台是,则首先需要执行可信计算平台启动阶段的可信平台控制模块对信任链的主动检查操作,然后才能继续启动可信计算平台。当需要删除或者改变可信平台控制模块的检查点时,需要执行可信平台控制模块删除和改变信任链中的检查点的操作。
A、可信计算平台首次使用时,执行时间统计和完整性度量的操作:
完整性度量是一种通过杂凑算法,检查代码是否被篡改的手段。
1)可信计算平台上电启动,可信平台控制模块通过频率信号输入接口2,接收可信计算平台的处理器的工作时钟信号,并对处理器的工作时钟信号进行分频;由于通常情况下可信计算平台的处理器的执行频率要远远大于可信平台控制模块的工作频率,所以对可信计算平台的处理器的工作时钟信号进行分频后,可信平台控制模块才可以实现对处理器工作时间的统计;
2)在可信计算平台启动阶段,可信平台控制模块通过统计处理器执行信任链中各个信任节点的时钟周期的个数,计算可信计算平台信任链中任意相邻两个信任节点之间的时间间隔和信任链的总执行时间;
3)可信平台控制模块将统计的任意两个相邻信任节点之间的时间间隔和信任链的总执行时间存储在可信平台控制模块的非易失性存储单元中;可信平台控制模块为任意两个相邻信任节点之间的时间间隔和信任链的总的执行时间进行编号,然后可信平台控制模块将时间间隔编号存储在可信平台控制模块的非易失性存储单元,并通过编号对任意两个相邻信任节点之间的时间间隔和信任链的总的执行时间进行访问;
4)可信平台控制模块依次地对信任链中的每个信任节点进行完整性度量操作,并将完整性度量结果存储在可信平台控制模块的非易失性存储单元;可信平台控制模块对每个信任节点的完整性度量的结果进行编号,将完整性度量值的编号存储在可信平台控制模块的非易失性存储单元,并通过编号对完整性度量结果进行访问;
5)可信平台控制模块将各个信任节点的完整性度量结果,与可信平台控制模块的非易失性存储单元中的各个信任节点的完整性度参考值进行比较;
6)如果各个信任节点的完整性度量结果与完整性参考值的比较结果一致,则认为在首次使用时,可信计算平台的工作状态可信,否则认为不可信;如果此时可信计算平台不可信,则可信平台控制模块通知用户,更新可信计算平台的信任链,然后对信任链进行再次的完整性度量;
B、可信平台控制模块向信任链中各个信任节点插入检查点:
7)可信计算平台首次使用时的执行时间统计和完整性度量结束之后,可信平台控制模块通过输入输出接口,向可信计算平台的处理器的控制接口发送重新启动的控制信号,同时对可信计算平台进行复位操作;
8)可信计算平台重新上电启动,可信平台控制模块依次地对信任链的各个信任节点的代码进行完整性度量;
9)可信平台控制模块对信任链的各个信任节点的完整性度量通过之后,可信平台控制模块通过输入输出接口,向处理器的控制接口发送停止的控制信号;收到停止的控制信号后,处理器停止执行代码,直到收到可信平台控制模块发送的复位的控制信号或者继续执行的控制信号;如果完整性检查未通过,则可信平台控制模块对未通过完整性检查的信任节点或者两个相邻的检查节点之间的代码进行恢复操作;
10)当处理器停止后,可信平台控制模块通过输入输出接口、北桥控制器和南桥控制器,依次地从BOOT ROM和外存设备中,读取每个信任节点的代码,并根据预先设置的时间间隔、任意相邻两个信任点之间的时间间隔和指令个数,计算出检查点应该在信任节点中插入的位置,并将预先设置的各个检查点之间的时间间隔,存储在可信平台控制模块的非易失性存储单元;然后向每个信任节点的代码中依次地插入检查点,并在信任链的最后一个信任节点的代码的最后一条指令之后,插入一个检查点,用于统计处可信计算平台启动过程中信任链建立的总的时间;检查点是一条特殊的命令,当处理器执行到检查点时,处理器会向可信平台控制模块发送中断信号,并等待可信平台控制模块发送的继续执行或者重新启动的控制信号;
11)当信任链的每个信任节点的代码中插入了检查点之后,可信平台控制模块立即对任意两个相邻的检查点之间的代码进行完整性度量,将完整性度量值当作完整性参考值,并对完整性参考值进行编号,再将完整性度量值和完整性度量值的编号一同存储在可信平台控制模块的非易失性存储单元;然后,可信平台控制模块将插入检查点后的信任节点的代码,重新写入该信任节点对应的存储单元;信任节点对应的存储单元包括:BOOT ROM和外存设备;
12)当信任链中所有的信任节点都插入了检查点之后,可信平台控制模块通过输入输出接口,向处理器的控制接口发送重新启动的控制信号;如果还存在未插入检查点的信任节点,则可信平台控制模块通过输入输出接口,向处理器的控制接口发送继续执行的控制信号;
13)如果处理器收到重新启动的控制信号后,重新上电启动;如果处理器收到继续顺序的执行的控制信号后,继续执行信任链中其他信任节点的代码;
C、可信计算平台启动阶段,可信平台控制模块对信任链的主动检查:
14)可信平台控制模块向信任链中各个信任节点插入检查点的操作结束之后,可信计算平台重新上电启动,处理器开始执行启动代码,可信平台控制模块开始对处理器工作时钟进行计数;
15)当处理器执行到信任链的信任节点中的检查点时,处理器通过控制接口向可信平台控制模块的输入输出接口发送中断请求信号,并且暂停执行操作;
16)可信平台控制模块收到处理器的中断请求信号后,停止对处理器工作时钟进行统计,将时间统计结果与预先设置的时间间隔进行比较;如果比较结果正确则根据预先设定的处理原则,可信平台控制模块要么对信任节点的代码进行完整性度量,要么向处理器发送继续执行的控制信号;如果时间间隔比较结果不一致,则可信平台控制模块从备份的代码中对恢复两个检查点之间的代码;
17)如果当可信平台控制模块根据预先设定的原则对信任节点进行完整性度量,则将完整性度量结果与完整性的参考值进行比较;如果比较结果一致则继续执行,如果比较结果不一致则认为信任节点被篡改;
18)当处理器执行到最后一个检查点时,处理器通过控制接口向可信平台控制模块的输入输出接口发送中断请求信号,可信平台控制模块收到处理器的中断请求信号后,既要检查当前检查点和前一个检查点之间的代码的执行时间是否与参考时间一致,又要检查整个信任链实际的建立时间是否与参考时间一致;如果整个信任链的建立时间与参考时间不一致则代表整个信任链被篡改,需要可信平台控制模块对整个信任链的所有信任节点依次地进行恢复;19)如果可信平台控制模块发现信任链的信任节点被篡改,则可信平台控制模块向用户发送警告信号,等待用户向可信平台控制模块发送对信任链进行恢复的命令;如果信任节点没有被篡改,则可信平台控制模块根据预先设定的原则,继续对信任链中其他节点继续进行时间统计;
20)当可信平台控制模块收到用户发送的恢复信任链的命令后,可信平台控制模块从外部存储单元中读取信任链信任节点的备份代码,并根据信任链节点的备份代码,对信任链中被篡改的信任节点代码进行恢复;信任节点的代码的恢复操作结束之后,可信平台控制模块向用户发送恢复操作执行结束的命令;
21)信任链的信任节点的代码恢复之后,可信平台控制模块根据预先设置的两个相邻的检查点之间的时间间隔,重新对信任链进行插入检查点的操作;
D、可信平台控制模块删除和改变信任链中的检查点:
22)当需要删除当前信任链的信任节点中的检查点时,可信平台控制模块从外部存储设备中,读取需要删除检查点的信任节点的备份代码;
23)可信平台控制模块对该信任节点的备份代码进行完整性度量,将完整性度量结果与完整性参考值进行比较,如果比较结果一致则可信平台控制模块将该信任节点的备份代码恢复到与该信任节点对应的存储单元,否则通知用户提供正确的信任节点的备份代码;可信平台控制模块通过输入输出接口,向可信计算平台发送中断请求,再由可信计算平台向用户发送警告信号;用户提供的信任节点的备份代码,可以直接存储在可信计算平台的外部存储设备中,然后由可信平台控制模块从外部设备中读取;
24)然后,可信平台控制模块将存储在可信平台控制模块的非易失性存储单元中的,该信任节点的原有的检查点信息和完整性度量结果,替换成当前新的检查点信息和完整性度量结果;当前新的检查点信息和完整性度量结果是指由23)步骤执行之后,生成的检查点信息和完整性度量结果;检查点信息包括:该信任节点中检查点的个数、检查点的位置和相邻两个检查点之间的时间间隔;
25)当需要改变信任链中信任节点的检查点时,可信平台控制模块首先执行22)、23)和24)步骤的方法,对信任节点中的检查点进行删除操作,然后再根据新设置的两个相邻的信任节点之间的时间间隔,使用7)、8)、9)、10)和11)步骤中的方法,对信任节点进行插入检查点的操作,并对任意两个相邻的检查点之间的信任节点的代码进行完整性度量,然后将完整性度量结果存储在可信平台控制模块的非易失性存储单元,并将任意两个相邻的检查点之间的时间间隔存储在非易失性存储单元;
26)操作执行结束。
本发明效果:
在本发明中可信计算平台及其信任链验证方法的效果如下:
1)可信平台控制模块通过主设备模式连接在可信计算平台的北桥设备控制器上,通过北桥设备控制器和南桥设备控制器可以实时的对信任链进行完整性度量操作和保护。
2)本发明中的信任链验证方法属于一种星型加链式的度量方法,可以有效的解决信任度衰减问题,并且保证了度量的效率问题。在平台信任链的各部分代码中嵌入一种发给TPCM的计数信号,由TPCM统计整个过程中计数信号个数和信号之间的时间间隔,计算出各时间统计节点时间间隔以及总时间,与预期时间进行比较,判断各个阶段代码是否被修改,可以有效的防止在度量过程中的攻击。
附图说明:
图1描述的是可信平台控制模块的从设备的连接方式。
图2描述的是可信平台控制模块的主设备的连接方式
图3描述的是可信平台控制模块的组成结构
图4是本发明可信平台信任链传递验证方法中尾随方式进行信任链保护示意图,Cn,n=1、2、3、4,代表处理器对信任链的建立流程,P1、P2、...、P25表示在信任链中插入的检查点,D1、D2、...、D21表示信任链中检查点P1到P25之间的代码块;
具体实施方式:
下面结合附图以及实施案例对本发明进行详细的说明。
一、可信计算平台的硬件构成
一种可信计算平台,其特征在于,硬件组成包括:处理器、可信平台控制模块、时钟频率发生器、显示设备控制器、内存设备、北桥控制器、南桥控制器、外围设备和BOOT ROM;
在实际应用中,具体配置如下:
1)可信计算平台的主板选用华硕P5K-VM,一款Intel G33的主板;
2)处理器选用Intel的酷睿2处理器,需要在处理器的时钟输入信号接口和复位接口设置一个控制开关,用于可信平台控制模块对处理器的停止、继续、和复位控制;
3)内存设备选用金士顿的1GByte的内存单元;
4)时钟频率发生器选用适用于处理器的双端口的时钟晶振,其中一个端口用于向可信平台控制模块提供时钟频率,另一个端口向处理器提供时钟频率;
5)显示设备控制器,选用nVidia Geforce系列显卡系列显卡;
6)北桥控制器,选用的是Inter G33芯片组;
7)南桥控制器,选用的是Intel ICH9南桥芯片;
5)外存设备,选用迈拓的500Gbyte的硬盘;
二、信任链的验证方法:
可信计算平台的信任链中有基本输入输出系统(BIOS)、磁盘主引导记录区(MBR)、操作系统引导程序(OS Loader)、操作系统内核(OS kernel)和应用程序(Application),一个五种信任节点,其中BIOS、MBR、OS Loader和OS Kernel是可信计算平台启动阶段重要的信任节点。
在启动阶段,可信平台控制模块通过时钟信号采集到处理器的工作频率是2GHZ,BIOS长度400Kbytes,MBR长度512Bytes,OS Loader长度1Mbytes,OS Kernel长度100Mbytes,操作系统是Windows XP。可信平台控制模块与处理器之间的控制信号编号为:处理器停止执行的编号:0x001h,复位的控制信号的编号:0x002h,继续执行的控制信号的编号:0x003h;处理器对可信平台控制模块的中断请求信号为0x004h。
如图4所示:
BIOS的完整性参考值是Data_BIOS、MBR的完整性参考值是Data_MBR、OSLoader的完整性参考值是Data_Loader和OS Kernel的完整性参考值是Data_Kernel;
BIOS代码中的预先设置的时间间隔是0.02秒,即BIOS中需要设置7个检查点(P1、P2、...、P7),一共6个代码块,分别是Code1、Code2、Code3、Code4、Code5和Code6,完整性度量结果分别是D1、D2、D3、...、D6,统计时间分别是T1、T2、T3、...、T6;
MBR代码中的预先设置的时间间隔是0.001秒,即BIOS中需要设置6个检查点(P8、P9、P10、...P13),一个5个代码块,分别是Code7、Code8、Code9、Code10和Code11,完整性度量结果分别是D7、D8、D9、...、和D11,统计时间分别是T7、T8、T9、...、和T11;
OS Loader中预先设置的时间间隔是0.01秒,即BIOS中需要设置5个检查点(P14、P15、...、和P18),一个4个代码块,分别是Code12、Code13、Code14和Code15,完整性度量结果分别是D12、D13、D14和D15,统计时间分别是T12、T13、T14和T15;
OS kernel中预先设置的时间间隔是0.2秒,即BIOS中需要设置7个检查点(P19、P20、P21、...、P25),一个6个代码块,分别是Code16、Code17、Code18、Code19Code20和Code21,完整性度量结果分别是D1、D2、D3、...、D21,统计时间分别是T1、T2、T3、...、T21;
A、可信计算平台首次使用时,执行时间统计和完整性度量的操作:
完整性度量是一种通过杂凑算法,检查代码是否被篡改的手段。
1)可信计算平台上电启动,可信平台控制模块通过信号输入端口2,接收对可信计算平台的处理器的工作时钟信号,并对处理器的工作时钟信号进行10分频,得到200MHZ的信号;
2)在可信计算平台启动阶段,可信平台控制模块通过统计处理器执行信任链中各个信任节点的时钟周期的个数分别是:BIOS中每条指令的读取时间是0.3微秒,从硬盘写一条指令用时0.01微秒;从内存中读取一条指令的时间是0.001微秒;处理器执行一条单字节长度的指令用时0.0005微秒;
3)可信平台控制模块对信任链中的BIOS、MBR、OS Loader、OS Kernel分别进行完整功能性度量,完整性度量结果分别是Data1、Data2、Data3和Data4,编号分别是0x0000,0001h、0x0000,0002h、0x0000,0003h和0x0000,0004h,均存储在可信平台控制模块的非易失性存储单元中;
4)BIOS的大小为400Kbytes,读出用时0.12秒,执行用时约为0.001秒,总用时0.121秒,编号为0x000,0005h;MBR大小512Bytes,从硬盘读到内存的时间为0.00512秒,从内存读到CPU的时间为0.000512秒,执行时间约为0.0000005秒,总时间为0.0056325秒,编号为0x000,0006h;OS Loader大小为4Mbytes,从硬盘读到内存的时间为0.04秒,从内存读到CPU的时间为0.004秒,执行时间约为0.004秒,总时间为0.048秒,编号为0x000,0007h;0S Kernel大小为100Mbytes,从硬盘读到内存时间为1秒,从内存读到CPU时间为0.1秒,执行时间约为0.1秒,总时间为1.2秒,编号为0x000,0008h;从可信计算平台启动到信任链建立完成,需要的总时间为1.3746325秒,编号为0x000,0009h(上述时间为本方法采用后的时间)。
5)BIOS、MBR、OS Loader和OS Kernel的完整性参考值分别为Data1、Data2、Data3、和Data4,分别与完整性参考值Data_BIOS、Data_MBR、Data_Loader和Data_Kernel一一对应,且完全一致;
B、可信平台控制模块向信任链中各个信任节点插入检查点:
6)可信计算平台首次使用时的执行时间统计和完整性度量结束之后,可信平台控制模块通过输入输出接口,向可信计算平台的处理器的控制接口发送重新启动的控制信号,同时对可信计算平台进行复位操作;
7)可信计算平台重新上电启动,可信平台控制模块依次地对信任链的各个信任节点的代码BIOS、MBR、OS Loader和OS Kernel分别进行完整性度量操作,完整性度量结果分别是Data1、Data2、Data3、和Data4,与完整性参考值结果一致;
8)可信平台控制模块对信任链的各个信任节点的完整性度量通过之后,可信平台控制模块通过输入输出接口,向处理器的控制接口发送停止的控制信号0x001h;收到停止的控制信号0x001h后,处理器停止执行代码,直到收到可信平台控制模块发送的复位的控制信号0x002h或者继续执行的控制信号0x003h;
9)通过预先设置的两个相邻的检查点的时间间隔,计算出中本实例中的可信计算平台的信任链中需要设置25个检查点;即需要度量21个代码块的完整性度量结果,并统计21个代码块的执行时间;完整性度量结果分别是D1、D2、D3、...、D21,统计时间分别是T1、T2、T3、...、T21。
BIOS代码中的预先设置的时间间隔是0.02秒,即BIOS中需要设置7个检查点,一共6个代码块,分别是Code1、Code2、Code3、Code4、Code5和Code6;
MBR代码中的预先设置的时间间隔是0.001秒,即BIOS中需要设置6个检查点,一个5个代码块,分别是Code7、Code8、Code9、Code10和Code11;
OS Loader中预先设置的时间间隔是0.01秒,即BIOS中需要设置5个检查点,一个4个代码块,分别是Code12、Code13、Code14和Code15;
OS kernel中预先设置的时间间隔是0.2秒,即BIOS中需要设置7个检查点,一个6个代码块,分别是Code16、Code17、Code18、Code19 Code20和Code21;
C、可信计算平台启动阶段,可信平台控制模块对信任链的主动检查:
10)可信平台控制模块向信任链中各个信任节点插入检查点的操作结束之后,可信计算平台重新上电启动,处理器开始执行启动代码,可信平台控制模块开始对处理器工作时钟进行计数;
11)当处理器执行到信任链的信任节点中的检查点时,处理器通过控制接口向可信平台控制模块的输入输出接口发送中断请求信号0x004h,并且暂停执行操作;
12)可信平台控制模块收到处理器的中断请求信号0x004h后,停止对处理器工作时钟进行统计,将时间统计结果与预先设置的时间间隔进行比较;BIOS中的7个检查点之间的6个代码块的运行时间和预先设置的时间间隔一直,则根据本实例中预先设置的奇数代码块检查原则,可信平台控制模块检查奇数块的完整性,检查结果分别是D1、D3和D5;MBR中设置了6个检查点,一共5个代码块,本实例中的预先设置的检查原则是偶数检查原则,代码块的完整性度量结果是D8和D10;OS Loader中设置了5个检查点,一共4代码块,本实例中的预先设置的检查原则是奇数检查原则,代码块的完整性度量结果是D13和D15;OS Loader中设置了7个检查点,一共6代码段,本实例中的预先设置的检查原则是奇数检查原则,代码块的完整性度量结果是D17、D19和D21;
13)从完整性度量结果观察到,BIOS、MBR、OS Loader和OS Kernel的完整性度量结果Data1、Data2、Data3、Data4与完整性参考值Data_BIOS、Data_MBR、Data_Loader和Data_Kernel一致,则认为本次启动过程中,可信计算平台的信任链未被篡改;
D、可信平台控制模块删除和改变信任链中的检查点:
14)当需要删除当前信任链的BIOS信任节点中的检查点时,可信平台控制模块从硬盘设备中,读取需要BIOS的信任节点的备份代码Data_BIOS_SP;
15)可信平台控制模块对BIOS信任节点的备份代码Data_BIOS_SP进行完整性度量,将完整性度量结果Data5与完整性参考值Data_BIOS进行比较,得出两个数据一致;
16)然后,可信平台控制模块使用Data_BIOS_SP和Data5,替换之前存储在可信平台控制模块的非易失性存储单元中的Data_BIOS、Data1和P1、P2、P3、P4、P5、P6和P7的位置以及时间间隔;
17)当需要在信任链中BIOS信任节点中添加检查点P1时,可信平台控制模块首先执行22)、23)和24)步骤的方法,对信任节点BIOS中的检查点P1、P2、P3、P4、P5、P6和P7进行删除操作,然后再根据新设置的两个相邻的信任节点之间的时间间隔T1、T2、T3、T4和T5,使用7)、8)、9)、10)和11)步骤中的方法,对信任节点BIOS进行插入检查点P1、P2、P3和P4的操作,并对任意两个相邻的检查点之间的信任节点的代码进行完整性度量,然后将完整性度量结果D1、D2和D3,以及时间间隔T1、T2和T3分别存储在可信平台控制模块的非易失性存储单元;
18)操作执行结束;
运行效果分析:
1)在可信计算平台初始化之后的信任链的建立过程中,在处理器正常进行信任链建立,并执行完整性度量的情况下,就本实例分析结果得出,由于执行了25个检查点语句,同时根据预先设置的检查原则,由可信平台控制模块对信任链多进行了10个代码块的度量操作,因此信任链的建立时间有所增加,但是安全性得到了提高,防止信任链中的信任节点度量之后,再被非法篡改;如果试验中仅仅针对运行时间出现问题的代码块进行完整性度量,则信任链建立时间大幅度减少的同时,也同样能够降低信任链被篡改的风险;
2)在可信计算平台初始化之后的信任链的建立过程中,如果处理器只执行信任链的信任节点,而不进行对信任节点的度量操作,则采用分块的度量方式会相对与效果分析1)中的执行效果,会有更大的时间结余,结余时间会接近于50%。如果同样只针对时间间隔出现异常的代码块进行完整性度量,则结余时间会远大于50%。
Claims (1)
1.信任链验证方法,其特征在于可信平台控制模块完成初始化自检后,向可信计算平台的处理器发送启动信号,让处理器开始进行信任链的建立操作;在处理器进行信任链的建立过程中,每当处理器执行信任链节点,并遇到检查点时,立即向可信平台控制模块发送中断信号,并停止执行,等待可信平台控制模块发送继续执行或者重新启动的控制信号;然后,可信平台控制模块顺序的或者有选择地,对信任链代码中前一个检查节点与当前检查节点之间的代码,以及当前检查点之前的任意两个相邻的检查点之间的代码进行完整性度量操作;
可信计算平台的信任链传递验证方法如下:
A、可信计算平台首次使用时,执行时间统计和完整性度量的操作:
1)可信计算平台上电启动,可信平台控制模块通过频率信号输入接口2,接收可信计算平台的处理器的工作时钟信号,并对处理器的工作时钟信号进行分频;
2)在可信计算平台启动阶段,可信平台控制模块通过统计处理器执行信任链中各个信任节点的时钟周期的个数,计算可信计算平台信任链中任意相邻两个信任节点之间的时间间隔和信任链的总执行时间;
3)可信平台控制模块将统计的任意两个相邻信任节点之间的时间间隔和信任链的总执行时间记录在可信平台控制模块的非易失性存储单元中;
4)可信平台控制模块依次地对信任链中的每个信任节点进行完整性度量操作,并将完整性度量结果存储在可信平台控制模块的非易失性存储单元;
5)可信平台控制模块将计算出的各个信任节点的完整性度量结果,与可信平台控制模块的非易失性存储单元中的各个信任节点的完整性度参考值进行比较;如果各个信任节点的完整性度量结果与完整性参考值的比较结果一致,则认为在首次使用时,可信计算平台的工作状态可信,否则认为不可信;当可信计算平台不可信时,可信平台控制模块立即执行对信任链的恢复操作,并通知用户;
B、可信平台控制模块向信任链中各个信任节点插入检查点:
6)可信计算平台首次使用时的执行时间统计和完整性度量结束之后,可信平台控制模块向可信计算平台的处理器发送重新启动的控制信号,对可信计算平台进行复位操作;
7)可信计算平台重新上电启动,可信平台控制模块依次地对信任链的各个信任节点的代码进行完整性检查;如果完整性检查通过,则可信计算平台继续执行启动操作;如果完整性检查未通过,则可信平台控制模块对未通过完整性检查的信任节点或者两个相邻的检查节点之间的代码进行恢复操作;
8)可信平台控制模块对信任链的各个信任节点的完整性检查通过后,向处理器发送停止的控制信号,处理器停止执行代码,直到收到可信平台控制模块发送的复位的控制信号或者继续执行的控制信号;
9)当处理器停止后,可信平台控制模块依次地读取每个信任节点的代码,并根据预先设置的时间间隔,计算出检查点应该在信任节点中插入的位置,并将预先设置的各个检查点之间的时间间隔,存储在可信平台控制模块的非易失性存储单元;然后向每个信任节点的代码中依次地插入检查点,并在信任链的最后一个信任节点的代码的最后一条指令之后,插入一个检查点;
10)当信任链的每个信任节点的代码中插入了检查点之后,可信平台控制模块立即对任意两个相邻的检查点之间的代码进行完整性度量,再将完整性度量值当作完整性参考值,存储在可信平台控制模块的非易失性存储单元;然后,可信平台控制模块将插入检查点后的信任节点的代码,重新写入该信任节点对应的存储单元;信任节点的存储单元包括:BOOT ROM和外存设备;
11)当信任链中所有的信任节点都插入了检查点之后,可信平台控制模块向处理器发送重新启动的控制信号;
12)如果处理器收到重新启动的控制信号后,重新上电启动,否则继续等待可信平台控制模块的控制信号;
C、可信计算平台启动阶段,可信平台控制模块对信任链的主动检查:
13)可信平台控制模块向信任链中各个信任节点插入检查点的操作结束之后,可信计算平台重新上电启动,处理器开始执行启动代码,可信平台控制模块开始对处理器工作时钟进行计数;
14)当处理器执行到信任链的信任节点中的检查点时,处理器向可信平台控制模块发送中断请求信号,并且暂停执行操作,;
15)可信平台控制模块收到处理器的中断请求信号后,停止对处理器工作时钟进行统计,将两个检查点之间的运行时间统计结果与预先设置的时间间隔进行比较;如果比较结果正确则根据预先设定的处理原则,可信平台控制模块要么对信任节点的代码进行完整性度量,要么向处理器发送继续执行的控制信号;如果时间间隔比较结果不一致,则可信平台控制模块从备份的代码中对恢复两个检查点之间的代码;
16)如果当可信平台控制模块根据预先设定的原则对信任节点进行完整性度量,则将完整性度量结果与完整性的参考值进行比较;如果比较结果一致则继续执行,如果比较结果不一致则认为信任节点被篡改;
17)当处理器执行到最后一个检查点时,可信平台控制模块既要检查当前检查点和前一个检查点之间的代码的执行时间是否与参考时间一致,又要检查整个信任链实际的建立时间是否与参考时间一致;如果整个信任链的建立时间与参考时间不一致则代表整个信任链被篡改,需要可信平台控制模块对整个信任链的所有信任节点依次地进行恢复;
18)如果可信平台控制模块发现信任链的信任节点被篡改,则可信平台控制模块向用户发送警告信号,等待用户向可信平台控制模块发送对信任链进行恢复的命令;如果信任节点没有被篡改,则可信平台控制模块根据预先设定的原则,继续对信任链中其他节点继续进行时间统计;
19)当可信平台控制模块收到用户发送的恢复信任链的命令后,可信平台控制模块从外部存储单元中读取信任链信任节点的备份代码,并根据信任链节点的备份代码,对信任链中被篡改的信任节点代码进行恢复;信任节点的代码的恢复操作结束之后,可信平台控制模块向用户发送恢复操作执行结束的命令;
20)信任链的信任节点的代码恢复之后,可信平台控制模块根据预先设置的两个相邻的检查点之间的时间间隔,重新对信任链进行插入检查点的操作;
D、可信平台控制模块删除和改变信任链中的检查点:
21)当需要删除当前信任链的信任节点中的检查点时,可信平台控制模块从外部存储设备中,读取需要删除检查点的信任节点的备份代码;
22)可信平台控制模块对该信任节点的备份代码进行完整性度量,将完整性度量结果与完整性度量参考值进行比较,如果比较结果一致则可信平台控制模块将该信任节点的备份代码恢复到与该信任节点对应的存储单元,否则通知用户提供正确的信任节点的备份代码;
23)然后,可信平台控制模块将存储在可信平台控制模块的非易失性存储单元中的,该信任节点的原有的检查点信息和完整性度量结果,替换成当前新的检查点信息和完整性度量结果;
24)当需要改变信任链中信任节点的检查点时,可信平台控制模块首先执行删除信任节点中的检查点的操作,然后再根据新设置的两个相邻的信任节点之间的时间间隔,对信任节点进行插入检查点的操作,并对任意两个相邻的检查点之间的信任节点的代码进行完整性度量,然后将完整性度量结果存储在可信平台控制模块的非易失性存储单元;
25)操作执行结束。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2010102378134A CN101901319B (zh) | 2010-07-23 | 2010-07-23 | 一种可信计算平台以及信任链传递验证方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2010102378134A CN101901319B (zh) | 2010-07-23 | 2010-07-23 | 一种可信计算平台以及信任链传递验证方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101901319A CN101901319A (zh) | 2010-12-01 |
CN101901319B true CN101901319B (zh) | 2012-02-08 |
Family
ID=43226848
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2010102378134A Expired - Fee Related CN101901319B (zh) | 2010-07-23 | 2010-07-23 | 一种可信计算平台以及信任链传递验证方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101901319B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104200165A (zh) * | 2014-07-30 | 2014-12-10 | 中国电子科技集团公司第三十研究所 | 一种基于国产cpu的主动可信度量方法 |
CN104200169A (zh) * | 2014-09-09 | 2014-12-10 | 山东超越数控电子有限公司 | 一种可信计算的主动度量实现方法 |
Families Citing this family (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102663301B (zh) * | 2012-04-13 | 2014-10-29 | 北京国基科技股份有限公司 | 一种可信计算机及可信性检测方法 |
CN103139221B (zh) * | 2013-03-07 | 2016-07-06 | 中国科学院软件研究所 | 一种可信虚拟平台及其构建方法、平台之间数据迁移方法 |
US9424425B2 (en) | 2013-05-31 | 2016-08-23 | Microsoft Technology Licensing, Llc | Protecting anti-malware processes |
CN104933358A (zh) * | 2015-07-10 | 2015-09-23 | 沈军 | 一种计算机免疫系统设计方法与实现 |
CN107045605A (zh) * | 2016-02-05 | 2017-08-15 | 中兴通讯股份有限公司 | 一种实时度量方法及装置 |
CN106909835B (zh) * | 2016-12-28 | 2020-02-07 | 中软信息系统工程有限公司 | 一种基于cpu时空隔离机制实现内核完整性度量的方法 |
CN109948326B (zh) * | 2017-12-20 | 2021-01-08 | 北京可信华泰信息技术有限公司 | 一种异常状态回溯方法及终端 |
CN109951416B (zh) * | 2017-12-20 | 2021-07-06 | 北京可信华泰信息技术有限公司 | 一种可信验证方法及终端 |
CN109951418B (zh) * | 2017-12-20 | 2021-07-27 | 北京可信华泰信息技术有限公司 | 一种安全验证方法及终端 |
CN108229132A (zh) * | 2017-12-27 | 2018-06-29 | 北京和利时系统工程有限公司 | 一种安全启动方法和装置、终端 |
CN108595964A (zh) * | 2018-04-27 | 2018-09-28 | 北京可信华泰信息技术有限公司 | 一种基于固件的可信平台控制模块实现方法 |
CN109241745B (zh) * | 2018-08-28 | 2021-08-13 | 全球能源互联网研究院有限公司 | 一种计算平台的可信启动方法及装置 |
CN109325352A (zh) * | 2018-08-28 | 2019-02-12 | 全球能源互联网研究院有限公司 | 一种可信计算平台架构 |
CN110874494B (zh) * | 2018-08-29 | 2023-05-02 | 阿里巴巴集团控股有限公司 | 密码运算处理方法、装置、系统及度量信任链构建方法 |
CN109861970B (zh) * | 2018-12-18 | 2022-04-22 | 北京可信华泰信息技术有限公司 | 一种基于可信策略的系统 |
CN109977665B (zh) * | 2019-03-22 | 2021-01-01 | 北京工业大学 | 基于tpcm的云服务器启动过程防窃取和防篡改方法 |
CN110334520A (zh) * | 2019-07-08 | 2019-10-15 | 北京可信华泰信息技术有限公司 | 双体系结构的可信计算平台的构建方法及装置 |
CN112560011B (zh) * | 2021-02-07 | 2021-06-01 | 浙江地芯引力科技有限公司 | 一种基于加密芯片的外接适配设备安全认证系统和方法 |
CN114095227A (zh) * | 2021-11-15 | 2022-02-25 | 许昌许继软件技术有限公司 | 一种数据通信网关可信认证方法、系统及电子设备 |
CN117992960A (zh) * | 2022-10-27 | 2024-05-07 | 华为技术有限公司 | 一种安全启动方法、装置及设备 |
CN117150505A (zh) * | 2023-09-01 | 2023-12-01 | 国网江苏省电力有限公司扬州供电分公司 | 一种基于分离架构的可恢复信任链传递方法及系统 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN100568254C (zh) * | 2008-06-20 | 2009-12-09 | 北京工业大学 | 一种可信平台模块及其主动度量方法 |
CN201498001U (zh) * | 2009-09-04 | 2010-06-02 | 瑞达信息安全产业股份有限公司 | 一种基于对称密钥密码的可信计算平台 |
CN101727554B (zh) * | 2009-11-23 | 2012-03-28 | 浪潮电子信息产业股份有限公司 | 一种信任链动态重构的方法 |
-
2010
- 2010-07-23 CN CN2010102378134A patent/CN101901319B/zh not_active Expired - Fee Related
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104200165A (zh) * | 2014-07-30 | 2014-12-10 | 中国电子科技集团公司第三十研究所 | 一种基于国产cpu的主动可信度量方法 |
CN104200169A (zh) * | 2014-09-09 | 2014-12-10 | 山东超越数控电子有限公司 | 一种可信计算的主动度量实现方法 |
Also Published As
Publication number | Publication date |
---|---|
CN101901319A (zh) | 2010-12-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101901319B (zh) | 一种可信计算平台以及信任链传递验证方法 | |
CN102929674B (zh) | 电子装置以及开机方法 | |
KR101974188B1 (ko) | Arm® trustzone™ 구현을 위한 펌웨어 기반 신뢰 플랫폼 모듈 | |
US8839236B2 (en) | Virtual machine support for metered computer usage | |
CN104794393A (zh) | 一种嵌入式分区映像安全认证及内核可信引导方法及其设备 | |
CN106127056A (zh) | 一种国产bmc芯片可信固件的设计方法 | |
EP2727040B1 (en) | A secure hosted execution architecture | |
CN110321715A (zh) | 可信度量方法、装置及处理器 | |
CN102279914A (zh) | 一种uefi可信支撑系统及其控制方法 | |
CN105205401A (zh) | 基于安全密码芯片的可信计算机系统及其可信引导方法 | |
CN103049293B (zh) | 一种嵌入式可信系统的启动方法 | |
CN110334521A (zh) | 可信计算系统构建方法、装置、可信计算系统及处理器 | |
CN103186434A (zh) | 恢复基本输入输出系统的方法及系统 | |
CN114462051A (zh) | 一种基于可信计算环境的可信计算系统及方法 | |
CN101154212B (zh) | 一种8位兼容c51指令集微控制器 | |
CN109992973B (zh) | 一种利用oprom机制的启动度量方法及装置 | |
CN103425505B (zh) | 一种ic卡电能表在线升级方法及系统 | |
Raj et al. | ftpm: A firmware-based tpm 2.0 implementation | |
Luo et al. | On security of trustzone-m-based iot systems | |
CN103488937A (zh) | 一种度量方法、电子设备及度量系统 | |
CN201741155U (zh) | 一种可信计算平台 | |
CN103258164A (zh) | 一种嵌入式可信系统的启动方法 | |
CN112558884A (zh) | 数据保护方法以及基于NVMe的存储设备 | |
Grisafi et al. | MPI: Memory Protection for Intermittent Computing | |
CN103795905A (zh) | 一种网络摄像机可信启动方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20120208 Termination date: 20210723 |
|
CF01 | Termination of patent right due to non-payment of annual fee |