本发明属于网络安全增强,具体涉及一种基于区块链的5g-aka安全增强协议的系统架构及其构建方法、设备和介质。
背景技术:
1、对于5g移动通信网络,3gpp组织标准化了5g-aka等协议,用于身份认证和密钥协商。
2、在技术规范(ts)33.501中,3gpp阐述了传统5g认证和密钥协商协议,协议以用户端(ue)与归属网端(hn)共享的用户根密钥k为安全根,通过引入随机数,消息序列号sqn等随机变量增强安全性。以消息认证码mac(message authentication code),期望所得与实际所得参数消息及其哈希值{xres,res,hxres,hres},消息认证令牌(authenticationtoken,autn)等作为直接参与鉴权对比变量,通过归属网鉴权用户supi与服务网络的身份idsn、生成安全锚定秘钥kseaf与5g鉴权向量(5g authenticationvector,5g-av)、比对验证mac码、序列号比较等步骤完成用户端与归属网端的双向接入认证。
3、传统5g-aka鉴权认证协议的核心步骤可大致分为两步,即归属网端hn的认证凭证存储库和处理功能(authentication credential repository and processingfunction,arpf)挑战阶段与用户ue端的挑战阶段,分别对应了:(1)归属网中统一数据管理模块(unified data management,udm)对用户ue和服务网sn的鉴权与认证向量的生成;(2)用户ue端通过xmac值对归属网端hn的认证,通过序列号对比完成消息新鲜度的检验。在这两个步骤中hn和ue使用了命名为f1,f2,f3,f4和f5五个常见的加密函数。同时5g-aka禁止用户永久标识supi不安全明文传输,supi必须通过公钥加密[3]进行隐藏,以防止国际移动用户识别码(international mobile subscriber identity,imsi)的被动捕获攻击。
4、5g-aka鉴权认证协议引入了supi加密措施,能够有效抵御消息拦截泄露等被动攻击。但在5g-aka鉴权认证协议中仍存在三种主动可链接攻击,具体如下:
5、失败消息的可链接攻击[一种基于区块链的5g网络认证和密钥协议(aka)协议:maedehojjati1,alirezashafieinejad1和halimyanikomeroglu2(ieee研究员)]:在这种攻击中,攻击者冒充恶意sn记录hn发送给目标ue的(rand,autn)消息,并将其发送到攻击区域内的所有ue。收到该信息后,由于该消息是以正确的k生成,目标ue会通过对mac的检查,但由于信息是重放的,因此无法通过下一步的新鲜度检查,并回复sync_failure信息,而其他ue都无法通过对mac的检查﹐并回复mac_failure信息。
6、序列号推理攻击[一种基于区块链的5g网络认证和密钥协议(aka)协议:maedehojjati1,alirezashafieinejad1和halimyanikomeroglu2(ieee研究员)]:序列号推理攻击执行方式为通过重放(rand、autn),攻击者进一步获取目标ue的sqnue增加模式甚至特定位数。攻击者会多次重放(rand.autn),每次目标ue都会回复一个同步失败信息,该消息中包含conc_sqnue←sqnuexorf'5(k,rand)。随后攻击者可将sqnue划分为与由于与是通过和相同的f'5(k,rand)进行异或操作,因此通过xor 即可获得xor 进而获得sqnue的增长模式甚至特定位数。
7、suci重放攻击[一种基于区块链的5g网络认证和密钥协议(aka)协议:maedehojjati1,alirezashafieinejad1和halimyanikomeroglu2(ieee研究员)]:在suci重放攻击中,攻击者冒充恶意sn记录目标ue发送的suci,并在所有ue的会话中向hn重放,等待ue回复hn的挑战消息。因为hn使用与目标ue共享的k计算mac,目标ue将回复无故障消息(即两个检查都成立),而其他ue将全部发送mac_failure消息。
技术实现思路
1、为了克服上述现有技术存在的问题,本发明的目的在于公开一种基于区块链的5g-aka安全增强协议的系统架构及其构建方法、设备和介质,采用区块链和智能合约技术,通过部署于区块链节点上的智能合约对认证请求进行标识、存储、自动化比对,实现对认证请求重放攻击的快速识别,从而抵抗suci的重放攻击,保障认证参数安全;通过对消息序列号sqn进行加密保护,防止恶意服务网络sn通过对失败认证令牌进行反逻辑运算获取sqn增长规律,完成序列号推理攻击,从而实现用户安全信息的隐私保护。
2、为了实现上述目的,本发明采用以下的技术方案:
3、一种基于区块链的5g-aka安全增强协议的系统架构,包含以下功能实体:
4、1)用户端ue:用户端ue由移动设备(mobile equipment,me)和usim卡组成,usim卡中存有用户身份标识符supi、序列号sqn、用户对称根密钥k和归属网归属网络hn的公钥pkhn;
5、2)服务网络sn:主要负责为用户提供网络接入服务,协助用户端ue、归属网络hn之间的鉴权和密钥协商,在鉴权成功后,构建安全信道,为用户端ue提供服务;
6、3)归属网络hn:归属网络hn中存有序列号sqn、用户对称根秘钥k、归属网络hn的私钥skhn等,负责向服务网络sn提供用于认证过程的鉴权向量av;
7、4)区块链网络:本发明中,区块链网络作为服务网络sn和归属网络hn之间的安全代理,负责检验认证请求消息的新鲜度;通过存储历史认证请求消息(req-id),并查找每次用户的认证请求是否存在于区块链中,从而识别出本次协议认证消息是否为重放的攻击向量。
8、基于区块链的5g-aka安全增强协议的构建方法,具体包括以下步骤:
9、步骤1、系统初始化;
10、步骤2、对步骤1初始化后的系统接入认证请求和攻击检测;
11、步骤3、对步骤2接入认证请求和攻击检测结果进行归属网络hn鉴权认证生成并反馈应答消息res-id;
12、步骤4、对步骤3反馈的应答消息res-id进行用户端ue认证与序列号更新;
13、步骤5、在步骤4用户端ue认证与序列号更新后,进行关键参数res及其哈希值检验。
14、所述步骤1系统初始化的具体方法为:
15、服务网络sn与归属网络hn通信信道之间,归属网络hn初始化一个区块链网络,并部署用于重放攻击检测的智能合约;归属网络hn公开智能合约的地址;服务网络sn从证书颁发机构ca获取数字证书,注册上链,通过区块链中继与归属网络hn进行通信;用户端ue在初始化时存储根密钥k、与归属网络hn同步秘钥派生函数,消息认证函数等。
16、所述步骤2接入认证请求和攻击检测的具体方法为:
17、步骤2.1)用户端ue向服务网络sn发送初始接入请求消息,包括用户端ue的id;当服务网络sn收到初始接入请求消息时,首先生成随机数r1,并将随机数r1与服务网络sn身份idsn返回用户端ue;
18、步骤2.2)用户端ue收到服务网络sn返回的消息后,首先生成随机数r2,并使用归属网络hn的公钥pkhn加密随机数r1、随机数r2、服务网的身份标识idsn、归属网的身份标识idhn,得到加密消息e1=enc(pkhn,r1,r2,idsn,idhn),计算随机数r1、随机数r2、用户隐匿标识符suci、服务网的身份标识idsn、归属网的身份标识idhn的哈希值h1=hash(r1,r2,suci,idsn,idhn),随后将认证请求消息m1=(e1,suci,h1)发送给服务网络sn;
19、步骤2.3)服务网络sn收到步骤2.3)用户端ue发送的信息后,对认证请求消息m1和服务网的身份标识idsn进行哈希运算,生成认证请求消息req-id=hash(m1,idsn),随后,服务网络sn调用智能合约检测重放攻击;
20、步骤2.4)攻击检测:智能合约在区块链账本中查找收到的应答消息res-ideq-id,如果找到该应答消息res-idreq-id,则认为该请求为重放请求,并终止认证,向服务网络sn发送认证失败消息;否则,认为该应答消息res-idreq-id为新鲜的认证请求,并将认证请求消息m1,服务网的身份标识idsn,应答消息res-idreq-id发送给归属网络hn。
21、所述步骤3中归属网络hn鉴权认证并生成反馈应答消息res-id的具体方法为:
22、步骤3.1)归属网络hn收到步骤2发出的认证请求消息后,用skhn(归属网hn私钥)解密认证请求消息m1中的加密消息e1,获得随机数r1,随机数r2,服务网的身份标识id’sn,归属网的身份标识id’hn,对比解密获得的服务网的身份标识id’sn与消息中携带的服务网的身份标识idsn,以及解密获得的归属网的身份标识id’hn与归属网的身份标识idhn;随后,归属网络hn计算哈希消息值h1’=hash(r1,r2,id'sn,id'hn),比较哈希消息值【用户端】h1和哈希消息值【归属网端】h1’是否相等;如果相等,则归属网络hn完成了对用户端ue的认证,并更新归属网端序列号值sqnhn=sqnhn+1;若不相等则归属网络hn端认定申请鉴权的用户端ue为非正确的,随即终止协议停止后续参数生成;
23、步骤3.2)归属网络hn计算认证令牌autn=f1(k,r1,r2,sqnhn),介质访问控制信息mac=f1(k,autn,idsn),认证参数【归属网端】xres=f2(autn,idsn),认证参数哈希值【归属网端】hxres=sha256(r1,xres),调用秘钥生成函数keyderivation加密认证令牌autn和服务网的身份标识idsn生成安全锚定秘钥kseaf=keyderivation(autn,idsn);最后,归属网络hn使用随机数r2加密归属网端序列号值sqnhn,生成反馈应答消息res-id=enc[r2](sqnhn),并将反馈应答消息res-id、介质访问控制信息mac、认证令牌autn、认证参数【归属网端】xres、认证参数哈希值【归属网端】hxres经服务网络sn发送到用户端ue。
24、所述步骤4用户端ue认证与序列号更新的具体方法为:
25、用户端ue在接收到反馈应答消息res-id后使用随机数r2解密获得归属网端序列号值【用户解密】sqn’hn,并使用归属网端序列号值【用户解密】sqn’hn通过认证令牌【用户端】autn’=f1(k,r1,r2,sqn’hn),介质访问控制信息【用户端】mac'=f1(k,autn',idsn)构造mac'),比较介质访问控制信息mac与介质访问控制信息【用户端】mac',若介质访问控制信息mac≠质访问控制信息【用户端】mac',则介质访问控制信息mac检验失败,用户端ue终止认证协议,并发送认证失败消息到用户端消息准确性检验失败mac-failure;若介质访问控制信息mac检验通过,用户端ue通过对比归属网端序列号值sqnhn与用户端序列号值sqnue,检测序列号sqn的新鲜度,有以下两种情况:
26、①若用户端序列号值sqn用户端ue<归属网端序列号值sqn归属网络hn<用户端序列号值sqn用户端ue+δ,则认为收到的应答消息为新鲜的,用户端ue更新用户端序列号值sqnue=sqnue+1;通过相同的秘钥生成函数f2生成认证参数【用户端】res=f2(autn',idsn),由keyderivation秘钥生成函数生成安全锚定秘钥kseaf=keyderivation(autn',idsn),为安全会话提供关键秘钥参数;
27、②若用户端序列号值sqn用户端ue+δ<归属网端序列号值sqn归属网络hn,则认为收到的应答消息为不新鲜的,用随机数r2对用户端序列号值sqnue加密生成反馈应答消息【用户端】res-id’,即反馈应答消息【用户端】res-id'=enc[r2](sqnue);将反馈应答消息【用户端】res-id’,加密函数f5*(k,r2),介质访问控制信息【用户端】mac’打包生成同步认证令牌发送给归属网络hn,归属网络hn在接收到同步认证令牌auts后获知用户端ue端新鲜度检验失败,停止用户永久标识符supi,kseaf的发送,使用介质访问控制信息【用户端】mac’与介质访问控制信息mac的比较鉴别消息的准确性,归属网络hn使用随机数r2作为秘钥对反馈应答消息【用户端】res-id’解密获得sqnue,通过归属网端序列号值sqn归属网络hn=sqnue+1对归属网端序列号值sqn归属网络hn重置,完成与用户端ue端消息序列号的同步。
28、所述步骤5关键参数res及其哈希值检验的具体方法为:
29、在用户端ue端消息准确性即介质访问控制信息mac与介质访问控制信息【用户端】mac'的比较鉴权过程与新鲜度鉴权成功后,用户端ue更新序列号,生成安全锚定秘钥kseaf与认证参数【用户端】res;发送认证参数【用户端】res、安全锚定秘钥kseaf到服务网络sn,服务网络sn生成认证参数哈希值【用户端】hres=sha256(r1,res),比较认证参数哈希值【用户端】hres与认证参数哈希值【归属网端】hxres,若认证参数哈希值【用户端】hres=认证参数哈希值【归属网端】hxres,向归属网络hn发送认证参数【用户端】res与用户隐匿标识符suci,归属网络hn在接收到认证参数【用户端】res与用户隐匿标识符suci后获知用户端ue端鉴权已通过,归属网络hn比较认证参数【用户端】res与认证参数哈希值【用户端】hres,若认证参数【用户端】res=认证参数【归属网端】xres,则归属网络hn端发送安全锚定秘钥kseaf与用户永久标识符supi到服务网络sn,鉴权认证结束,服务网络sn基于安全锚定秘钥kseaf推演后续安全会话密钥。
30、一种基于区块链的5g-aka安全增强协议的构建方法的设备,具体包括:
31、存储器,用于存储计算机程序,所述计算机程序包含能够基于步骤1至步骤5所述基于区块链的5g-aka安全增强协议的构建方法,进行5g-aka安全增强协议的构建;
32、处理器,用于执行所述计算机程序时实现步骤1至5任一项所述基于区块链的5g-aka安全增强协议的构建方法,用于对用户安全信息的隐私保护。
33、一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时能够基于步骤1至步骤5所述基于区块链的5g-aka安全增强协议的构建方法,进行5g-aka安全增强协议的构建,实现用户安全信息的隐私保护。
34、相较于现有技术,本发明有以下优点:
35、(1)本发明区块链部署于服务网络sn与归属网络hn之间,为服务网络sn和归属网络hn消息交换与鉴权认证提供重复检测机制;
36、(2)本发明将智能合约部署于区块链网络节点上,通过自动化执行智能合约,查询收到的认证请求消息是否存在于区块链账本中,从而检查认证请求消息的新鲜度,检测恶意服务网络sn发起的suci重放攻击,保护归属网络hn免受来自恶意服务网络sn的suci重放攻击,保障认证参数安全。
37、(3)本发明使用公钥加密技术对协议中的序列号sqn进行加密,防止恶意服务网络sn通过对失败认证令牌进行反逻辑运算获取sqn增长规律,抵御恶意服务网络sn对用户端ue发起的序列号推理攻击,保护密钥协商中敏感数据的机密性,实现对用户隐私信息保护。
38、综上,本发明利用区块链的分布式、高保密性与不可篡改性等特性,使其在5g-aka用户接入鉴权认证协议的流程优化与安全性提升等方面发挥作用;通过在服务网络sn与归属网络hn间部署区块链和智能合约,实现对认证请求消息req-id的新鲜度检测;能够解决传统5g-aka鉴权认证协议中存在的主动可链接式攻击;有效抵御序列号推理攻击、加密supi重放攻击,保证目标用户端ue序列号的安全传输,同时实现较低的通信延迟和较高的标准兼容性。