基于可信平台模块的计算机安全启动系统的制作方法

文档序号:6469184阅读:203来源:国知局
专利名称:基于可信平台模块的计算机安全启动系统的制作方法
技术领域
本发明涉及计算机信息安全技术领域,主要涉及基于可信计算平台的授权安全启动,利 用可信计算平台保证密钥的安全存储。
背景技术
可信计算的基本思想是首先构建一个信任根,再建立一条信任链,从信任根开始到硬 件平台,到操作系统,再到应用, 一级认证一级, 一级信任一级,把这种信任扩展到整个计 算机系统,从而确保整个计算机系统的可信。 一个可信计算机系统由可信根、可信硬件平台、 可信操作系统和可信应用系统组成。信任链把信任关系从信任根扩展到整个计算机系统。在
国际可信计算组织(Trusted Computing Group,縮写为TCG)的可信PC技术规范中,具体给 出了可信PC中的信任链。这个信任链以基本输入输出系统引导块(BIOS Boot Block)和可 信平台模块(Trusted Platform Module ,缩写为TPM)芯片为信任根,依次经过基本输入 输出系统(BI0S)、操作系统引导加载器(0SLoader)、操作系统(OS);沿着这个信任链,一 级测量认证一级, 一级信任一级,以确保整个平台的系统资源的完整性。
可信平台模块(见参考文献[l])是一种片上系统(SOC)芯片,是可信计算平台的核心部 件,包含密码运算部件和存储部件;它由CPU、存储器、输入输出(I/O)、密码协处理器、 随机数产生器和嵌入式操作系统等部件组成。TPM是可信计算平台的信任根(可信存储根和可 信报告根),它包含可信度量的存储、可信度量的报告、密钥产生、加密和签名、数据安全存 储等功能。
TPM的安全存储功能是利用一种树形密钥结构实现的,其树的根节点是永远贮存在TPM 中的存储根密钥(Storage Root Key,縮写为SRK)。包含TPM的系统可以通过SRK创建密钥 并对其进行加密,使其只能通过TPM解密。这一过程通常称为打包或绑定密钥,有助于防止 密钥泄露,TPM中创建的密钥对的隐私部分决不会暴露给任何其他组件、软件、过程或个人。
TPM将数据与特定的密钥及平台状态绑定在一起,只有被授权的用户,使用该密钥在相 同的平台状态下才可以解密被加密的数据。有关平台特定的硬件或软件配置信息可以实现这 种逻辑绑定,这些配置信息主要通过BIOS完成收集,然后被存储到TPM内部的平台配置寄存 器(Platform Configuration Registers,縮写为PCR)中。TPM将密钥数据连同一个或几个 PCR值合在一起,作为一个整体进行加密处理。当存取被保护的密钥数据时TPM需要首先计 算对应的平台配置信息,如果一致则允许访问。对于加密文件系统中被加密的密钥,当只有 在此平台上且平台当前的配置信息与加密时指定的配置信息相符时才能够解密此数据。
多系统引导软件(GRand Unified Bootloader,缩写为GRUB)是一个多重开机管理工具(见 参考文献[2]),它可用来激活Linux、 BSD、 OS/2、 Windows 95/98/NT/2000/XP/Vista等众多 操作系统。它是一个独立于操作系统之外的开机程序,也是BIOS之后的第一个运行程序。目 前所有的Linux都会默认安装GRUB, Windows下也已经有相应的GRUB程序。从组成结构上GRUB主要包含两个部分stagel和stage2。 stagel用于加载stage2,而 stage2能够建立文件系统和内核格式,并提供命令行界面或者菜单界面来进行启动。通常而 言,在stagel和stage2之间存在一个stagel. 5,默认情况下stagel. 5是没有被安装的, 它的主要作用是建立文件系统(如Ext2、 Ext3、 Fat32等)并加载stage2文件。
目前TCG的技术规范只定义了GRUB启动之前的信任链,对于GRUB启动中、启动后的信 任链建立过程并没有给出详细说明,而GRUB是操作系统加载前的最后一个步骤,它的安全与 否关系着操作系统的安全,因此需要针对GRUB自身结构的特点,实现信任链的扩展传递,并 通过TPM的密封存储功能,对运行程序进行密封及提供用户身份认证功能。

发明内容
本发明所要解决的技术问题是提供一种基于可信平台模块的计算机安全启动系统,该
系统的启动方法能够有效地阻止非授权用户对系统的使用,并利用TPM的安全存储功能对各 类密钥进行有效管理。
本发明解决其技术问题采用的技术方案是基于可信平台模块的计算机安全启动系统,包

