一种移动通信系统的鉴权和密钥协商方法转让专利

申请号 : CN200810057761.5

文献号 : CN101511084B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 彭华熹刘利军张志红王建

申请人 : 中国移动通信集团公司大唐微电子技术有限公司

摘要 :

一种移动通信系统的鉴权和密钥协商方法,在进行双向鉴权时,网络侧和移动终端侧分别使用双方保存的根鉴权密钥K,以及双方相同的随机数RAND和长度为128位的序列号SQN生成临时密钥K*=fxK(RAND,SQN),并使用K*分别生成MAC和RES,进行网络侧和移动终端侧的双向鉴权;其中,fx为128位密钥长度的分组算法;K为fx算法函数所使用的密钥。采用本发明的一次一密的AKA增强鉴权方法可以很大程度上提高鉴权密钥被破译的难度,从而降低鉴权根密钥被破译的安全风险。

权利要求 :

1.一种移动通信系统的鉴权和密钥协商方法,其特征在于,在进行双向鉴权时,网络侧和移动终端侧分别使用双方保存的根鉴权密钥K,以及双方相同的随机数RAND和长度为* *

128位的序列号SQN生成临时密钥K =fxK(RAND,SQN),并使用K 分别生成消息鉴权码MAC和鉴权响应值RES,进行网络侧和移动终端侧的双向鉴权;

其中,fx为128位密钥长度的分组算法;K为fx算法函数所使用的密钥。

2.如权利要求1所述的方法,其特征在于,

3.如权利要求1或2所述的方法,其特征在于,网络侧和移动终端侧的所述双向鉴权操作包含如下步骤:A:接收到网络侧的VLR/SGSN发送的鉴权向量请求消息后,网络侧的HLR/AuC生成所述*RAND和K ;

*

B:HLR/AuC使用K 计算鉴权向量AV中的期望响应值XRES和包含所述MAC的鉴权令牌AUTN;并将AV发送给VLR/SGSN;

C:VLR/SGSN保存AV中的XRES,并将AV中的RAND和AUTN发送给对应的移动终端的USIM;

* * *

D:移动终端的USIM生成K,并使用K 验证AUTN中的MAC,验证成功后使用K 生成RES,并将RES发送给VLR/SGSN;

E:接收到RES后,VLR/SGSN将RES与保存的XRES进行比较,完成对USIM的鉴权。

4.如权利要求1或2所述的方法,其特征在于,所述SQN为SQNHE‖SQNHE‖SQNHE中的

128位;其中,所述SQNHE为网络侧的序列号。

5.如权利要求1或2所述的方法,其特征在于,在每次进行双向鉴权时,所述网络侧和*移动终端侧都使用与前次双向鉴权不同的RAND和SQN生成所述K。

6.如权利要求3所述的方法,其特征在于,所述AV中还包含:加密密钥CK和完整性密钥IK;

步骤B中,HLR/AuC还使用K*计算CK和IK;

步骤C中,VLR/SGSN还保存AV中的CK和IK;

步骤D中,移动终端的USIM还使用K*计算CK和IK。

7.如权利要求1所述的方法,其特征在于,所述分组算法为3DES或AES算法。

说明书 :

一种移动通信系统的鉴权和密钥协商方法

技术领域

