首页 >> 数据通信 >> 技术 >> 正文
基于AKA的IMS接入认证机制
2008年1月18日 11:19    通信世界网    评论()    
作 者:周星 卢美莲 陶徐

    如果UE确认SQN在正确的范围之内,则接着计算保密性密钥CK和完整性密钥IK。

    至此,UE和S-CSCF都知道了密钥对CK和IK,可以用于进行下面的数据加密。UE将会保存CK和IK,直到下一次成功执行了AKA过程。

    最后,UE在发往S-CSCF的第二个REGISTER请求中返回认证挑战应答RES。

    (5) 网络认证用户身份

    P-CSCF将这个携带认证应答的REGISTER消息转发给I-CSCF,I-CSCF重新查询HSS以发现S-CSCF,然后将REGISTER消息转发给S-CSCF。当S-CSCF接收到REGISTER消息之后,进行解析并从认证头域Authorization中取出相应的参数:

    如果Authorization头域中的response字段为空,再检查重同步参数字段auts是否为空:如果AUTS参数不为空,说明UE检查出了SQN同步失败,S-CSCF使用这个重同步参数AUTS重新向HSS请求认证数据,当下载认证数据成功后,再用新的认证向量重新向UE提问。如果AUTS参数也为空,说明S-CSCF的提问无效,S-CSCF选择下一个认证向量,重新用401消息进行提问。如果S-CSCF用完了所有的认证向量后,用户仍然无法确认网络身份,S-CSCF认为本次认证失败,放弃本次认证过程,并发送403Forbidden消息通知用户。

    如果Authorization头域中的response字段不为空,则S-CSCF取出其中的认证应答RES参数,并将其和保存在S-CSCF中的认证应答XRES相比较。如果一致,S-CSCF就认为用户回答提问正确,认证用户身份成功,允许用户接入网络,同时向UE回送200OK消息;如果不一致,S-CSCF就认为用户回答提问错误,认证用户身份失败,S-CSCF不允许用户接入网络,那么S-CSCF应该发送403Forbidden应答消息给UE,通知认证失败,并且放弃本次认证过程。

    3  IMSAKA机制的安全性分析

    3.1IMSAKA机制实现的安全能力

    从上述对基于AKA的IMS接入认证机制的原理和实现过程的分析可以看出,IMS AKA机制实现了以下安全目标。

    (1) 用户和网络之间的双向认证

    S-CSCF对UE的认证是通过RES实现的:如果UE合法,它能够正确地计算出RES,且RES等于XRES;UE对S-CSCF的认证是通过MAC实现的:UE收到S-CSCF转发的MAC后,计算期望的消息认证码(XMAC),如果MAC和XMAC一致,则认证成功。

    (2) UE和P-CSCF之间的密钥协商分配

    P-CSCF收到的来自HSS的AV中包含了保密性密钥(CKHSS)和完整性密钥(IKHSS)。合法的用户在收到正确的RAND之后,能正确地产生CKUE和IKUE,且CKHSS等于CKUE,IKHSS等于IKUE。CK和IK用于其后的保密通信,而CK和IK并没有在空中接口中传输,确保了密钥的安全性。

    (3) UE与S-CSCF间密钥的新鲜性

    由于每次通信前的认证选择了不同的AV,保证了每次通信采用的CK和IK都是由不同的RAND计算得到的。而每次使用的MAC是由不断递增的SQN作为输入变量之一,从而确保了密钥的新鲜性,有效地防止了重放攻击。

    (4) 认证应答RES的安全

    当UE计算出认证应答RES之后,使用名为“AKAv1-MD5”的摘要算法(实际上就是一个单向的哈希函数)来计算RES的摘要,然后将该摘要发送到S-CSCF。S-CSCF也使用同样的方法计算出期望的认证应答(XRES)的摘要值,通过比较这两个摘要值是否一致来认证用户的身份。通过这样的方法,即使攻击者窃听到RES的值,但是由于摘要算法是单向的哈希函数,根本无法反推出RES的值,因此不能危害网络安全。

    由上面的分析,可以看到IMS AKA机制具有相当强大的安全能力来实现用户和服务网络之间的双向认证以及密钥协商,并且能够保证协商的保密性密钥和完整性密钥的新鲜性。因此,AKA机制在3G网络的接入认证机制的实现中得到了相当广泛的应用。

    3.2IMSAKA机制的安全隐患及解决方案

    在实际应用中,IMS AKA机制的一些安全漏洞渐渐暴露出来。下面将对IMS AKA机制在注册过程中存在的一些安全隐患及现有的解决方案进行介绍。

    (1) 虽然UE和P-CSCF之间可以通过AKA机制协商的安全性密钥对SIP信令进行加密性和完整性保护,但是初始注册请求REGISTER消息却是在安全密钥尚未协商的时候发送的,故该消息没有受到任何安全保护而且是用明文发送的,攻击者可以轻而易举地获取用户的注册信息,从而造成用户隐私泄密。

    SIP协议对此进行了安全扩展:对SIP消息取摘要值,并且由SIP消息携带这个摘要值一同发送。在接收端对收到的SIP消息计算摘要值,如果和原摘要值一致,说明这个SIP消息没有被修改过,受到了完整性保护。虽然即便是这样,还是不能杜绝攻击者窃听SIP消息,可是至少攻击者无法偷偷修改消息内容,这样对SIP消息的安全性能有一定程度的提高。

    (2) 向IMS网络注册时,至少需要发送两次REGISTER请求,用户与网络之间的SIP交互过于繁琐,并且SIP消息携带的认证头域(如Authorization头域和WWW-Authenticate头域)带有众多AKA参数,导致SIP消息长度大幅增加。由于网络带宽的限制,传输延迟将会十分明显,用户通过注册接入网络的耗时将会比较长,影响用户的使用感受。可以采用压缩SIP消息[9]的方法来在一定程度上改善服务质量,特别是在无线环境下能大大缩短呼叫建立的时间。

    (3) 在基于AKA的接入认证过程中,UE并没有对IMS核心网络的接入点P-CSCF进行身份认证,会给攻击者提供冒充中间人实施攻击的机会。参考文献[10]中提出的基于传输层安全协议(TLS)的IMS接入认证机制能对这一缺陷进行改进,但也仅仅是在理论阶段,还没有接受实际应用的考证。

    4  结束语

    IMS作为下一代网络的发展方向,作为移动网络和固定网络的融合平台,为用户提供端到端的IP多媒体业务,这种基于SIP的全IP的开放网络特性给IMS网络的安全带来了极大的挑战。如何保证用户安全地接入网络是整个IMS安全方案实施的第一步,只有实现安全的接入认证机制,才能保证IMS网络的可靠部署,进而走向商用。

    IMS AKA机制虽然被广泛地应用,但正如没有任何一种技术是十全十美的道理一样,IMS AKA机制本身也存在一些不太合理的地方,目前也有许多的组织和个人对IMS AKA机制提出了许多增强和完善的建议,但除了SIP的安全扩展机制以外,还没有哪一种改进方案被标准化采用。但无疑正是这种不断的推陈出新,使得网络的安全性越来越高。IMS AKA机制中仍有一些有待改进的开放性问题,希望在以后的研究工作中能对其进行改进:

    (1) 通过使用序列号,用户可以保证认证信息(如RAND和AUTN)是没有被攻击者或者是被服务网络使用过的。服务网络通过检验用户认证应答RES来判断用户是否知道他和网络之间的共享密钥,以此来认证用户身份。然而,用户却仅仅只能检测出认证向量是否由归属网络产生,也就是说,用户不能判断收到的认证向量是否是他请求服务的服务网络所申请的,因为任何服务网络都可以向归属网络请求认证向量。这种安全漏洞也会给攻击者提供机会。

    (2) SQN重同步的过程也并不很合理,因为只要UE检查出来SQN不在正常的范围之内,它就会发起重同步过程,而不关心SQN同步失败的真实原因。但是事实上即使序列号不在正确的范围内,也并不代表HSS中的计数器SQN_HN发生了同步失败,有可能是恶意的攻击者重放提问引起的。UE不关心真实的原因,不断进行重同步过程,这必然会加大服务网络和归属网络之间的通信负荷,严重延迟用户接入网络的时间,甚至最后无法接入网络,严重影响用户的使用感受。但是这个问题的改进可能要涉及到对IMS AKA机制的改进。本文主要研究安全接入认证机制,当实现用户的安全接入之后,如何建立IPSec SC的过程暂不涉及,将在以后的工作中进一步研究。

[1]  [2]  [3]  [4]  编 辑:张翀
关键字搜索:IMS  AKA  认证  
[ 本站暂时关闭评论 ]
 
  推 荐 新 闻
  技 术 动 态
  通 信 圈