蔡一新, 朱嘉钢
(江南大学 物联网工程学院,江苏 无锡 214000)
基于Android系统嵌入式移动可信网关设计*
蔡一新, 朱嘉钢
(江南大学 物联网工程学院,江苏 无锡 214000)
以往移动可信平台设计均以终端设计为主,不适用于移动物联网条件下,提出一种基于Android系统的嵌入式可信移动网关,结合可信平台模块(TPM)芯片与Android系统特有特性,设计新的可信模块。本设计提出Android系统下软硬件系统架构以及每个模块的详细功能。根据设计利用Atmel AT97SC3205T芯片对Cortex—A8 S5PV210 平台可信改造,并在Android系统上开发网关应用程序。根据此平台已经开发ZigBee应用程序,此设计有较高的商业价值。
Android系统; 可信计算; 可信平台模块芯片
物联网(IoT)在传感技术、全球定位系统等物理环境信息采集技术的基础上,结合互联网、信息共享、信息传递、人工智能和信息感知等技术实现“物—物”和“人—物”的交互与控制,其中物理的和虚拟的"物"具有身份识别、物理属性、虚拟特性和智能接口,并和信息网络无缝整合[1]。物联网[2]是未来互联网的重要组成部分,是一个动态的全球网络框架,具有基于标准和公有通信协议的自组织能力。
移动物联网是物联网的一个分支,也是无线物联网的一个分支。移动物联网是指适用于某些移动的特定的场景如高铁、长途汽车、房车等中的物联网网络,上述场景是随时运动的,需要通过移动运营商网络与因特网中的服务器相连。在上述环境中,有一定数量的监控和控制设备,而这些设备采集诸多敏感信息如温度、湿度、有毒气浓度、火灾信息等,同时控制设备掌控所有的智能家电设备如安防系统、空调、灯具等等。上述列举的采集和控制行为直接关系当前环境的敏感信息和重要操作,如果信息被恶意篡改或者智能设备被恶意操作会给上述场景物联网网络中造成实物损坏,比传统的安全问题带来的信息窃取和篡改更加严重。如何保证移动物联网网络安全是急需解决的问题。
当前的移动物联网网络安全系统主要以防火墙,入侵检测和病毒防范为主,是基于纯软件的解决方案,这种解决方案存在一定的问题,面对种类繁多的病毒入侵已经显得力不从心,由于安全保护软件都不能保证自身安全,保障安全只有从硬件和软件的底层做起,才能有效地确保安全。同时现有的移动可信平台的解决方案都是解决手机终端的可信计算,并不适合移动物联网场景中。 为了解决移动物联网面临的安全问题,本文构建基于可信平台模块(TPM)芯片的Android系统移动可信网关用于保护移动物联网的安全。
可信物联网网络组织结构如图1。
图1 移动物联网结构图Fig 1 Structure diagram of mobile IoT
在图1中本文设计的适用于移动物联网的可信网关,在移动的应用场景中网关不能通过传统的方式连接因特网,只能通过运营商的3G/4G无线网连接因特网。本设计中的网关搭载的是Android 4.0,而且通过应用程序管理控制移动应用场景中的其他传感器和控制设备。用户在有运营商网络的环境下可以通过手机上的应用控制应用场景中的所有设备或者查看设备状态。在上图中最为核心的就是可信网关的构建,网关是保证整个网络安全的核心。为了保证移动网关的安全,本文计划使用TPM芯片和Android操作系统结合使用设计适用于移动物联网网关的嵌入式可信平台。
移动可信计算可以采用软件实现、硬件实现、软硬件结合实现。Zhang Xinwen等人提出一种内核级别的域隔离措施,是扩展基于SELinux的内核来提供移动可信模块(mobile trusted module,MTM)所需的平台特性[3]。还有两种重要方案:一是利用ARM公司的TrustZone技术实现纯软件的MTM可信构建块[4];二是利用基于Java Card技术的智能卡构建安全元来实现MTM[5,6]。文献[7]提出一种结合TrustedZone和Java Card技术的可信移动终端架构。上面几种方案在安全等级上是不同的,根据文献[7]提出了3种移动设备的安全等级要求,本文根据可信嵌入式设备的安全特点,划分以下三个等级,如表1。
文献[3~6]提出的方案只满足最低一种安全级别,在可信移动网关的高安全性的要求下,需要满足更高的要求。虽然文献[7]提出的方案满足安全级别2,但是TrustZone技术在实现上暴露出安全性问题,Dan Rosenberg在文献[8]中指出高通晓龙系列中所有依靠TrustZone安全技术Android设备都出现重大安全漏洞,系统安全机制被破坏。虽然高通公司及时发布通告解决此次漏洞,但是TrustZone技术的安全性能值得我们怀疑。因此本文提出基于TPM芯片和Android操作系统的移动可信网关解决方案,满足安全等级2完全满足移动物联网可信网关的安全要求。
表1 可信体系结构的安全特点
在移动物联网中的可信网关本文也计划选择搭载Android操作系统。由于Android操作系统可以通过Android NDK(Android native development kit)[9]技术调用C语言编写函数库,解决Java计算效率低的问题。
因此,可以构建基于Android操作系统的可信计算平台架构。Android可信计算平台整体架构如图2所示。
图2 Android可信计算平台整体架构Fig 2 Overall architecture of Android trusted computing platform
本设计平台由6个主要部分组成如图2所示。可信计算应用程序模块是为应用主体提供可信计算服务,其调用图2中协议算法、可信芯片API和计算库API中的函数库编写可信计算应用程序。协议算法使用JAVA语言编写,为可信计算应用程序模块提供算法支持。可信芯片API同样使用JAVA编写,封装TPM芯片中的密码学函数库。计算库API是用JAVA编程,将计算API中的算法利用NDK技术封装成函数接口。
计算API利用Android NDK技术,将需要大量运算的算法程序用C语言编写。
硬件平台是由ARM处理器核心板为主体,外设多个模块,包括TPM可信计算芯片、USIM卡模块、WiFi模块等等。TPM芯片通过I2C总线和ARM处理器的处理芯片相连,然后提供可信芯片相关可信服务。
3.1 可信信任链
TPM芯片依据TPM规范生产的安全芯片,含有密码运算器和安全存储区域。可以实现的功能包括:数字摘要、签名与认证、密钥生成及随机数生成、存储保护和安全审计,并具有可信校验启动功能。可信信任链建立是嵌入式设备可信改造的重要步骤,可信平台的可信传递源于可信信任链的建立,可信信任链的建立。可信信任链建立过程如图3所示。
图3 信任链建立过程Fig 3 Establishment process of trust chain
图3显示的是可信根信任链建立过程,CRTM(Core Root of Trust Measurement)是可信量度根,也是信任链的开始点。网关硬件平台上电后,最先加载CRTM,通过校验平台配置注册表(platform configuration register,PCR)中的校验值验证Bootloader中Stage1代码段完整性和安全性。Stage1是靠近硬件常用汇编部分实现,用以执行简单的硬件初始化与配置,包括设置嵌入式CPU 中若干控制寄存器、设置内存和堆栈、变量的初始化及执行方式等。接下来验证过程同样通过PCR中的校验值一级级校验代码段,确保Android操作系统可信启动。
3.2 MTM
MTM是2006年TCG[3]规范提出的,为可信计算应用到移动设备领域提供理论指导。MTM规范是基于TPM VI.2规范上构建的,可以将MTM看成是更适合移动平台的特殊TPM[4]。
在移动网关中如何实现移动可信模块是关键点之一,TCG标准[3]在文中只是描述MTM 需要满足的特性并没有给出具体的MTM的实现方法。由于网关的特性决定网关可以搭载大容量电池,故采用嵌入式TPM芯片结合使用已存在的软件库实现MTM是可行的方案。利用TPM芯片建立可信信任链可以保证MTM软件模块不被入侵篡改与破坏,从而确保MTM安全性。由于网关搭载的是Android操作系统,可以将所有C语言编写函数库都存储为动态链接库(SO文件),通过对SO文件的完整性校验实现对其的可信验证,在具体实施上可行。
3.3 安全性分析与方案对比
本文提出的可信移动网关解决方案与前述几种方案在几个重要的安全性上进行详细比较,如表2。
表2 方案对比分析
3.4 可信移动网关实现
本文提出了一种基于Android和TPM芯片的移动物联网网关可信平台设计,并对其各个模块的可行性进行了分析。在此架构下,可以认为移动平台经过验证后是可信的.且现有技术方案已可以满足可信计算平台的技术需求。
TPM芯片通过IIC总线与主控制器通信,本设计使用是基于ARM V7架构Cortex—A8应用处理器,使用是三星公司推出的S5PV210处理器。本架构方式实施过程使用的是ATMEL型号为AT97SC3205T的TPM芯片,是ATMEL出品最新的TPM芯片。AT97SC3205T与ARM处理器通信通过I2C总线,故需要在底板上焊接一个5针的插槽。
图4 AT97SC3205T外接插槽Fig 4 AT97SC3205T external slot
在本设计中AT97SC3205T的外接模块暂时使用Atmel的TPM开发板Atmel TPM I2C/SPI Development Kit代替。
同时在网关底板上添加ZigBee芯片CC2530的接口,使用UART串口与核心板通信。可信网关实物图如图5所示。
图5 可信嵌入式网关实物图Fig 5 Physical map of trusted embedded gateway
3.5 设计验证与结果分析
本设计采用Uboot作为Bootloader,内核版本为Android 的Linux Kernel 3.0.8,主要验证TPM安全芯片在本设计中工作状态。具体的验证步骤如下:
1)在可信改造Uboot之后,网关平台在启动的时候向TPM发送TPM_StartUP指令,通过返回的值判断TPM是否可以正常工作。TPM_Startup 命令就是启动TPM。这个命令必须在通上电源或者复位后执行。TPM_Startup在复位或者上电后只能执行一次,TPM_SUCCESS返回0x 00000000,如图6。
图6 TPM_Startup命令Fig 6 TPM_Startup command
2)通过TPM芯片实现可信信任链的建立,通过SHA—1操作将结果扩展到PCR中,选择一个PCR存储散列值。在校验启动中向TPM发送0X00C10000000A0000000A返回的值如图7所示。
图7 PCR1读取内容Fig 7 PCR1 read-out content
上述实验验证说明本设计的核心组件TPM可信启动与校验在本网关工作平台上是正常工作的。在可信改造过后需要实现Android的计算机库API和计算机接口。
就上述移动物联网可信网关的设计,本文作者已经完成了基于Android系统的ZigBee网关的开发设计工作。
TPM可信根启动部分也已经测试通过,现在着手实现基于Android的计算库API和计算函数库的实现。针对上述可信平台架构,本文作者已着手实现基于此架构,将现有嵌入式设备实现可信计算,然后结合Android系统实现移动可信网关平台,保护移动物联网内的信息安全。
[1] 杨 静,辛 宇,谢志强,面向物联网传感器事件监测的双向反馈系统[J].计算机学报,2013,36(3):506-520.
[2] 赵志军,沈 强,唐 辉,等. 物联网架构和智能信息处理理论与关键技术[J].计算机科学,2011,38(8):1-8.
[3] Zhang Xinwen,Aclicmez O,Seifert J P.A trusted mobile phone reference architecture via secure kernel[C]∥Proceedings of the 2007 ACM Workshop on Sealable Trusted Computing,Alexan-dria,Virginia,USA:ACM,2007:7-14.
[4] Winter J.Trusted computing building blocks for embedded Linux based ARM trustzone platforms[C]∥Proceedings of the 3rd ACM Workshop on Scalable Trusted Computing,Alexandria,Virginia,USA:ACM,2008:21-30.
[5] Dietrich K.An integrated architecture for trusted computing for java enabled embedded devices[C]∥Proceedings of the 2007 ACM Workshop on Scalable Trusted Computing,Alexandria,Virginia,USA:ACM,2007:2-6.
[6] Dietrich K.Anonymous credentials for java enabled platfoorm:A performance evaluation[C]∥Proceedings of INTRUST 2010,Oxford,UK:Springer-Verlag,2010:88-103.
[7] 杨 健,汪海航,Wong Flli Fui,等.一个面向智能电话的移动可信平台设计[J].计算机科学,2012,39(8):20-25.
[8] Dan Rosenberg. QSEE trustZone kernel integer overow vulnerability[DB/OL].[2014—07—03].http:∥forum.xda-developers.com/galaxysatt/general/qsee-trustzone-kernel-integer-overflowt-2840415;2014;7:1-4.
[9] Google.AndroidNDK [DB/OL].[2015—08—03].http:∥deve-loper.android.com/sdk/ndk/inedx.html.
Design of embedded mobile trusted gateway based on Android system*
CAI Yi-xin, ZHU Jia-gang
(College of IoT Engineering,Jiangnan University,Wuxi 214000,China)
In the past,design of mobile trusted platform is based on terminal design,which is not suitable for mobile IoT,an embedded trusted mobile gateway based on Android system is proposed,which designs a new trusted module combined with the characteristics of trusted platform module(TPM) chip and Android system.In this design,hardware and software system architectures and the detail function of each module in Android system are presented.According to the design trused transformation platform of Cortex—A8 S5PV210 by the chip of Atmel AT97SC3205T,and develop gateway application program on Android system.According to this platform,ZigBee application program is developed this design has high commercial value.
Android system; trusted computing; trusted platform module(TPM) chip
2015—11—09
江苏省产学研资助项目(BY2013015—40)
10.13873/J.1000—9787(2016)10—0105—04
TP 368.1
A
1000—9787(2016)10—0105—04
蔡一新(1991-),男,安徽广德人,硕士研究生,主要研究方向为嵌入式、信息安全。