[0001] 本发明涉及移动通信领域,尤其涉及一种移动通信系统的鉴权和密钥协商方法。 背景技术
[0002] 在第三代移动通信系统UMTS(Universal Mobile TelecommunicationsSystem,通用移动通讯系统)的接入鉴权过程中采用鉴权和密钥协商(Authentication and Key Agreement,简称AKA)机制,鉴权是由移动终端USIM(Universal Subscriber Identity Module,通用用户识别模块)卡、网络侧的VLR/SGSN(Visitor Location Register/Service GPRS Supporting Node,访问位置寄存器/通用无线分组业务服务支持节点)和HLR/AuC共同完成。终端侧的USIM卡与网络侧的HLR/AuC(Home Location Register/Authentication Center,归属位置寄存器/认证中心)共享鉴权密钥K,借助鉴权密钥K,终端侧USIM卡和网络侧可以进行相互认证。
[0003] 如图1所示,现有技术中的用户接入鉴权流程包含如下步骤:
[0004] 101:移动终端(Mobile Equipment,简称ME)发起网络接入、业务接入或位置更新等请求时,会触发网络侧的VLR/SGSN进行鉴权操作;
[0005] 上 述 请 求 消 息 中 包 含 用 于 标 识 用 户 身 份 的 IMSI(International MobileSubscriber Identifier,国际移动用户识别码)。
[0006] 102:VLR/SGSN向HLR/AuC发送鉴权向量请求消息,请求五元组鉴权向量AV,同时将IMSI传送给HLR/AuC;
[0007] 五元组鉴权向量AV中包括:随机数RAND,期望响应值XRES,加密密钥CK,完整性密钥IK和鉴权令牌AUTN。
[0008] 103:HLR/AuC生成随机数RAND,根据IMSI查找对应的鉴权密钥K,并根据鉴权密钥K生成五元组鉴权向量AV中的:期望响应值XRES,加密密钥CK,完整性密钥IK和鉴权令牌AUTN;
[0009] 其中,鉴权令牌AUTN由SQN(序列号),AMF(AuthenticationManagement Field,认证管理域)和MAC(Message Authentication Code,消息鉴权码)组成。 [0010] 图2是现有技术中HLR/AuC计算鉴权向量的方法示意图。具体描述如下: [0011] 103A:采用如下公式计算AUTN:
[0012] AK=f5K(RAND);
[0013] MAC=f1K(SQN HE||RAND||AMF);
[0014]
[0015] 上述 为异或运算符。
[0016] 103B:采用如下公式生成AV:
[0017] AV=RAND||XRES||CK||IK||AUTN;
[0018] XRES=f2K(RAND);
[0019] CK=f3K(RAND);
[0020] IK=f4K(RAND)。
[0021] 上 述 SQNHE为 网 络 侧 的 序 列 号;f1、f2、f3、f4、f5为 原 协 议 (3GPP TS33.102V7.1.0(2006-12)协议)规定的算法函数。
[0022] 104:HLR/AuC将生成的鉴权向量AV包含在鉴权向量响应消息中发送给VLR/SGSN;
[0023] 105:VLR/SGSN保存五元组鉴权向量AV中的期望响应值XRES、加密密钥CK和完整性密钥IK;
[0024] 106:VLR/SGSN将五元组鉴权向量AV中的随机数RAND和鉴权令牌AUTN包含在用户鉴权请求中发送给移动终端;
[0025] 107:移动终端将接收到的随机数RAND和鉴权令牌AUTN转发给USIM卡;USIM卡使用内部保存的鉴权密钥K验证AUTN的合法性和有效性;
[0026] 如果USIM卡通过了AUTN的认证(即USIM卡认为网络为合法网络,且SQNHE在正确范围),则USIM使用鉴权密钥K和随机数RAND生成鉴权响应值RES、加密密钥CK和完整性密钥IK;
[0027] 图3是现有技术中USIM计算并认证鉴权向量的方法示意图。具体描述如下: [0028] 107A:计算AK,验证网络侧序列号(SQNHE)的有效性;
[0029] AK=f5(K,RAND);
[0030] SQNHE=AK (SQNHE AK);
[0031] 107B:计算XMAC,并验证XMAC是否等于MAC;
[0032] XMAC=f1K(SQNHE||RAND||AMF);
[0033] 107C:计算RES,CK,IK;
[0034] RES=f2K(RAND);
[0035] CK=f3K(RAND);
[0036] IK=f4K(RAND)。
[0037] 108:移动终端向VLR/SGSN发送用户鉴权响应消息,该消息中包含鉴权响应值RES;
[0038] 109:VLR/SGSN比较接收到的鉴权响应值RES与保存的期望响应值XRES是否相等,如果相等,则网络侧认为USIM卡为合法用户,从而完成移动终端侧USIM卡和网络侧的双向认证过程(此为一个AKA正常鉴权流程,异常情况这里省略)。
[0039] 由上可知,USIM卡和HLP/AuC共享单一永久鉴权根密钥K,且每次鉴权认证时均由相同的鉴权根密钥K计算生成鉴权向量AV。
[0040] 在3GPP(3rd Generation Partnership Project,第三代合作伙伴计划)的LTE(Long Term Evolution,长期演进)网络中,用户接入鉴权继承了原有的UMTS AKA鉴权机制。其密钥管理体系采用分层结构,即鉴权根密钥K是永久根密钥,CK和IK是AuC和USIM卡在AKA认证过程中协商的一对密钥,而UE和LTE接入网及核心网进行加密和完整性保护的所有中间密钥 (包括Kasme,Knas,Kenb,Krrc,Kup等)均是通过CK和IK推演得到的。因此可以得出结论:鉴权根密钥K是LTE/SAE(System ArchitectureEvolution,系统架构演进)移动通信网络接入面和控制面的根密钥,它关乎整个移动通信系统的安全。 [0041] 无论UMTS还是LTE,这种鉴权根密钥始终保持不变的密钥管理方式存在安全缺陷。密码学理论曾证明:一切密码算法,除了一次一密以外,只要有足够多的密文,在理论上都是可以破解的。
[0042] 基于目前移动通信网络的特点及空口的不安全性,通过基站eNB(演进的节点B)实施主动攻击或空中侦听可以获得核心网下发的用户鉴权向量AV中的RAND和AUTN。由于根密钥K保持不变,攻击者可在空口获取大量与K有关的鉴权参数样本,在样本空间足够大的时候通过对算法实施攻击来推算根密钥K的安全威胁始终是存在的。

