2. 桂林电子科技大学 广西可信软件重点实验室, 广西 桂林 541004;
3. 天津理工大学 通信器件与技术教育部工程研究中心, 天津 300384
对认证与密钥协商协议(UMTS AKA)中无和有序列号SQN进行了3种攻击场景模拟并得到结论:SQN的使用不能有效抵抗重放攻击.基于此, 进一步分析并仿真了使用一次性随机数抵抗重放攻击的3种改进协议, 结果表明:AP-AKA和基于公钥密码学的AKA能够有效抵抗重放攻击, 但是AP-AKA增加了实体的存储和计算资源, 基于公钥密码学的AKA增加了算法的复杂性, 而S-AKA只能部分抵抗重放攻击.
2. Guangxi Key Laboratory of Trusted Software, Guilin University of Electronic Technology, Guangxi Guilin 541004, China;
3. Engineering Research Center of Communication Devices and Technology, Ministry of Education, Tianjin University of Technology, Tianjin 300384, China
Three types of attacks' scenarios were described when there exists or not sequence number (SQN) in UMTS AKA. Analysis shows that the use of SQN cannot resist replay attacks effectively. Based on that, three new protocols using one-time random number were further analyzed and simulated to resist replay attacks. It is shown that AP-AKA and AKA based on public key cryptography can effectively against replay attacks. However, AP-AKA will add storage and computing resources of entities and AKA based on public key cryptography promotes the complexity of algorithm, but S-AKA only keeps against replay attacks partially.
UMTS AKA机制中采用鉴权五元组代替2G的鉴权三元组.该机制中使用SQN保证消息的新鲜性以抵抗重放攻击,对SQN的依赖性很强.
目前,对UMTS AKA机制的重放攻击缺少对攻击场景的模拟分析[1].针对这一现象,对UMTS AKA机制中的重放攻击进行了场景模拟分析.分析表明,SQN的使用不能有效抵抗重放攻击.针对上述SQN不能解决的攻击,目前多使用一次性随机数[2]抵抗重放攻击,其中AP-AKA[3]、基于公钥密码学的AKA[4]和S-AKA[5]为典型代表.
1 UMTS AKA机制描述UMTS AKA机制中认证三方分别是移动站MS、访问位置寄存器/GPRS业务支持节点VLR/SGSN、归属环境/归属位置寄存器HE/HLR.为抵抗重放攻击,HE/HLR与MS分别生成和保存SQN. HE/HLR每个用户设置一个独立的计数器SQNHN,MS也设置一个计数器SQNMS,用来记录MS接收到的最大序列号.
1) VLR/SGSN首先向HE/HLR发送认证数据请求消息,该消息内容包含MS的永久身份标识IMSI.
2) HE/HLR接收到来自VLR/SGSN的认证数据请求消息后,根据MS的IMSI从数据库中取得与MS共享的根密钥K,然后计算认证向量组AV[1,…,n],认证向量中包含SQN. HE/HLR将认证向量组AV通过认证数据响应消息发送给VLR/SGSN.
3) VLR/SGSN接收到认证向量组AV后,首先把该向量组存放在其数据库里,当需要对MS认证时取出一个未使用的向量,然后向MS发送用户认证请求消息,该消息包含认证向量中的随机数RAND和认证令牌AUTH,SQN是AUTH的一个组成部分.
4) MS接收到用户认证请求数据RAND和AUTH后,通过根密钥K计算XMAC并通过比较其与MAC是否相等来验证网络的合法性,若两者相等,MS继续验证SQN是否在正确的范围内,即验证SQN>SQNMS是否成立:若MS认为SQN≤SQNMS,则MS发送同步失败消息到VLR/SGSN,并结束验证同时启动HE/HLR重同步SQNHN操作;否则,MS对网络身份认证成功,并置SQNMS为SQN. MS接着计算RES,并将该值发送给VLR/SGSN,同时,MS计算加密密钥CK和完整性密钥IK,用做与VLR/SGSN之间建立通信时数据流的CK和IK.
5) VLR/SGSN接收到MS发送的RES后,判断收到的RES与认证向量中的XRES是否相等:若相等,则网络对用户认证成功,VLR/SGSN从认证向量中取出CK和IK作为与该MS通信时数据流的加密密钥和完整性密钥;否则,网络对用户认证失败,VLR/SGSN向HE/HLR发送认证失败报告.
2 重放攻击场景模拟与分析为了分析UMTS AKA在无SQN和有SQN对抵抗重放攻击的优劣性,模拟了3种可能存在的攻击方式:1) 重放本次用户认证请求消息;2) 请求触发式重放过往认证消息;3) 主动重放过往认证消息.
2.1 重放本次用户认证请求消息的场景模拟攻击者潜伏在MS与VLR/SGSN之间,当其捕获到VLR/SGSN发送给MS的认证消息后,向MS重发认证信息,以达到重放攻击的目的,称这种攻击为“重放本次用户认证请求消息”攻击.
若AKA中无SQN,当MS再次收到用户认证请求消息时,MS认为VLR/SGSN未收到用户认证响应消息,所以会重发该响应消息,此时VLR/SGSN会自动丢弃重复收到的响应消息,在此情况下,对MS和VLR/SGSN不会造成攻击,攻击场景如图 2(a)所示.
AKA中加入SQN后,MS重复收到用户认证请求时,通过验证序列号的正确性,MS认为是重放消息,此时MS丢弃重放消息.在此情况下,对MS和VLR/SGSN不会造成攻击,攻击场景如图 2(b)所示.
2.2 请求触发式重放过往认证消息场景模拟攻击者捕获到MS的业务请求后,在VLR/SGSN向MS发送认证消息之前,冒充VLR/SGSN向MS发送之前截获到的认证消息,称这种攻击为“请求触发式重放过往认证消息”攻击.
当AKA中无SQN时,MS收到攻击者的认证消息后,需进行计算、验证、发送认证响应消息. VLR/SGSN收到认证响应消息后,通过比较响应消息,认为MS非法,攻击成功,攻击场景如图 3(a)所示.
当AKA中加入SQN后,MS收到攻击者的认证消息后,验证序列号不在正确的范围内,遂向HE/HLR请求重同步,最终MS与VLR/SGSN实现认证与密钥协商.在此情况下,攻击者对整个通信系统没有造成攻击,攻击场景如图 3(b)所示.
2.3 主动重放过往认证消息场景模拟假设MS无认证需求,但攻击者循环向MS发送以前截获并保存的不同用户认证请求消息,称这种攻击为“主动重放过往认证消息”攻击.
在此攻击场景下,由于VLR/SGSN没有发出认证消息,因此不会接受MS发送的认证响应信息,所以不会对VLR/SGSN造成攻击,攻击场景如图 4(a)所示.
当AKA中加入SQN后,由于每一次收到的认证消息都不同,所以MS频繁计算、验证SQN,并发送重同步请求,对MS造成攻击,攻击场景如图 4(b)所示.
总结上述3种攻击场景,AKA机制中采用SQN可以有效抵御“重放本次用户认证请求消息”攻击和“请求触发式重放过往认证消息”攻击,但无法抵御“主动重放过往认证消息”攻击.
协议中使用一次性随机数是抵抗重放攻击的一种有效方法.如AP-AKA、基于公钥密码学的AKA和S-AKA中都使用了一次性随机数实现抵抗重放攻击的功能.
3 性能分析对UMTS-AKA、AP-AKA、基于公钥密码学的AKA和S-AKA在认证过程中3方实体的存储空间、计算量及通信成本进行仿真分析.
3.1 抵抗重放攻击AP-AKA中,MS收到用户认证请求消息后,通过检查RNidx列表,MS能够判断消息是否为重放攻击;基于公钥密码学的AKA中,SN和MS都使用SN产生的随机数计算一个临时会话密钥TK,而根据一次性随机数的使用规则,MS接收到用户认证请求消息后能够判断是否为重放攻击;S-AKA使用3方实体的累加器和SN产生的随机数抵抗重放攻击,然而,S-AKA只能抵抗有线情况下的重放攻击.
3.2 计算量与存储空间UMTS-AKA、AP-AKA、公钥-AKA、S-AKA在认证过程中3方实体所需的存储空间、计算量如表 1所示.
其中:H代表哈希运算,XOR代表异或运算,S代表数字签名,E代表加密算法,D代表解密算法.
由表 1可知,与UMTS AKA相比,3种使用一次性随机数抵抗重放攻击的协议中,AP-AKA增加了3方实体的存储空间和计算量;基于公钥密码学的AKA减少了实体的存储量和计算量,但是使用公钥加解密增加了算法的复杂性;而S-AKA的存储空间和计算量最小.
3.3 比特通信量比特通信量是指,在协议执行过程中,3方实体之间需要传送的总比特数,单位是b(位).当认证向量组的长度m=5时,各类AKA的比特通信量如图 5所示.
由图 5可知,当认证向量的长度m=5时,AP-AKA、公钥-AKA和S-AKA的通信量都随着认证次数p的增加而增加,而AP-AKA的通信量最大,S-AKA的比特通信量最小.
3.4 消息通信量消息通信量是指,在协议执行过程中,3方实体之间需要传送的消息条数.当认证向量组的长度m=5时3方实体之间的消息通信量如图 6所示.
由图 6可知,AP-AKA的消息通信量大于UMTS AKA,基于公钥密码学的AKA和S-AKA都减少了实体之间的消息通信量,且S-AKA消耗最小.
4 结束语研究了UMTS AKA机制在有SQN和无SQN情况下,攻击者可能发起的3种重放攻击方式,发现使用SQN不能有效抵抗重放攻击.针对这一现象,详细分析了3种使用一次性随机数抵抗重放攻击的典型协议所消耗的存储空间、计算量、比特通信量和消息通信量,仿真结果表明:AP-AKA能有效抵抗重放攻击,但是增加了SN和MS的存储量和计算量;基于公钥密码学的AKA协议抵抗了3种方式的重放攻击,但是增加了算法的复杂性;S-AKA减少了网络的消息通信量和比特通信量,但是只能部分抵抗重放攻击.
[1] |
刘家芬, 周明天. 对安全协议重放攻击的分类研究[J]. 计算机应用研究, 2007, 3(24): 135–139.
Liu Jiafen, Zhou Mingtian. Research and taxonomy of replay attacks on security protocol[J].Application Research of Computers, 2007, 3(24): 135–139. |
[2] |
刘宪国, 薛红喜. 一种改进的高效鲁棒的3GPP AKA协议[J]. 通信技术, 2011, 2(44): 87–90.
Liu Xianguo, Xue Hongxi. An improved highly-efficient and robust 3GPP AKA protocol[J].Communications Technology, 2011, 2(44): 87–90. |
[3] | Zhang M X, Fang Y G. Security analysis and enhancements of 3GPP authentication and key agreement protocol[J].IEEE Trans on Wireless Communications, 2005, 4(2): 734–742. doi: 10.1109/TWC.2004.842941 |
[4] |
陆峰, 郑康锋, 钮心忻, 等. 3GPP认证与密钥协商协议安全性分析[J]. 软件学报, 2010, 7(21): 1768–1782.
Lu Feng, Zheng Kangfeng, Niu Xinxin, et al. Security analysis of 3GPP authentication and key agreement protocol[J].Journal of Software, 2010, 7(21): 1768–1782. |
[5] | Huang Yulun, Shen Chih Ya, Shiuhpyng Winston Shieh. S-AKA: a provable and secure authentication key agreement protocol for UMTS networks[J].IEEE Trans on Vehicular Technology, 2011, 9(60): 4509–4519. |
[6] | 3rd Generation Partnership Project. Technical specification group services and system aspects, 3G security, security architecture [S]. 2014. |