由星型信任链支持的嵌入式平台应用程序完整性验证方法

文档序号:6483215阅读:205来源:国知局
专利名称:由星型信任链支持的嵌入式平台应用程序完整性验证方法
技术领域
本发明属于可信计算平台领域,特别涉及一种由星型信任链支持的嵌入式 平台应用程序完整性验证方法。
背景技术
在计算机运行环境中,"信任"是一个复杂的概念,所有操作的进行过程和 最终结果同合法操作者所预期的是一致的时候,则可以认为这个环境是可信的。
在IS0/IEC 15408标准中,有如下定义 一个可信的组件、操作或过程的行为 在任意操作条件下,其流程和结果总是可预测的,并能很好地抵御应用程序异 常、病毒,以及一定程度上的物理干扰造成的破坏。
可信计算组织(Trusted Computing Group, TCG)致力于软件安全性和具 有安全、信任能力的硬件运算平台,旨在从跨平台和操作系统的硬件组件和软 件接口方面,促进与厂商独立的可信计算平台工作标准的制定。到目前为止, TCG制定的规范涉及个人电脑、网络、移动设备、软件栈等多个方面,最新的版 本为Version1.2。 TCG规范要求一个可信平台至少要包含以下组件1.至少一 个完整性测量的可信计算根(Root of Trust for Measurement, RTM); 2.刚好 一个完整性存储和报告可信根;3.至少一个可信平台度量存储;4.至少一个TCG 确认数据;5.刚好一个可信平台代理。
可信计算根包含一个核心组件,核心和计算引擎以及其他对象是物理链接。 可信计算根必须能提供对自身以及连接电路的物理保护,并能作为一个平台系统的可信权威,提供身份认证保护、重要数据加密和访问控制服务。
从可信计算根开始,所有测量过程中的信任都是可预料的,对于处于不适
当环境中的平台,将否决其存取数据和运行程序的权利。可信计算根包含很多
组件来提供这种水平的信任。
可信计算根测量某些平台特性,将测量数据记录入测量存储日记,并将最
终的结果存入TPM (Trust Platform Module,可信平台模块,包含有可信计算 根、可信存储根和可信报告根三类可信根)。
如果要进行信任传递,可信计算根在将平台控制权传递给第二个测量代理 前,度量第二个代理的特征。当检测通过后,将该代理纳入可信边界,允许把 平台控制权传递给该代理。第二个测量代理可能重复这一步骤度量下一级代 理的特征,存储测量数据和最终结果,并将控制权传递给该测量代理。以此类 推。
TPM每一次测量的结果被保存在16个(或更多,允许根据需要扩展)PCR (Platform Configuration Register,平台配置寄存器)中。PCR是用于存储 离散的完整性度量的160位的存储空间,所有的PCR寄存器都在TPM内一个受 保护的位置。
平台上有许多完整性测量值,PCR被设计成在寄存器中保存无约束大小的 度量,它通过使用密码hash把所有的更新散列到PCR中完成以上要求 PCR[i]新值=HASH (PCR[i]旧值 添加值) 以此可以保证①排序对PCR的更新是不可交换的。例如,测量A-〉B和测 量B-〉A结果是不一样的;②单向性通过给定的PCR值推测输入信息值计算上 是不可能的。为保障计算机系统的可信,需要从底层硬件到上层应用都是可信的,即除
了 TPM, Bootloader、操作系统都是可信的之外,还要保证应用程序也是可信 的,因此目前本需要一种机制能使信任关系从TPM扩展到上层应用程序。
现有PC机的引导方式 一 般为链式结构,即BIOS Boot Block^BIOS+Bootloader^操作系统内核,这种方式在多级测量代理之间很容 易产生信任损失。所以,在运行应用程序时,需要用操作系统对应用程序进行 完整性度量,其信任损失将更大。
而对于嵌入式系统,其系统结构一般相对比较简单,软、硬件部件很少更 换或改变,更适合使用星型的信任结构。嵌入式系统的另一个特点是,多数操 作系统内核并不放在文件系统中,而是直接放在存储器分区中,这样,操作系 统内核和根文件系统就分成了两个相对固定的部分。因而对于嵌入式系统来 说,星型信任链就要以TPM为可信根,对Bootloader、操作系统内核和根文件 系统分别进行度量,通过完整性验证后再启动嵌入式平台。这种方式下, Bootloader、操作系统内核和根文件系统都是直接被TPM度量过的,可以保证 嵌入式系统启动时是安全的,没有被非法修改过的。这种情况下,应用程序被 非法修改仍然可以危害系统安全,所以为了保证重要的应用程序也是安全的, 需要研究在这种星型信任链结构的支持下,将信任关系扩展到应用程序的安全 机制。

