保证嵌入式系统程序完整性的技术设计方案
扫描二维码
随时随地手机看文章
1 项目背景
信息产业的高速发展,带来了信息技术的空前繁荣;但危害信息安全的事件也不断发生,信息安全的形势是严峻的. 信息安全事关国家安全,事关社会稳定,必须采取措施确保信息安全. 硬件结构的安全和操作系统的安全是信息系统安全的基础,密码、网络安全等技术是关键技术. 只有从信息系统的硬件和软件的底层开始做起,从整体上采取措施,才能比较有效地确保信息系统的安全.
随着计算机技术、通信技术的飞速发展,特别是互联网的迅速普及和3C(计算机、通信和消费电子)融合的加速,嵌入式系统逐渐成为信息产业的一个支柱,其市场的深度和广度不断扩大。然而,嵌入式系统在快速发展的同时也面临安全方面的巨大挑战,特别是随着嵌入式系统的不断发展和推广,它越来越多地被非法入侵和破坏,给各个国家和众多企业造成巨大的损失,有时甚至危害到国家和地区的安全。例如嵌入式系统广泛地被用于控制各种关键设备:通讯网络、电力栅格、核电站、飞行控制系统等,一旦这样的系统遭到恶意入侵者的破坏,其带来的损失是可想而知。所以,安全将会是嵌入式系统设计的一种新的思维。嵌入式系统软、硬件结构简化,导致资源可任意使用,尤其是执行代码可修改,恶意程序可以被植入。病毒程序利用操作系统对执行代码不检查一致性的弱点,将病毒代码嵌入到执行代码程序,实现病毒传播。黑客利用被攻击系统的漏洞窃取超级用户权限,植入攻击程序,肆意进行破坏。更为严重的是对合法的用户没有进行严格的访问控制,可以进行越权访问,造成不安全事故。由于在嵌入式系统的制造链、供给链和使用链都可能存在那些恶意的入侵者,就此安全需求会依不同的角度而有所变化。为了保证通信安全,这时就提出了安全功能的要求,诸如数据机密性、完整性和可用性。机密性防止未授权用户获得存储在系统中的敏感信息;数据的完整性保证在未经允许的情况下,系统中的数据不能被任意地删除和修改;完整性保证病毒、恶意用户等不能随意地修改系统中的程序,可用性核实信息的发送或者接收只能是相应的对方,而不能是不合法者。这些安全功能,在如今的嵌入式系统中也得到了广泛的应用。
基于软件,操作系统,硬件三者协同保证计算机系统的安全,产生出可信计算的基本思想。目前可信计算规范主要面向个人PC领域,但是对这个概念的理解,对于嵌入式可信系统的构造具有相当意义。可信计算的目的是在计算和通信系统中广泛使用基于硬件安全模块支持下的可信计算平台,以提高整体的安全性。可信计算的思想源于社会. 其基本思想是在计算机系统中首先建立一个信任根,再建立一条信任链,一级测量认证一级,一级信任一级,把信任关系扩大到整个计算机系统,从而确保计算机系统的可信.在技术领域,可信计算发展非常迅速. 1983 年,美国国防部就制定了《可信计算机系统评价准则》. 1999 年, TCPA 组织成立,2003 年改组为可信计算组织TCG. TCPA 和TCG 制定了关于可信计算平台、可信存储和可信网络连接等一系列技术规范. 目前已有200 多个企业加入了TCG,可信计算机已经进入实际应用阶段.在理论领域, IEEE 组织于2004 年开办了IEEE Transactions on Dependable and Secure Computing 杂志,专门刊发可信计算研究论文.
在我国,与可信计算概念相对应的是由我国相关部门自主制定的TCM标准。目前,中国的可信计算事业处于蓬勃发展的阶段。
2000年6月武汉瑞达公司和武汉大学合作,开始研制安全计算机,研究成果于2004年10月通过国家密码管理委员会主持的技术鉴定。它是国内第一款自主研制的可信计算平台,在系统结构和主要技术路线方面与TCG的规范是类似的。这一产品被国家科技部等四部委联合认定为“国家级重点新产品”,并获得2006年国家密码科技进步二等奖,已在我国电子政务、公安、银行、军队得到实际应用。
2005年联想集团的“恒智”芯片和可信计算机相继研制成功。同年,兆日公司的TPM芯片研制成功。这些产品都相继通过国家密码管理委员会的鉴定和认可。
联想推出了两款基于自主知识产权的TCM芯片的笔记本电脑和台式电脑,并获得了公安部、国家安全部、国家保密局和国家密码管理局的安全认证。该可信PC具备文件夹解密、安全管理箱、安全文件共享等功能,并且在易用性方面做了特色设计。
同方公司于2007年6月26日发布了基于TCM标准的同方TST安全平台,可预防企业的机密信息通过终端计算机泄密,可隐藏硬盘,通过指纹锁进行硬盘加密以及安全备份等。同时,同方还推出了授权密网产品——将工作组的几台计算机设置成一个域,非授权用户无法传递文件。
专门提供调用可信计算机中TCM密钥体系,让TCM、可信计算机与人的身份结合,构建完整可信计算信任链的吉大正元公司,则利用PKI/PMI技术,推出了可信接入安全支撑平台,保证不同网络可安全地接入整个体系。
虽然在PC领域,通过各机构和企业的努力,可信计算技术已经得到了一定程度的发展,但是在嵌入式系统领域,我国无论在规范还是在实际应用上,还是处于发展不足的状态。而基于嵌入式系统对于资源的敏感性,能源的紧缺性,功能的专业性等特点,生搬硬套过往的“大而全”的可信计算规范的服务显然是不合适。同时,目前市场上通用的TPM芯片大部分是通过与CPU的LPC引脚连接提供相关的加密验证服务。个人PC市场的处理器少厂商的垄断局面与嵌入式系统芯片市场百花齐放的情况不同,这也决定了现有的TPM芯片不能满足各种各样的传输接口需求。因此,一种基于嵌入式系统特性的安全保证技术实现方案的实现就显得非常必要。
2 系统建设总体原则
2.1 建设目标
本项目目的在于,基于目前现有的嵌入式部件的安全功能(Spartan-3A的Device DNA和中兴TCM芯片),提供一个保证嵌入式系统程序完整性的设计方案。于此同时,参照可信计算规范标准,为嵌入式系统打造一个可信根,为之后的可信链的建立及嵌入式可信平台的构造提供必要的条件。最终满足国内嵌入式系统安全需求,并为我国嵌入式系统可信技术独立自主发展提供支持。
2.2 建设原则
1、可扩展性原则:嵌入式系统本身就是一个被要求具备可扩展性的系统。其任务多变性,外设可裁剪性等原则也决定了本次设计应该具有与之匹配的特性。在保证核心,基本的完整性保证服务功能后,应该支持用户根据自身需要定制不同的,更复杂的安全性服务,即为今后系统应用的扩展和系统升级提供必要的接口。
2、安全性原则:由于设计中任何部件的安全性缺陷以及运行步骤上的漏洞都会导致系统被破坏的可能,所以本方案的安全性必须通过可信计算规范中可信链的建立过程进行论证。从而构造一个牢固的安全根基。
3、兼容性原则:基于嵌入式芯片厂商众多,使用的架构也不尽相同。因此本嵌入式系统程序完整性保证设计方案应该尽量做到只经过有限的修改甚至无需进行修改,即可应用到大部分主流的嵌入式系统之中。保证本设计的通用性。
3 项目研制内容
本项目对嵌入式系统完整性保证技术中的加密算法实现,系统部件身份识别,系统运行效率等关键技术进行了综合、深入的研究。
3.1 系统设计框架
整个嵌入式系统设计总体结构图如下图所示,主要有主处理芯片、提供数据验证功能的可编程逻辑器件(FPGA)、提供TCM规范服务的TCM芯片以及外部存储器件。本系统运行与两种模式下:1、主要由FPGA与PC进行数据交互的配置模式。2嵌入式处理芯片,FPGA,TCM芯片协同工作的运行模式。
配置模式下,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核标准化设计。最终在这个过程中,不仅使学生的能力得到锻炼,同时还验证了本设计的可扩展性和可移植性。
3) 注重项目管理和人员培养。项目管理一直是IT项目的重要课题。如何保证项目进度和项目质量,成了这个项目的其中一个关注点。在本次项目开发过程中,队员注意了项目文档的编写工作,让每一个阶段的进度都有章可循。与此同时,我们还定期进行小组讨论,这不仅加强了队员间的信息交流,活跃了成员的思维。于此同时,这还是工作进度量度和工作质量提高的审核平台。通过以上手段,保证了项目的有序高效进行。在人员培养上,本项目采用导师指导,研究生完成,本科生辅助的模式。导师对重要问题进行提出,对于技术难题,与研究生共同攻关。研究生对导师提出问题进行逐步解答,在此过程中不断吸收知识,并尝试独立解决其中发现的问题。同时把一些工作下放到优秀的本科生,让其进行探讨和完成。这一工作模式,不仅合理地把项目难度分摊到各成员,同时还充分调动起各个成员的工作积极性,而到最后,还提高了整个团队的技术水平。
7 存在问题
经过一年的努力和工作积累,嵌入式系统程序完整性保证技术方案的功能日趋完善、性能越来越高、稳定性越来越强,但还存在下列问题:
(1)相关的工具链的开发不足,产品化程度不高。
(2)尽管已完成完整性保证的功能,但是离可信计算的最终目标还有一定距离。未来还需要进一步的功能开发。
(3)TCM芯片功能移植到FPGA上的设想。这将进一步减少本设计的面积,更符合嵌入式系统的要求。
这些问题将在以后研发中继续努力解决。