发明内容

[0043] 本发明所要解决的技术问题是,克服现有技术的不足,提出一种可提高安全性的移动通信系统的鉴权和密钥协商方法。
[0044] 为了解决上述问题,本发明提供一种移动通信系统的鉴权和密钥协商方法,在进行双向鉴权时,网络侧和移动终端侧分别使用双方保存的根鉴权密钥K,以及双方相同的随* *机数RAND和长度为128位的序列号SQN生成临时密钥K =fxK(RAND,SQN),并使用K 分别生成MAC和RES,进行网络侧和移动终端侧的双向鉴权;
[0045] 其中,fx为128位密钥长度的分组算法;K为fx算法函数所使用的密钥。 [0046] 此外,K*=fxK(RAND SQN)。
[0047] 此外,网络侧和移动终端侧的所述双向鉴权操作包含如下步骤: [0048] A:接收到网络侧的VLR/SGSN发送的鉴权向量请求消息后,网络侧的HLR/AuC生成*所述RAND和K ;
[0049] B:HLR/AuC使用K*计算鉴权向量AV中的期望响应值XRES和包含 所述MAC的鉴权令牌AUTN;并将AV发送给VLR/SGSN;
[0050] C:VLR/SGSN保存AV中的XRES,并将AV中的RAND和AUTN发送给对应的移动终端的USIM;
[0051] D:移动终端的USIM生成K*,并使用K*验证AUTN中的MAC,验证成功后使用K*生成RES,并将RES发送给VLR/SGSN;
[0052] E:接收到RES后,VLR/SGSN将RES与保存的XRES进行比较,完成对USIM的鉴权。 [0053] 此外,所述SQN为SQNHE||SQNHE||SQNHE中的128位。
[0054] 此外,在每次进行双向鉴权时,所述网络侧和移动终端侧都使用与前次双向鉴权*不同的RAND和SQN生成所述K。
[0055] 此外,所述AV中还包含:加密密钥CK和完整性密钥IK;
[0056] 步骤B中,HLR/AuC还使用K*计算CK和IK;
[0057] 步骤C中,VLR/SGSN还保存AV中的CK和IK;
[0058] 步骤D中,移动终端的USIM还使用K*计算CK和IK。
[0059] 此外,步骤D中,移动终端的USIM还根据AUTN中的SQNHE AK计算网络侧的序列号,并对网络侧的序列号进行验证,若网络侧的序列号不在正确的范围内,则执行步骤E’~G’:
[0060] E’:移动终端的USIM采用如下公式重新计算K*,并由K*计算AUTS,然后向VLR/SGSN发送AUTS:
[0061] K*=fxK(RAND SQN);SQN为SQNMS||SQNMS||SQNMS取128位;
[0062] AUTS=SQNMS AK||MAC-S;
[0063] AK=f5*K(RAND);
[0064] MAC-S=f1*K*(SQNMS||RAND||AMF);
[0065] F’:接收到重同步请求后,VLR/SGSN获取相应的RAND,并将包含 AUTS||RAND的重同步请求发送给HLR/AuC;
[0066] G’:接收到重同步请求后,HLR/AuC通过K、终端侧的序列号SQNMS 和RAND计算K*,验证AUTS,验证成功后进行重同步操作。
[0067] 此外,所述分组算法为3DES或AES算法。
[0068] 由上可知,相对于现有的AKA认证机制,本发明的一次一密的AKA增强鉴权方法可以很大程度上提高鉴权密钥被破译的难度,从而降低鉴权根密钥被破译的安全风险。 附图说明
[0069] 图1是现有技术中的用户接入鉴权流程;
[0070] 图2是现有技术中HLR/AuC计算鉴权向量的方法示意图;
[0071] 图3是现有技术中USIM计算并认证鉴权向量的方法示意图;
[0072] 图4是本发明实施例一次一密的AKA增强鉴权方法流程图;
[0073] 图5是本发明实施例HLR/AuC根据K*计算鉴权向量AV的方法示意图; [0074] 图6是本发明实施例USIM卡计算并认证鉴权向量的方法示意图; [0075] 图7是本发明实施例重同步AUTS的计算方法示意图。

