新闻中心

EEPW首页>嵌入式系统>设计应用> 保证嵌入式系统程序完整性的技术设计方案

保证嵌入式系统程序完整性的技术设计方案

作者: 时间:2016-09-12 来源:网络 收藏

2、安全性原则:由于设计中任何部件的安全性缺陷以及运行步骤上的漏洞都会导致系统被破坏的可能,所以本方案的安全性必须通过可信计算规范中可信链的建立过程进行论证。从而构造一个牢固的安全根基。

3、兼容性原则:基于嵌入式芯片厂商众多,使用的架构也不尽相同。因此本程序完整性保证设计方案应该尽量做到只经过有限的修改甚至无需进行修改,即可应用到大部分主流的之中。保证本设计的通用性。

3 项目研制内容

本项目对完整性保证技术中的加密算法实现,系统部件身份识别,系统运行效率等关键技术进行了综合、深入的研究。

3.1 系统设计框架

整个嵌入式系统设计总体结构图如下图所示,主要有主处理芯片、提供数据验证功能的可编程逻辑器件()、提供规范服务的芯片以及外部存储器件。本系统运行与两种模式下:1、主要由与PC进行数据交互的配置模式。2嵌入式处理芯片,芯片协同工作的运行模式。

配置模式下,FPGA读出内部Device DNA,输出到PC端。之后扫描外部存储设备(如flash)制定地址区间的内容(一般为boot loader),进行SHA-1运算,产生数据摘要,输出到PC端。Device DNA会作为DES算法的密钥对上面提到的数据摘要进行加密,Device DNA与加密值会通过固件程序保存在TCM芯片的可信存储区域内。

运行模式下,主处理芯片通过FPGA产生的时钟信号进行工作。系统上电后,FPGA并不马上对主处理芯片提供时钟,而是先进行完整性验证工作:1、装载Device DNA,提供给内部DES运算部件作为密钥使用。2、请求TCM芯片发送32位随机数,此随机数将会被DES算法加密后送到FPGA,FPGA的DES部件对其进行解密后,进行存储。3、FPGA读取flash制定区域的内容,并进行SHA-1运算,产生160位数据摘要。4、160位数据摘要被分为5组,每组32位。每组与此前接收到的32位随机数组成64位数据,进行DES加密后,送到TCM芯片进行校验。5、TCM芯片接收到5组数据后进行解密。首先校验随机数部分是否与之前发出的一致,若一致,则继续校验数据摘要部分数据与之前在配置模式下写入的理想值是否一致。对比结果存放于特定内存位置。6、FPGA为主处理芯片提供时钟,并接通主处理芯片与外部存储器与TCM的数据通路。用户可以通过相关的接口读取对比值,判断系统是否被修改。

嵌入式完整性保证方案框架

嵌入式完整性保证方案框架

3.2 安全性分析

硬件安全性: Spartan-3A,全部硬件逻辑固化在芯片内部,不可读取。TCM:通过国家商密办检验,不可读取。Boot Loader完整性:FPGA将依次读取Boot Loader的内容,并计算Hash值。对Boot ROM的任何篡改都将改变Hash值。从而导致验证不通过。

以下是几种可预见的攻击方式:1、在已知Boot loader的内容的前提下,计算出数据摘要的内容,伪造FPGA。由于Device DNA是每一块FPGA的身份识别码,此值是唯一的。更换FPGA会导致用于DES加密密钥的Device DNA改变,从而向TCM芯片传送的加密值不正确。2、监听FPGA与TCM之间的通讯。由于TCM与FPGA通讯内容还依赖于随机数,具有不可预见性,所以监听当次的通讯内容对之后内容的破解并没有作用。

3.3 可信链的建立

如之前所提到,一个可信的系统的建立,必须是硬件,操作系统,软件应用三者共同作用的结果,本完整性保证设计也不例外。本次设计的可信根建立于以下两个事实之上:1、TCM的保密区域存储空间不能被读取。2、FPGA的Device DNA是唯一对应于一块FPGA的。

经过3.1小结的验证步骤,我们把可信根扩展到了Boot Loader。Boot Loader是嵌入式系统中用于系统初始化以及载入操作系统的程序。保证Boot Loader的完整性的意义在于保证了操作系统在正确的环境以及以正确的方式被加载。之后程序员就可以通过软件的手段对建立在操作系统之上的应用进行安全保证。

信任链的建立及传递

信任链的建立及传递

5 研制成果及应用

5.1 研制成果

本项目的主要研制成果有三个方面:

完成了一套具备可信计算功能的硬件开发板。

经过了一年的研发,本开发板的各项功能都被验证具备稳定运作的能力,由于其采用的是主流的资源配置,因此可扩展性也是有目共睹的,具体指标如下:

ARM7内核的三星44B0X处理器,最高运行速度达到66Mhz

Xilinx Spartan3A FPGA芯片,多达200万门的可编程逻辑资源

16M Nor Flash,16M SDRAM能满足大部分应用需要

100M网络接口,支持高速内核下载及烧写

2个标准UART-232接口,能提供与TCM芯片的稳定连接及常见外设的数据传输

完成了TCM固件程序开发及uclinux工具链的配套

目前,我们已经利用中兴提供的开发平台开发了相关的TCM固件程序,使得TCM芯片与本嵌入式平台在启动阶段可以自动完成验证功能。而与此同时,通过进一步的固件程序开发,TCM芯片可以提供更丰富的验证加密功能,以满足更多的可信计算需要。

与此同时,通过busybox工具链,也成功把uclinux2.4成功移植到本嵌入式平台上,运行正常。

6 项目总结

通过本项目的研发,项目组总结经验如下:

1) 需要注意项目经验的积累及转化。从2008年12月提出设计方案到2010年产品的实现,其中进行过数次的方案改动。改进方案的建议不仅来自领队老师自己,还来自参与本项目的学生和过程中不断吸收进来的一些最新的外来研究经验和成果。不断的改进并不代表对之前工作的否定,恰恰相反,没有一些针对前期方案的准备和工作的体会,是没有可能提出更成熟,更稳定的改进方案。因此,在项目实施过程中,积极与外界沟通,同时组织团队进行方案的再三讨论,对于项目的实施和进步是十分有利的。

2) 对中间结果进行规范化的制作,形成可用的产品。在本项目进行的过程中,恰逢IBM PowerPC与工业和信息化部IP核标准工作组共同推广中国开源IP标准化工作。于是在保证工作质量和进度的前提下,我们尝试把嵌入式系统程序完整性保证的概念移植到PowerPC支持的PLB总线上。同时参照相关的标准化要求,完成了“带有完整性验证功能的外部存储控制器”的IP核标准化设计。最终在这个过程中,不仅使学生的能力得到锻炼,同时还验证了本设计的可扩展性和可移植性。



评论


相关推荐

技术专区

关闭