发明内容
本发明目的在于针对现有技术的不足,提供基于星型信任链结构支持的应 用程序信任链扩展方案,实现一种既符合TCG规范又适合嵌入式平台特性的应 用程序可信度验证方法。本发明一种由星型信任链支持的嵌入式平台应用程序完整性验证方法,所
述嵌入式平台设有独立硬件实现的TPM作为整个平台的可信测量根,TPM使用硬 连线控制嵌入式平台的运行;TPM内部采用物理方式集成有可信计算根、可信存 储根和可信报告根,对其自身以及连接电路有物理保护;TPM与嵌入式平台 Bootloader、操作系统内核、根文件系统形成星型的信任关系;
对根文件系统中需要进行信任扩展的完整的应用程序,用TPM的可信计算 根进行可信度量,并将所得可信度量值保存于TPM的可信存储根内;在操作系 统的启动过程中对应用程序进行完整性度量,再将所得度量值与可信度量值比 较,如果一致则应用程序的完整性验证通过,否则完整性验证失败。
而且,应用程序的完整性验证通过时,操作系统继续向下正常启动;指定 应用程序的完整性验证失败时,操作系统向用户发出提示或停机。
而且,在根文件系统中设置完整性度量程序,在操作系统的自启动脚本中 使该完整性度量程序在操作系统启动时自动执行,实现对应用程序进行完整性 度量。
而且,完整性度量程序采用程序配置文件指明需完整性验证的应用程序。 而且,所述程序配置文件存放在根文件系统中。
而且,根文件系统中存放供用户指定需完整性验证的应用程序的专用工具, 该专用工具用于将需完整性验证的应用程序列表写入程序配置文件中。
而且,在操作系统的启动过程中对应用程序进行完整性验证的具体过程如
下,
1) 操作系统通过自启动脚本运行起执行完整性度量程序;
2) 完整性度量程序从程序配置文件中读取需完整性验证的应用程序;3) 完整性度量程序对应用程序进行完整性度量,计算出度量值,并与TPM 中保存的可信度量值进行比较;
4) 如果比较结果为一致,则认为该应用程序没有经过任何非法改动,返回 步骤2)开始执行,继续读取下一需完整性验证的应用程序进行完整性度量和比 较;如果比较结果为不一致,则提示用户,待用户确认后返回步骤2)开始执行, 继续读取下一需完整性验证的应用程序进行完整性度量和比较;
直到对程序配置文件中记录的所有需完整性验证的应用程序都完整性度量 和比较完毕,操作系统继续运行。
而且,应用程序为可执行文件、库文件、数据文件或配置文件。 本发明针对嵌入式平台系统内核不会频繁改动的特点,使用硬件TPM,基于 星型信任链结构对应用程序进行可信度量。其优点是1.星型信任关系不在信 任代理间传递,使信任链大大縮短,最大可能地避免信任损失;2.在星型信任 链支持下,可以方便地对任意类型的文件进行可信度量,以避免运行被病毒或 人为等任何方式损坏的程序;3.正确的度量值保存在TPM中,之后开机即执行 度量,保证度量过程是可信的;4.使用专用工具指定要度量的文件,使用方便 灵活。


图1为链式信任链示意图。
图2为简单星型信任链示意图。
图3为以TPM为可信根的星型信任链示意图。
图4为本发明以TPM为可信根的星型信任链到应用程序的可信扩展示意图。
具体实施方式
以下结合

