CN114079924A - 消息的处理方法、装置、相关设备及存储介质 - Google Patents
消息的处理方法、装置、相关设备及存储介质 Download PDFInfo
- Publication number
- CN114079924A CN114079924A CN202010797847.2A CN202010797847A CN114079924A CN 114079924 A CN114079924 A CN 114079924A CN 202010797847 A CN202010797847 A CN 202010797847A CN 114079924 A CN114079924 A CN 114079924A
- Authority
- CN
- China
- Prior art keywords
- message
- suci
- function
- supi
- key
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000003672 processing method Methods 0.000 title claims abstract description 12
- 238000000034 method Methods 0.000 claims abstract description 75
- 230000006870 function Effects 0.000 claims description 280
- 238000004422 calculation algorithm Methods 0.000 claims description 88
- 230000015654 memory Effects 0.000 claims description 37
- 238000012795 verification Methods 0.000 claims description 24
- 238000004590 computer program Methods 0.000 claims description 20
- 238000004891 communication Methods 0.000 claims description 16
- 238000004364 calculation method Methods 0.000 claims description 13
- 238000005516 engineering process Methods 0.000 description 6
- 230000004044 response Effects 0.000 description 6
- 230000001360 synchronised effect Effects 0.000 description 6
- 238000010586 diagram Methods 0.000 description 5
- 230000008569 process Effects 0.000 description 5
- 230000003993 interaction Effects 0.000 description 4
- 238000007726 management method Methods 0.000 description 3
- 235000019800 disodium phosphate Nutrition 0.000 description 2
- 230000007774 longterm Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 238000003491 array Methods 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000013523 data management Methods 0.000 description 1
- 238000009795 derivation Methods 0.000 description 1
- 238000004275 electron-induced Auger electron spectroscopy Methods 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 238000009877 rendering Methods 0.000 description 1
Images
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
- Mobile Radio Communication Systems (AREA)
Abstract
本申请实施例公开了一种消息的处理方法、装置、网络设备、终端及存储介质。其中,方法包括:网络设备获取用户隐藏标识(SUCI)消息;所述SUCI消息至少包含用户公钥,以及消息认证码标签值;根据所述SUCI消息中的用户公钥与本地存储的用户公钥,判断所述SUCI消息是否为SUCI重放攻击;在所述SUCI消息不为SUCI重放攻击的情况下,对所述SUCI消息中的消息认证码标签值进行验证,确定所述SUCI消息是否为用户永久标识(SUPI)猜测攻击;其中,基于终端侧与网络侧的共享密钥使用特定类型的函数进行运算得到的函数运算结果作为消息认证码运算函数的输入之一。
Description
技术领域
本申请涉及通信技术领域,尤其涉及一种消息的处理方法、装置、相关设备及存储介质。
背景技术
第五代移动通信技术(5G)系统中,采用集成加密方案(ECIES)保护用户永久标识(SUPI,SUbscription Permanent Identifier),以保护用户的隐私。
然而,相关技术中,采用ECIES虽然保护了用户隐私,但易受到攻击。
发明内容
为解决相关技术问题,本申请实施例提供一种消息的处理方法、装置、相关设备及存储介质。
本申请实施例的技术方案是这样实现的:
本申请实施例提供了一种消息的处理方法,应用于网络设备,包括:
获取用户隐藏标识(SUCI,SUbscription Concealed Identifier)消息;所述SUCI消息至少包含用户公钥,以及消息认证码标签值;
根据所述SUCI消息中的用户公钥与本地存储的用户公钥,判断所述SUCI消息是否为SUCI重放攻击;
在所述SUCI消息不为SUCI重放攻击的情况下,对所述SUCI消息中的消息认证码标签值进行验证,确定所述SUCI消息是否为识SUPI猜测攻击;其中,
基于终端侧与网络侧的共享密钥使用特定类型的函数进行运算得到的函数运算结果作为消息认证码运算函数的输入之一。
上述方案中,所述SUCI消息包括:
SUPI的类型+归属网络标识+路由标识+保护方案标识+BPUB+APUB+KE{MSIN}+Tag;
其中,APUB为用户公钥;BPUB为网络的公钥;KE{MSIN}表示加密的移动用户标识号MSIN;Tag为消息认证码标签值;+表示级联。
上述方案中,所述基于终端侧与网络侧的共享密钥使用特定类型的函数进行运算,包括:
对所述终端侧与网络侧的共享密钥使用特定类型的函数进行运算。
上述方案中,所述对所述终端侧与网络侧的共享密钥使用特定类型的函数进行运算,包括以下之一:
对所述终端侧与网络侧的共享密钥进行哈希运算;
利用所述终端侧与网络侧的共享密钥对与所述SUPI关联的128比特的数进行加密运算;
使用MILENAGE算法中的函数或TUAK算法中的函数对所述终端侧与网络侧的共享密钥和与所述SUPI关联的128比特的数进行运算。
上述方案中,消息认证码标签值通过以下公式之一生成:
Tag=HMAC-SHA-256(KM,KE{MSIN},HASH(OPC或K));
Tag=HMAC-SHA-256(KM,KE{MSIN},Enc[SUPI’]OPC或K);
Tag=HMAC-SHA-256(KM,KE{MSIN},Enc[SUPI’⊕OPC]K);
Tag=HMAC-SHA-256(KM,KE{MSIN},OUT);
其中,HMAC-SHA-256为消息认证码运算函数,KM为完整性密钥;KE{MSIN}为加密的移动用户标识号(MSIN,Mobile Subscriber Identification Number);HASH为哈希函数;K为所述终端侧与网络侧的共享根密钥;OPC为由密钥K推演出来的128比特共享密钥;Enc[SUPI’]OPC或K表示使用OPC或K对SUPI’进行加密;SUPI’为与SUPI关联的128比特的数;⊕表示信息异或操作;OUT为基于所述终端侧与网络侧的共享密钥K和OPC对SUPI’使用MILENAGE算法中的函数或TUAK算法中的函数进行运算得到的输出值。
上述方案中,与所述SUPI关联的128比特的数SUPI’是SUPI值的末位补0后得到的。
上述方案中,所述基于终端侧与网络侧的共享密钥使用特定类型的函数进行运算,包括:
对所述终端侧与网络侧的共享密钥和用户公钥使用特定类型的函数进行运算。
上述方案中,所述对所述终端侧与网络侧的共享密钥和用户公钥使用特定类型的函数进行运算,包括以下之一:
对所述终端侧与网络侧的共享密钥和用户公钥进行哈希运算;
利用所述用户公钥,得到与所述用户公钥关联的128比特的数;利用所述终端侧与网络侧的共享密钥对所述与所述用户公钥关联的128比特的数进行加密运算;
利用所述用户公钥,得到与所述用户公钥关联的128比特的数;使用MILENAGE算法中的函数或TUAK算法中的函数对所述终端侧和网络侧的共享密钥和所述与所述用户公钥关联的128比特的数进行运算。
上述方案中,消息认证码标签值通过以下公式之一生成:
Tag=HMAC-SHA-256(KM,KE{MSIN},HASH((OPC或K)||APUB));
Tag=HMAC-SHA-256(KM,KE{MSIN},Enc[APUB’]OPC或K);
Tag=HMAC-SHA-256(KM,KE{MSIN},Enc[APUB’⊕OPC]K);
Tag=HMAC-SHA-256(KM,KE{MSIN},OUT);
其中,HMAC-SHA-256为消息认证码运算函数,KM为完整性密钥;KE{MSIN}为加密的MSIN;HASH为哈希函数;K为所述终端侧与网络侧的共享根密钥;OPC为由密钥K推演出来的128比特共享密钥;Enc[APUB’]OPC或K表示使用OPC或K对APUB’进行加密;APUB’为与APUB关联的128比特的数;APUB为用户公钥;⊕表示信息异或操作;OUT为基于所述终端侧与网络侧的共享密钥K和OPC对APUB’使用MILENAGE算法中的函数或TUAK算法中的函数进行运算得到的输出值。
上述方案中,所述与所述用户公钥关联的128比特的数是将所述用户公钥进行截取处理得到的。
上述方案中,所述终端侧和网络侧的共享密钥包括以下至少之一:
终端侧与网络侧的共享根密钥;
终端侧与网络侧的OPC。
上述方案中,所述对所述SUCI消息中的消息认证码标签值进行验证,确定所述SUCI消息是否为SUPI猜测攻击,包括:
对所述SUCI消息中加密的SUPI进行解密,得到SUPI;
利用得到的SUPI,从数据库中得到与SUPI对应的终端侧与网络侧的共享密钥;
对所述对应的终端侧与网络侧的共享密钥使用特定类型的函数进行运算得到函数运算结果,并生成消息认证码标签值;
将生成的消息认证码标签值与所述SUCI消息中的消息认证码标签值进行比对;若二者相同,确定所述SUCI消息不是SUPI猜测攻击,若二者不相同,确定所述SUCI消息为SUPI猜测攻击。
上述方案中,所述方法还包括:
在验证成功的情况下,在本地存储所述SUCI消息中的用户公钥。
本申请实施例还提供了一种消息的处理方法,应用于终端,包括:
生成SUCI消息;
向网络发送所述SUCI消息;所述SUCI消息至少包含用户公钥,以及消息认证码标签值;其中,
基于终端侧与网络侧的共享密钥使用特定类型的函数进行运算得到的函数运算结果作为消息认证码运算函数的输入之一。
上述方案中,所述SUCI消息包括:
SUPI的类型+归属网络标识+路由标识+保护方案标识+BPUB+APUB+KE{MSIN}+Tag;
其中,APUB为用户公钥;BPUB为网络的公钥;KE{MSIN}表示加密的移动用户标识号MSIN;Tag为消息认证码标签值;+表示级联。
上述方案中,所述基于终端侧与网络侧的共享密钥使用特定类型的函数进行运算,包括:
对所述终端侧与网络侧的共享密钥使用特定类型的函数进行运算。
上述方案中,所述对所述终端侧与网络侧的共享密钥使用特定类型的函数进行运算,包括以下之一:
对所述终端侧与网络侧的共享密钥进行哈希运算;
利用所述终端侧与网络侧的共享密钥对与所述SUPI关联的128比特的数进行加密运算;
使用MILENAGE算法中的函数或TUAK算法中的函数对所述终端侧与网络侧的共享密钥和与所述SUPI关联的128比特的数进行运算。
上述方案中,消息认证码标签值通过以下公式之一生成:
Tag=HMAC-SHA-256(KM,KE{MSIN},HASH(OPC或K));
Tag=HMAC-SHA-256(KM,KE{MSIN},Enc[SUPI’]OPC或K);
Tag=HMAC-SHA-256(KM,KE{MSIN},Enc[SUPI’⊕OPC]K);
Tag=HMAC-SHA-256(KM,KE{MSIN},OUT);
其中,HMAC-SHA-256为消息认证码运算函数,KM为完整性密钥;KE{MSIN}为加密的MSIN;HASH为哈希函数;K为所述终端侧与网络侧的共享根密钥;OPC为由密钥K推演出来的128比特共享密钥;Enc[SUPI’]OPC或K表示使用OPC或K对SUPI’进行加密;SUPI’为与SUPI关联的128比特的数;⊕表示信息异或操作;OUT为基于所述终端侧与网络侧的共享密钥K和OPC对SUPI’使用MILENAGE算法中的函数或TUAK算法中的函数进行运算得到的输出值。
上述方案中,所述终端包括全球用户识别卡(USIM,Universal SubscriberIdentity Module)和移动设备(ME,Mobile Equipment);如果SUPI的加密在所述USIM上进行,所述USIM生成SUCI消息;并发送给所述ME;所述ME向网络发送所述SUCI消息;
如果SUPI的加密在所述ME上进行,所述USIM将以下信息之一发送给所述ME:
HASH(OPC或K);
Enc[SUPI’]OPC或K;
Enc[SUPI’⊕OPC]K;
OUT;
所述ME生成SUCI消息并向网络发送所述SUCI消息。
上述方案中,与所述SUPI关联的128比特的数是SUPI值的末位补0后得到的。
上述方案中,所述基于终端侧与网络侧的共享密钥使用特定类型的函数进行运算,包括:
对所述终端侧与网络侧的共享密钥和用户公钥使用特定类型的函数进行运算。
上述方案中,所述对所述终端侧与网络侧的共享密钥和用户公钥使用特定类型的函数进行运算,包括以下之一:
对所述终端侧和网络侧的共享密钥和用户公钥进行哈希运算;
利用所述用户公钥,得到与所述用户公钥关联的128比特的数;利用所述终端侧和网络侧的共享密钥对所述与所述用户公钥关联的128比特的数进行加密运算;
利用所述用户公钥,得到与所述用户公钥关联的128比特的数;使用MILENAGE算法中的函数或TUAK算法中的函数对所述终端侧和网络侧的共享密钥和所述与所述用户公钥关联的128比特的数进行运算。
上述方案中,消息认证码标签值通过以下公式之一生成:
Tag=HMAC-SHA-256(KM,KE{MSIN},HASH((OPC或K)||APUB));
Tag=HMAC-SHA-256(KM,KE{MSIN},Enc[APUB’]OPC或K);
Tag=HMAC-SHA-256(KM,KE{MSIN},Enc[APUB’⊕OPC]K);
Tag=HMAC-SHA-256(KM,KE{MSIN},OUT);
其中,HMAC-SHA-256为消息认证码运算函数,KM为完整性密钥;KE{MSIN}为加密的MSIN;HASH为哈希函数;K为所述终端侧与网络侧的共享根密钥;OPC为由密钥K推演出来的128位共享密钥;Enc[APUB’]OPC或K表示使用OPC或K对APUB’进行加密;APUB’为与APUB关联的128比特的数;APUB为用户公钥;⊕表示信息异或操作;OUT为基于所述终端侧与网络侧的共享密钥K和OPC对APUB’使用MILENAGE算法中的函数或TUAK算法中的函数进行运算得到的输出值。
上述方案中,所述终端包括USIM和ME;如果SUPI的加密在所述USIM上进行,所述USIM生成SUCI消息;并发送给所述ME;所述ME向网络发送所述SUCI消息;
如果SUPI的加密在所述ME上进行,ME生成APUB并传给所述USIM,所述USIM将以下信息之一发送给所述ME:
HASH((OPC或K)||APUB);
Enc[APUB’]OPC或K;
Enc[APUB’⊕OPC]K;
OUT;
所述ME生成SUCI消息并向网络发送所述SUCI消息。
上述方案中,所述与所述用户公钥关联的128比特的数是将所述用户公钥进行截取处理得到的。
上述方案中,所述终端侧和网络侧的共享密钥包括以下至少之一:
终端侧与网络侧的共享根密钥;
终端侧与网络侧的OPC。
本申请实施例还提供了一种消息的处理装置,包括:
获取单元,用于获取SUCI消息;所述SUCI消息至少包含用户公钥,以及消息认证码标签值;
第一判断单元,用于根据所述SUCI消息中的用户公钥与本地存储的用户公钥,判断所述SUCI消息是否为SUCI重放攻击;
第二判断单元,用于在所述SUCI消息不为SUCI重放攻击的情况下,对所述SUCI消息中的消息认证码标签值进行验证,确定所述SUCI消息是否为SUPI猜测攻击;其中,
基于终端侧与网络侧的共享密钥使用特定类型的函数进行运算得到的函数运算结果作为消息认证码运算函数的输入之一。
本申请实施例还提供了一种消息的处理装置,包括:
生成单元,用于生成SUCI消息;
发送单元,用于向网络发送所述SUCI消息;所述SUCI消息至少包含用户公钥,以及消息认证码标签值;其中,
基于终端侧与网络侧的共享密钥使用特定类型的函数进行运算得到的函数运算结果作为消息认证码运算函数的输入之一。
本申请实施例还提供了一种网络设备,包括:
第一通信接口,用于获取SUCI消息;所述SUCI消息至少包含用户公钥,以及消息认证码标签值;
第一处理器,用于根据所述SUCI消息中的用户公钥与本地存储的用户公钥,判断所述SUCI消息是否为SUCI重放攻击;并在所述SUCI消息不为SUCI重放攻击的情况下,对所述SUCI消息中的消息认证码标签值进行验证,确定所述SUCI消息是否为SUPI猜测攻击;其中,
基于终端侧与网络侧的共享密钥使用特定类型的函数进行运算得到的函数运算结果作为消息认证码运算函数的输入之一。
本申请实施例还提供了一种终端,包括:
第二处理器,用于生成SUCI消息;
第二通信接口,用于向网络发送所述SUCI消息;所述SUCI消息至少包含用户公钥,以及消息认证码标签值;其中,
基于终端侧与网络侧的共享密钥使用特定类型的函数进行运算得到的函数运算结果作为消息认证码运算函数的输入之一。
本申请实施例还提供了一种网络设备,包括:第一处理器和用于存储能够在处理器上运行的计算机程序的第一存储器,
其中,所述第一处理器用于运行所述计算机程序时,执行上述网络设备侧任一方法的步骤。
本申请实施例还提供了一种终端,包括:第二处理器和用于存储能够在处理器上运行的计算机程序的第二存储器,
其中,所述第二处理器用于运行所述计算机程序时,执行上述终端侧任一方法的步骤。
本申请实施例还提供了一种存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述网络设备侧任一方法的步骤,或者实现上述终端侧任一方法的步骤。
本申请实施例提供的消息的处理方法、装置、相关设备及存储介质,终端生成SUCI消息;并向网络发送所述SUCI消息;所述SUCI消息至少包含用户公钥,以及消息认证码标签值;而网络设备获取SUCI消息;所述SUCI消息至少包含用户公钥,以及消息认证码标签值;根据所述SUCI消息中的用户公钥与本地存储的用户公钥,判断所述SUCI消息是否为SUCI重放攻击;在所述SUCI消息不为SUCI重放攻击的情况下,对所述SUCI消息中的消息认证码标签值进行验证,确定所述SUCI消息是否为SUPI猜测攻击;其中,基于终端侧与网络侧的共享密钥使用特定类型的函数进行运算得到的函数运算结果作为消息认证码运算函数的输入之一,网络设备先进行重放攻击的检测,再进行SUPI猜测攻击的检测,所以能够同时解决SUPI猜测攻击和SUCI重放攻击的问题。同时,与相关技术相比,SUCI的格式不需要变动,只需要在终端侧基于终端侧和网络侧的共享密钥使用特定的函数进行运算,函数运算结果新增作为消息认证码运算函数的输入,如此,实现了与相关技术的最大兼容。
附图说明
图1为相关技术中采用ECIES保护SUPI的方法流程示意图;
图2为SUPI猜测攻击的流程示意图;
图3为本申请实施例一种消息的处理方法流程示意图;
图4为本申请实施例另一种消息的处理方法流程示意图;
图5为本申请实施例一种消息的处理装置结构示意图;
图6为本申请实施例另一种消息的处理装置结构示意图;
图7为本申请实施例网络设备结构示意图;
图8为本申请实施例终端结构示意图。
具体实施方式
下面结合实施例对本申请再作进一步详细的描述。
相关技术中,如图1所示,采用ECIES保护SUPI的方案,包括以下步骤:
步骤101:用户设备(UE,User Equipment)(也可以称为终端)在第一次连接网络时,使用ECIES对SUPI进行加密,生成SUCI,并通过注册请求消息将SUCI传给安全锚功能(SEAF,SEcurity Anchor Function);
步骤102:SEAF将SUCI传递给鉴权服务功能(AUSF,Authentication ServerFunction),AUSF再将SUCI传递给统一数据管理功能(UDM,Unified Data Management);
步骤103:UDM对SUCI解密得到SUPI,根据SUPI找到UE的用户配置文件(Profile),从而确定使用何种认证协议对UE进行认证(5G AKA或EAP-AKA’);
步骤104:UE和网络使用选定的认证协议进行相互认证;
步骤105:认证结束后,UE和AUSF都获得基于长期密钥K而推导出的会话根密钥KAUSF。
其中,在步骤101中,UE加密SUPI的过程包括:
首先,UE随机生成ECDH私钥APRI,并推演出ECDH公钥APUB。
然后,UE使用自身的私钥APRI和网络的ECDH公钥BPUB生成共享密钥KECDH;UE从KECDH推演出加密密钥KE,AES计数加密的初始值,完整性密钥KM,这些参数称为密钥数据KD,即:
SUPI是5G网络为用户分配的全球唯一长期标识,包括SUPI的类型和用户标识值,在5G中常用的是国际移动用户识别码(IMSI,International Mobile SubscriberIdentity)。IMSI包括移动国家码(MCC,Mobile Country Code),移动网络码(MNC,MobileNetwork Code),和MSIN。其中,MCC和MNC是归属网络标识,MSIN用于在一个网络里辨识用户,它与用户的隐私相关,因此有必要对它进行加密。
接着,UE基于高级加密标准(AES,Advanced Encryption Standard)计数加密方式使用KE对SUPI的MSIN进行加密,使用KM对加密的MSIN进行完保,产生消息认证码标签值Tag。用公式表达消息认证码标签值Tag,则有:
Tag=HMAC-SHA-256(KM,KE{MSIN})。
最终,产生的SUCI的内容如下:
SUCI=SUPI的类型+归属网络标识+路由标识+保护方案标识+BPUB+APUB+KE{MSIN}+Tag;
其中,归属网络标识用于寻找到相应的归属网络,路由标识用于在同一归属网络中寻找到相应的UDM,“+”表示消息级联。
上述方案虽然保护了用户隐私,但易受到以下两种攻击:
1)SUPI猜测攻击
SUPI猜测攻击的基本思想是:攻击者通过猜测SUPI的值,并观察UDM的反馈消息,从而确认猜测的SUPI是否正确。
如图2所示,SUPI猜测攻击的流程包括:
步骤201:攻击者(英文可以表达为attacker)猜测一个SUPI,然后使用网络的公钥将其转换为SUCI。然后,它在注册请求消息中将SUCI发送到SEAF(通常设置在接入和移动性管理功能(AMF,Access and Mobility Management Function)上)/AMF。
步骤202:SEAF通过向AUSF发送包含SUCI的Nausf_UEAuthentication_Authenticate Request(即鉴权请求)消息来调用Nausf_UEAuthentication(即鉴权)服务。
步骤203:包含SUCI的Nudm_UEAuthentication_Get请求从AUSF发送到UDM;
步骤204:在接收到Nudm_UEAuthentication_Get请求时,UDM调用用户标识符隐藏功能(SIDF,Subscription Identifier De-concealingFunction)(通常设置在UDM上)来取消隐藏SUCI以获取SUPI,且UDM确定数据库中是否存在SUPI;
步骤205:如果在数据库中找到SUPI,则UDM根据SUPI选择身份验证方法。然后,UDM生成包含身份验证矢量的身份验证数据,并通过“200OK”将其在Nudm_UEAuthentication_Get Response消息中发送到AUSF。如果在数据库中未找到SUPI,则UDM在Nudm_UEAuthentication_Get Response消息中返回“404Not Found”并带有“USER_NOT_FOUND”的内容;
步骤206:在接收到“200OK”后,AUSF将“201Created”发送到SEAF/AMF,其中,UEAuthentictionCtx包含有Nausf_UEAuthentication_Authenticate Response消息中的认证向量;AUSF收到“404Not Found”后,会把含有“USER_NOT_FOUND”的“404Not Found”消息发送到SEAF/AMF;
步骤207.在“201Created”的情况下,SEAF/AMF在身份验证请求消息中将RAND和AUTN发送到UE(攻击者)。在“404Not Found”的情况下,SEAF/AMF将带有原因#3(表示非法UE)的注册拒绝消息发送给UE(攻击者);
这里,当网络拒绝UE的服务时,或者是因为UE的身份对于网络而言是不可接受的,或者因为UE没有通过身份验证检查,都会将5G移动性管理状态(5GMM,5G MobilityManagement)原因发送给UE。
在此阶段,原因#3用于指示UE的身份对于网络不可接受,因为此时网络尚未对UE进行身份验证。
步骤208:收到身份验证请求消息后,攻击者可以确定猜测的SUPI是有效的。攻击者收到带有原因#3的注册拒绝消息后,可以确定猜测的SUPI不在公共陆地移动网(PLMN,Public Land Mobile Network)中。
可见,如何确定SUPI消息是否是猜测攻击消息就显得尤为重要。
攻击者可以通过多次重复上述攻击来找出某个特定网络的整个SUPI数据库。攻击者还可以确定有效SUPI是否属于某个特定受害者。它将收到的身份验证请求消息转发给受害者。如果受害者回复“身份验证失败”消息,则有效的SUPI与受害者不匹配。如果受害者使用身份验证响应消息进行响应,则找到具有有效SUPI的受害者。
2)SUCI重放攻击
通过使用ECIES方案对SUPI的加密使攻击者无法在无线空口获得UE的SUPI。但它易受到重放攻击,因为目前的ECIES方案无法让网络侧确认接收到的SUCI是否是UE上次发送给网络的。SUCI重放攻击比较简单,攻击者在空口获取用户有效的SUCI后,然后在空口向网络重放,UDM会像处理一个正常用户的SUCI一样,生成认证矢量,并向攻击者发送含有RAND和AUTN的认证请求消息。攻击者再向合法的UE转发认证请求消息。如果攻击者多次使用重放攻击,UDM和合法的UE就不得不花费大量资源来处理重放消息和认证请求消息,因为这些消息是合法的,从而造成对UDM和UE的拒绝服务(DOS,Denial of Service)攻击。对UE的DOS攻击,会造成UE的处理能力下降和快速消耗电池的电量。对UDM的DOS攻击,会造成UDM的处理能力下降和对合法UE的请求响应变慢。
相关技术中,还存在使用一次性随机数(英文可以表达为nonce)或时间戳来防止重放攻击并减轻DoS攻击的方案,对于随机数方式,将随机数N引入加密操作中,网络侧收到加密值后解密得到N,首先验证N是否是新的,若不是新的,则表示检测到重放攻击。一种具体实现方式是随机数方案,具体包括IMSIEnc=MCC||MNC||EncPK(MSIN,N);其中,MCC和MNC未加密,因为它们需要用于在漫游情况下路由,||是级联操作,EncPK(X)表示使用密钥PK来加密明文X。网络侧收到IMSIEnc后,解密得到N,首先验证N是否是新的。如果归属PLMN之前已经看过N,则说明检测到重放攻击。另一种实现方式是时间戳方案,具体包括:用户的初始附着请求消息包含当前时间戳TUE和IMSIEnc。为了生成IMSIEnc,首先将N计算为N=fK(TUE);其中,K是UE的USIM与归属PLMN之间共享的对称密钥,fK()是使用密钥K的密钥化散列函数。IMSIEnc的构成如下:IMSIEnc=MCC||MNC||EncPK(MSIN,N)。网络侧收到IMSIEnc和TUE后,解密IMSIEnc得到N,计算fK(TUE)并与N做对比,从而确定N是否被篡改。如果确定没有被篡改,判断TUE是否在合适的范围,如果不在,则检测到重放攻击。
其中,随机数方案中,需要生成的随机数要求以前从没有出现过,而且网络侧如何知道N以前是否使用过也比较难实现,相关技术中并没有指出。时间戳方案在实际系统中较难实施,因为需要在UE和网络中存在时钟同步。
基于此,在本申请的各种实施例中,网络设备先使用存储的用户公钥与收到的用户公钥对比判断SUCI消息是否为重放消息;且基于终端侧和网络侧的共享密钥使用特定类型的函数进行运算,将函数运算结果新增作为消息认证码运算函数的输入,在SUCI消息不为重放消息的情况下,网络设备再通过对消息认证码标签值的验证确定SUCI消息是否为SUPI猜测消息;具体地,终端基于终端侧和网络侧的共享密钥使用特定类型的函数进行运算,函数运算结果新增作为消息认证码运算函数的输入;而网络设备通过对消息认证码标签值的验证确定SUCI消息是否为SUPI猜测消息。
本申请实施例中,网络设备先进行重放攻击的检测,再进行SUPI猜测攻击的检测,从而能避免对网络设备的DoS攻击,因为在检测到重放攻击时,不需要再使用非对称算法对SUPI进行解密。
同时,通过对消息认证码标签值的检测可以判断是否是SUPI猜测攻击,这是以为:攻击者不知道终端和网络的共享密钥,即使SUPI猜测正确,网络会检测出消息认证码标签值的错误,从而能够解决SUPI猜测攻击的问题。
本申请实施例提供一种消息的处理方法,应用于终端,如图3所述,该方法包括:
步骤301:生成SUCI消息;
步骤302:向网络发送所述SUCI消息;所述SUCI消息至少包含用户公钥,以及消息认证码标签值;其中,
基于终端侧与网络侧的共享密钥使用特定类型的函数进行运算得到的函数运算结果作为消息认证码运算函数的输入之一。
其中,本申请实施例中,在对ECIES方案没有大改动情况下同时解决SUCI重放攻击和SUPI猜测攻击,因此,SUCI消息的格式不用改动,即所述SUCI消息包括:
SUPI的类型+归属网络标识+路由标识+保护方案标识+BPUB+APUB+KE{MSIN}+Tag;
其中,APUB为用户公钥(也可以称为终端的公钥);BPUB为网络的公钥;KE{MSIN}表示加密的MSIN;Tag为消息认证码标签值;+表示级联。
本申请实施例中,终端基于终端侧和网络侧的共享密钥使用特定类型的函数进行运算,将函数运算结果新增作为消息认证码运算函数的输入。
其中,所述终端侧和网络侧的共享密钥可以包括以下至少之一:
终端侧与网络侧的共享根密钥K;
终端侧与网络侧的OPC。
这里,OPC是利用从运营商根密钥(OP,OPerator code)和终端侧与网络侧的共享根密钥推演出的共享密钥,一般可以为128比特。
其中,实际应用时,终端基于终端侧和网络侧的共享密钥使用特定类型的函数进行运算时,可以不加入其他参数(即随机值)进行函数运算,即仅使用终端侧和网络侧的共享密钥进行函数运算。
这里,使用函数的不同,则运算结果不同,可以有以下三种情况:
第一种情况,使用哈希函数。
在这种情况下,终端使用ECIES对SUPI加密,生成SUCI,其格式如下:
SUCI=SUPI的类型+归属网络标识+路由标识+保护方案标识+BPUB+APUB+KE{MSIN}+Tag;
其中,在本申请实施例中,运算Tag的函数输入项里增加了所述终端侧和网络侧的共享密钥(K或OPC)的哈希值,即对所述终端侧和网络侧的共享密钥进行哈希运算,而相关技术中,运算Tag的函数输入项为KM,KE{MSIN};Tag的计算公式可以如下:
Tag=HMAC-SHA-256(KM,KE{MSIN},HASH(OPC或K));
其中,HMAC-SHA-256为消息认证码运算函数,KM为完整性密钥;KE{MSIN}为加密的MSIN;HASH为哈希函数,如SHA-256;K为所述终端侧与网络侧的共享根密钥;OPC为由密钥K推演出来的128比特共享密钥。
实际应用时,所述终端包括USIM和ME;如果对SUPI的加密操作是在USIM上进行,则USIM生成SUCI消息(也可以称为SUCI)并传给ME(也可以称为移动终端),并由ME传给网络。如果SUPI的加密在ME上进行,则USIM将HASH(OPC或K)传给ME。ME生成SUCI消息后,将生成的SUCI消息传给网络。
网络收到SUCI消息后,首先使用APUB查询,如果出现过APUB,则判断SUCI消息为重放攻击;如果没有出现过,解密KE{MSIN},得到SUPI;再根据SUPI得到终端侧和网络侧的共享密钥;基于得到的终端侧和网络侧的共享密钥对Tag进行验证,如果验证成功,则证明不存在SUPI猜测攻击,最后把APUB存储在网络设备上,并生成认证矢量返回给终端。如果验证失败,则判断SUCI消息为SUPI猜测攻击。
第二种情况,使用加密函数。
使用加密函数时,需要引入一个参数;该参数表征与所述SUPI关联的N比特的数;N为大于或等于1的整数。
其中,基于实际使用的加密算法,该参数具体可以表征与所述SUPI关联的128比特的数。
可以将所述SUPI的末位补第一数值后得到该参数,也就是说,该参数是将所述SUPI的末位补第一数值后得到的。其中,实际应用时,所述第一数值可以是0,也就是说,与所述SUPI关联的128比特的数SUPI’是SUPI值的末位补0后得到的,即将SUPI之后面填充0后得到该参数。
在这种情况下,终端使用ECIES对SUPI加密,生成SUCI,其格式如下:
SUCI=SUPI的类型+归属网络标识+路由标识+保护方案标识+BPUB+APUB+KE{MSIN}+Tag;
其中,在本申请实施例中,运算Tag的函数输入项里增加了所述终端侧和网络侧的共享密钥(K或OPC)对SUPI’的加密输出值,即利用所述终端侧与网络侧的共享密钥对与所述SUPI关联的128比特的数进行加密运算;而相关技术中,运算Tag的函数输入项为KM,KE{MSIN};Tag的计算公式可以如下:
Tag=HMAC-SHA-256(KM,KE{MSIN},Enc[SUPI’]OPC或K);
其中,Enc为加密函数,如AES,Enc[SUPI’]OPC或K表示使用OPC或K对SUPI’进行加密;SUPI’为与SUPI关联的128比特的数。
实际应用时,如果对SUPI的加密操作是在USIM上进行,则USIM生成SUCI消息并传给ME,并由ME传给网络。如果SUPI的加密在ME上进行,则USIM将Enc[SUPI’]OPC或K传给ME。ME生成SUCI消息后,将生成的SUCI消息传给网络。
网络收到SUCI消息后,首先使用APUB查询,如果出现过APUB,则判断SUCI消息为重放攻击;如果没有出现过,解密KE{MSIN},得到SUPI;再根据SUPI得到终端侧和网络侧的共享密钥;基于终端侧和网络侧的共享密钥对Tag进行验证,如果验证成功,则证明不存在SUPI猜测攻击,最后把APUB存储在网络设备上,并生成认证矢量返回给终端。如果验证失败,则判断SUCI消息为SUPI猜测攻击。
SUPI’的加密也可能同时使用共享密钥OPC和K,即Enc[SUPI’⊕OPC]K,Tag的计算相应如下:
Tag=HMAC-SHA-256(KM,KE{MSIN},Enc[SUPI’⊕OPC]K);
这里,⊕表示信息异或操作。
如果对SUPI的加密操作是在USIM上进行,则USIM生成SUCI消息并传给ME,并由ME传给网络。如果SUPI的加密在ME上进行,则USIM将Enc[SUPI’⊕OPC]K传给ME。ME生成SUCI消息后,将生成的SUCI消息传给网络。
相应地,网络收到SUCI消息后,首先使用APUB查询,如果出现过APUB,则判断SUCI消息为重放攻击;如果没有出现过,解密KE{MSIN},得到SUPI;再根据SUPI得到终端侧和网络侧的共享密钥(K和OPC);基于终端侧和网络侧的共享密钥对Tag进行验证,如果验证成功,则证明不存在SUPI猜测攻击,最后把APUB存储在网络设备上,并生成认证矢量返回给终端。如果验证失败,则判断SUCI消息为SUPI猜测攻击。
第三种情况,使用MILENAGE算法中的函数或TUAK算法中的函数。USIM和UDM会使用MILENAGE算法中的函数或TUAK算法中的函数基于终端侧和网络侧的共享密钥生成认证向量和认证响应。在本申请实施例中,利用MILENAGE算法中的函数或TUAK算法中的函数使用终端侧和网络侧的共享密钥和SUPI的128比特填充值SUPI’作为输入,生成一个输出值OUT,并将它添加为Tag计算的输入项。
在这种情况下,终端使用ECIES对SUPI加密,生成SUCI,其格式如下:
SUCI=SUPI的类型+归属网络标识+路由标识+保护方案标识+BPUB+APUB+KE{MSIN}+Tag;
其中,在本申请实施例中,运算Tag的函数输入项里增加了所述终端侧和网络侧的共享密钥(K和OPC)对SUPI’使用MILENAGE算法中的函数进行运算得到的输出值OUT,即使用MILENAGE算法中的函数或TUAK算法中的函数对所述终端侧与网络侧的共享密钥和与所述SUPI关联的128比特的数进行运算,而相关技术中,运算Tag的函数输入项为KM,KE{MSIN};Tag的计算公式可以如下:
Tag=HMAC-SHA-256(KM,KE{MSIN},OUT);
其中,OUT为基于所述终端侧与网络侧的共享密钥K和OPC对SUPI’使用MILENAGE算法中的函数或TUAK算法中的函数进行运算得到的输出值。
这里,OUT值的计算可以采用下列公式之一计算得出:
OUT=f2(SUPI’,K);
OUT=f3(SUPI’,K);
OUT=f4(SUPI’,K);
OUT=f5(SUPI’,K);
其中,f2,f3,f4,f5是MILENAGE算法中或TUAK算法中定义的函数。
实际应用时,如果对SUPI的加密操作是在USIM上进行,则USIM生成SUCI消息并传给ME,并由ME传给网络。如果SUPI的加密在ME上进行,则USIM将OUT传给ME。ME生成SUCI消息后,将生成的SUCI消息传给网络。
网络收到SUCI消息后,首先使用APUB查询,如果出现过APUB,则判断SUCI消息为重放攻击;如果没有出现过,解密KE{MSIN},得到SUPI;再根据SUPI得到网络侧共享密钥;基于网络侧共享密钥以及SUPI对Tag进行验证,如果验证成功,则证明不存在SUPI猜测攻击,最后把APUB存储在网络设备上,并生成认证矢量返回给终端。如果验证失败,则判断SUCI消息为SUPI猜测攻击。
从上面的描述可以看出,即仅使用终端侧和网络侧的共享密钥进行函数运算时,对于上述三种情况,如果SUPI的加密在所述终端的USIM上进行,所述USIM生成SUCI消息;并发送给所述终端的ME;所述ME向网络发送所述SUCI消息;
如果SUPI的加密在所述ME上进行,所述USIM将以下信息之一发送给所述ME:
HASH(OPC或K);
Enc[SUPI’]OPC或K;
Enc[SUPI’⊕OPC]K;
OUT;
所述ME生成SUCI消息并向网络发送所述SUCI消息。
实际应用时,终端基于终端和网络侧的共享密钥使用特定类型的函数进行运算时,也可以加入其他参数(即随机值,比如用户公钥)进行函数运算(加入其他参数作为输入),即使用终端侧和网络侧的共享密钥和其他参数进行函数运算。
相应地,使用函数的不同,则运算结果不同,可以有以下三种情况:
第一种情况,使用哈希函数。
在这种情况下,终端(也可以称为UE)使用ECIES对SUPI加密,生成SUCI,其格式如下:
SUCI=SUPI的类型+归属网络标识+路由标识+保护方案标识+BPUB+APUB+KE{MSIN}+Tag;
其中,在本申请实施例中,运算Tag的函数输入项里增加了所述终端侧和网络侧的共享密钥(K或OPC)以及用户公钥,即对所述终端侧和网络侧的共享密钥和用户公钥进行哈希运算,而相关技术中,运算Tag的函数输入项为KM,KE{MSIN};Tag的计算公式可以如下:
Tag=HMAC-SHA-256(KM,KE{MSIN},HASH((OPC或K)||APUB));
其中,HMAC-SHA-256为消息认证码运算函数,KM为完整性密钥;KE{MSIN}为加密的MSIN;HASH为哈希函数,如SHA-256。
实际应用时,如果对SUPI的加密操作是在USIM上进行,则USIM生成SUCI消息(也可以称为SUCI)并传给ME,并由ME传给网络。如果SUPI的加密在ME上进行,则USIM将HASH((OPC或K)||APUB)传给ME。ME生成SUCI消息后,将生成的SUCI消息传给网络。
网络收到SUCI消息后,首先使用APUB查询,如果出现过APUB,则判断SUCI消息为重放攻击;如果没有出现过,解密KE{MSIN},得到SUPI;再根据SUPI得到网络侧共享密钥;基于网络侧共享密钥以及APUB对Tag进行验证,如果验证成功,则证明不存在SUPI猜测攻击,最后把APUB存储在网络设备上,并生成认证矢量返回给终端。如果验证失败,则判断SUCI消息为SUPI猜测攻击。
第二种情况,使用加密函数。
使用加密函数时,需要引入一个参数;该参数表征与所述随机数(即用户公钥)关联的M比特的数;M为大于或等于1的整数。
其中,基于实际使用的加密算法,该参数具体可以表征与所述用户公钥关联的128比特的数。
该参数可以是将用户公钥进行处理后得到的128比特位数值,具体可以是将所述用户公钥进行截取处理得到的,比如对用户公钥APUB截取前128比特位或截取后128比特位。也就是说,与APUB关联的128比特的数APUB’是将APUB进行截取处理得到的。
这种情况下,终端使用ECIES对SUPI加密,生成SUCI,其格式如下:
SUCI=SUPI的类型+归属网络标识+路由标识+保护方案标识+BPUB+APUB+KE{MSIN}+Tag;
其中,在本申请实施例中,运算Tag的函数输入项里增加了所述终端侧和网络侧的共享密钥(K或OPC)的对APUB’的加密输出值,即利用所述用户公钥,得到与所述用户公钥关联的128比特的数;利用所述终端侧和网络侧的共享密钥对所述与所述用户公钥关联的128比特的数进行加密运算;而相关技术中,Tag的输入项为KM,KE{MSIN};Tag的计算公式可以如下:
Tag=HMAC-SHA-256(KM,KE{MSIN},Enc[APUB’]OPC或K);
其中,Enc为加密函数,如AES,Enc[APUB’]OPC或K表示使用OPC或K对APUB’进行加密;APUB’为与APUB关联的128比特的数。
实际应用时,如果对SUPI的加密操作是在USIM上进行,则USIM生成SUCI消息并传给ME,并由ME传给网络。如果SUPI的加密在ME上进行,则ME生成APUB,并将APUB传给USIM,USIM生成Enc[APUB’]OPC或K,并将Enc[APUB’]OPC或K传给ME。ME生成SUCI消息后,将生成的SUCI消息传给网络。
网络收到SUCI消息后,首先使用APUB查询,如果出现过APUB,则判断SUCI消息为重放攻击;如果没有出现过,解密KE{MSIN},得到SUPI;再根据SUPI得到终端侧和网络侧的共享密钥;基于终端侧和网络侧的共享密钥以及APUB对Tag进行验证,如果验证成功,则证明不存在SUPI猜测攻击,最后把APUB存储在网络设备上,并生成认证矢量返回给终端。如果验证失败,则判断SUCI消息为SUPI猜测攻击。
APUB’加密也可能同时使用共享密钥OPC和K,即Enc[APUB’⊕OPC]K,Tag的计算相应如下:
Tag=HMAC-SHA-256(KM,KE{MSIN},Enc[APUB’⊕OPC]K);
如果SUPI的加密在USIM上进行,则USIM生成SUCI消息并传给ME,并由ME传给网络。如果SUPI的加密在ME上进行,则ME生成APUB并将APUB传给USIM,USIM生成Enc[APUB’⊕OPC]K,并将Enc[APUB’⊕OPC]K传给ME。ME生成SUCI消息后,将生成的SUCI消息传给网络。
相应地,网络收到SUCI消息后,首先使用APUB查询,如果出现过APUB,则判断SUCI消息为重放攻击;如果没有出现过,解密KE{MSIN},得到SUPI;再根据SUPI得到终端侧和网络侧的共享密钥;基于终端侧和网络侧的共享密钥以及APUB对Tag进行验证,如果验证成功,则证明不存在SUPI猜测攻击,最后把APUB存储在网络设备上,并生成认证矢量返回给终端。如果验证失败,则判断SUCI消息为SUPI猜测攻击。
第三种情况,使用MILENAGE算法中的函数或TUAK算法中定义的函数。
在本申请实施例中,利用MILENAGE算法中的函数或TUAK算法中的函数使用共享密钥和APUB处理后得到的128比特值APUB’作为输入,生成一个输出值OUT,并将它添加为Tag计算的输入项。
在这种情况下,终端使用ECIES对SUPI加密,生成SUCI,其格式如下:
SUCI=SUPI的类型+归属网络标识+路由标识+保护方案标识+BPUB+APUB+KE{MSIN}+Tag;
其中,在本申请实施例中,运算Tag的函数输入项里增加了所述终端侧和网络侧的共享密钥(K和OPC)对APUB’使用MILENAGE算法中的函数或TUAK算法中定义的函数进行运算得到的输出值OUT,即利用所述用户公钥,得到与所述用户公钥关联的128比特的数;使用MILENAGE算法中的函数或TUAK算法中定义的函数对所述终端侧和网络侧的共享密钥和所述与所述用户公钥关联的128比特的数进行运算;而相关技术中,运算Tag的函数输入项为KM,KE{MSIN};Tag的计算公式可以如下:
Tag=HMAC-SHA-256(KM,KE{MSIN},OUT);
其中,OUT为基于所述终端侧与网络侧的共享密钥K和OPC对APUB’使用MILENAGE算法中的函数或TUAK算法中的函数进行运算得到的输出值。
这里,OUT值的计算可以采用下列公式之一计算得出:
OUT=f2(SUPI’,K);
OUT=f3(SUPI’,K);
OUT=f4(SUPI’,K);
OUT=f5(SUPI’,K);
其中,f2,f3,f4,f5是MILENAGE算法中或TUAK算法中定义的函数。
实际应用时,如果对SUPI的加密操作是在USIM上进行,则USIM生成SUCI消息并传给ME,并由ME传给网络。如果SUPI的加密在ME上进行,则ME生成APUB,并将APUB传给USIM,USIM生成OUT,并将OUT传给ME。ME生成SUCI消息后,将生成的SUCI消息传给网络。
网络收到SUCI消息后,首先使用APUB查询,如果出现过APUB,则判断SUCI消息为重放攻击;如果没有出现过,解密KE{MSIN},得到SUPI;再根据SUPI得到终端侧和网络侧的共享密钥;基于终端侧和网络侧的共享密钥以及APUB对Tag进行验证,如果验证成功,则证明不存在SUPI猜测攻击,最后把APUB存储在网络设备上,并生成认证矢量返回给终端。如果验证失败,则判断SUCI消息为SUPI猜测攻击。
从上面的描述可以看出,即使用终端侧和网络侧的共享密钥和用户公钥进行函数运算时,对于上述三种情况,如果SUPI的加密在所述终端的USIM上进行,所述USIM生成SUCI消息;并发送给所述终端的ME;所述ME向网络发送所述SUCI消息;
如果SUPI的加密在所述ME上进行,所述ME生成APUB并传给所述USIM,所述USIM将以下信息之一发送给所述ME:
HASH((OPC或K)||APUB);
Enc[APUB’]OPC或K;
Enc[APUB’⊕OPC]K;
OUT;
所述ME生成SUCI消息并向网络发送所述SUCI消息。
相应地,本申请实施例还提供了一种消息的处理方法,应用于网络设备,如图4所示,该方法包括:
步骤401:获取SUCI消息;所述SUCI消息至少包含用户公钥,以及消息认证码标签值;
步骤402:根据所述SUCI消息中的用户公钥与本地存储的用户公钥,判断所述SUCI消息是否为SUCI重放攻击;
步骤403:在所述SUCI消息不为SUCI重放攻击的情况下,对所述SUCI消息中的消息认证码标签值进行验证,确定所述SUCI消息是否为SUPI猜测攻击;其中,
基于终端侧与网络侧的共享密钥使用特定类型的函数进行运算得到的函数运算结果作为消息认证码运算函数的输入之一。
其中,实际应用时,所述网络设备可以是UDM。
在步骤402中,所述网络设备通过把从终端侧收到的用户公钥与存储在数据库中以前的用户公钥比对,以确定收到的SUCI消息是否是重放消息;具体地,所述网络设备利用所述SUCI消息中的用户公钥在数据库中进行查询,如果查询到,则说明所述SUCI消息中的用户公钥出现过,确定所述SUCI消息为重放攻击,如果未查询到,则说明所述SUCI消息中的用户公钥没有出现过,确定所述消息不为重放攻击。
其中,实际应用时,用户公钥虽然不是一次性随机数,但它是在[0,2n]范围内变化的随机数,这里,n为用户公钥的长度。终端产生相同的公钥的概率为1/2n,且通常用户公钥的长度大于或等于256比特,因此终端产生相同公钥的概率可以忽略不计。相应地,网络设备依据用户公钥判断重放攻击的错误率也可以忽略不计。
在一实施例中,所述对所述SUCI消息中的消息认证码标签值进行验证,确定所述SUCI消息是否为SUPI猜测攻击,包括:
对所述SUCI消息中加密的SUPI进行解密,得到SUPI;
利用得到的SUPI,从数据库中得到与SUPI对应的终端侧与网络侧的共享密钥;
对所述对应的终端侧与网络侧的共享密钥使用特定类型的函数进行运算得到函数运算结果,并生成消息认证码标签值;
将生成的消息认证码标签值与所述SUCI消息中的消息认证码标签值进行比对;若二者相同,确定所述SUCI消息不是SUPI猜测攻击,若二者不相同,确定所述SUCI消息为SUPI猜测攻击。
其中,网络设备生成消息认证码标签值的过程与终端生成所述SUCI消息中的消息认证码标签值的过程完全相同,这里不再赘述。
在验证成功的情况下,即确定所述SUCI消息不是SUPI猜测攻击的情况下,在本地存储所述SUCI消息中的用户公钥,即存储在数据库中,以便后续用于判断获取的SUCI消息是否是SUCI重放攻击。
这里,实际应用时,在验证成功的情况下,所述网络设备会生成认证矢量返回给所述终端。
本申请实施例提供的消息的处理方法,终端生成SUCI消息;并向网络发送所述SUCI消息;所述SUCI消息至少包含用户公钥,以及消息认证码标签值;而网络设备获取SUCI消息;所述SUCI消息至少包含用户公钥,以及消息认证码标签值;根据所述SUCI消息中的用户公钥与本地存储的用户公钥,判断所述SUCI消息是否为SUCI重放攻击;在所述SUCI消息不为SUCI重放攻击的情况下,对所述SUCI消息中的消息认证码标签值进行验证,确定所述SUCI消息是否为SUPI猜测攻击;其中,基于终端侧与网络侧的共享密钥使用特定类型的函数进行运算得到的函数运算结果作为消息认证码运算函数的输入之一,网络设备先进行重放攻击的检测,再进行SUPI猜测攻击的检测,所以能够同时解决SUPI猜测攻击和SUCI重放攻击的问题。同时,与相关技术相比,SUCI的格式不需要变动,只需要在终端侧基于终端侧和网络侧的共享密钥使用特定的函数进行运算,函数运算结果新增作为消息认证码运算函数的输入,如此,实现了与相关技术的最大兼容。
为了实现本申请实施例的方法,本申请实施例还提供了一种消息的处理装置,设置在网络设备上,如图5所示,该装置包括:
获取单元501,用于获取SUCI消息;所述SUCI消息至少包含用户公钥,以及消息认证码标签值;
第一判断单元502,用于根据所述SUCI消息中的用户公钥与本地存储的用户公钥,判断所述SUCI消息是否为SUCI重放攻击;
第二判断单元503,用于在所述SUCI消息不为SUCI重放攻击的情况下,对所述SUCI消息中的消息认证码标签值进行验证,确定所述SUCI消息是否为SUPI猜测攻击;其中,
基于终端侧与网络侧的共享密钥使用特定类型的函数进行运算得到的函数运算结果作为消息认证码运算函数的输入之一。
其中,在一实施例中,所述第二判断单元503,用于:
对所述终端侧与网络侧的共享密钥使用特定类型的函数进行运算。
其中,在一实施例中,所述对所述终端侧与网络侧的共享密钥使用特定类型的函数进行运算,包括以下之一:
对所述终端侧与网络侧的共享密钥进行哈希运算;
利用所述终端侧与网络侧的共享密钥对与所述SUPI关联的128比特的数进行加密运算;
使用MILENAGE算法中的函数对所述终端侧与网络侧的共享密钥和与所述SUPI关联的128比特的数进行运算。
在一实施例中,所述第二判断单元503,用于通过以下公式之一生成消息认证码标签值:
Tag=HMAC-SHA-256(KM,KE{MSIN},HASH(OPC或K));
Tag=HMAC-SHA-256(KM,KE{MSIN},Enc[SUPI’]OPC或K);
Tag=HMAC-SHA-256(KM,KE{MSIN},Enc[SUPI’⊕OPC]K);
Tag=HMAC-SHA-256(KM,KE{MSIN},OUT);
其中,HMAC-SHA-256为消息认证码运算函数,KM为完整性密钥;KE{MSIN}为加密的MSIN;HASH为哈希函数;K为所述终端侧与网络侧的共享根密钥;OPC为由密钥K推演出来的128比特共享密钥;Enc[SUPI’]OPC或K表示使用OPC或K对SUPI’进行加密;SUPI’为与SUPI关联的128比特的数;⊕表示信息异或操作;OUT为基于所述终端侧与网络侧的共享密钥K和OPC对SUPI’使用MILENAGE算法中的函数或TAUK算法中的函数进行运算得到的输出值。
在一实施例中,所述第二判断单元503,用于:
对所述终端侧与网络侧的共享密钥和用户公钥使用特定类型的函数进行运算。
其中,在一实施例中,所述对所述终端侧与网络侧的共享密钥和用户公钥使用特定类型的函数进行运算,包括以下之一:
对所述终端侧与网络侧的共享密钥和用户公钥进行哈希运算;
利用所述用户公钥,得到与所述用户公钥关联的128比特的数;利用所述终端侧与网络侧的共享密钥对所述与所述用户公钥关联的128比特的数进行加密运算;
利用所述用户公钥,得到与所述用户公钥关联的128比特的数;使用MILENAGE算法中的函数或TAUK算法中的函数对所述终端侧和网络侧的共享密钥和所述与所述用户公钥关联的128比特的数进行运算。
在一实施例中,所述第二判断单元503,用于通过以下公式之一生成消息认证码标签值:
Tag=HMAC-SHA-256(KM,KE{MSIN},HASH((OPC或K)||APUB));
Tag=HMAC-SHA-256(KM,KE{MSIN},Enc[APUB’]OPC或K);
Tag=HMAC-SHA-256(KM,KE{MSIN},Enc[APUB’⊕OPC]K);
Tag=HMAC-SHA-256(KM,KE{MSIN},OUT);
其中,HMAC-SHA-256为消息认证码运算函数,KM为完整性密钥;KE{MSIN}为加密的MSIN;HASH为哈希函数;K为所述终端侧与网络侧的共享根密钥;OPC为由密钥K推演出来的128比特共享密钥;Enc[APUB’]OPC或K表示使用OPC或K对APUB’进行加密;APUB’为与APUB关联的128比特的数;APUB为用户公钥;⊕表示信息异或操作;OUT为基于所述终端侧与网络侧的共享密钥K和OPC对APUB’使用MILENAGE算法中的函数或TAUK算法中的函数进行运算得到的输出值。
在一实施例中,所述第二判断单元503,用于:
对所述SUCI消息中加密的SUPI进行解密,得到SUPI;
利用得到的SUPI,从数据库中得到与SUPI对应的终端侧与网络侧的共享密钥;
对所述对应的终端侧与网络侧的共享密钥使用特定类型的函数进行运算得到函数运算结果,并生成消息认证码标签值;
将生成的消息认证码标签值与所述SUCI消息中的消息认证码标签值进行比对;若二者相同,确定所述SUCI消息不是SUPI猜测攻击,若二者不相同,确定所述SUCI消息为SUPI猜测攻击。
在一实施例中,该装置还可以包括:处理单元,用于在验证成功的情况下,在本地存储所述SUCI消息中的用户公钥。
其中,在一实施例中,所述处理单元,还用于生成认证矢量返回给所述终端。
实际应用时,所述获取单元501可由消息的处理装置中的通信接口实现;所述第一判断单元502及第二判断单元503可由消息的处理装置中的处理器实现;所述处理单元可由消息的处理装置中的处理器结合通信接口实现。
为了实现本申请实施例终端侧的方法,本申请实施例还提供了一种消息的处理装置,设置在终端上,如图6所示,该装置包括:
生成单元601,用于生成SUCI消息;
发送单元602,用于向网络发送所述SUCI消息;所述SUCI消息至少包含用户公钥,以及消息认证码标签值;其中,
基于终端侧与网络侧的共享密钥使用特定类型的函数进行运算得到的函数运算结果作为消息认证码运算函数的输入之一。
其中,在一实施例中,所述生成单元601,用于:
对所述终端侧与网络侧的共享密钥使用特定类型的函数进行运算。
其中,在一实施例中,所述对所述终端侧与网络侧的共享密钥使用特定类型的函数进行运算,包括以下之一:
对所述终端侧与网络侧的共享密钥进行哈希运算;
利用所述终端侧与网络侧的共享密钥对与所述SUPI关联的128比特的数进行加密运算;
使用MILENAGE算法中的函数对所述终端侧与网络侧的共享密钥和与所述SUPI关联的128比特的数进行运算。
在一实施例中,所述生成单元601,用于通过以下公式之一生成消息认证码标签值:
Tag=HMAC-SHA-256(KM,KE{MSIN},HASH(OPC或K));
Tag=HMAC-SHA-256(KM,KE{MSIN},Enc[SUPI’]OPC或K);
Tag=HMAC-SHA-256(KM,KE{MSIN},Enc[SUPI’⊕OPC]K);
Tag=HMAC-SHA-256(KM,KE{MSIN},OUT);
其中,HMAC-SHA-256为消息认证码运算函数,KM为完整性密钥;KE{MSIN}为加密的MSIN;HASH为哈希函数;K为所述终端侧与网络侧的共享根密钥;OPC为由密钥K推演出来的128比特共享密钥;Enc[SUPI’]OPC或K表示使用OPC或K对SUPI’进行加密;SUPI’为与SUPI关联的128比特的数;⊕表示信息异或操作;OUT为基于所述终端侧与网络侧的共享密钥K和OPC对SUPI’使用MILENAGE算法中的函数或TAUK算法中的函数进行运算得到的输出值。
在一实施例中,所述生成单元601,用于:
对所述终端侧与网络侧的共享密钥和用户公钥使用特定类型的函数进行运算。
其中,在一实施例中,所述对所述终端侧与网络侧的共享密钥和用户公钥使用特定类型的函数进行运算,包括以下之一:
对所述终端侧和网络侧的共享密钥和用户公钥进行哈希运算;
利用所述用户公钥,得到与所述用户公钥关联的128比特的数;利用所述终端侧和网络侧的共享密钥对所述与所述用户公钥关联的128比特的数进行加密运算;
利用所述用户公钥,得到与所述用户公钥关联的128比特的数;使用MILENAGE算法中的函数或TAUK算法中的函数对所述终端侧和网络侧的共享密钥和所述与所述用户公钥关联的128比特的数进行运算。
在一实施例中,所述生成单元601,用于通过以下公式之一生成消息认证码标签值:
Tag=HMAC-SHA-256(KM,KE{MSIN},HASH((OPC或K)||APUB));
Tag=HMAC-SHA-256(KM,KE{MSIN},Enc[APUB’]OPC或K);
Tag=HMAC-SHA-256(KM,KE{MSIN},Enc[APUB’⊕OPC]K);
Tag=HMAC-SHA-256(KM,KE{MSIN},OUT);
其中,HMAC-SHA-256为消息认证码运算函数,KM为完整性密钥;KE{MSIN}为加密的MSIN;HASH为哈希函数;K为所述终端侧与网络侧的共享根密钥;OPC为由密钥K推演出来的128位共享密钥;Enc[APUB’]OPC或K表示使用OPC或K对APUB’进行加密;APUB’为与APUB关联的128比特的数;APUB为用户公钥;⊕表示信息异或操作;OUT为基于所述终端侧与网络侧的共享密钥K和OPC对APUB’使用MILENAGE算法中的函数或TAUK算法中的函数进行运算得到的输出值。
实际应用时,所述生成单元601可由消息的处理装置中的处理器实现;所述发送单元602可由消息的处理装置中的通信接口实现。
需要说明的是:上述实施例提供的消息的处理装置在进行控制信道的传输时,仅以上述各程序模块的划分进行举例说明,实际应用中,可以根据需要而将上述处理分配由不同的程序模块完成,即将装置的内部结构划分成不同的程序模块,以完成以上描述的全部或者部分处理。另外,上述实施例提供的消息的处理装置与消息的处理方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
基于上述程序模块的硬件实现,且为了实现本申请实施例网络设备侧的方法,本申请实施例还提供了一种网络设备,如图7所示,该网络设备700包括:
第一通信接口701,能够与其他设备进行信息交互;
第一处理器702,与所述第一通信接口701连接,以实现与其他设备进行信息交互,用于运行计算机程序时,执行上述网络设备侧一个或多个技术方案提供的方法。而所述计算机程序存储在第一存储器703上。
具体地,所述第一通信接口701,用于获取SUCI消息;所述SUCI消息至少包含用户公钥,以及消息认证码标签值;
所述第一处理器702,用于根据所述SUCI消息中的用户公钥与本地存储的用户公钥,判断所述SUCI消息是否为SUCI重放攻击;并在所述SUCI消息不为SUCI重放攻击的情况下,对所述SUCI消息中的消息认证码标签值进行验证,确定所述SUCI消息是否为SUPI猜测攻击;其中,
基于终端侧与网络侧的共享密钥使用特定类型的函数进行运算得到的函数运算结果作为消息认证码运算函数的输入之一。
具体地,在一实施例中,所述第一处理器702,用于:
对所述终端侧与网络侧的共享密钥使用特定类型的函数进行运算。
其中,在一实施例中,所述对所述终端侧与网络侧的共享密钥使用特定类型的函数进行运算,包括以下之一:
对所述终端侧与网络侧的共享密钥进行哈希运算;
利用所述终端侧与网络侧的共享密钥对与所述SUPI关联的128比特的数进行加密运算;
使用MILENAGE算法中的函数对所述终端侧与网络侧的共享密钥和与所述SUPI关联的128比特的数进行运算。
在一实施例中,所述第一处理器702,用于通过以下公式之一生成消息认证码标签值:
Tag=HMAC-SHA-256(KM,KE{MSIN},HASH(OPC或K));
Tag=HMAC-SHA-256(KM,KE{MSIN},Enc[SUPI’]OPC或K);
Tag=HMAC-SHA-256(KM,KE{MSIN},Enc[SUPI’⊕OPC]K);
Tag=HMAC-SHA-256(KM,KE{MSIN},OUT);
其中,HMAC-SHA-256为消息认证码256运算函数,KM为完整性密钥;KE{MSIN}为加密的MSIN;HASH为哈希函数;K为所述终端侧与网络侧的共享根密钥;OPC为由密钥K推演出来的128比特共享密钥;Enc[SUPI’]OPC或K表示使用OPC或K对SUPI’进行加密;SUPI’为与SUPI关联的128比特的数;⊕表示信息异或操作;OUT为基于所述终端侧与网络侧的共享密钥K和OPC对SUPI’使用MILENAGE算法中的函数或TAUK算法中的函数进行运算得到的输出值。
在一实施例中,所述第一处理器702,用于:
对所述终端侧与网络侧的共享密钥和用户公钥使用特定类型的函数进行运算。
其中,在一实施例中,所述对所述终端侧与网络侧的共享密钥和用户公钥使用特定类型的函数进行运算,包括以下之一:
对所述终端侧与网络侧的共享密钥和用户公钥进行哈希运算;
利用所述用户公钥,得到与所述用户公钥关联的128比特的数;利用所述终端侧与网络侧的共享密钥对所述与所述用户公钥关联的128比特的数进行加密运算;
利用所述用户公钥,得到与所述用户公钥关联的128比特的数;使用MILENAGE算法中的函数或TAUK算法中的函数对所述终端侧和网络侧的共享密钥和所述与所述用户公钥关联的128比特的数进行运算。
在一实施例中,所述第一处理器702,用于通过以下公式之一生成消息认证码标签值:
Tag=HMAC-SHA-256(KM,KE{MSIN},HASH((OPC或K)||APUB));
Tag=HMAC-SHA-256(KM,KE{MSIN},Enc[APUB’]OPC或K);
Tag=HMAC-SHA-256(KM,KE{MSIN},Enc[APUB’⊕OPC]K);
Tag=HMAC-SHA-256(KM,KE{MSIN},OUT);
其中,HMAC-SHA-256为消息认证码运算函数,KM为完整性密钥;KE{MSIN}为加密的MSIN;HASH为哈希函数;K为所述终端侧与网络侧的共享根密钥;OPC为由密钥K推演出来的128比特共享密钥;Enc[APUB’]OPC或K表示使用OPC或K对APUB’进行加密;APUB’为与APUB关联的128比特的数;APUB为用户公钥;⊕表示信息异或操作;OUT为基于所述终端侧与网络侧的共享密钥K和OPC对APUB’使用MILENAGE算法中的函数或TAUK算法中的函数进行运算得到的输出值。
在一实施例中,所述第一处理器702,用于:
对所述SUCI消息中加密的SUPI进行解密,得到SUPI;
利用得到的SUPI,从数据库中得到与SUPI对应的终端侧与网络侧的共享密钥;
对所述对应的终端侧与网络侧的共享密钥使用特定类型的函数进行运算得到函数运算结果,并生成消息认证码标签值;
将生成的消息认证码标签值与所述SUCI消息中的消息认证码标签值进行比对;若二者相同,确定所述SUCI消息不是SUPI猜测攻击,若二者不相同,确定所述SUCI消息为SUPI猜测攻击。
在一实施例中,所述第一处理器702,还用于在验证成功的情况下,在本地存储所述SUCI消息中的用户公钥。
在一实施例中,所述第一处理器702,还用于在验证成功的情况下,生成认证矢量返回给所述终端。
需要说明的是:第一处理器702的具体处理过程可参照上述方法理解。
当然,实际应用时,网络设备700中的各个组件通过总线系统704耦合在一起。可理解,总线系统704用于实现这些组件之间的连接通信。总线系统704除包括数据总线之外,还包括电源总线、控制总线和状态信号总线。但是为了清楚说明起见,在图7中将各种总线都标为总线系统704。
本申请实施例中的第一存储器703用于存储各种类型的数据以支持网络设备700的操作。这些数据的示例包括:用于在网络设备700上操作的任何计算机程序。
上述本申请实施例揭示的方法可以应用于所述第一处理器702中,或者由所述第一处理器702实现。所述第一处理器702可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过所述第一处理器702中的硬件的集成逻辑电路或者软件形式的指令完成。上述的所述第一处理器702可以是通用处理器、数字信号处理器(DSP,Digital Signal Processor),或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。所述第一处理器702可以实现或者执行本申请实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者任何常规的处理器等。结合本申请实施例所公开的方法的步骤,可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于存储介质中,该存储介质位于第一存储器703,所述第一处理器702读取第一存储器703中的信息,结合其硬件完成前述方法的步骤。
在示例性实施例中,网络设备700可以被一个或多个应用专用集成电路(ASIC,Application Specific Integrated Circuit)、DSP、可编程逻辑器件(PLD,ProgrammableLogic Device)、复杂可编程逻辑器件(CPLD,Complex Programmable Logic Device)、现场可编程门阵列(FPGA,Field-Programmable Gate Array)、通用处理器、控制器、微控制器(MCU,Micro Controller Unit)、微处理器(Microprocessor)、或者其他电子元件实现,用于执行前述方法。
基于上述程序模块的硬件实现,且为了实现本申请实施例终端侧的方法,本申请实施例还提供了一种终端,如图8所示,该终端800包括:
第二通信接口801,能够与网络设备进行信息交互;
第二处理器802,与所述第二通信接口801连接,以实现与网络设备进行信息交互,用于运行计算机程序时,执行上述终端侧一个或多个技术方案提供的方法。而所述计算机程序存储在第二存储器803上。
具体地,所述第二处理器802,用于生成SUCI消息;
所述第二通信接口801,用于向网络发送所述SUCI消息;所述SUCI消息至少包含用户公钥,以及消息认证码标签;其中,
基于终端侧与网络侧的共享密钥使用特定类型的函数进行运算得到的函数运算结果作为消息认证码运算函数的输入之一。
其中,在一实施例中,所述第二处理器802,用于:
对所述终端侧与网络侧的共享密钥使用特定类型的函数进行运算。
其中,在一实施例中,所述对所述终端侧与网络侧的共享密钥使用特定类型的函数进行运算,包括以下之一:
对所述终端侧与网络侧的共享密钥进行哈希运算;
利用所述终端侧与网络侧的共享密钥对与所述SUPI关联的128比特的数进行加密运算;
使用MILENAGE算法中的函数或TAUK算法中的函数对所述终端侧与网络侧的共享密钥和与所述SUPI关联的128比特的数进行运算。
在一实施例中,所述生成单元601,用于通过以下公式之一生成消息认证码标签值:
Tag=HMAC-SHA-256(KM,KE{MSIN},HASH(OPC或K));
Tag=HMAC-SHA-256(KM,KE{MSIN},Enc[SUPI’]OPC或K);
Tag=HMAC-SHA-256(KM,KE{MSIN},Enc[SUPI’⊕OPC]K);
Tag=HMAC-SHA-256(KM,KE{MSIN},OUT);
其中,HMAC-SHA-256为消息认证码运算函数,KM为完整性密钥;KE{MSIN}为加密的MSIN;HASH为哈希函数;K为所述终端侧与网络侧的共享根密钥;OPC为由密钥K推演出来的128比特共享密钥;Enc[SUPI’]OPC或K表示使用OPC或K对SUPI’进行加密;SUPI’为与SUPI关联的128比特的数;⊕表示信息异或操作;OUT为基于所述终端侧与网络侧的共享密钥K和OPC对SUPI’使用MILENAGE算法中的函数或TAUK算法中的函数进行运算得到的输出值。
在一实施例中,所述第二处理器802,用于:
对所述终端侧与网络侧的共享密钥和用户公钥使用特定类型的函数进行运算。
其中,在一实施例中,所述对所述终端侧与网络侧的共享密钥和用户公钥使用特定类型的函数进行运算,包括以下之一:
对所述终端侧和网络侧的共享密钥和用户公钥进行哈希运算;
利用所述用户公钥,得到与所述用户公钥关联的128比特的数;利用所述终端侧和网络侧的共享密钥对所述与所述用户公钥关联的128比特的数进行加密运算;
利用所述用户公钥,得到与所述用户公钥关联的128比特的数;使用MILENAGE算法中的函数对所述终端侧和网络侧的共享密钥和所述与所述用户公钥关联的128比特的数进行运算。
在一实施例中,所述第二处理器802,用于通过以下公式之一生成消息认证码标签值:
Tag=HMAC-SHA-256(KM,KE{MSIN},HASH((OPC或K)||APUB));
Tag=HMAC-SHA-256(KM,KE{MSIN},Enc[APUB’]OPC或K);
Tag=HMAC-SHA-256(KM,KE{MSIN},Enc[APUB’⊕OPC]K);
Tag=HMAC-SHA-256(KM,KE{MSIN},OUT);
其中,HMAC-SHA-256为消息认证码运算函数,KM为完整性密钥;KE{MSIN}为加密的MSIN;HASH为哈希函数;K为所述终端侧与网络侧的共享根密钥;OPC为由密钥K推演出来的128位共享密钥;Enc[APUB’]OPC或K表示使用OPC或K对APUB’进行加密;APUB’为与APUB关联的128比特的数;APUB为用户公钥;⊕表示信息异或操作;OUT为基于所述终端侧与网络侧的共享密钥K和OPC对APUB’使用MILENAGE算法中的函数进或TAUK算法中的函数行运算得到的输出值。
需要说明的是:第二处理器802的具体处理过程可参照上述方法理解。
当然,实际应用时,终端800中的各个组件通过总线系统804耦合在一起。可理解,总线系统804用于实现这些组件之间的连接通信。总线系统804除包括数据总线之外,还包括电源总线、控制总线和状态信号总线。但是为了清楚说明起见,在图8中将各种总线都标为总线系统804。
本申请实施例中的第二存储器803用于存储各种类型的数据以支持接终端800操作。这些数据的示例包括:用于在终端800上操作的任何计算机程序。
上述本申请实施例揭示的方法可以应用于所述第二处理器802中,或者由所述第二处理器802实现。所述第二处理器802可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过所述第二处理器802中的硬件的集成逻辑电路或者软件形式的指令完成。上述的所述第二处理器802可以是通用处理器、DSP,或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。所述第二处理器802可以实现或者执行本申请实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者任何常规的处理器等。结合本申请实施例所公开的方法的步骤,可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于存储介质中,该存储介质位于第二存储器803,所述第二处理器802读取第二存储器803中的信息,结合其硬件完成前述方法的步骤。
在示例性实施例中,终端800可以被一个或多个ASIC、DSP、PLD、CPLD、FPGA、通用处理器、控制器、MCU、Microprocessor、或其他电子元件实现,用于执行前述方法。
可以理解,本申请实施例的存储器(第一存储器703、第二存储器803)可以是易失性存储器或者非易失性存储器,也可包括易失性和非易失性存储器两者。其中,非易失性存储器可以是只读存储器(ROM,Read Only Memory)、可编程只读存储器(PROM,ProgrammableRead-Only Memory)、可擦除可编程只读存储器(EPROM,Erasable Programmable Read-Only Memory)、电可擦除可编程只读存储器(EEPROM,Electrically ErasableProgrammable Read-Only Memory)、磁性随机存取存储器(FRAM,ferromagnetic randomaccess memory)、快闪存储器(Flash Memory)、磁表面存储器、光盘、或只读光盘(CD-ROM,Compact Disc Read-Only Memory);磁表面存储器可以是磁盘存储器或磁带存储器。易失性存储器可以是随机存取存储器(RAM,Random Access Memory),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的RAM可用,例如静态随机存取存储器(SRAM,StaticRandom Access Memory)、同步静态随机存取存储器(SSRAM,Synchronous Static RandomAccess Memory)、动态随机存取存储器(DRAM,Dynamic Random Access Memory)、同步动态随机存取存储器(SDRAM,Synchronous Dynamic Random Access Memory)、双倍数据速率同步动态随机存取存储器(DDRSDRAM,Double Data Rate Synchronous Dynamic RandomAccess Memory)、增强型同步动态随机存取存储器(ESDRAM,Enhanced SynchronousDynamic Random Access Memory)、同步连接动态随机存取存储器(SLDRAM,SyncLinkDynamic Random Access Memory)、直接内存总线随机存取存储器(DRRAM,Direct RambusRandom Access Memory)。本申请实施例描述的存储器旨在包括但不限于这些和任意其它适合类型的存储器。
在示例性实施例中,本申请实施例还提供了一种存储介质,即计算机存储介质,具体为计算机可读存储介质,例如包括存储计算机程序的第一存储器703,上述计算机程序可由网络设备700的第一处理器702执行,以完成前述网络设备侧方法所述步骤。再比如包括存储计算机程序的第二存储器803,上述计算机程序可由终端800的第二处理器802执行,以完成前述终端侧方法所述步骤。计算机可读存储介质可以是FRAM、ROM、PROM、EPROM、EEPROM、Flash Memory、磁表面存储器、光盘、或CD-ROM等存储器。
需要说明的是:“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。
另外,本申请实施例所记载的技术方案之间,在不冲突的情况下,可以任意组合。
以上所述,仅为本申请的较佳实施例而已,并非用于限定本申请的保护范围。
Claims (33)
1.一种消息的处理方法,其特征在于,应用于网络设备,包括:
获取用户隐藏标识SUCI消息;所述SUCI消息至少包含用户公钥,以及消息认证码标签值;
根据所述SUCI消息中的用户公钥与本地存储的用户公钥,判断所述SUCI消息是否为SUCI重放攻击;
在所述SUCI消息不为SUCI重放攻击的情况下,对所述SUCI消息中的消息认证码标签值进行验证,确定所述SUCI消息是否为用户永久标识SUPI猜测攻击;其中,
基于终端侧与网络侧的共享密钥使用特定类型的函数进行运算得到的函数运算结果作为消息认证码运算函数的输入之一。
2.根据权利要求1所述的方法,其特征在于,所述SUCI消息包括:
SUPI的类型+归属网络标识+路由标识+保护方案标识+BPUB+APUB+KE{MSIN}+Tag;
其中,APUB为用户公钥;BPUB为网络的公钥;KE{MSIN}表示加密的移动用户标识号MSIN;Tag为消息认证码标签值;+表示级联。
3.根据权利要求1所述的方法,其特征在于,所述基于终端侧与网络侧的共享密钥使用特定类型的函数进行运算,包括:
对所述终端侧与网络侧的共享密钥使用特定类型的函数进行运算。
4.根据权利要求3所述的方法,其特征在于,所述对所述终端侧与网络侧的共享密钥使用特定类型的函数进行运算,包括以下之一:
对所述终端侧与网络侧的共享密钥进行哈希运算;
利用所述终端侧与网络侧的共享密钥对与所述SUPI关联的128比特的数进行加密运算;
使用MILENAGE算法中的函数或TUAK算法中的函数对所述终端侧与网络侧的共享密钥和与所述SUPI关联的128比特的数进行运算。
5.根据权利要求3所述的方法,其特征在于,消息认证码标签值通过以下公式之一生成:
Tag=HMAC-SHA-256(KM,KE{MSIN},HASH(OPC或K));
Tag=HMAC-SHA-256(KM,KE{MSIN},Enc[SUPI’]OPC或K);
Tag=HMAC-SHA-256(KM,KE{MSIN},Enc[SUPI’⊕OPC]K);
Tag=HMAC-SHA-256(KM,KE{MSIN},OUT);
其中,HMAC-SHA-256为消息认证码运算函数,KM为完整性密钥;KE{MSIN}为加密的MSIN;HASH为哈希函数;K为所述终端侧与网络侧的共享根密钥;OPC为由密钥K推演出来的128比特共享密钥;Enc[SUPI’]OPC或K表示使用OPC或K对SUPI’进行加密;SUPI’为与SUPI关联的128比特的数;⊕表示信息异或操作;OUT为基于所述终端侧与网络侧的共享密钥K和OPC对SUPI’使用MILENAGE算法中的函数或TUAK算法中的函数进行运算得到的输出值。
6.根据权利要4或5所述的方法,其特征在于,与所述SUPI关联的128比特的数SUPI’是SUPI值的末位补0后得到的。
7.根据权利要求1所述的方法,其特征在于,所述基于终端侧与网络侧的共享密钥使用特定类型的函数进行运算,包括:
对所述终端侧与网络侧的共享密钥和用户公钥使用特定类型的函数进行运算。
8.根据权利要求7所述的方法,其特征在于,所述对所述终端侧与网络侧的共享密钥和用户公钥使用特定类型的函数进行运算,包括以下之一:
对所述终端侧与网络侧的共享密钥和用户公钥进行哈希运算;
利用所述用户公钥,得到与所述用户公钥关联的128比特的数;利用所述终端侧与网络侧的共享密钥对所述与所述用户公钥关联的128比特的数进行加密运算;
利用所述用户公钥,得到与所述用户公钥关联的128比特的数;使用MILENAGE算法中的函数或TUAK算法中的函数对所述终端侧和网络侧的共享密钥和所述与所述用户公钥关联的128比特的数进行运算。
9.根据权利要求7所述的方法,其特征在于,消息认证码标签值通过以下公式之一生成:
Tag=HMAC-SHA-256(KM,KE{MSIN},HASH((OPC或K)||APUB));
Tag=HMAC-SHA-256(KM,KE{MSIN},Enc[APUB’]OPC或K);
Tag=HMAC-SHA-256(KM,KE{MSIN},Enc[APUB’⊕OPC]K);
Tag=HMAC-SHA-256(KM,KE{MSIN},OUT);
其中,HMAC-SHA-256为消息认证码运算函数,KM为完整性密钥;KE{MSIN}为加密的MSIN;HASH为哈希函数;K为所述终端侧与网络侧的共享根密钥;OPC为由密钥K推演出来的128比特共享密钥;Enc[APUB’]OPC或K表示使用OPC或K对APUB’进行加密;APUB’为与APUB关联的128比特的数;APUB为用户公钥;⊕表示信息异或操作;OUT为基于所述终端侧与网络侧的共享密钥K和OPC对APUB’使用MILENAGE算法中的函数或TUAK算法中的函数进行运算得到的输出值。
10.根据权利要求8或9所述的方法,其特征在于,所述与所述用户公钥关联的128比特的数是将所述用户公钥进行截取处理得到的。
11.根据权利要求1所述的方法,其特征在于,所述终端侧和网络侧的共享密钥包括以下至少之一:
终端侧与网络侧的共享根密钥;
终端侧与网络侧的OPC。
12.根据权利要求1所述的方法,其特征在于,所述对所述SUCI消息中的消息认证码标签值进行验证,确定所述SUCI消息是否为SUPI猜测攻击,包括:
对所述SUCI消息中加密的SUPI进行解密,得到SUPI;
利用得到的SUPI,从数据库中得到与SUPI对应的终端侧与网络侧的共享密钥;
对所述对应的终端侧与网络侧的共享密钥使用特定类型的函数进行运算得到函数运算结果,并生成消息认证码标签值;
将生成的消息认证码标签值与所述SUCI消息中的消息认证码标签值进行比对;若二者相同,确定所述SUCI消息不是SUPI猜测攻击,若二者不相同,确定所述SUCI消息为SUPI猜测攻击。
13.根据权利要求1所述的方法,其特征在于,所述方法还包括:
在验证成功的情况下,在本地存储所述SUCI消息中的用户公钥。
14.一种消息的处理方法,其特征在于,应用于终端,包括:
生成SUCI消息;
向网络发送所述SUCI消息;所述SUCI消息至少包含用户公钥,以及消息认证码标签值;其中,
基于终端侧与网络侧的共享密钥使用特定类型的函数进行运算得到的函数运算结果作为消息认证码运算函数的输入之一。
15.根据权利要求14所述的方法,其特征在于,所述SUCI消息包括:
SUPI的类型+归属网络标识+路由标识+保护方案标识+BPUB+APUB+KE{MSIN}+Tag;
其中,APUB为用户公钥;BPUB为网络的公钥;KE{MSIN}表示加密的移动用户标识号MSIN;Tag为消息认证码标签值;+表示级联。
16.根据权利要求14所述的方法,其特征在于,所述基于终端侧与网络侧的共享密钥使用特定类型的函数进行运算,包括:
对所述终端侧与网络侧的共享密钥使用特定类型的函数进行运算。
17.根据权利要求16所述的方法,其特征在于,所述对所述终端侧与网络侧的共享密钥使用特定类型的函数进行运算,包括以下之一:
对所述终端侧与网络侧的共享密钥进行哈希运算;
利用所述终端侧与网络侧的共享密钥对与所述SUPI关联的128比特的数进行加密运算;
使用MILENAGE算法中的函数或TUAK算法中的函数对所述终端侧与网络侧的共享密钥和与所述SUPI关联的128比特的数进行运算。
18.根据权利要求16所述的方法,其特征在于,消息认证码标签值通过以下公式之一生成:
Tag=HMAC-SHA-256(KM,KE{MSIN},HASH(OPC或K));
Tag=HMAC-SHA-256(KM,KE{MSIN},Enc[SUPI’]OPC或K);
Tag=HMAC-SHA-256(KM,KE{MSIN},Enc[SUPI’⊕OPC]K);
Tag=HMAC-SHA-256(KM,KE{MSIN},OUT);
其中,HMAC-SHA-256为消息认证码运算函数,KM为完整性密钥;KE{MSIN}为加密的MSIN;HASH为哈希函数;K为所述终端侧与网络侧的共享根密钥;OPC为由密钥K推演出来的128比特共享密钥;Enc[SUPI’]OPC或K表示使用OPC或K对SUPI’进行加密;SUPI’为与SUPI关联的128比特的数;⊕表示信息异或操作;OUT为基于所述终端侧与网络侧的共享密钥K和OPC对SUPI’使用MILENAGE算法中的函数或TUAK算法中的函数进行运算得到的输出值。
19.根据权利要求18所述的方法,其特征在于,所述终端包括USIM和移动设备ME;如果SUPI的加密在所述USIM上进行,所述USIM生成SUCI消息;并发送给所述ME;所述ME向网络发送所述SUCI消息;
如果SUPI的加密在所述ME上进行,所述USIM将以下信息之一发送给所述ME:
HASH(OPC或K);
Enc[SUPI’]OPC或K;
Enc[SUPI’⊕OPC]K;
OUT;
所述ME生成SUCI消息并向网络发送所述SUCI消息。
20.根据权利要求17至19任一项所述的方法,其特征在于,与所述SUPI关联的128比特的数是SUPI值的末位补0后得到的。
21.根据权利要求14所述的方法,其特征在于,所述基于终端侧与网络侧的共享密钥使用特定类型的函数进行运算,包括:
对所述终端侧与网络侧的共享密钥和用户公钥使用特定类型的函数进行运算。
22.根据权利要求21所述的方法,其特征在于,所述对所述终端侧与网络侧的共享密钥和用户公钥使用特定类型的函数进行运算,包括以下之一:
对所述终端侧和网络侧的共享密钥和用户公钥进行哈希运算;
利用所述用户公钥,得到与所述用户公钥关联的128比特的数;利用所述终端侧和网络侧的共享密钥对所述与所述用户公钥关联的128比特的数进行加密运算;
利用所述用户公钥,得到与所述用户公钥关联的128比特的数;使用MILENAGE算法中的函数或TUAK算法中的函数对所述终端侧和网络侧的共享密钥和所述与所述用户公钥关联的128比特的数进行运算。
23.根据权利要求21所述的方法,其特征在于,消息认证码标签值通过以下公式之一生成:
Tag=HMAC-SHA-256(KM,KE{MSIN},HASH((OPC或K)||APUB));
Tag=HMAC-SHA-256(KM,KE{MSIN},Enc[APUB’]OPC或K);
Tag=HMAC-SHA-256(KM,KE{MSIN},Enc[APUB’⊕OPC]K);
Tag=HMAC-SHA-256(KM,KE{MSIN},OUT);
其中,HMAC-SHA-256为消息认证码运算函数,KM为完整性密钥;KE{MSIN}为加密的MSIN;HASH为哈希函数;K为所述终端侧与网络侧的共享根密钥;OPC为由密钥K推演出来的128位共享密钥;Enc[APUB’]OPC或K表示使用OPC或K对APUB’进行加密;APUB’为与APUB关联的128比特的数;APUB为用户公钥;⊕表示信息异或操作;OUT为基于所述终端侧与网络侧的共享密钥K和OPC对APUB’使用MILENAGE算法中的函数或TUAK算法中的函数进行运算得到的输出值。
24.根据权利要求23所述的方法,其特征在于,所述终端包括USIM和ME;如果SUPI的加密在所述USIM上进行,所述USIM生成SUCI消息;并发送给所述ME;所述ME向网络发送所述SUCI消息;
如果SUPI的加密在所述ME上进行,ME生成APUB并传给所述USIM,所述USIM将以下信息之一发送给所述ME:
HASH((OPC或K)||APUB);
Enc[APUB’]OPC或K;
Enc[APUB’⊕OPC]K;
OUT;
所述ME生成SUCI消息并向网络发送所述SUCI消息。
25.根据权利要求22至24任一项所述的方法,其特征在于,所述与所述用户公钥关联的128比特的数是将所述用户公钥进行截取处理得到的。
26.根据权利要求14所述的方法,其特征在于,所述终端侧和网络侧的共享密钥包括以下至少之一:
终端侧与网络侧的共享根密钥;
终端侧与网络侧的OPC。
27.一种消息的处理装置,其特征在于,包括:
获取单元,用于获取SUCI消息;所述SUCI消息至少包含用户公钥,以及消息认证码标签值;
第一判断单元,用于根据所述SUCI消息中的用户公钥与本地存储的用户公钥,判断所述SUCI消息是否为SUCI重放攻击;
第二判断单元,用于在所述SUCI消息不为SUCI重放攻击的情况下,对所述SUCI消息中的消息认证码标签值进行验证,确定所述SUCI消息是否为SUPI猜测攻击;其中,
基于终端侧与网络侧的共享密钥使用特定类型的函数进行运算得到的函数运算结果作为消息认证码运算函数的输入之一。
28.一种消息的处理装置,其特征在于,包括:
生成单元,用于生成SUCI消息;
发送单元,用于向网络发送所述SUCI消息;所述SUCI消息至少包含用户公钥,以及消息认证码标签值;其中,
基于终端侧与网络侧的共享密钥使用特定类型的函数进行运算得到的函数运算结果作为消息认证码运算函数的输入之一。
29.一种网络设备,其特征在于,包括:
第一通信接口,用于获取SUCI消息;所述SUCI消息至少包含用户公钥,以及消息认证码标签值;
第一处理器,用于根据所述SUCI消息中的用户公钥与本地存储的用户公钥,判断所述SUCI消息是否为SUCI重放攻击;并在所述SUCI消息不为SUCI重放攻击的情况下,对所述SUCI消息中的消息认证码标签值进行验证,确定所述SUCI消息是否为SUPI猜测攻击;其中,
基于终端侧与网络侧的共享密钥使用特定类型的函数进行运算得到的函数运算结果作为消息认证码运算函数的输入之一。
30.一种终端,其特征在于,包括:
第二处理器,用于生成SUCI消息;
第二通信接口,用于向网络发送所述SUCI消息;所述SUCI消息至少包含用户公钥,以及消息认证码标签值;其中,
基于终端侧与网络侧的共享密钥使用特定类型的函数进行运算得到的函数运算结果作为消息认证码运算函数的输入之一。
31.一种网络设备,其特征在于,包括:第一处理器和用于存储能够在处理器上运行的计算机程序的第一存储器,
其中,所述第一处理器用于运行所述计算机程序时,执行权利要求1至13任一项所述方法的步骤。
32.一种终端,其特征在于,包括:第二处理器和用于存储能够在处理器上运行的计算机程序的第二存储器,
其中,所述第二处理器用于运行所述计算机程序时,执行权利要求14至26任一项所述方法的步骤。
33.一种存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至13任一项所述方法的步骤,或者实现权利要求14至26任一项所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010797847.2A CN114079924B (zh) | 2020-08-10 | 2020-08-10 | 消息的处理方法、装置、相关设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010797847.2A CN114079924B (zh) | 2020-08-10 | 2020-08-10 | 消息的处理方法、装置、相关设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114079924A true CN114079924A (zh) | 2022-02-22 |
CN114079924B CN114079924B (zh) | 2024-08-16 |
Family
ID=80279693
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010797847.2A Active CN114079924B (zh) | 2020-08-10 | 2020-08-10 | 消息的处理方法、装置、相关设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114079924B (zh) |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108848502A (zh) * | 2018-05-18 | 2018-11-20 | 兴唐通信科技有限公司 | 一种利用5g-aka对supi进行保护的方法 |
CN108901018A (zh) * | 2018-07-27 | 2018-11-27 | 中国电子科技集团公司第三十研究所 | 一种终端发起的移动通信系统用户身份隐匿方法 |
WO2019137792A1 (en) * | 2018-01-12 | 2019-07-18 | Telefonaktiebolaget Lm Ericsson (Publ) | Validation of subscription concealed identifiers in mobile networks |
CN110291803A (zh) * | 2017-05-09 | 2019-09-27 | 英特尔Ip公司 | 蜂窝网络中的隐私保护和可扩展认证协议认证和授权 |
CN110769420A (zh) * | 2018-07-25 | 2020-02-07 | 中兴通讯股份有限公司 | 网络接入方法、装置、终端、基站和可读存储介质 |
CN111133731A (zh) * | 2017-07-25 | 2020-05-08 | 瑞典爱立信有限公司 | 私钥和消息认证码 |
CN111314919A (zh) * | 2020-03-19 | 2020-06-19 | 西安电子科技大学 | 用于在认证服务端保护用户身份隐私的增强5g认证方法 |
-
2020
- 2020-08-10 CN CN202010797847.2A patent/CN114079924B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110291803A (zh) * | 2017-05-09 | 2019-09-27 | 英特尔Ip公司 | 蜂窝网络中的隐私保护和可扩展认证协议认证和授权 |
CN111133731A (zh) * | 2017-07-25 | 2020-05-08 | 瑞典爱立信有限公司 | 私钥和消息认证码 |
WO2019137792A1 (en) * | 2018-01-12 | 2019-07-18 | Telefonaktiebolaget Lm Ericsson (Publ) | Validation of subscription concealed identifiers in mobile networks |
CN108848502A (zh) * | 2018-05-18 | 2018-11-20 | 兴唐通信科技有限公司 | 一种利用5g-aka对supi进行保护的方法 |
CN110769420A (zh) * | 2018-07-25 | 2020-02-07 | 中兴通讯股份有限公司 | 网络接入方法、装置、终端、基站和可读存储介质 |
CN108901018A (zh) * | 2018-07-27 | 2018-11-27 | 中国电子科技集团公司第三十研究所 | 一种终端发起的移动通信系统用户身份隐匿方法 |
CN111314919A (zh) * | 2020-03-19 | 2020-06-19 | 西安电子科技大学 | 用于在认证服务端保护用户身份隐私的增强5g认证方法 |
Also Published As
Publication number | Publication date |
---|---|
CN114079924B (zh) | 2024-08-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
RU2374778C2 (ru) | Защищенная самонастройка для беспроводной связи | |
US10015159B2 (en) | Terminal authentication system, server device, and terminal authentication method | |
CN110971415A (zh) | 一种天地一体化空间信息网络匿名接入认证方法及系统 | |
US11778460B2 (en) | Device and method for authenticating transport layer security communications | |
US11909869B2 (en) | Communication method and related product based on key agreement and authentication | |
KR20070112260A (ko) | Sim/uicc 키 설정을 위한 네트워크 지원 단말기 | |
CN111614621B (zh) | 物联网通信方法和系统 | |
CN108012266B (zh) | 一种数据传输方法及相关设备 | |
US20220046003A1 (en) | Parameter sending method and apparatus | |
US20180013832A1 (en) | Health device, gateway device and method for securing protocol using the same | |
US20230327857A1 (en) | Communication Method and Apparatus | |
US20240064011A1 (en) | Identity authentication method and apparatus, device, chip, storage medium, and program | |
CN111836260B (zh) | 一种认证信息处理方法、终端和网络设备 | |
WO2020215958A1 (zh) | 一种认证信息处理方法、终端和网络设备 | |
CN116709312A (zh) | 一种安全防护方法、装置及电子设备 | |
WO2020140929A1 (zh) | 一种密钥生成方法、ue及网络设备 | |
JP7404540B2 (ja) | プライバシー情報伝送方法、装置、コンピュータ機器及びコンピュータ読み取り可能な媒体 | |
CN114079924B (zh) | 消息的处理方法、装置、相关设备及存储介质 | |
WO2021088593A1 (zh) | 验证方法、装置、设备及计算机可读存储介质 | |
WO2023094008A1 (en) | Methods for anonymity authentication and message exchange in a cloud | |
JP2021193793A (ja) | データを暗号化又は復号化するための暗号処理イベント | |
CN114040387B (zh) | 一种攻击消息的确定方法、装置及设备 | |
CN115333820B (zh) | 区块链数据处理方法、装置、设备以及存储介质 | |
CN116996234B (zh) | 一种终端接入认证网关的方法、终端及认证网关 | |
US20240064024A1 (en) | Identity authentication method and apparatus, and device, chip, storage medium and program |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |