作者:辛阳 杨义先
摘要:在分析移动终端应用、安全威胁及开放的终端内部数据资源的基础上,从保护移动终端信息安全的角度出发,首次提出了移动终端安全模块的概念,并给出了安全模块与基带芯片和上位机的相对关系图。
就安全模块的文件逻辑模型、软件模块及硬件模型进行了概要设计和研究。
要害词:移动终端安全模块基带芯片会话密钥
随着移动通信业务的发展、普及,尤其是3G时代的到来,移动终端逐渐演变成集通话、身份代表、信息获取、电子支付等为一体的手持终端工具。伴随着移动终端用户规模的迅速扩大和诸多人员对移动终端技术的了解,移动终端正面临着越来越多的安全威胁。下面列举几种典型的安全威胁。
(1)移动终端身份序列号(例如GSM中的IMEI)的删除和篡改等
由于IMEI号可用来统计用户的终端类型、限制被盗终端在移动网内的重新使用等用途,所以IMEI号应该具有一定的保护措施。
(2)终端操作系统非法修改和刷新等
由于非法操作系统可能会影响用户使用并干扰正常网络运行,因此操作系统应当阻止一切非法的修改和刷新等。
(3)个人隐私数据(例如银行账号、密码口令等)的非法读取访问等
移动终端内部可能会存有用户的电话簿、短信、银行账号、口令等用户隐私信息,假如这些信息被他人非法获得,很可能给用户造成直接的经济损失。
(4)病毒和恶意代码的破坏
病毒和恶意代码很可能会破坏移动终端的正常使用,还可能会将用户的隐私信息不知不觉地传给他人。
(5)移动终端被盗等
目前移动终端被盗现象极其严重,终端被盗给用户带来直接经济损失,更严重的是用户隐私数据的泄漏等。
总之,移动终端存在的安全隐患可能会威胁到个人隐私、私有财产甚于国家安全。尽管移动终端面临着许多的安全威胁,但目前其安全问题仍是整个移动运营网络中的一个安全盲点。
1 开放的移动终端内部数据资源
图1 是移动终端内部结构的典型模型
一般,目前所有的敏感信息包括开关机口令、敏感电话簿、机密短信、证书、用户私钥等信息都存放在片外存储器中,另外用于调试访问片内资源的JTAG口等是开放的(目前没有有效的方式封闭JTAG口)。所以攻击者很轻易通过JTAG口等调试端口获得DBB内部或者Flash中的存储信息。甚于很多终端的JTAG口直接连在终端外边,攻击者连机壳等都不必打开,就可以获得内部资源。攻击者当然也可以将Flash芯片取下并采用专门的设备将内部数据读出。
基于以上介绍,出于为移动终端内部敏感数据资源提供集中的安全保护措施角度考虑,提出了安全模块的概念。
2 安全模块及与其他相关部分的关系
2.1安全模块定义
为移动终端所有或大部分敏感信息提供集中存放和运算的芯片模块,这里称作安全模块。
下面列举一些安全模块的典型作用:
·操作系统、身份序列号及其他信息的完整性保护等;
·敏感信息的安全存储包括银行账号信息、银行密码信息、CA证书、密钥等;
·要害数据的冗灾备份,如系统的各种配置信息等;
·机卡互锁等手机防盗技术的实施等;
·密码算法的存储和运算等。
2.2安全模块与基带芯片及上位机的关系
图2是安全模块与其他部分的关系图。安全模块与其他部分信息交互的端口,一个是安全模块与上位机的接口——工作端口,一个是安全模块与上位机的接口——调试端口,其中工作端口用于移动终端正常工作时,安全模块与基带芯片进行敏感信息的传送。调试端口用于移动终端生产甚至维修时安全模块预设数据和个性化数据的装入等。
为了防止安全模块与基带芯片之间敏感数据传送过程中的被窃取或者搭线窃听。安全模块与基带芯片之间的数据应该密文传送。传输中的会话密钥,可以采用现有的密钥协商协议临时生成,例如Diff-Hellman等。
另外,安全模块对上位机应当具有认证功能,以防止非法主机对安全模块的非法逻辑操作。
2.3基带芯片部分说明
基带芯片中有一部分核心代码,本部分代码是安全的。这部分代码的作用是与安全模块会话密钥的协商并及向移动终端上层应用安全模块进行数据交互的应用程序端口。
3 安全模块的文件逻辑模型和软件逻辑模块
3.1文件逻辑模型
根据安全模块的功能,提出一种典型的安全模块文件逻辑模型,如图3所示。
从图3可以看出,文件按分层结构组织,共有三种类型。操作系统可以处理和访问不同文件中的数据。
·主文件(MF—MasterFile)
主文件代表一个功能大类,只有文件头,没有文件体。其下可以存放针对某一应用领域的各种安全相关参数和数据。
·目录文件(DF—DirectoryFile)
目录文件是一个或多个文件的逻辑分组,目录文件只有文件头,没有文件体。在图3的文件逻辑模型中,DFPpassD目录包括开关机口令文件EFOnOFF和文件资源访问口令·EFFile等;DFKEY目录下包括CA证书文件EFCa和私钥文件EF PRiv等;DFMAC目录包括操作系统MAC文件Efos和数据MAC文件EFData等;DFAdnSms目录包括机密电话簿文件EFAdn和EFSms等。
·基于数据文件(EF—ElementaryFile)
一个基本数据文件由文件头和文件体组成。
可以参照GSM11.11的相关内容进行文件格式的具体设计。
3.2软件逻辑模块
·初始化程序模块:初始化安全模块寄存器,配置各种参数。
·MAC认证模块:实现手机操作系统和数据的完整性认证。
·与基带芯片通信的命令解释模块:实现与基带芯片的命令交互,包括存储数据、读取数据等功能。
·基带芯片认证和密钥协商模块:对基带芯片进行认证,并协商出安全模块与基带芯片之间的会话密钥。
·上位机认证与通信模块:认证上位机的合法性并接受上位机的指令进行自身数据和代码的更新、升级等。
·自毁数据模块:对非法逻辑操作进行审计,并在达到一事实上阈值时删除安全模块的各种敏感数据达到自毁的效果。
·其他根据安全需求需要考虑的功能模块。
4 安全模块的硬件模型
安全模块以微处理为核心。该芯片必须能够反抗芯片的各种威胁,如开冒后的探针物理探测、边信道(例如DPA、SPA)攻击等,另外芯片体积要小,功耗要少。图4是一种典型的安全模块硬件模型图。
5 移动终端的安全启动过程
安全模块与基带芯片的启动工作流程如图5和图6所示。
加电后,安全模块与基带芯片处于主从工作模式,安全模块为主,基带芯片为从。安全模块首先认证基带芯片的合法性以防止基带芯片被替换或假冒。若基带芯片通过合法性检查,则安全模块与基带芯片开始协商会话密码;之后安全模块向基带芯片发送索取操作系统数据命令,基带芯惩收到命令后将操作系统等数据传送给安全模块,安全模块计算MAC值是否正确,若都正确,安全模块就将自身的工作模式切换到从模式,让基带芯片处于主模式;之后,安全模块处于接受基带芯片命令并向外传送敏感信息的状态。
基带芯片在加电后,通过内部的安全代码模块接收安全模块的认证请求,并与安全模块协商会话密钥,之后将操作系统代码等信息传给安全模块以接收安全模块的完整性检查,并等待安全模块控制权的移交。当安全模块所有检查通过后,安全模块将控制权交给基带芯片以实现基带芯片的完全启动。
安全性分析:系统首先从安全模块启动,而且安全模块和基带芯片处于主从工作状态。当安全模块没有通过对基带芯片的认证,或者操作系统等数据的MAC结果不正确时,安全模块就会拒绝与基带芯片协商会话密钥,同时拒绝将敏感信息传送出去。在这种情况下,假冒的基带芯片有可能会继续启动并达到一种稳定的工作状态,但攻击者仍无法获得安全模块中的敏感数据,与笔者安全模块设计的初衷还是一致的。
安全模块的思想稍加改造就可以用在有类似安全需求的其它电子设备中,因此安全模块在设计时,通用性尽量强一些,以满足在多种领域中的应用;同时安全模块尺寸不宜过大,以节省芯片生产成本和移动终端内部宝贵的可用空间。