本发明的技术方案原理图1为传统链式信任链,信任 传递的顺序是A检测B,然后把平台控制权传递给B; B检测C,然后把平台控
制权传递给C…这样连续传递直到最后一个代理N。图2提供了简单星型信任链, 以A为可信根,分别检测B、 C…N。图3提供了以TPM为可信根建立的星型信任 链,即以TPM为可信根对Bootloader (引导程序)、操作系统内核和根文件系统 分别进行度量,通过度量报告判定是否允许嵌入式平台正常运行。在此基础上, 本发明提供了由星型信任链支持的嵌入式平台应用程序完整性验证方法,参见 图4:对根文件系统中存储的应用程序分别生成度量报告,从而实现应用程序完 整性验证方法。
本发明的技术方案实现基于由星型信任链支持的嵌入式平台,所述嵌入式 平台设有独立硬件实现的TPM作为整个平台的可信测量根,TPM使用硬连线控制 嵌入式平台的运行;TPM内部采用物理方式集成有可信计算根、可信存储根和可 信报告根,对其自身以及连接电路有物理保护;TPM与嵌入式平台Bootloader、 操作系统内核、根文件系统形成星型的信任关系。具体实施时,TPM的设置可参 考现有技术,如TCG发布的标准TPM Specification Version 1. 2 Revision 103。
应用程序完整性验证的实现则包括两个过程首先,对根文件系统中需要 进行信任扩展的完整的应用程序,预先用TPM的可信计算根进行可信度量,并 将所得可信度量值保存于TPM的可信存储根内。然后,在操作系统的启动过程 中对应用程序进行完整性度量,再将所得度量值与可信度量值比较,如果一致 则应用程序的完整性验证通过,否则完整性验证失败。前一过程可以在首次将 完整的应用程序存入根文件系统后进行,或者由用户根据需要指定被确认是完 整的应用程序,用TPM获取可信度量作为应用程序信任扩展的基础。后一过程在每次启动嵌入式平台时自动执行,利于保证嵌入式平台应用安全性。
为了能够发挥应用程序的完整性验证的作用,可以设置对应用程序的完整 性验证通过时,操作系统继续向下正常启动;指定应用程序的完整性验证失败 时,操作系统向用户发出提示或停机。
为了方便实现在操作系统的启动过程中对应用程序进行完整性度量,本发 明提出进一步方案在根文件系统中设置完整性度量程序,在操作系统的自启 动脚本中使该完整性度量程序在操作系统启动时自动执行,实现对应用程序进 行完整性度量。完整性度量程序对应用程序进行完整性度量的具体方式应当与
TPM的可信计算根预先对完整的应用程序进行可信度量的具体方式一致,具体实 施时可以采用一样的Hash函数进行度量运算。在操作系统的启动过程中对应用 程序进行完整性度量,也可以通过调用TPM可信计算根的Hash函数模块进行度 量计算实现,但是效率不如完整性度量程序。
为了支持对指定应用程序进行完整性度量,本发明建议在根文件系统中设 置程序配置文件,采用程序配置文件为完整性度量程序指明需完整性验证的应 用程序。这样也方便对多个应用程序进行完整性验证,可以在根文件系统中存 放供用户指定需完整性验证的应用程序的专用工具,该专用工具用于将需完整 性验证的应用程序列表写入程序配置文件中。操作系统的启动过程中,完整性 度量程序只需按照程序配置文件中的列表项目,依次提取各应用程序分别进行 度量。
特别指出的是,本发明所涉及应用程序可为可执行文件、库文件、数据文 件或配置文件等任何类型的文件。本发明实施例提出,完整性度量程序根据程 序配置文件决定对哪些文件进行完整性度量,完整性度量程序和程序配置文件都存放在根文件系统中,只有合法用户才能使用专用工具修改程序配置文件, 即指定对哪些文件进行度量。指定度量文件的专用工具也存放在根文件系统中。 完整性度量程序、程序配置文件、指定度量文件的专用工具都存在根文件系统 上,所以在启动嵌入式平台之前都可被验证完整性,从而保证其它应用程序文 件的度量可靠性。
一般在根文件系统中存入新的文件后,根文件系统的度量值 会发生变化,本发明提供了结合根文件系统完整性度量的实现方式以供参考 当要指定需要进行信任扩展的应用程序时,合法用户运行专用工具,指明要度 量的文件名及路径,然后TPM的可信计算根自动对指定的文件进行可信度量, 可信度量值存入TPM的可信存储根中。完成可信度量值的保存之后,专用工具
自动修改程序配置文件,保存要度量的文件名及路径,然后TMP的可信计算根 对根文件系统重新度量,计算得到根文件系统的新度量值,也存入TPM的可信 存储根中,完成了指定要度量的文件的工作。重新启动系统时,TPM首先根据新 的度量值进行根文件系统的验证,之后启动操作系统,由完整性度量程序对程 序配置文件中所有应用程序文件(包括合法用户新指定加入的应用程序文件) 进行完整性度量与验证过程。因为以星型信任结构为基础进行扩展,使用根文 件系统中保存的完整性度量程序对指定应用程序进行度量,该完整性度量程序 已被验证是可信的,应用程序的度量值保存在TPM中,使信任关系从TPM扩展 到了应用程序,避免了应用程序中信任强度的减弱,能够保证应用程序的安全 性。同时,用户能够自由指定需要验证的应用程序,具有很高的灵活性。
为了支持对多个应用程序进行验证,本发明实施例在操作系统的启动过程 中对应用程序进行完整性验证的具体过程如下
1)操作系统通过自启动脚本运行起执行完整性度量程序;2) 完整性度量程序从程序配置文件中读取需完整性验证的应用程序;
3) 完整性度量程序对应用程序进行完整性度量,计算出度量值,并与TPM中保存的可信度量值进行比较;
4) 如果比较结果为一致,则认为该应用程序没有经过任何非法改动,返回步骤2)开始执行,继续从程序配置文件中读取下一需完整性验证的应用程序进行完整性度量和比较;如果比较结果为不一致,则提示用户,待用户确认后返回步骤2)开始执行,继续读取下一需完整性验证的应用程序进行完整性度量和比较;
直到对程序配置文件中记录的所有需完整性验证的应用程序都完整性度量和比较完毕,操作系统继续运行。
权利要求
1. 一种由星型信任链支持的嵌入式平台应用程序完整性验证方法,所述嵌入式平台设有独立硬件实现的TPM作为整个平台的可信测量根,TPM使用硬连线控制嵌入式平台的运行;TPM内部采用物理方式集成有可信计算根、可信存储根和可信报告根,对其自身以及连接电路有物理保护;TPM与嵌入式平台Bootloader、操作系统内核、根文件系统形成星型的信任关系;其特征在于对根文件系统中需要进行信任扩展的完整的应用程序,用TPM的可信计算根进行可信度量,并将所得可信度量值保存于TPM的可信存储根内;在操作系统的启动过程中对应用程序进行完整性度量,再将所得度量值与可信度量值比较,如果一致则应用程序的完整性验证通过,否则完整性验证失败。
2. 根据权利要求1所述的嵌入式平台应用程序完整性验证方法,其特征在于 应用程序的完整性验证通过时,操作系统继续向下正常启动;指定应用程序的 完整性验证失败时,操作系统向用户发出提示或停机。
3. 根据权利要求1所述的嵌入式平台应用程序完整性验证方法,其特征在于 在根文件系统中设置完整性度量程序,在操作系统的自启动脚本中使该完整性 度量程序在操作系统启动时自动执行,实现对应用程序进行完整性度量。
4. 根据权利要求3所述的嵌入式平台应用程序完整性验证方法,其特征在于 完整性度量程序采用程序配置文件指明需完整性验证的应用程序。
5. 根据权利要求4所述的嵌入式平台应用程序完整性验证方法,其特征在于 所述程序配置文件存放在根文件系统中。
6. 根据权利要求5所述的嵌入式平台应用程序完整性验证方法,其特征在于根文件系统中存放供用户指定需完整性验证的应用程序的专用工具,该专用工 具用于将需完整性验证的应用程序列表写入程序配置文件中。
7. 根据权利要求4或5或6所述的嵌入式平台应用程序完整性验证方法,其特征在于在操作系统的启动过程中对应用程序进行完整性验证的具体过程如下,1) 操作系统通过自启动脚本运行起执行完整性度量程序;2) 完整性度量程序从程序配置文件中读取需完整性验证的应用程序;3) 完整性度量程序对应用程序进行完整性度量,计算出度量值,并与TPM 中保存的可信度量值进行比较;4) 如果比较结果为一致,则认为该应用程序没有经过任何非法改动,返回 步骤2)开始执行,继续读取下一需完整性验证的应用程序进行完整性度量和比 较;如果比较结果为不一致,则提示用户,待用户确认后返回步骤2)开始执行, 继续读取下一需完整性验证的应用程序进行完整性度量和比较;直到对程序配置文件中记录的所有需完整性验证的应用程序都完整性度量 和比较完毕,操作系统继续运行。
8. 根据权利要求1或2或3或4或5或6所述的嵌入式平台应用程序完整性验 证方法,其特征在于应用程序为可执行文件、库文件、数据文件或配置文件。
9. 根据权利要求7所述的嵌入式平台应用程序完整性验证方法,其特征在于 应用程序为可执行文件、库文件、数据文件或配置文件。
全文摘要
一种由星型信任链支持的嵌入式平台应用程序完整性验证方法,所述嵌入式平台设有独立硬件实现的TPM作为整个平台的可信测量根,TPM使用硬连线控制嵌入式平台的运行;TPM内部采用物理方式集成有可信计算根、可信存储根和可信报告根,对其自身以及连接电路有物理保护;TPM与嵌入式平台Bootloader、操作系统内核、根文件系统形成星型的信任关系;其特征在于对根文件系统中需要进行信任扩展的完整的应用程序,用TPM的可信计算根进行可信度量,并将所得可信度量值保存于TPM的可信存储根内;在操作系统的启动过程中对应用程序进行完整性度量,再将所得度量值与可信度量值比较,如果一致则应用程序的完整性验证通过,否则完整性验证失败。
文档编号G06F21/00GK101504704SQ20091006113
公开日2009年8月12日 申请日期2009年3月17日 优先权日2009年3月17日
发明者勇 劳, 路 康, 张焕国, 松 文, 淞 杨, 潘丹铃, 波 赵, 陈守明, 黄祥梨 申请人:武汉大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1