认证技术及其在移动通信系统中的应用
扫描二维码
随时随地手机看文章
从大的方面说,通信领域需要解决的核心问题有两个,即所谓可靠性问题和有效性问题。任何一种技术的产生或者协议的制定都是紧紧围绕这两点的。以计算机通信为例,根据ISO(国际标准化组织)所定义的OSI(开放系统互连)模型,将其功能划分为相对独立的七个层次。而在每一层次,无论是链路层、网络层还是传输层,都根据具体需要采取了相应的技术和协议来解决可靠性和有效性的问题。安全性是可靠性问题的一个重要方面。在很多情况下不仅仅要求信息在信道上被准确无误地传输,而且还要求能够确认对方的身份,并且设法将通信内容的可知性限制在一定的范围内。认证技术和加密技术可以满足上述需要。
1 认证的理论和技术
认证主要包括用户身份认证和信息认证两个方面。前者用于证明或否认通信实体所宣称的身份,后者用于对通信信息进行完整性检查并提供发送方的不可抵赖性。在某些情况下,信息认证甚至比信息保密更为重要[1],因为有时主动攻击的威胁远大于被动攻击。下面分别对两种认证的理论和技术进行讨论,其默认前提条件是通信双方已经就加密算法和所用密钥达成了一致。
认证技术及其在移动通信系统中的应用
1.1 身份认证
身份认证的方法有口令匹配法、基于智能卡的身份认证和生物特征认证法。下面重点研究基于共享密钥的身份认证技术。这种认证技术的原理是验证通信双方是否拥有相同的密钥,常用的协议形式是询问/响应模式。认证过程如图1所示,过程描述如下:
(a)首先甲方选择一个随机数R1,并将它发送给乙方;
(b)乙方收到R1后使用既定的算法对它进行加密,同时也选择一个随机数R2,然后将加密结果E{K,R1}和R2发送给甲方;
(c)甲方使用密钥K对E{K,R1}进行解密得到R1’,将R1’与R1进行比较。如果相等,使用K对R2进行加密,并将加密结果E{K,R2}发送给乙方;否则,甲方对乙方的认证以失败结束;
(d)乙方使用K对E{K,R2}进行解密得到R2’,将R2与R2’进行比较,如果相等,则甲方就通过了乙方的认证;否则,乙方对甲方的认证失败。
显然,上述过程完成了双向认证,既包括甲方对乙方的认证,也包括乙方对甲方的认证。只有两次认证都成功时,整个认证结果才是成功的。
根据使用的加密算法的不同,基于密钥的身份认证又可分为秘密密钥加密认证和公开密钥加密认证[2]。也可以采用消息摘要进行身份认证,过程如图2所示,说明如下:
(a)甲方生成一个时间戳1,然后将它附在密钥之后,计算联合消息摘要MD{密钥 || 时间戳1},将时间戳1和MD{密钥 || 时间戳1}发送给乙方;
(b)乙方将甲方的时间戳1附在自己的密钥之后计算联合消息摘要,并将结果同MD{密钥 || 时间戳1}进行比较。若结果不一致,则认证失败;若结果一致,则甲方就通过了乙方的认证。乙方同样选择一个时间戳2,把它放在密钥之后计算联合消息摘要 MD{密钥 || 时间戳2},并将时间戳2和联合消息摘要MD{密钥 || 时间戳2}一起发给甲方;
(c)甲方同样计算一个联合消息摘要,然后将它与MD{密钥 || 时间戳2}进行比较,完成对乙方的认证。
这种方法比对随机数加密的方法具有更高的安全性,可以有效抵御重放攻击。
认证技术及其在移动通信系统中的应用
1.2 信息认证
信息认证检测的内容包括[3]:证实信息的发方和收方;判断信息的内容是否完整,是否被篡改;通过序列号或时间戳来判断信息的新鲜度。信息认证的基本方法有两种,一种是采用消息认证码MAC(Message Authentication Code);另一种是采用消息检测码MDC(Message Detection Code)。
1.2.1 采用消息认证码的信息认证
MAC认证过程如图3所示。
认证技术及其在移动通信系统中的应用
(1) 甲方利用带有秘密密钥的单向散列函数将要发送的消息变换成一个固定比特长度的消息认证码,然后将消息认证码附在待发送的消息后发送给乙方;
(2) 乙方使用单向散列函数对消息进行运算,同样得到一个认证码,将该码与收到的认证码作比较,若相等则消息通过认证,否则就认为消息在传输过程中出现问题。
乙方向甲方发送消息时操作同上。为了防止重放攻击,实际的协议中常采用序列号或者时间戳机制来指示当前消息的新鲜度。
1.2.2 采用消息检测码的信息认证
与采用消息认证码的信息认证不同,MDC利用不带密钥的散列函数将要传送的消息变换成固定长度的消息检测码,附在消息后面一起传送。过程与1.2.1类似,此处不再赘述。
1.2.3 数字签名和不可抵赖性
公钥加密算法可以提供数字签名(Digital Signatures)的功能。但对于较长的消息,计算数字签名很麻烦,而计算该消息摘要的数字签名则相对简单得多。因此,可以将数字签名与消息摘要相结合进行认证,此时数字签名可以提供不可抵赖的安全功能[4]。
2 移动通信系统中的认证机制
在设计移动通信系统的认证协议时,针对无线网络的特点,主要考虑三个因素[5]:移动设备运算能力的局限性;空中接口带宽的受限性;用户身份和位置信息的保密性。实际上,这些要求也就是3GPP和3GPP2等国际组织制定相关安全标准的重要依据,目前的认证算法均采用速度较快的对称算法,在空中接口传输的认证参数长度都较小,采用TMSI提供用户身份的保密性。下面介绍几种实用的移动通信系统所采用的认证机制。
2.1 GSM和UMTS采用的认证机制
2.1.1 GSM的认证机制
GSM系统的身份认证思路是:网络侧验证用户是否与AUC(认证中心)持有相同的认证密钥Ki。其身份认证过程[6]如图4所示。
认证技术及其在移动通信系统中的应用
显而易见,GSM系统的身份认证是不完整的,它只支持网络对用户的认证,不支持用户对网络的认证。正如文献[7]所指出的,单向认证容易受到伪装基站及中间人攻击。此外,GSM系统没有提供消息认证的功能。
2.1.2 UMTS的认证机制
针对GSM系统认证机制存在的问题,UMTS系统采用了新的认证机制,该机制是对GSM系统的认证机制的继承和增强。其增强措施[8]包括:增加了用户对网络的认证,从而实现了双向认证;增加了用于信息认证的算法和密钥IK;认证向量增加为五元组;认证参数AUTH中引入了序列号SQN,保证了认证参数的新鲜度,可以有效防止重放攻击;增加了匿名密钥AK,用来隐藏序列号SQN,进而提供身份和位置的保密性;提供了安全性更高的认证算法。UMTS的认证过程[9]如图5所示。2.2 CDMA2000采用的认证机制
CDMA2000系统支持的认证机制有两套,一套是基于IS-95的第二代认证机制;另一套是采用3GPP的AKA协议的第三代认证机制。
认证技术及其在移动通信系统中的应用
2.2.1 基于IS-95的认证机制
基于IS-95的认证机制的基本思路是:验证移动终端与访问网络之间是否拥有相同的密钥A-key。该机制包括普通-查询响应、独特-查询响应、SSD更新、参数更新等过程。其认证算法采用标准化的CAVE算法。详细过程请参见3GPP2空中接口规范C.S0005。表1给出了认证过程所涉及的主要参数。
认证技术及其在移动通信系统中的应用
与GSM系统类似,基于IS-95的认证机制中也只有网络对用户的认证,并且同样不支持信息认证。
2.2.2 3G系统的认证机制
为了提高认证的安全性和系统的互操作性,3GPP2决定在第三代CDMA2000系统中采用3GPP的AKA机制。该机制的内容与2.1.2小节UMTS的认证机制相同。
身份认证与信息认证的主要区别在于:信息认证对时效性没有要求,而身份认证遵守相关协议,有时间要求;另外,信息认证中的消息本身具有意义,而身份认证中的消息通常不具有特定的含义。虽然与广泛应用的Schnorr、Kerberos等认证协议相比,限于终端的计算能力和空中接口的带宽,移动通信系统中的认证协议还略显简单,但对于空中接口而言这些机制有效地保证了空中链路的安全性。随着移动通信网络与现有因特网的逐步融合,身份认证的重点将由空中接口链路的安全性转移到访问基于移动IP的因特网资源和服务的安全性。另外,移动通信系统与Wi-Fi、WLAN等无线系统之间互联时的认证机制也是今后研究的热点。