张鹤鸣,鲁绍栋,廖蓉晖
(中国电子科技集团公司第三十研究所,四川 成都 610041)
IMS(IP Multimedia Subsystem)是3GPP组织在Release5版本标准中提出的支持IP多媒体业务的子系统。它基于SIP(Session Initiation Protocol,初始会话协议)体系完成呼叫控制,实现各种类型的多媒体业务的创建、管理和终结。IMS提供了业务融合的基础。目前,选择IMS成为未来固网、移动统一的核心网架构,已经是国际主要标准组织的共识。
IMS通过先进的IP承载网实现多业务的融合,形成了控制和承载相分离、业务和控制相分离的新一代软交换平台。这是以应用为导向的电信网络架构不断分离的结果。但是,由于IP网络的先天脆弱性和接入方式的多样性,使得基于IMS的下一代网络在网络架构、协议实现以及管理等方面都存在潜在的安全问题,导致了IMS安全性要求比传统运营商在独立网络上运营要高得多。
在IMS系统中,用户接入安全、业务控制实体安全和端到端用户媒体安全构成了IMS一体化安全防护框架的核心[1]。其中,认证鉴权作为用户接入安全的关键环节,是控制用户访问核心网络、提升系统安全性的重要手段。目前,常见的认证鉴权机制包括IMS AKA鉴权、SIP Digest鉴权、Early IMS鉴权和Pre-AKA鉴权等,其中具备双向认证的IMS AKA机制以其强度高、对接入网络无需求等特点被广泛认可。
但是,在实际应用过程中,IMS AKA机制依然存在着一些安全问题。例如,初始注册请求消息没有受到任何安全保护,攻击者可以轻易获取并篡改用户的注册信息;认证向量应答数据以明文形式发送到漫游网络容易被攻击者获取等。本文的第1节将简要描述IMS AKA鉴权机制,并分析其存在的不足;第2节将基于椭圆曲线理论,详细介绍改进的IMS AKA鉴权机制的原理、协议流程及安全性分析;最后,对全文进行总结。
AKA是广泛应用于3G无线网络的认证鉴权机制。IMS网络沿用了AKA机制的工作原理和核心算法,因此称之为IMS AKA鉴权机制。该机制基于SIP协议,采用“问/答”方式,实现用户终端和核心网络之间的双向认证和会话密钥的协商。
IMS AKA鉴权机制主要基于一个共享认证密钥和一个序列号SQN实现,流程涉及UE、P-CSCF、I-CSCF、S-CSCF和HSS。其中,UE与HSS共享认证密钥,HSS作为鉴权中心生成认证向量,S-CSCF负责以HSS的鉴权向量为基准执行鉴权决策过程。认证鉴权结束后,在UE和P-CSCF之间建立IPSec安全关联,为后续SIP信令的交互提供安全保护。
实际应用过程中,IMS AKA鉴权机制的一些安全问题逐渐暴露,成为困扰IMS网络部署的安全隐患。
(1)UE的初始REGISTER消息是在IPSec安全关联未建立的情况下发出的,消息没有受到任何安全保护,攻击者可以轻易获取并篡改用户的注册信息,同时可以利用窃取到的用户私有身份信息假冒合法用户与服务提供方进行认证协商;
(2)由于IMS AKA鉴权机制要求UE与HSS长期共享一个认证密钥,增加了该共享密钥被泄漏的风险,一旦被非法人员窃取,将对IMS用户造成严重损失;
(3)HSS设备的认证向量数据,同样是在IPSec安全关联未建立的情况下以明文形式通过漫游网络返回至UE,增加了被攻击的可能性。
ECC(椭圆曲线算法)是基于椭圆曲线离散对数问题构建的公钥密码体系,其数学基础是利用有限域上椭圆曲线离散对数的计算困难性。在密钥长度相当的情况下,椭圆曲线离散对数的计算复杂度是指数级的。因此,ECC被广泛认为是在给定密钥长度情况下,最强大的非对称算法。
表1 协议涉及的符号说明
在基于ECC实现的非对称公钥密码体制中,密钥分为私钥和公钥。在有限域Fp上,已知公共基点 G(x,y)和椭圆曲线 E(a,b)∶y2=(x3+ax+b)mod p,其中a,b,x,y∈Fp,n为G的阶,取任意小于n的整数作为私钥r,对应公钥R=r*G。
ECC具有复合特性,即任意多对私钥之和与对应的公钥之和构成新的公、私钥对。假设私钥之和为(r1+r2+…+rm)mod n=r,对应公钥之和为R1+R2+…+Rm=R,则r和R将形成新的公、私钥对[2]。
在基于ECC的IMS AKA鉴权过程中,将终端设备UE产生的临时公/私钥对记为TPKU/TSKU,HSS产生的临时公私钥对记为TPKH/TSKH,根据ECC的点乘特性,则有TPKU*TPKH=TSKU*TSKH。本方案就是以临时公私钥对的点乘结果做为共享因子而实现的。
图1 基于ECC的IMS AKA鉴权流程
基于ECC实现的改进型IMS AKA鉴权机制,执行两次注册过程。其中,初始的REGISTER消息仅进行完整性保护,二次注册的REGISTER消息同时进行了完整性和机密性保护。为了区分注册消息,将在REGISTER消息的头部扩展Flag域。当Flag值为False时,表示该注册消息仅执行了完整性保护;当Flag为True时,表示该注册消息同时完成了机密性和完整性保护。
协议具体的流程如下。
(1)UE向IMS网络进行注册
UE首先产生一组临时公私钥对TPKU/TSKU,然后将TPKU放入初始注册消息REGISTER中。UE将Flag域置为False后,计算REGISTER消息的摘要值CHK,之后将REGISTER消息发送至P-CSCF。
(2)初始注册消息的转发
初始注册消息REGISTER到达P-CSCF后,首先根据Flag标识进行相应校验。如果校验通过,则转发至I-CSCF,I-CSCF通过向HSS请求分配S-CSCF,将REGISTER消息发送至S-CSCF。当S-CSCF收到REGISTER消息后,首先检查用户是否已经被认证,如果没有,则S-CSCF向HSS发送多媒体接入认证请求。在请求认证消息中,将TPKU送至HSS。
(3)HSS计算认证向量
HSS在收到多媒体接入认证请求后,首先获取并验证UE的临时公钥TPKU。如果校验通过,则HSS自身也产生一组临时公私钥对TPKH/TSKH,同时产生最新的序列号SQN和一组随机数RAND。然后,运行ECC算法机制,结合AMF(认证与密钥管理域)计算认证向量AV。
AV的计算过程如下[3]:
最后,HSS将AV通过多媒体认证应答发送至S-CSCF。
(4)S-CSCF对多媒体认证应答的处理
S-CSCF从AV中得到用户认证所需的安全参数XRES,S-CSCF将剔除XRES的AV包含在401应答消息中,通过I-CSCF转发至P-CSCF。
(5)P-CSCF对401消息的处理
P-CSCF接收到401应答消息后,将完整性密钥IK和机密性密钥CK保存下来,同时分别用CK、IK对AUTN进行机密性和完整性保护,记为CK/IK(AUTN), 然 后 P-CSCF将 TPKH、RAND 和CK/IK(AUTN)通过401消息转发至UE。
(6)UE对认证数据的处理
接收到P-CSCF返回的401应答消息后,UE通过以下方式获得共同的临时认证密钥:
UE通过CK/IK对CK/IK(AUTN)完成解密并执行校验。校验通过后,UE成功获得网络认证令牌AUTN。如果AUTN认证成功,网络就被认证通过。至此,UE和S-CSCF分别获取了共享密钥CK/IK,可以进行后续的数据加密保护。需要说明的是,UE将会保存CK/IK,直到完成下一次的IMS AKA鉴权。
(7)IMS网络认证用户身份
UE将认证挑战应答RES置入二次注册的REGISTER消息中,利用CK/IK进行保护后,将Flag域置为Ture,发送至P-CSCF。
P-CSCF首先根据Flag标识执行解密、校验操作,如果校验通过,则转发至I-CSCF。I-CSCF执行重新发现过程,然后将REGISTER消息转发给S-CSCF。当S-CSCF接收到REGISTER消息后,从认证头域中取出认证应答参数RES,将其和保存在S-CSCF中的认证应答XRES进行比较。如果一致,S-CSCF认证用户身份成功,允许用户接入网络,向UE发送200 OK消息。
至此,基于ECC的改进型IMS AKA鉴权机制顺利完成UE与S-CSCF之间的双向认证。
本方案针对IMS AKA鉴权机制的不足而设计,不仅继承了原机制双向认证的优点,而且极大地提升了安全性,具体表现在以下两个方面。
(1)对初始注册消息REGISTER进行摘要计算,可有效防止攻击者的篡改行为;对后续所有的SIP信令,利用CK/IK进行机密性、完整性保护,有效阻止了攻击者的窃取与篡改。
(2)利用ECC算法的复合特性,通过临时公私钥对点乘获取临时共享因子,使得UE和S-CSCF之间不要求共享认证密钥,在提升网络接入安全强度的同时,有效简化了密钥管理。
本文通过对IMS AKA鉴权机制的安全性进行分析,基于椭圆曲线理论研究了一套改进型的IMS AKA鉴权机制。该机制利用ECC算法的复合特性,通过临时公私钥对点乘获取共享因子,摆脱了AKA机制共享认证密钥的设计缺陷,在简化密钥管理的同时,可有效保障IMS网络的用户接入安全。