*CN1032581A*
(10)申请公布号(10)申请公布号 CN 1032581 A(43)申请公布日 2013.08.21
(12)发明专利申请
(21)申请号 201310054096.5(22)申请日 2013.02.20
(71)申请人中国电力科学研究院
地址100192 北京市海淀区清河小营东路
15号
申请人国家电网公司(72)发明人王志皓 刘楷 张波 赵保华(74)专利代理机构北京安博达知识产权代理有
限公司 11271
代理人徐国文(51)Int.Cl.
G06F 21/57(2013.01)G06F 9/445(2006.01)
权利要求书2页 说明书5页 附图2页权利要求书2页 说明书5页 附图2页
(54)发明名称
一种嵌入式可信系统的启动方法(57)摘要
本发明提供一种嵌入式可信系统的启动方法,通过应用微程序控制器(MCU)启动前的授权过程程序(保存在可信芯片内部的保护区)上载到应用MCU的RAM中检查内存映射,获得内存的边界地址和内容特征值,并锁定内存区,这样既可提供可信启动有可信的入口又可以在启动期间使内存不能被篡改和仿冒,对系统bootloader的度量,验证bootloader是否是可信,最后由bootloader对操作系统和软件栈进行度量,实现整个嵌入式系统启动过程的可信。本发明通过提供不依赖于标准化启动程序Bootloader的可信启动流程,然后移植到现有的嵌入式系统。针对嵌入式环境的复杂性,避免与嵌入式系统的环境过多耦合,设计灵活,可以通过尽可能少量的修改适应尽可能多的环境,以利于推广应用。
CN 1032581 ACN 1032581 A
权 利 要 求 书
1/2页
1.一种嵌入式可信系统的启动方法,其特征在于:所述方法包括以下步骤:步骤1:建立核心可信度量根;步骤2:启动代码度量;步骤3:启动操作系统度量;步骤4:启动可信协议库度量;步骤5:嵌入式可信芯片启动;步骤6:度量嵌入式可信芯片启动数据;步骤7:嵌入式可信系统功能模块度量。
2.根据权利要求1所述的嵌入式可信系统的启动方法,其特征在于:所述步骤1包括以下步骤:
步骤1-1:通过启动控制过程BCP检查内存映射,获得内存的边界地址和内容特征值,并且放至扩展程序暂存控制器PCR的内存区;
步骤1-2:锁定微程序控制器MCU的Root内存区,完成核心可信度量根的建立。3.根据权利要求1所述的嵌入式可信系统的启动方法,其特征在于:所述步骤2包括以下步骤:
步骤2-1:对嵌入式系统的Bootloader进行审核和修改,审核和修改后在信任中心进行签名,Bootloader度量过程以保证使用信任中心签名的Bootloader;
步骤2-2:Bootloader度量内存映射和软件下载器的应用,Bootloader包括对所述嵌入式可信系统启动和内存映射的,保证载入的操作系统为可信的;
步骤2-3:收集Bootloader使用的地址和数据,将收集的地址和数据分别放到数据块DATA1和配对密钥区中,并把数据块DATA1和配对密钥区的特征值放至扩展程序暂存控制器PCR的内存区。
4.根据权利要求1所述的嵌入式可信系统的启动方法,其特征在于:所述步骤3包括以下步骤:
步骤3-1:对操作系统的内核进行整体度量,载入操作系统并收集操作系统内核的特征值,将特征值放入数据块DATA2中,并将数据块DATA2放至扩展程序暂存控制器的内存区;
步骤3-2:操作系统和嵌入式可信芯片进行定时间隔通讯,以使操作系统中使用的可信协议库为信任中心签名。
5.根据权利要求1所述的嵌入式可信系统的启动方法,其特征在于:所述步骤4中,收集可信协议栈使用的地址和数据,并将收集的信息放到数据块DATA3中,并将数据块DATA3放至扩展程序暂存控制器的内存区。
6.根据权利要求1所述的嵌入式可信系统的启动方法,其特征在于:所述步骤5包括以下步骤:
步骤5-1:拷贝嵌入式可信芯片检测区到其内部,引导入口点;步骤5-2:初始化需要使用的通讯端口,禁止不可信的所有底层调用,保证运行内存空间可信;
步骤5-3:跳转到启动代码链接到可信启动度量库,执行对度量校验程序、数据块DATA2、数据块DATA3的最小集合初始化。
2
CN 1032581 A
权 利 要 求 书
2/2页
7.根据权利要求1所述的嵌入式可信系统的启动方法,其特征在于:所述步骤6包括以下步骤:
步骤6-1:对嵌入式可信芯片启动区域中数据进行度量;步骤6-2:度量通过将签名内包含的密钥返回嵌入式可信芯片检测区消除重启机制,嵌入式可信芯片上电后未能获得相应的密钥在一定时间内会触发对嵌入式可信系统功能主模块的控制机制;
步骤6-3:度量失败触发对嵌入式可信系统功能主模块的控制机制,系统停止工作;步骤6-4:度量地址集合数据块DATA1、数据块DATA2和数据块DATA3是否被破坏,若被破坏,则重新执行最小集合初始化,恢复数据和地址集合,重新执行步骤6-1。
8.根据权利要求1所述的嵌入式可信系统的启动方法,其特征在于:所述嵌入式可信系统功能模块包括嵌入式可信系统功能主模块和实际应用功能模块。
9.根据权利要求1所述的嵌入式可信系统的启动方法,其特征在于:所述步骤7包括以下步骤:
步骤7-1:入口函数选择实际应用功能模块,嵌入式可信系统功能模块通过通讯端口下载可信根证书进行度量;
步骤7-2:度量通过启动跳转代码唤醒/激活相应的嵌入式可信系统功能模块,完成嵌入式可信系统启动;
步骤7-3:度量失败触发对嵌入式可信系统功能主模块的控制重启机制,嵌入式可信系统停止工作重启;
步骤7-4:度量数据/证书是否被破坏,若被破坏,则重新执行步骤7-1。10.根据权利要求1所述的嵌入式可信系统的启动方法,其特征在于:嵌入式可信系统受到攻击或者某些预定义事件时,触发对嵌入式可信系统功能主模块的控制机制。
3
CN 1032581 A
说 明 书
一种嵌入式可信系统的启动方法
1/5页
技术领域
[0001]
本发明涉及嵌入式可信平台领域,具体涉及一种嵌入式可信系统的启动方法。
背景技术
目前,信息安全技术主要依靠强健的密码算法与密钥相结合来确保信息的机密
性、完整性,以及实体身份的惟一性和操作与过程的不可否认性。但是各种密码算法都并非绝对安全,而且很多用户并不清楚这些密码保护机制如何设置,更重要的是,这些技术虽然在一定程度上可以阻挡黑客和病毒的攻击,但是却无法防范内部人员对关键信息的泄露、窃取、篡改和破坏。为了提高计算机的安全防护能力,可信计算组织TCG(Trusted Computing Group)提出了“可信计算”(trusted computing)的概念,其主要思路是增强现有PC终端体系结构的安全性,并推广为工业规范,利用可信计算技术来构建通用的终端硬件平台。“可信计算”没有一个明确的定义,其主要思路是在设备硬件平台上引入可信芯片架构,通过其提供的安全特性来提高系统的安全性。嵌入式可信计算平台基于嵌入式可信芯片,以密码技术为支持,安全操作系统为核心。
[0003] 嵌入式可信芯片是嵌入式可信计算平台的可信根源,从硬件底层来提供对于计算设备的保护。它是一个含有密码运算部件和存储部件的小型SoC片上系统,与平台主板相连,用于验证身份和处理计算机或设备在可信计算环境中使用的变量。其中主要包括微处理器、EEPROM、Flash、真随机数发生器等,主要完成RSA公钥加密/签名算法、SHA-1安全散列算法以及安全的存储加密密钥等敏感信息。系统的所有安全认证和安全调用都通过嵌入式可信芯片来完成,并建立起一条网络—应用软件—操作系统—硬件的完整的信任链关系。在信任传输的作用下,实现安全机制的整体性检查,从而确保了各环节的可信性,进而保证了整个系统的可信性。
[0004] 嵌入式可信芯片利用程序暂存控制器PCR(program control register)来保存系统的测量记录。嵌入式可信芯片包含完整性测试引擎,用于采集软件和硬件的完整性相关数据,并将结果保存在嵌入式可信芯片硬件的配置寄存器中。程序暂存控制器PCR必须能够抵御来自软件和硬件的攻击。
[0005] RTM(Root of Trust for Measurement)是一个计算引擎,能够进行内部可靠的完整性度量。平台从建立RTM开始运行,嵌入式可信芯片初始化过程包括一个嵌入式可信芯片自检,通过自检可以判断嵌入式可信芯片的功能是否合适,RTM有责任选择和控制最合适的嵌入式可信芯片初始化过程。核心可信度量根CRTM(Core Root of Trust for Measurement)是系统启动后执行的第一段代码,它初始化可信启动顺序,执行最初的可信测量,然后引导嵌入式可信芯片开始工作。CRTM驻留在Flash中,必须确保不会被修改,也不会被旁路,否则系统的安全难以保证。
[0006] 申请号为200710053330.7的发明专利公开了一种建立在可信机制上的嵌入式系统启动引到方法,该方法是将嵌入式系统与嵌入式可信芯片结合在一起,并将嵌入式系统中外部存储器设备出来,由嵌入式可信芯片控制对其的读和写;在嵌入式系统启动过
[0002]
4
CN 1032581 A
说 明 书
2/5页
程中,必须先由嵌入式可信芯片对外部存储器中可执行代码进行完整性度量,仅当验证通过后,嵌入式可信芯片才将外部存储器读和写的权利赋予嵌入式系统,允许其启动。提供的可信机制上的嵌入式平台引导,重点由嵌入式可信芯片控制启动过程并且在初始化外部设备的同时,对指定的外部设备进行完整性、可靠性度量。
[0007] 申请号为200810046775.7的发明专利公开了一种可信机制上的嵌入式平台引导方法,通过由嵌入式可信芯片控制对嵌入式系统中外部存储器设备的读和写,也提供了一种建立在可信机制上的嵌入式系统启动引导方法。
[0008] 传统的信息安全技术主要依靠强健的密码算法与密钥相结合来确保信息的机密性、完整性,以及实体身份的惟一性和操作与过程的不可否认性。但是各种密码算法都并非绝对安全,而且很多用户并不清楚这些密码保护机制如何设置,更重要的是,这些技术虽然在一定程度上可以阻挡黑客和病毒的攻击,但是却无法防范内部人员对关键信息的泄露、窃取、篡改和破坏。
[0009] 现有的嵌入式可信系统启动设计中,采用的信任链模型都是嵌入式可信芯片芯片直接对Bootloader、操作系统内核、应用等进行度量或完整性度量,没有进行可信根的建立过程,这样的模型设计会导致可信芯片设计复杂度提高,并且与平台、操作系统、应用深度耦合,通用性差,难以广泛应用。发明内容
为了克服上述现有技术的不足,本发明提出了一种嵌入式可信系统的启动方法,提供了一种不依赖于标准化启动程序、基于可信根度量的启动流程,方便移植到现有的嵌入式系统。同时,针对嵌入式环境的复杂性,该模型避免与嵌入式系统的环境过多耦合,设计灵活,可以通过尽可能少量的修改适应尽可能多的环境,以利于推广应用。[0011] 为了实现上述发明目的,本发明采取如下技术方案:[0012] 提供一种嵌入式可信系统的启动方法,所述方法包括以下步骤:[0013] 步骤1:建立核心可信度量根;[0014] 步骤2:启动代码度量;[0015] 步骤3:启动操作系统度量;[0016] 步骤4:启动可信协议库度量;[0017] 步骤5:嵌入式可信芯片启动;[0018] 步骤6:度量嵌入式可信芯片启动数据;[0019] 步骤7:嵌入式可信系统功能模块度量。[0020] 所述步骤1包括以下步骤:[0021] 步骤1-1:通过启动控制过程BCP检查内存映射,获得内存的边界地址和内容特征值,并且放至扩展程序暂存控制器PCR的内存区;[0022] 步骤1-2:锁定微程序控制器MCU的Root内存区,完成核心可信度量根的建立。[0023] 所述步骤2包括以下步骤:[0024] 步骤2-1:对嵌入式系统的Bootloader进行审核和修改,审核和修改后在信任中心进行签名,Bootloader度量过程以保证使用信任中心签名的Bootloader;[0025] 步骤2-2:Bootloader度量内存映射和软件下载器的应用,Bootloader包括对所
[0010]
5
CN 1032581 A
说 明 书
3/5页
述嵌入式可信系统启动和内存映射的,保证载入的操作系统为可信的;[0026] 步骤2-3:收集Bootloader使用的地址和数据,将收集的地址和数据分别放到数据块DATA1和配对密钥区中,并把数据块DATA1和配对密钥区的特征值放至扩展程序暂存控制器PCR的内存区。
[0027] 所述步骤3包括以下步骤:
步骤3-1:对操作系统的内核进行整体度量,载入操作系统并收集操作系统内核
的特征值,将特征值放入数据块DATA2中,并将数据块DATA2放至扩展程序暂存控制器的内存区;
[0029] 步骤3-2:操作系统和嵌入式可信芯片进行定时间隔通讯,以使操作系统中使用的可信协议库为信任中心签名。[0030] 所述步骤4中,收集可信协议栈使用的地址和数据,并将收集的信息放到数据块DATA3中,并将数据块DATA3放至扩展程序暂存控制器的内存区。[0031] 所述步骤5包括以下步骤:[0032] 步骤5-1:拷贝嵌入式可信芯片检测区到其内部,引导入口点;[0033] 步骤5-2:初始化需要使用的通讯端口,禁止不可信的所有底层调用,保证运行内存空间可信;
[0034] 步骤5-3:跳转到启动代码链接到可信启动度量库,执行对度量程序、数据块DATA2、数据块DATA3的最小集合初始化。[0035] 所述步骤6包括以下步骤:[0036] 步骤6-1:对嵌入式可信芯片启动区域中数据进行度量;[0037] 步骤6-2:度量通过将签名内包含的密钥返回嵌入式可信芯片检测区消除重启机制,嵌入式可信芯片上电后未能获得相应的密钥在一定时间内会触发对嵌入式可信系统功能主模块的控制机制;[0038] 步骤6-3:度量失败触发对嵌入式可信系统功能主模块的控制机制,系统停止工作;
[0039] 步骤6-4:度量地址集合数据块DATA1、数据块DATA2和数据块DATA3是否被破坏,若被破坏,则重新执行最小集合初始化,恢复数据和地址集合,重新执行步骤6-1。
[0040] 所述嵌入式可信系统功能模块包括嵌入式可信系统功能主模块和实际应用功能模块。
[0028]
所述步骤7包括以下步骤:
[0042] 步骤7-1:入口函数选择实际应用功能模块,嵌入式可信系统功能模块通过通讯端口下载可信根进行度量;[0043] 步骤7-2:度量通过启动跳转代码唤醒/激活相应的嵌入式可信系统功能模块,完成嵌入式可信系统启动;[0044] 步骤7-3:度量失败触发对嵌入式可信系统功能主模块的控制机制,系统停止工作;
[0045] 步骤7-4:度量数据/证书是否被破坏,若被破坏,则重新执行步骤7-1。[0046] 嵌入式可信系统受到攻击或者某些预定义事件时,触发对嵌入式可信系统功能主模块的控制机制。
[0041]
6
CN 1032581 A[0047]
说 明 书
4/5页
与现有技术相比,本发明的有益效果在于:
[0048] (1)本发明提出基于可信根建立过程的启动方法能够降低可信芯片设计工艺的复杂度,并且与平台、操作系统、应用松散耦合,灵活性高,便于广泛应用;[0049] (2)本发明提出了嵌入式系统环境下基于可信计算技术的启动过程和基于可信根的度量模型,相对于逐级度量的启动过程比较简洁,通用性强;[0050] (3)本发明针对嵌入系统的特点,对运行环境和程序本身都进行安全检查,提高了系统的可信性。附图说明
图1是嵌入式可信系统的启动方法流程图;
[0052] 图2是本发明实施例中嵌入式可信系统的启动方法详细流程图;[0053] 图3是本发明实施例中嵌入式可信系统的启动方法应用流程图。
[0051]
具体实施方式
[0054] 下面结合附图对本发明作进一步详细说明。[0055] 如图1和图2,提供一种嵌入式可信系统的启动方法,所述方法包括以下步骤:[0056] 步骤1:建立核心可信度量根;[0057] 步骤2:启动代码度量;[0058] 步骤3:启动操作系统度量;[0059] 步骤4:启动可信协议库度量;[0060] 步骤5:嵌入式可信芯片启动;[0061] 步骤6:度量嵌入式可信芯片启动数据;[0062] 步骤7:嵌入式可信系统功能模块度量。[0063] 所述步骤1包括以下步骤:[00] 步骤1-1:通过启动控制过程BCP检查内存映射,获得内存的边界地址和内容特征值,并且放至扩展程序暂存控制器PCR的内存区;[0065] 步骤1-2:锁定微程序控制器MCU的Root内存区,完成核心可信度量根的建立。[0066] 所述步骤2包括以下步骤:[0067] 步骤2-1:对嵌入式系统的Bootloader进行审核和修改,审核和修改后在信任中心进行签名,Bootloader度量过程以保证使用信任中心签名的Bootloader;[0068] 步骤2-2:Bootloader度量内存映射和软件下载器的应用,Bootloader包括对所述嵌入式可信系统启动和内存映射的,保证载入的操作系统为可信的;[0069] 步骤2-3:收集Bootloader使用的地址和数据,将收集的地址和数据分别放到数据块DATA1和配对密钥区中,并把数据块DATA1和配对密钥区的特征值放至扩展程序暂存控制器PCR的内存区。
[0070] 所述步骤3包括以下步骤:[0071] 步骤3-1:对操作系统的内核进行整体度量,载入操作系统并收集操作系统内核的特征值,将特征值放入数据块DATA2中,并将数据块DATA2放至扩展程序暂存控制器的内存区;
7
CN 1032581 A[0072]
说 明 书
5/5页
步骤3-2:操作系统和嵌入式可信芯片进行定时间隔通讯,以使操作系统中使用
的可信协议库为信任中心签名。[0073] 所述步骤4中,收集可信协议栈使用的地址和数据,并将收集的信息放到数据块DATA3中,并将数据块DATA3放至扩展程序暂存控制器的内存区。[0074] 所述步骤5包括以下步骤:[0075] 步骤5-1:拷贝嵌入式可信芯片检测区到其内部,引导入口点;[0076] 步骤5-2:初始化需要使用的通讯端口,禁止不可信的所有底层调用,保证运行内存空间可信;
[0077] 步骤5-3:跳转到启动代码链接到可信启动度量库,执行对度量程序、数据块DATA2、数据块DATA3的最小集合初始化。[0078] 所述步骤6包括以下步骤:[0079] 步骤6-1:对嵌入式可信芯片启动区域中数据进行度量;[0080] 步骤6-2:度量通过将签名内包含的密钥返回嵌入式可信芯片检测区消除重启机制,嵌入式可信芯片上电后未能获得相应的密钥在一定时间内会触发对嵌入式可信系统功能主模块的控制机制;[0081] 步骤6-3:度量失败触发对嵌入式可信系统功能主模块的控制机制,系统停止工作;
[0082] 步骤6-4:度量地址集合数据块DATA1、数据块DATA2和数据块DATA3是否被破坏,若被破坏,则重新执行最小集合初始化,恢复数据和地址集合,重新执行步骤6-1。
[0083] 所述嵌入式可信系统功能模块包括嵌入式可信系统功能主模块和实际应用功能模块。
[0084] 所述步骤7包括以下步骤:[0085] 步骤7-1:入口函数选择实际应用功能模块,嵌入式可信系统功能模块通过通讯端口下载可信根进行度量;[0086] 步骤7-2:度量通过启动跳转代码唤醒/激活相应的嵌入式可信系统功能模块,完成嵌入式可信系统启动;[0087] 步骤7-3:度量失败触发对嵌入式可信系统功能主模块的控制机制,系统停止工作;
[0088] 步骤7-4:度量数据/证书是否被破坏,若被破坏,则重新执行步骤7-1。[00] 嵌入式可信系统受到攻击或者某些预定义事件时,触发对嵌入式可信系统功能主模块的控制机制。
[0090] 最后应当说明的是:以上实施例仅用以说明本发明的技术方案而非对其,尽管参照上述实施例对本发明进行了详细的说明,所属领域的普通技术人员应当理解:依然可以对本发明的具体实施方式进行修改或者等同替换,而未脱离本发明精神和范围的任何修改或者等同替换,其均应涵盖在本发明的权利要求范围当中。
8
CN 1032581 A
说 明 书 附 图
1/2页
图1
图2
9
CN 1032581 A
说 明 书 附 图
2/2页
图3
10
因篇幅问题不能全部显示,请点此查看更多更全内容