基于龙芯1A的可信移动终端设计研究*
2013-10-16李冰心
李冰心
(武汉数字工程研究所 武汉 430074)
1 引言
随着指控技术的发展,在海军舰艇指控系统中出现了移动式指控平台的概念。同时伴随着我海军作战范围的扩大,不间断航行时间的增加,对装备的综合保障能力提出了更现实、更紧迫、更专业的要求,迫切需要一种表现力强、安全性高的可用于维护维修的手持式移动终端。上述现状都对海军舰艇指控系统中的移动终端设备提出了如下三条新的需求:
1)支持国产移动处理器:国外的CPU和操作系统对我们来说类似黑箱,其核心技术对我们完全封闭。为保证新型移动终端的安全可控,其核心关键技术和基础核心软件、硬件需自主可控;
2)支持可信计算安全架构:通过在移动终端内部嵌入一个可抵制篡改的可信计算架构,其核心芯片保存着芯片及芯片所在平台相关的信息摘要和重要内容,核心芯片提供的安全功能不仅能够使得非法用户无法对芯片内部的数据进行更改,而且能够保证当用户的计算机丢失时,一些重要的内容也不会被窃取[1~2]。这样,在确保数据的完整性和机密性的同时,也提高了整个终端设备的安全等级。
3)支持卫星导航定位系统:增强现代作战操作的支持能力同时保证其安全性,一旦该终端离开设定范围即可进行数据自毁。
为满足舰载移动式指挥平台及可视化维修终端上述三条新的需求,本文结合“十二五”期间国产CPU的大量应用及不断成熟的北斗二代技术,围绕国产处理器构建支持GPS导航定位的可信移动终端,对保证可信移动终端的信息安全具有重要意义。
本文将重点阐述当前国产移动处理器现状、可信移动计算平台相关概念,分析北斗定位技术在军事领域的应用前景,围绕龙芯1A国产处理器设计支持GPS导航定位的可信移动计算机软硬件架构,并对其进行了安全性分析,从而为提高龙芯1A移动计算机的安全性、数据保密性和可用性提供了一种解决方案。
2 技术概述
目前国产处理器主要分为高性能通用CPU、安全适用计算机用CPU、嵌入式CPU等。其中高性能通用CPU主要应用于高性能计算及服务器等领域,安全适用计算机用CPU主要应用于桌面及笔记本电脑等领域,嵌入式CPU主要应用于移动通信终端、消费类电子、数字电视、工业控制和汽车电子等领域。国产嵌入式CPU主要产品包括Unicore系列CPU、龙芯1ACPU、C-CORE CPU、XBurst CPU、NuSmart CPU等。其中龙芯1ACPU为中国科学院计算所推出一款面向嵌入式应用基于MIPS32架构的CPU[1~2],其I/O接口丰富,集成度高,功耗低,较适合于手持设备以及控制终端领域应用。基于龙芯1ACPU在手持终端上应用优势,及目前在龙芯平台上的技术积累,拟采用该款处理器设计该型可信移动计算机。
可信计算技术是近年出现的一种信息系统安全技术[3~4]。可信密码模块(TCM)实际上是一个含有密码运算器件和存储部件的小型片上系统,存储用于验证和签名的密钥以及证明平台硬件、软件可信状态的哈希值,它是平台中重要的防篡改元件,是平台的信任根,与可信度量根一起执行可信启动流程。在系统启动时,由可信度量根对平台BIOS和操作系统进行完整性检测,将检测生成的哈希值传给TCM并存储于平台状态寄存器PCR中。比较检测结果与TCM中存储的数据是否匹配,如果匹配则认为平台安全,反之不安全[5]。目前国内拥有TCM芯片的厂商和研究院所主要包括武汉瑞达、北京兆日、联想、总参51所等,其中仅总参51所为军方认可的可信芯片[6~7]。
在卫星导航定位方面,目前全球有四套卫星导航系统:中国北斗、美国全球定位系统(GPS)、俄罗斯“格洛纳斯”(GLONASS)和欧洲“伽利略”。其中北斗卫星导航系统是由中国自主研制开发、独立运行的的全球卫星导航系统。基于北斗二代精确对时、载波相位跟踪、导航定位等功能,北斗二代技术可应用舰艇多平台协同防空信息系统、飞机着舰系统、数字单兵导航定位系统、装甲车辆导航监控与指挥系统、精确武器制导系统等军事领域中[8~9]。鉴于可信移动终端在安全性、定位精准性等方面的考虑,拟将北斗二号导航定位技术集成到该终端设计中。
3 基于龙芯1A的可信移动计算机设计
3.1 基于龙芯1A的可信移动计算机体系结构
目前在国产化可信计算机体系结构中提出了“以密码为基础,芯片为根基,主板为平台,软件为核心,网络为纽带”的整体实现思路。其体系结构如图1所示。
图1 可信计算机体系结构
基于上述体系结构,本文拟采用龙芯1A、军用TCM及北斗GPS定位模块相结合的方式进行设计。如上节所述,龙芯1A为中国科学院计算所推出的一款低功耗面向嵌入式应用的国产处理器,其主频达266~300MHz,内部集成2DGPU和LCD控制器,支持VGA和LCD双接口,最大显示分辨率为1280×1080,功耗小于1W;军用TCM芯片遵循标准TCM架构,设有多个外部接口,可通过USB 2.0、LPC接口、ISO7816、存储器扩展接口和自定义32位数据接口等与外部进行数据通信;北斗GPS定位模块为我所自主研发的模块,通过串口与CPU进行信息交互。通过整合上述模块,基于龙芯1A的移动计算机的逻辑结构组成如图2所示。
图2 基于龙芯1A的移动计算机逻辑结构组成图
在图2中,TCM和UEFI BIOS为移动终端的可信根,即信任链的源头。从UEFI BIOS出发,在计算机的每一个部件启动时,这种信任状态通过度量该部件完整性的方式传递下去,直至传递到平台上的应用程序,平台每个部件的完整性得到了保证,这样就保证平台上的计算环境是可信的[10]。可信机制的实现主要从三个方面来体现:1)可信度量指的是任何将要获得控制权的实体,都需要被之前启动的部件度量,即计算该部件的完整性(哈希值),度量过程将从平台加电开始,一直持续到应用程序运行环境的建立;2)度量的存储指的是所有度量值将形成一个序列,并保存在TCM中,同时还包括度量过程日志的存储;3)度量的报告指的是任何需要知道可信计算平台状态的实体可以让平台及TCM报告相关度量值和日志信息,询问者根据可信计算平台提供的度量值和日志信息判断平台配置是否遭到破坏,如果平台的可信环境被破坏了,询问者有权拒绝与该平台交互或向该平台提供服务。
北斗接收定位模块兼容北斗二代和GPS系统,双冗余型接收机可进行在线可控式实时互补切换输出,实现热冗余容错备份能力,支持NMEA-0183数据交换协议。其系统结构图如图3所示。
图3 北斗接收定位模块原理框图
如图3所示北斗接收定位模块同时接收到北斗2和GPS的卫星信号,功分器将射频信号分为两路分别进入GPS和北斗2模块进行独立处理,双冗余的两种导航系统模块输入相同,输出数据格式相同,硬件结构一致,只是运行的程序不同,一个执行北斗2基带解码,一个执行GPS基带解码,ARM输出控制模块执行双冗余容错判决策略,控制保证接收机的可信输出。串口输出遵循标准NMEA0183协议,与自主开发的导航通信解析软件接口兼容。
3.2 可信移动计算机的软件架构设计
基于龙芯1A的可信移动计算机的软件架构如图4所示。
图4 基于龙芯1A的可信移动计算机的软件架构
其中CRTM为可信计算度量根。如图4所示,基于龙芯1A的可信计算机软件建立在硬件层基础之上,由下而上分为BIOS层、操作系统核心层、可信计算软件栈、应用层等四层。其信任链的传递过程如图5所示。
图5 信任链的传递过程图
如图5所示,在可信计算设计中首先建立一个可信任根,即TCM模块。可信任根的可信性是基于硬件并由物理安全和管理安全确保,然后再建立一条信任链,从信任根开始到硬件平台,到操作系统,再到各种应用,一级认证一级,一级信任一级,从而把这种信任扩展到整个计算机系统,确保计算机系统的可信性。同时,在这一个过程中,可信计算终端完成了可信测量、存储和报告等事务。
4 安全性分析
移动可信终端是一个由多个部件组成的系统,这些部件包括:可信计算芯片TCM、BIOS、系统引导程序、操作系统和应用程序等。每个部件之间都是遵循一定的设计原理进行启动、运行和交互,均可以看做是这个安全协议的参与者。依据此思想,可以得到如下模型:
其中,进程Psys代表的是整个可信计算系统,进程PTCM代表的是TCM的动作,进程PBIOS代表的是BIOS的动作,进程PGrub代表的是系统引导程序的动作,进程POS代表的是操作系统的动作,进程PApp1,PApp2,…,PAppn代表的是不同应用程序的动作。
如上述软硬件设计及模型所示,安全的引导过程是保证移动终端的基础,经过安全引导,能够建立起可信的程序执行环境。但是随着信任链长度的增加信任值会下降,必须增加动态的可信机制,能够对运行中的应用程序进行动态的监控和行为的限制,从而保证移动终端在运行中的安全。
在动态可信机制中,定义所有的软件代码构成的集合为E={el,e2,…,en},其中ei,1≤i≤n为任意一个待载入的软件代码,并对应一个期望的功能列表FLi={Oi1,Oi2,…,Oik},表示ei允许执行所有操作O 的集合,其中i={1,…,n},k为ei所有允许的不同操作编号(k为正整数,针对不同的ei,k取值不一定相同)。ei在运行过程中实际操作记为:Oim,m为正整数,对于所有ei∈E的实际过程操作[11]:
1)所有Oim∈FL执行可信的操作,允许执行;
2)所有Oim∈FL执行不可信的操作,将于阻止并警告。
采用该机制有效避免了单纯依靠测量软件代码静态完整的脆弱性,应用程序的运行按照预期的可信操作执行,阻止非法的操作,同样在可信的范围之内,确保系统的动态可信性。
5 结语
当前,国产化计算机已成为十二五期间重点发展的方向,围绕国产处理器建立可信移动终端对增强舰载移动终端的自主可控与安全可信具有十分重要的意义。本文重点阐述了国内移动处理器现状、可信移动计算平台相关概念,分析北斗定位技术在军事领域的应用前景,提出了适用于舰载应用的移动可信计算机的软硬件设计方案。目前该方案正在进行详细设计与实现,在后期工作中将继续细化可信计算机软件组成,完善BIOS层的可信软件度量和上层的可信软件协议栈,从而实现一个支持GPS导航定位功能的完全可信的嵌入式移动终端。
[1]胡伟武,唐志敏.龙芯1号处理器结构设计[J].计算机学报,2003,26(4):385-396.
[2]张仕健,许彤,章隆兵,等.一个基于微处理器功能模型的可靠度评估系统[J].计算机学报,2008,31(3):391-399.
[3]沈昌祥,张焕国,冯登国,等.信息安全综述[J].中国科学E辑,2007,37(2):129-150.
[4]Sailer R,Zhang Xiao-Lan,Jaeger T,et al.Design and Implementation of a TCG-Based Integrity measurement architecture[C]//Proceedings of the 13th Usenix Security Symposium.San Diego,California,2004:223-238.
[5]蒋凡,宁华中.基于标号变迁系统的测试集自动生成[J].计算机研究与发展,2001,38(12):1435-1445.
[6]邢黎,祝跃飞.可信移动平台及其验证机制的研究[J].计算机工程与设计,2008,29(5):1080-1085.
[7]范卿,曾杨.基于可信计算的移动终端系统构建与安全机制[J].建设机械技术与管理,2011,24(1):139-143.
[8]李庆利,薛永祺,施鹏飞.无陀螺DR及其与北斗组合导航的融合算法[J].计算机工程,2006,32(4):18-20.
[9]张桂华,孙彩英.“北斗一号”导航定位动态信号的模拟实现[J].系统仿真学报,2005,17(11):2731-2736.
[10]徐明迪,张焕国,严飞.基于标记变迁系统的可信计算平台信任链测试[J].计算机学报,2009,32(4):635-645.
[11]李梦君,李舟军,陈火旺.基于进程代数安全协议验证的研究综述[J].计算机研究与发展,2004,41(7):1093-1103.