可信平台模块,作为S^系^S量验证的可信根; 可信度量根,作为^t系统度量的锚节点; 基本输入输出系统,用于系统自检及初始化; 系统启动加载器,用于引导进入所需的操作系统; 操作系统平台,用于监视、虚拟或il^作系统环境;
所述可信平台模块和所腿本输鳩出系统作为硬件芯片安装在该计靴安全启动系统中, 所述可信度量根安装在基本输入输出系统中,所述系统启动加载器和所述操作系统平台安装在计 算机安全启动系统的磁盘上,
其特征在于,所述系统弓I导管理器細GRUB,所述GRUB中加入安全增强模块。
本发明与现有技术相比具有以下的主要优点第一.在可信计算方面,实现了信任链的扩展传递,保证了信任链从GRUB的stagel传 递到stagel. 5及其stage2,从而保证stage2能够正确地加载操作系统内核文件,确保代码
装载和代码执行的一致性。
第二在GRUB安全增强方面,在stagel. 5中加入密钥管理模块和stage2解密模块,并 通过修改stagel使其强制加载stagel. 5,在不改变原有GRUB结构的基础上,实现了系统实 现的通用化。
第三.在密钥管理方面,采用两层密钥管理体系,各级密钥层层加密,绑定了平台当前 运行环境,从而有效解决了密钥的安全存储问题,并且实现了更髙的安全性。
第四.在密钥保护措施方面,将密钥和存储在TPM内部的用户身份验证授权口令进行绑 定,提高了系统的安全强度。
总之,本发明利用磁盘扇区结构在GRUB的适合层次中插入安全启动操作,使系统具有通 用性和可移植性;在密钥管理方面,采用两层密钥管理体系,各级密钥层层加密,并将密钥和平台运行环境信息进行绑定,从而有效解决了密钥安全存储的问题,并且实现了更高的安 全性;在系统启动方面,TPM —方面保护了密钥的安全性,另一方面对代码进行安全存储, 确保了其静态安全性。