具体实施方式

[0076] 基于以上分析,本发明提出了一次一密的AKA增强鉴权方法:即每次进行鉴权请求时,网络侧的HLR/AuC都将使用鉴权根密钥K、随机数RAND和SQN派生出一个相对独立的临时密钥K*,然后由K*计算生成鉴权向量AV。
[0077] 由密码学原理可知,虽然K*不是一个完全独立的随机数,但相比较现有AKA认证机制,本发明的一次一密的AKA增强鉴权方法可以很大程度上提高鉴权密钥被破译的难度,从而降低鉴权根密钥被破译的安全风险。
[0078] 下面将结合附图和实施例对本发明进行详细描述。
[0079] 图4为本发明实施例一次一密的AKA增强鉴权方法流程图,如图4所示,该方法包含如下步骤:
[0080] 201:当移动终端发起网络接入、业务接入或位置更新等请求时,会触发网络侧的MME(Mobile Management Entity,移动管理实体)/VLR/SGSN的鉴权操作; [0081] 上述请求消息中包含该移动终端用户的IMSI。
[0082] 202:MME/VLR/SGSN向HLR/AuC发送鉴权向量请求消息,请求五元组鉴权向量AV; [0083] 上述鉴权向量请求消息中包含该移动终端用户的IMSI。
[0084] 203:HLR/AuC根据网络注册的USIM卡能力判断是否需要执行AKA增强鉴权计算: [0085] 如果USIM卡为普通USIM卡(即不支持本发明一次一密的AKA增强鉴权方法的USIM卡),则执行标准AKA鉴权计算,本方法结束。
[0086] 如果USIM卡为增强USIM卡(即支持本发明一次一密的AKA增强鉴权方法的USIM卡),则首先根据K、随机数RAND和SQNHE,计算K*=fxK (RAND SQN),并由K*计算得到鉴权向量AV中的AUTN,CK,IK和XRES;
[0087] SQN是对SQNHE的一种变换,本发明推荐采用SQN=SQNHE||SQNHE ||SQNHE,SQN变换后取其中的128位(例如前128位,SQNHE长度为48位)。本发明不限制SQN变换的其它方法,包括进行各种填充方式。
[0088] HLR/AuC根据K*计算鉴权向量AV的具体方法如图5所示。具体描述如下: [0089] 203A:采用如下公式生成K*:
[0090] K*=fxK(RAND SQN);
[0091] 其中,SQN是对SQNHE的一种变换,本实施例中,对SQNHE进行如下变换:SQNHE||SQNHE||SQNHE,变换后取其中的128位,例如前128或后128 位作为SQN。 [0092] 在其它实施例中,也可以通过对SQNHE或SQNHE||SQNHE进行固定比特的填充使其长度为128位的方式生成SQN。
[0093] 此外,在本实施例中,使用RAND SQN作为fx的参数(明文)来生成K*;在其它*实施例中,可以使用H(RAND||SQN)中的任意128位作为fx的参数(明文)来生成K ;其中,H表示HASH(哈希)散列算法。
[0094] HASH散列算法可以是SHA-1(Secure Hash Algorithm-1,安全哈希算法-1)或MD5(Message Digest 5,信息摘要5)算法。上述两种散列算法的输出分别为160位和128位。
[0095] 注意到,HASH散列算法对于任意长度的输入都输出固定长度的值,因此,除了将RAND||SQN作为HASH散列算法的输入参数外,也可以将RAND和SQN经过其它变换后生成的值作为HASH散列算法的输入参数。
[0096] fx算法为支持128位密钥长度的分组算法,K*的长度为128位。 [0097] 此外,fx分组算法应适于在USIM卡端实现,执行一次密钥运算所需时间要求小于200ms。
[0098] fx可以采用3DES(Triple Data Encryption Standard,三重数据加密标准)、AES(Advanced Encryption Standard,高级加密标准)等国际标准算法。运营商也可以根据各自的安全策略采用自主的密码算法。
[0099] 203B:采用如下公式生成AUTN:
[0100] AUTN=SQNHE AK||AMF||MAC;
[0101] AK=f5K(RAND);
[0102] MAC=f1K*(SQNHE||RAND||AMF);
[0103] 203C:采用如下公式生成AV:
[0104] AV=RAND||XRES||CK||IK||AUTN;
[0105] XRES=f2K*(RAND);
[0106] CK=f3K*(RAND);
[0107] IK=f4K*(RAND)。
[0108] 204:HLR/AuC将生成的鉴权向量AV包含在鉴权向量响应消息中发送给VLR/SGSN;
[0109] 205:VLR/SGSN保存鉴权向量AV中的XRES,CK和IK;
[0110] 206:VLR/SGSN将鉴权向量AV中的RAND和AUTN包含在用户鉴权请求中发送给移动终端;
[0111] 207:移动终端接收到用户鉴权请求后,将接收到的随机数RAND和鉴权令牌AUTN转发给USIM卡;USIM卡计算K*=fxK(RAND SQN);对AUTN中的MAC和SQN进行验证; [0112] 如果MAC验证失败,则USIM卡向移动终端返回网络鉴权失败的响应消息; [0113] 如果MAC验证通过,SQN验证无效,则USIM卡重新计算K*,然后使用K*计算AUTS,并向移动终端返回包含AUTS的重同步响应消息;
[0114] 如果MAC和SQN均验证通过,则USIM卡使用K*计算RES、CK和IK;并向移动终端返回包含RES的响应消息
[0115] 图6是本发明USIM卡计算并认证鉴权向量的方法示意图。具体描述如下: [0116] 207A:采用如下公式生成K*:
[0117] AK=f5K(RAND);
[0118] SQNHE=AK (SQNHE AK);
[0119] K*=fxK(RAND SQN);
[0120] 其中,SQN是对SQNHE的一种变换,本实施例中,对SQNHE进行如下变换:SQNHE||SQNHE||SQNHE,变换后取其中的128位,例如前128位作为SQN。 [0121] 207B:计算XMAC,并验证XMAC是否等于MAC;
[0122] XMAC=f1K*(SQNHE||RAND||AMF)。
[0123] 207C:计算RES,CK,IK;
[0124] RES=f2K*(K*,RAND);
[0125] CK=f3K*(RAND)。
[0126] IK=f4K*(RAND)。
[0127] 图7是本发明实施例重同步AUTS的计算方法示意图。具体包含如下步骤: [0128] 207D:按照如下公式计算K*和AUTS;
[0129] K*=fxK(RAND SQN);
[0130] 其中,SQN是对SQNMS的一种变换,本实施例中,对SQNMS进行如下变换:SQNMS||SQNMS||SQNMS,变换后取其中的128位,例如前128位作为SQN。 [0131] AUTS=SQNMS AK||MAC-S;
[0132] AK=f5*K(RAND);
[0133] MAC-S=f1*K*(SQNMS||RAND||AMF);
[0134] 上述SQNMS为终端侧USIM卡中保存的序列号。
[0135] 208:移动终端根据USIM卡返回的响应消息向VLR/SGSN发送RES或AUTS或鉴权失败消息:
[0136] 如果MAC验证失败,则向VLR/SGSN直接返回网络鉴权失败消息; [0137] 如果MAC验证通过,SQNHE验证无效,则向VLR/SGSN发送包含AUTS的重同步请求; [0138] 如果MAC和SQNHE均验证通过,则向VLR/SGSN发送包含RES的成功鉴权响应。 [0139] 209:如果接收到AUTS,则VLR/SGSN查找对应的RAND;
[0140] 210:VLR/SGSN向HLR/AuC发送包含AUTS和RAND的重同步请求; [0141] 211:HLR/AuC收到重同步请求后,通过K、SQNMS和接收到RAND计算K*,验证AUTS,然后按照正常的重同步流机制执行操作。