文献标识码: B
文章编号: 0258-7998(2012)01-0136-03
随着计算机技术的高速发展和信息战的愈演愈烈,计算系统的研究面临的关键问题已不再仅仅局限于运算性能、接口的丰富程度等方面,可信性等方面的研究已变得日益重要,很多军用领域所用的计算机系统已经趋向于使用国产处理器以保证系统的安全性,但是从可信性的角度来讲,仅使用国产处理器是不够的,本文针对这一趋势,对可信系统进行了研究,实现了基于国产龙芯处理器的可信系统构建。
1 基于国产处理器的可信系统架构
构建一个可信系统首先需要构建一个信任根,再建立一条信任链,信任的传递从信任根开始至硬件平 台的BootLoader,再到操作系统,最后到应用程序,一级认证一级,一级信任一级,进而扩展到整个计算机系统,基于国产龙芯处理器的可信系统体系结构主要分为四层:可信系统硬件层、可信BootLoader层、可信操作系统层和安全应用程序层,如图1所示,其中信任根包含在可信BootLoader层内。本文主要介绍可信系统硬件层、可信BootLoader层、可信操作系统层的构建及整个系统的启动过程和信任链建立的过程。
1.1 可信系统硬件层
可信系统的硬件层如图2所示,包括主处理器(龙芯2F芯片)、存储器系统、I/O系统、可信平台模块TPM等,主处理器通过LPC总线与可信平台模块TPM进行通信,TPM由输入和输出、密码协处理器、存储单元等组件构成,是一个可以独立进行密钥生产与加解密的安全微控制器。
1.2 可信BootLoader层
可信BootLoader层由可信PMON与CRTM组成,如图3所示。
其中CRTM(Core Root of Trust Measurement)是信任度量核心根,简称信任根,是整个可信计算机的核心测量部分,同时也是可信计算机的整条信任链的起点,在可信计算机上电启动后最先运行,主要负责启动TPM、校验可信PMON的完整性、与可信PMON通信。可信PMON除了作为整个系统的启动引导程序外还具有与CRTM通信以及校验操作系统内核完整性的功能。
1.3 可信操作系统层
操作系统的可信性问题一直是业内的一个难点,目前现有的可信产品中所使用的可信操作系统大多是在通用操作系统中加入可信软件栈TSS,以解决操作系统上的应用程序与TPM的通信问题。本文提出的可信操作系统层构建如图4所示。
可信软件栈TSS是对可信系统提供支持的软件,它的设计目标是对应用TPM功能的应用程序提供一个唯一的入口,并提供对TPM的同步访问管理。可信软件栈TSS具体可以分为如下4层:
(1) TPM驱动程序层(TDD)。该模块主要负责把TDDL传入的字节流发送给 TPM,然后把 TPM 的返回数据发送回TDDL。TDD模块的设计与 TPM制造商和操作系统有关,它和TPM在物理层进行通信,依赖于TPM的访问接口和操作系统的驱动编写模型。由于TPM一次只能处理一个请求,所以TDD只允许一个进程进行访问,由TCS层负责对多个请求的同步管理。
(2) TPM驱动程序库(TDDL)。由TPM制造商提供,位于TCS和TDD之间,TDDL提供了一个用户态的接口。该接口是标准的C接口,可以使不同的TCS很容易地在平台之间移植。由于TDD只允许一个进程进行访问,因此TDDL在同一时刻只允许被一个进程打开。
(3) TPM核心服务层(TCS)。在一个平台操作系统上只能有一个TCS,TCS接口(TCSI)被设计用来提供一种直接而简便的方法来控制和请求TPM服务。TCS提供了一个公共的服务集合,可以为多个TSP使用。TCS提供的功能包括TPM命令的组包拆包、日志、审计、密钥证书的管理,以及协调多个应用程序对TPM的同步访问等。
(4) TPM服务提供层(TSP)。该模块位于TSS的最上层,为应用程序提供TPM服务。该模块和应用程序都位于用户层,并且在同一进程空间内,为应用程序与 TPM之间的数据传输提供保护,可以为应用程序提供TPM安全平台的所有功能。
2 可信系统启动过程和信任链的建立
基于龙芯处理器的可信系统基于TPM建立了一条完整的信任链,整个平台的启动过程和信任链工作方式如图5所示。
(1) 在计算机终端加电后,信任根CRTM首先启动初始化TPM;
(2) TPM运行起来后,信任根度量可信PMON的完整性,将度量值存入TPM;
(3) 可信PMON运行,初始化龙芯2F计算机主模块硬件部分;
(4) 信任根将控制权交给可信PMON,由可信PMON度量操作系统的完整性,将度量值存入TPM;
(5) 可信PMON将控制权交给操作系统,操作系统度量应用程序完整性,将度量结果报告TPM;
(6) TPM将完整性度量值经过内部加密处理生成完整性序列值报告给操作系统,操作系统将序列值和已存储在TPM芯片内部的完整性验证码进行比较,如果发现有修改,则操作系统运行中断;如果没有修改,则操作系统正常启动,并进入可信运行环境。
本文构建了基于国产龙芯处理器的可信系统,整个系统的核心器件龙芯2F处理器和TPM全部为国产器件,它的实现对于军用、金融等保密领域具有极其重要的意义,但是目前尚存在部分关键技术需要攻克,如硬件集成技术、动态可信测量技术及I/O的安全技术等,且目前可信领域的权威组织TCG(可信计算组织)仅给出了可信系统的相关技术规范,可信操作系统、可信数据库、可信应用软件的相关技术规范还有待于进一步完善。
参考文献
[1] Loongson2F_DS_CN Rev1.0[S]. 2008.
[2] Loongson2F_UM_CN Rev1.0[S]. 2008.
[3] 杨功立,付永庆.基于龙芯CPU的高性能安全服务器主板的设计与研究[D]. 哈尔滨:哈尔滨工程大学,2002.
[4] 吴少校,史岗,刘金刚.龙芯2F处理器评估板的设计与实现[D].北京:首都师范大学,2008.
[5] 刘志华.可信计算平台研究[J].计算机安全,2009(07):53-54
[6] 师俊芳,李小将,李新明.基于TPM的安全操作系统的设计研究[J].装备指挥技术学院学报,2009(05):87-91.
[7] 林小茶,李光,金爽.嵌入式可信计算机研究[J].计算机工程与设计,2009,30(16):3730-3734.
[8] 吴少刚,徐华.可信嵌入式龙芯启动加载程序tPMON的设计[J].计算机工程与设计,2008,29(1):5-8.
[9] 李祖松,唐志敏,胡伟武.龙芯2号处理器多线程技术研究[D].北京:中国科学院计算技术研究所,中国科学院研究生院,2006.
[10] Wind River. General purpose platform,VxWorks Edition Migration Guide 3.6[S]. 2010.