基于智能卡的短消息端到端的安全通信机制
文章出处:http://www.nexussmartsolutions.com 作者:贾凡 杨义先 彭俊好 人气: 发表时间:2011年09月26日
0 引言
短消息( Short Message Service, SMS) 是GSM网络所提供的一种端到端的数据通信方式; 它可以是文本、语音或者是图片等信息。SMS 采用了存储转发机制, 即当手机用户发送一条SMS消息时, 这条消息并不是由接收者直接收到, 而是由用户所在网络的短消息中心先接收到, 然后短消息中心向接收者发送一条通知指令, 通知接收者从短消息中心下载消息。这种机制具有很好的方便性、灵活性, 使其很快成为手机用户一个重要的交流方式。
尽管短消息设计初衷是作为语音E-mail 的提示, 但它很快成为了个人和商业人群之间非常流行的通信方式 。目前很多地方开展了通过短信办理银行业务的服务, 或者发送与商业相关的信息。当发送银行账号、密码以及身份识别码等这些敏感信息时, 人们最担心的就是这些信息可能会被截获或是误发给一些诈骗此类信息的人。现有的GSM短消息通信所采用的消息格式是开放可预知的, 其源地址具有可伪造性 , 而且在整个传输过程中是明文的, 因此目前短信通信并非总是可信的。针对这些敏感应用, GSM用户应该能够选择一种保密通信来保证这些信息不被正确读取和伪造, 因此在手机端提供一种加密通信方法是必要的。
目前对短消息加密的实现主要有两种: ①基于终端和服务器之间的加密通信。它需要服务器配合实现, 而且在核心网内短信还是以明文传输, 仍存在被截获的风险。②端到端的加密通信。它需要在手机终端或卡上进行相应的设计, 实施的代价相对较小, 而且安全强度更高。本文给出了一种基于智能卡实现加密短信通信的方案, 具有与手机终端无关的特性和更好的实用性。
1 短消息通信网络结构
GSM短消息通信是通过信令通道传输数据的, 根据其发送和接收短消息可以分为移动起始( MO) 和移动终止( MT) 两种类型。其发送接收的过程可以描述为: 短消息发送方将MO短消息提交给短消息服务中心( SMSC) , 它负责在基站与SME间中继、储存或转发短消息; 移动台( MS) 到SMSC 的协议能传输MO 或MT的短消息, SMS 网关接收由SMSC 发送的短消息,向HLR 查询路由信息, 并将短消息传送给接收者所在基站的交换中心, 由其来完成短消息数据的交换建立。下面给出短消息通信的GSM网络结构。GSM标准中定义的点—点短消息服务使得短消息能在移动台和短消息服务中心之间传递。这些服务中心是通过称为SMC-GMSC 的特定的移动交换中心( MSC) 与GSM网络联系的, 如图1 所示。
图1 短消息通信体系结构
其中, VLR( Visitor Location Register) 是访问位置寄存器, 含有用户临时信息的数据库; HLR( Home Location Register) 是归属位置寄存器, 用于永久储存管理用户和服务记录的数据库, 由SMSC 产生。
短消息在GSM网络上传输, 网络本身没有提供相应的诸如互认证、端到端安全、不可否认性以及用户匿名等安全机制。因此目前短消息网络不满足安全通信的三个基本要求, 即信息的完整性、机密性和有效性。
2 加密算法与其在智能卡上的实现
上述的通信安全问题可以借助于信息加密技术来解决。目前信息加密多采用基于密钥的方法, 这类方法主要有对称密钥和非对密钥两种体制。
常见的对称密钥算法有AES、DES、3DES 和IDEA。对称密钥的特点是解密与加密密钥相同。这类算法具有加/ 解密速度快、运行时占用空间小等优点, 但是存在着密钥交换和密钥管理复杂等缺点。典型的非对称方法是RSA, 它基于整数分解原理, 采用了模数运算的方法。非对称方法的信息保密程度取决于求解指定数学问题的难度, 目前涉及有指数分解、离散对数问题等, 算法的破解难度与相应的所解数学问题难度成正比。与对称方法不同, 非对称方法同时采用私钥和公钥。公钥可以对所有用户公开, 发送方用公钥加密, 接收方用私钥解密。这种方法安全性高、密钥管理方便, 在商业系统中有广泛的应用前景。
SIM卡是在GSM用做承载用户识别信息的智能卡。智能卡是一种计算能力相对较弱的小设备, 它通常采用DES、3DES、RSA 等加/ 解密算法来提高系统安全性能。对于DES 和3DES对称密钥算法其主要是做简单的移位操作, 因此用普通智能卡就可以很好地实现。而在实现RSA 算法时要进行对运算速度要求很高的大指数模运算, 8 位CPU难以胜任。因此,在一些高安全性加密微控制器卡芯片中( 如AT90SC1616C) ,均设置有专用加/ 解密运算的协处理器CAU。图2 给出了一种带有协处理器的智能卡芯片结构图[ 3]。随着非对称密钥算法研究的深入和32 位CPU卡的推出, 在没有协处理器的智能卡上也可以很好地实现ECC 等公钥算法[ 4] 。
图2 具有协处理器的智能卡
利用智能卡上这些可实现的加密算法, 可以对智能卡的输入/ 输出数据进行加密以及相应的密钥协商。以下将对智能卡上的加密算法进行分析, 选择出适合端到端短信加密的算法。
3 基于智能卡的短消息安全机制设计
端到端的短消息安全通信机制要解决安全短消息的数据格式设计、基于智能卡的密钥协商机制、消息加密算法的选择以及通过智能卡对短消息编辑、加密、发送和接收的整个安全流程的设计。
3. 1 安全短消息数据包设计
短消息可以分为上行和下行短消息两种。其数据格式主要包括协议数据单元参数和用户数据两部分。在协议数据参数部分主要定义了短消息的类型、源地址、目的地址、协议标志、编码方式以及用户数据头等信息。其中TP-PID 域可以区分该短消息是手机接收还是SIM卡接收, TP-MT 标志可以区分上、下行短消息。用户数据部分最大可用长度为140 Bytes。由于短消息的传输协议数据单元的参数有其固定格式, 要实现安全短消息, 可以利用的空间只有用户数据的有效载荷部分。在这部分, 可以定义安全短消息的数据头和加密信息以及可选的数字摘要。其中安全短消息数据头定义了加密短消息的安全参数等信息, 应用程序按要求封装并根据数据头解读短消息。具体数据格式如图3 所示[ 5] 。
图3 安全短消息数据格式
其中, IEI 为信息单元标志, 用来标志命令包头和长度以及是否有后续消息。在命令包头中定义了一些安全相关的参数, 即安全参数标志( SPI) 、密钥标志( KIC) 、数字摘要等密钥标志( KID) 、防止重放攻击的计数器( CNTR) 等。安全数据部分为加密的短消息。其具体的格式如下:
3. 2 会话密钥协商协议
3. 2. 1 系统设计的指导原则
由于智能卡设备自身的特点, 如计算能力低、存储空间较小等, 在其上实现短信加密时必须要在安全强度、协议的安全性与效率之间有个折中。在选取加密算法和协议设计时需要考虑以下两点:
( 1) 智能卡设备的计算能力和有限的内存。公钥算法和加密算法的慎重选择是必要的。
( 2) 短消息的有效载荷。用户可用部分, 一般为140Bytes。因此协议设计必须尽可能高效。尽管有以上限制因素, 但是设计不能以安全为代价换取效率。安全机制必须能满足以下几个要求:
( 1) 安全;
( 2) 计算的复杂度低;
( 3) 能够实现密钥兑换;
( 4) 易于实现和使用。
3. 2. 2 密钥协商机制的算法选择
在文献[ 4] 中, 给出了关于RSA 和ECC 等公钥算法在8位智能卡上的加/ 解密性能分析, 如表1 所示。
表1 RSA 和ECC 的性能比较
可以看出, 在没有协处理卡上实现RSA 算法还是比较困难的, 但是ECC 在同等安全强度下, 在智能卡上的实现速度是很快的。可以利用椭圆加密算法来实现安全短消息的密钥协商机制, 但是在现有的网络下要大规模使用公钥算法来进行密钥协商, 必须布置移动PKI 设施。因此这类算法不适合用于现有的GSM安全短消息的密钥协商机制。
DH算法基于双方产生一个随机数作为自身的私钥, 将由该数生成的公钥发送给对方; 双方根据自身的私钥和对方发送的公钥就可以产生公共的会话密钥。其实现具有简单性、方便性。它在智能卡上的实现难度也较RSA 算法相对容易, 而且无须在现有的GSM网络中布置PKI。所以在该方案中选择DH算法作为密钥的协商算法。
3. 2. 3 基于DH算法的密钥协商协议及其安全性分析
密钥交换协议如图4 所示。
基于智能卡的DH 算法密钥协商机制, 要求在卡内预存一对公开的参数集T = { g, q} 。其中, q 是素数, g 是生成元, 满足: g mod q, g2 mod q, ....., gp-1 mod q 是各不相同的整数, 并且以某种排列方式组成了1 ~p - 1 的所有整数[ 6] 。
密钥x、y 的大小取决于素数q 的选取, 待发送公钥X、Y 也是小于q 的数。因此, q 的选取对于算法的性能有较大影响,长度越大算法的安全强度越高, 所占用户信息长度也越长。GSM用户A 与B 之间要进行一次安全短消息通信, 其密钥协议过程可以描述如下:
( 1) A 判断是否已有与B 通信的会话密钥Ks, 是否有效。如果有且有效可以发送加密短消息; 否则进行步骤( 2) 。
( 2) A 通过普通短信发送一个随机数给B。
( 3) B 响应回送一个随机数, 并附加此次产生密钥的有效期, 同时计算出会话密钥。
( 4) A 根据收到B 的随机数计算密钥, 设置有效期。
协议安全性分析如下:
( 1) 密钥的有效期:由于算法在协议实现中可以设置密钥的有效期以及仅在需要密钥时产生新的密钥。这在很大程度上减小了对密钥的分析攻击。
( 2) 中间人攻击:DH算法最大的风险就是容易受到中间人攻击: 一个主动的窃听者可能截取A 发给B 的消息以及B 发给A 的消息, 他用自己的消息替换这些消息, 并分别与A 和B 完成一个DH 密钥交换, 而且还维持了一种假相———A 和B 直接进行了通信。在协议末, A 实际上是与C 建立了一个秘密密钥, B 与C 建立了一个秘密密钥。当A 加密一个消息发送给B 时, C 能解密它而B 不能; 类似地, 当B 加密一个消息发送给A 时, C 能解密它而A 不能。如果A 和B 事前真的没有联系, 并因此没用别的方法相互验证对方的身份, 则很难防止各种假冒攻击。这种情况在安全短消息中有所缓解。因为在短消息通信的机制中, 在空口部分要做到消息源地址的假冒是非常难的。消息本身具有一定的认证和签名能力, 短消息的DH 密钥交换进行中间人攻击是困难的。
3. 3 短消息内容的加密
采用AES 算法作为短消息内容加密算法, 在同样的密钥长度下它具有较DES、3DES 算法更高的安全强度, 而且在现有的各种硬件平台( 32 位的x86、Alpha、PowerPC、8 位的Smart-Card、ASIC 等) 都有优秀的性能。它在具有协处理器的智能卡上实现加/ 解密速度也非常快。在9000 门的协处理、1 000 Hz的条件下, 其一次加密速度为32 ms, 解密速度为36 ms[ 6] 。因此, 笔者推荐使用AES算法实现短信内容加密。
3. 4 安全短消息操作流程( 图5)
对于基于智能卡加密短消息的发送与接收要解决两个问题:
( 1) 手机编写的短信如何提交给SIM卡, SIM将短信内容加密后提交给手机发送。
( 2) 手机收到短消息后, 如何判断是否是由SIM卡加密过的并交由SIM卡解密。
图4 DH密钥协商协议
图5 基于SIM卡的短消息处理流程
图5 中细箭头表示明文短消息, 粗箭头表示加密后的短消息。为了解决上述问题, 需要设计基于SIM卡短消息的加密处理流程机制: 利用STK卡生成一个加密短消息菜单, 当用户选中此菜单编写短消息时, SIM卡利用主动式命令接收键盘编辑的文字信息, 然后可利用SIM卡的主动式命令Send Message来发送加密后的短信。当接收端手机接收到此信息时, 会从消息的TPDU中的PID位判断出是交由SIM卡处理的消息还是手机终端处理的消息。若是SIM卡加密消息, 则自动转由SIM中相应应用程序来解析、提取短信内容, 然后利用主动式命令在手机终端显示。消息处理流程如图5 所示。整个短消息安全通信机制是在SIM卡上实现的, 只要该SIM支持OTA 功能, 就可以将该业务从服务器上下载。因此,很易于在现有的GSM网络布置实施。
4 结束语
基于SIM卡的短消息加密通信方案, 采用了DH密钥协商机制, 可以很好地解决现有GSM明文短消息传输所带来的安全风险; 同时还无须在网络侧布置PKI 设施, 而且对用户所使用的手机没有特殊要求, 可以通过OTA 技术在现有的STK 卡上实施。因此, 具有简单、易用、安全等特点。
作者简介:
贾凡( 1976- ) , 男, 博士研究生, 主要研究方向为移动通信安全、电信智能卡安全及P2P 网络、信任管理( fan. jia@ 126. com) ;
杨义先( 1961 - ) , 长江学者, 教授, 主要研究方向为现代密码学、计算机网络安全、信息处理;
彭俊好( 1973- ) , 男, 博士研究生, 主要研究方向为信任模型、网络安全、现代密码学.