图1基于可信平台模块的计算机安全启动系统的体系结构。 图2基于可信平台模块的计算机安全启动安装流程。 图3基于可信平台模块的计^fl安全启动执行流程。
具体实施例方式
本发明提出了基于可信平台模块的计算机安全启动方法,具体是根据GRUB结构的特点, 在stagel. 5和stage2中加入安全增强模块,在系统启动过程中,通过调用基本输入输出系 统上的中断服务驱动程序和可信平台模块驱动程序,访问TPM芯片并利用安全存储功能以及 平台绑定功能获取加解密密钥SEK,位于stagel. 5中的解密模块通过加解密密钥SEK完成对 stage2的解密操作,从而实现了对代码的认证执行。
本发明提出的基于可信平台模块的计算机安全启动方法体系结构如图l所示,包括
可信平台模块,作为整个系^量验证的可信根;
可信度量根,作为^t系^S量的锚节点;
基本输入输出系统,用于系统自检及初始化;
系统启动加载器,用于引导进入所需的操作系统;
操作系统平台,用于监视、虚拟或JI^作系统环境;
所述可信平台模块和所述基本输入输出系统作为硬件芯片安装在该计算机安全启动系统中, 所述可信度量根安装在基本输入输出系统中,所述系统启动加载器和所述操作系统平台安装在计 算机安全启动系统的磁盘上,所述系统引导管理器5^ffl GRUB, ,GRUB中加入安全增强模块,所 述安全增强模块包括密钥管理和解密模块。所述操作系统平台可包括虚mm视器(VMM)和操作 系统。
本发明提供的上述基于可信平台模块的计算机安全系统的启动方法,包括安装流程和执 行流程。
100.安装可信引导系统,包括以下几个步骤,如图2所示
110)利用所述磁盘扇区结构在所述GRUB中的stagel (加载器第一部分)和stage2 (加 载器第三部分)之间插入stagel. 5 (加载器第二部分); 120)通过所述可信平台模块随机生成加解密密钥;
130)利用所述加解密密钥对所述磁盘上的stage2进行全加密,并用加密后的stage2密 文替换原始stage2;
140)通过可信平台模块的安全存储功能对该加解密密钥进行加密存储。 200.执行流程,包括以下几个步骤,如图3所示
210)所述可信度量根度量所述基本输入输出系统的完整性,若验证通过,系统自检及初 始化,否则停止启动流程;220)所述基本输入输出系统度量stagel的完整性,若验证通过,读取主引导记录,否 则停止启动流程;
230) stagel加载stagel. 5,度量其完整性,若验证通过,运行stagel. 5,否则停止启 动流程;
240) stagel. 5验证用户和系统平台的正确性,若正确则解封被加密存储的加解密密钥, 否则停止启动流程;
250) stagel. 5的解密模块根据加解密密钥,将全加密的stage2读入内存,通过可信平 台模块对其进行解密;
260) stagel. 5度量解密后的stage2的完整性,若验证通过,操作权转至stage2,否则 停止启动流程;
270)stage2度量操作系统平台的完整性,若验证通过,启动操作系统,否则停止启动流程。
下面结合附图对本发明作进一步说明。
1. 信任链扩展传递
可信计算的主要思想是通过可信度量根(CRTM)和可信平台模块(TPM),从系统启动 到操作系统到应用程序,通过完整性度量的方式建立信任链。目前TCG规范只给出了系统加 电开始,从BIOS到主引导记录(腿R)建立信任链的方法。本发明根据操作启动加载器GRUB 的结构特点,继续将信任链从MBR(stagel)传递到sta辟1.5、 stage2,再从stage2传递到操 作系统加载程序。
信任链传递的基本思想是对静态程序的完整性度量,TCG规范规定BIOS需要度量 stagel (MBR)的完整性,通过对GRUB进行安全增强,本系统规定stagel度量stagel. 5的完整性, stagel. 5度量stage2的完整性,体系结构如图l所示。
在执行阶段,信任链扩展及其用户授权流程如图1和图3所示,并且
所述210)中,可信度量根度量所述基本输入输出系统的完整性后,还将该度量结果存入 可信平台模块的0~3号平台配置寄存器;
所述220)中,基本输入输出系统度量stagel的完整性后,还将该度量结果存入可信平 台模块的4 5号平台配置寄存器;
所述230)中,stagel度量stagel. 5的完整性后,还将该度量结果存入可信平台模块的 8~9号平台配置寄存器;
所述260)中,stagel. 5度量解密后的stage2的完整性后,还将该度量结果存入可信平 台模块的10 11号平台配置寄存器;
所述270)中,stage2度量操作系统平台的完整性后,还将该度量结果存入可信平台模块 的15号平台配置寄存器。
2. 密钥管理
TPM芯片内部的加密过程与系统是隔离的,与系统软件实现的加密函数相比,对于硬件级 的保护,传统的攻击方法将难以窃取敏感数据,TPM加密具有更髙的安全性。加解密操作的环境受到了平台绑定的保护,更加安全可靠。
本系统采用链式加密方法来保护密钥和stage2,体系结构如图2所示,包含两类密钥
(1) 存储根密钥(SRK):
平台使用者可通过厂商的配置得到TPM的所有者(owner)权限,从而生成SRK,也就是 得到存储根密钥。SRK是整个平台的可信密钥根,其私钥永久存储在TPM内部,其安^ft通过 TPM自身的物理安全来保证。
(2) stage2的对称加解密密钥(SEK):
在安装阶段,上述步骤120)生成加解密密钥SEK的步骤如图2所示 121)进入所述GRUB的控制台,由其上的密钥管理模块通过所述基本输入输出系统上的中 断服务驱动程序和可信平台模块驱动程序调用可信平台模块获得随机数,并将所得随机数作 为stage2加解密密钥。SEK得到后,通过加密模块和安全密封模块被加密,具体而言,上述 步骤140)对加解密密钥进行加密存储的步骤包括
141) 要求用户输入两次授权口令,分别作为使用所述可信平台模块上的存储根密钥的密 钥授权,和封装SEK的的数据授权;
142) 将所述加解密密钥、所述存储根密钥的密钥授权、所述封装加解密密钥的数据授权 和当前平台配置信息封装在一起,生成封装数据;
143) 通过所述可信平台模块的存储根密钥对步骤142)的所述封装信息进行加密保护, 并将加密后的结果存放在磁盘上。
与之对应,上述步骤240)解封被加密存储的加解密密钥的步骤包括
241) 验证用户输入的口令,若口令正确则进入下一步,否则停止解封;
242) 验证所述存储根密钥的句柄的正确性,若正确则利用存储根密钥解密143)的所述 加密后的结果,得到所述封装数据,否则停止解封;
243) 将封装数据中的所述平台配置信息和平台当前的环境参数进行比对,若一致则输出 加解密密钥,否则停止解封。
实施例
本发明提出的基于可信平台模块的计算机安全启动方法体系结构如图l所示,包括
可信平台模块,作为3&t系^量i^的可信根;
可信度量根,作为整个系^S量的锚节点;
基本输入输出系统,用于系统自检及初始化;
系统启动加载器,用于引导:ffiA所需的操作系统;
操作系统平台,用于监视、虚拟或tl^作系统环境
所述可信平台模块和所述基本输入输出系统作为硬件芯片安装在该计算机安全启动系统中, 所述可信度量根安装在基本输入输出系统中,所述系统启动加载器和所述操作系统平台安装在计 算机安全启动系统的磁盘上,^系统引导管理器^ffiGRUB,所述GRUB中加入安全增强模块。
本发明提供的上述基于可信平台模块的计算机安全系统的启动方法,包括安装可信引导 系统和执行可信启动流程。300.安装可信引导系统的流程包括
310)利用所述磁盘的扇区结构在所述GRUB中的stagel和stage2之间插入stagel. 5;
320)进入所述GRUB的控制台,通过所述基本输入输出系统上的中断服务驱动程序和可 信平台模块驱动程序调用可信平台模块获得随机数,并将所得随机数作为stage2加解密密 钥
330)利用所述加解密密钥对所述磁盘上的stage2进行全加密;
340)要求用户输入两次授权口令,分别作为使用所述可信平台模块上的存储根密钥的密 钥授权,和封装SEK的的数据授权;
350)将所述加解密密钥、所述存储根密钥的密钥授权、所述封装加解密密钥的数据授权 和当前平台配置信息封装在一起,生成封装数据;
360)通过所述可信平台模块的存储根密钥对步骤350)的所述封装信息进行加密保护, 并将加密后的结果存放在磁盘上。
400.执行可信启动流程包括
410)所述可信度量根度量所述基本输入输出系统的完整性,将该度量结果存入可信平台
模块的0 3号平台配置寄存器;若验证通过,系统自检及初始化,否则停止启动流程;
420)所述基本输入输出系统度量stagel的完整性,将该度量结果存入可信平台模块的
4 5号平台配置寄存器;若验证通过,读取主引导记录,否则停止启动流程;
430) stagel加载stagel. 5,度量其完整性,将该度量结果存入可信平台模块的8 9号 平台配置寄存器;若验证通过,运行stagel. 5,否则停止启动流程
440)验证用户输入的口令,若口令正确则进入下一步,否则停止启动流程;
450)验证所述存储根密钥的句柄的正确性,若正确则利用存储根密钥解密360)的所述 加密后的结果,得到所述封装数据,否则停止启动流程;
460)将封装数据中的所述平台配置信息和平台当前的环境参数进行比对,若一致则输出 加解密密钥,否则停止启动流程;
470) stagel. 5根据加解密密钥,通过可信平台模块对全加密的stage2进行解密;
480) stagel. 5度量解密后的stage2的完整性,将该度量结果存入可信平台模块的10 ll号平台配置寄存器;若验证通过,操作权转至stage2,否则停止启动流程;
490)stage2度量操作系统平台的完整性,还将该度量结果存入可信平台模块的15号平台 配置寄存器若验证通过,启动操作系统,否则停止启动流程。 参考文献
1. Trusted Computing Group (TCG). TPM Main Specification, Version 1-2 Revision 94.[EB/0L]. [2006-03-29] https://www.trustedcomputinggroup.org/specs/TPM/.
2. GNU GRUB. [EB/0L]. [2005-05-08] ftp:〃alpha. gnu. org/gnu/grub/grub-O. 97. tar. gz.
权利要求
1.基于可信平台模块的计算机安全启动系统,包括可信平台模块,作为整个系统度量验证的可信根;可信度量根,作为整个系统度量的锚节点;基本输入输出系统,用于系统自检及初始化;系统启动加载器,用于引导进入所需的操作系统;操作系统平台,用于监视、虚拟或提供操作系统环境;所述可信平台模块和所述基本输入输出系统作为硬件芯片安装在该计算机安全启动系统中,所述可信度量根安装在基本输入输出系统中,所述系统启动加载器和所述操作系统平台安装在计算机安全启动系统的磁盘上,其特征在于,所述系统引导管理器采用GRUB,所述GRUB中加入安全增强模块。
2. 如权利要求1所述系统的启动方法,其特征在于,包括 100)安装可信引导系统;200)执行可信启动流程;所述IOO)安装可信引导系统的流程包括110)利用所述磁盘的扇区结构在所述GRUB中的stagel和stage2之间插入stagel. 5; 120)通过所述可信平台模块随机生成加解密密钥;130)利用所述加解密密钥对所述磁盘上的stage2进行全加密,并用加密后的stage2密 文替换原始stage2;140)通过可信平台模块的安全存储功能对该加解密密钥进行加密存储; 所述200)执行可信启动流程包括210)所述可信度量根度量所述基本输入输出系统的完整性,若验证通过,系统自检及初 始化,否则停止启动流程;220)所述基本输入输山系统度量stagel的完整性,若验证通过,读取主引导记录,否 则停止启动流程;230) stagel加载stagel. 5,度量其完整性,若验证通过,运行stagel. 5,否则停止启 动流程;240) stagel. 5验证用户和系统平台的正确性,若正确则解封被加密存储的加解密密钥, 否则停止启动流程250) stagel. 5根据加解密密钥,通过可信平台模块对全加密的stage2进行解密; 260) stagel. 5度量解密后的stage2的完整性,若验证通过,操作权转至stage2,否则 停止启动流程;270)stage2度量操作系统平台的完整性,若验证通过,启动操作系统,否则停止启动流程。
3. 如权利要求2所述系统的启动方法,其特征在于,所述120)生成加解密密钥的步骤 包括121)进入所述GRUB的控制台,通过所述基本输入输出系统上的中断服务驱动程序和可信 平台模块驱动程序调用可信平台模块获得随机数,并将所得随机数作为stage2加解密密钥。
4. 如权利要求2所述系统的启动方法,其特征在于,所述140)对加解密密钥进行加密 存储的歩骤包括141) 要求用户输入两次授权口令,分别作为使用所述可信平台模块上的存储根密钥的密 钥授权,和封装加解密密钥的的数据授权;142) 将所述加解密密钥、所述存储根密钥的密钥授权、所述封装加解密密钥的数据授权 和当前平台配置信息封装在一起,生成封装数据;143) 通过所述可信平台模块的存储根密钥对步骤142)的所述封装信息进行加密保护, 并将加密后的结果存放在磁盘上。
5. 如权利要求4所述系统的启动方法,其特征在于,所述240)解封被加密存储的加解 密密钥的歩骤包括241) 验证用户输入的口令,若口令正确则进入下一步,否则停止解封;242) 验证所述存储根密钥的句柄的正确性,若正确则利用存储根密钥解密143)的所述 加密后的结果,得到所述封装数据,否则停止解封;243) 将封装数据中的所述平台配置信息和平台当前的环境参数进行比对,若一致则输出 加解密密钥,否则停止解封。
6. 如权利要求2 5中任一项所述系统的启动方法,其特征在于所述210)中,可信度量棍度量所述基本输入输出系统的完整性后,还将该度量结果存入 可信平台模块的0 3号平台配置寄存器;所述220)中,基本输入输出系统度量stagel的完整性后,还将该度量鍤果存入可信平 台模块的4 5号平台配置寄存器;所述230)中,stagel度量stagel.5的完整性后,还将该度量结果存入可信平台模块的 8 9号平台配置寄存器;所述260)中,stagel.5度量解密后的stage2的完整性后,还将该度量结果存入可信平 台模块的10~11号平台配置寄存器;所述270)中,stage2度量操作系统平台的完整性后,还将该度量结果存入可信平台模 块的15号平台配置寄存器。
全文摘要
本发明提供了一种基于可信平台模块的计算机安全启动系统,包括可信平台模块、可信度量根、基本输入输出系统、系统启动加载器和操作系统平台。所述可信平台模块和所述基本输入输出系统作为硬件芯片安装在该计算机安全启动系统中,所述可信度量根安装在基本输入输出系统中,所述系统启动加载器和所述操作系统平台安装在计算机安全启动系统的磁盘上,所述系统引导管理器采用GRUB,所述GRUB中加入安全增强模块,所述安全增强模块包括密钥管理和解密模块。本发明能有效地阻止非授权用户对系统的使用,并利用TPM的安全存储功能对各类密钥进行有效管理。
文档编号G06F9/445GK101576944SQ200810197748
公开日2009年11月11日 申请日期2008年11月20日 优先权日2008年11月20日
发明者飞 严, 凡 何, 騻 向, 雨 张, 张焕国, 徐士伟, 徐明迪, 飏 杨, 波 赵 申请人:武汉大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1