一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

消息的处理方法、装置、相关设备及存储介质与流程

2022-02-24 12:24:11 来源:中国专利 TAG:


1.本技术涉及通信技术领域,尤其涉及一种消息的处理方法、装置、相关设备及存储介质。


背景技术:

2.第五代移动通信技术(5g)系统中,采用集成加密方案(ecies)保护用户永久标识(supi,subscription permanent identifier),以保护用户的隐私。
3.然而,相关技术中,采用ecies虽然保护了用户隐私,但易受到攻击。


技术实现要素:

4.为解决相关技术问题,本技术实施例提供一种消息的处理方法、装置、相关设备及存储介质。
5.本技术实施例的技术方案是这样实现的:
6.本技术实施例提供了一种消息的处理方法,应用于网络设备,包括:
7.获取用户隐藏标识(suci,subscription concealed identifier)消息;所述suci消息至少包含用户公钥,以及消息认证码标签值;
8.根据所述suci消息中的用户公钥与本地存储的用户公钥,判断所述suci消息是否为suci重放攻击;
9.在所述suci消息不为suci重放攻击的情况下,对所述suci消息中的消息认证码标签值进行验证,确定所述suci消息是否为识supi猜测攻击;其中,
10.基于终端侧与网络侧的共享密钥使用特定类型的函数进行运算得到的函数运算结果作为消息认证码运算函数的输入之一。
11.上述方案中,所述suci消息包括:
12.supi的类型 归属网络标识 路由标识 保护方案标识 b
pub
a
pub
ke{msin} tag;
13.其中,a
pub
为用户公钥;b
pub
为网络的公钥;ke{msin}表示加密的移动用户标识号msin;tag为消息认证码标签值; 表示级联。
14.上述方案中,所述基于终端侧与网络侧的共享密钥使用特定类型的函数进行运算,包括:
15.对所述终端侧与网络侧的共享密钥使用特定类型的函数进行运算。
16.上述方案中,所述对所述终端侧与网络侧的共享密钥使用特定类型的函数进行运算,包括以下之一:
17.对所述终端侧与网络侧的共享密钥进行哈希运算;
18.利用所述终端侧与网络侧的共享密钥对与所述supi关联的128比特的数进行加密运算;
19.使用milenage算法中的函数或tuak算法中的函数对所述终端侧与网络侧的共享密钥和与所述supi关联的128比特的数进行运算。
20.上述方案中,消息认证码标签值通过以下公式之一生成:
21.tag=hmac-sha-256(km,ke{msin},hash(opc或k));
22.tag=hmac-sha-256(km,ke{msin},enc[supi’]
opc或k
);
[0023]
tag=hmac-sha-256(km,ke{msin},enc[supi
’⊕
opc]k);
[0024]
tag=hmac-sha-256(km,ke{msin},out);
[0025]
其中,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算法中的函数进行运算得到的输出值。
[0026]
上述方案中,与所述supi关联的128比特的数supi’是supi值的末位补0后得到的。
[0027]
上述方案中,所述基于终端侧与网络侧的共享密钥使用特定类型的函数进行运算,包括:
[0028]
对所述终端侧与网络侧的共享密钥和用户公钥使用特定类型的函数进行运算。
[0029]
上述方案中,所述对所述终端侧与网络侧的共享密钥和用户公钥使用特定类型的函数进行运算,包括以下之一:
[0030]
对所述终端侧与网络侧的共享密钥和用户公钥进行哈希运算;
[0031]
利用所述用户公钥,得到与所述用户公钥关联的128比特的数;利用所述终端侧与网络侧的共享密钥对所述与所述用户公钥关联的128比特的数进行加密运算;
[0032]
利用所述用户公钥,得到与所述用户公钥关联的128比特的数;使用milenage算法中的函数或tuak算法中的函数对所述终端侧和网络侧的共享密钥和所述与所述用户公钥关联的128比特的数进行运算。
[0033]
上述方案中,消息认证码标签值通过以下公式之一生成:
[0034]
tag=hmac-sha-256(km,ke{msin},hash((opc或k)||a
pub
));
[0035]
tag=hmac-sha-256(km,ke{msin},enc[a
pub’]
opc或k
);
[0036]
tag=hmac-sha-256(km,ke{msin},enc[a
pub
’⊕
opc]k);
[0037]
tag=hmac-sha-256(km,ke{msin},out);
[0038]
其中,hmac-sha-256为消息认证码运算函数,km为完整性密钥;ke{msin}为加密的msin;hash为哈希函数;k为所述终端侧与网络侧的共享根密钥;opc为由密钥k推演出来的128比特共享密钥;enc[a
pub’]
opc或k
表示使用opc或k对a
pub’进行加密;a
pub’为与a
pub
关联的128比特的数;a
pub
为用户公钥;

表示信息异或操作;out为基于所述终端侧与网络侧的共享密钥k和opc对a
pub’使用milenage算法中的函数或tuak算法中的函数进行运算得到的输出值。
[0039]
上述方案中,所述与所述用户公钥关联的128比特的数是将所述用户公钥进行截取处理得到的。
[0040]
上述方案中,所述终端侧和网络侧的共享密钥包括以下至少之一:
[0041]
终端侧与网络侧的共享根密钥;
[0042]
终端侧与网络侧的opc。
[0043]
上述方案中,所述对所述suci消息中的消息认证码标签值进行验证,确定所述suci消息是否为supi猜测攻击,包括:
[0044]
对所述suci消息中加密的supi进行解密,得到supi;
[0045]
利用得到的supi,从数据库中得到与supi对应的终端侧与网络侧的共享密钥;
[0046]
对所述对应的终端侧与网络侧的共享密钥使用特定类型的函数进行运算得到函数运算结果,并生成消息认证码标签值;
[0047]
将生成的消息认证码标签值与所述suci消息中的消息认证码标签值进行比对;若二者相同,确定所述suci消息不是supi猜测攻击,若二者不相同,确定所述suci消息为supi猜测攻击。
[0048]
上述方案中,所述方法还包括:
[0049]
在验证成功的情况下,在本地存储所述suci消息中的用户公钥。
[0050]
本技术实施例还提供了一种消息的处理方法,应用于终端,包括:
[0051]
生成suci消息;
[0052]
向网络发送所述suci消息;所述suci消息至少包含用户公钥,以及消息认证码标签值;其中,
[0053]
基于终端侧与网络侧的共享密钥使用特定类型的函数进行运算得到的函数运算结果作为消息认证码运算函数的输入之一。
[0054]
上述方案中,所述suci消息包括:
[0055]
supi的类型 归属网络标识 路由标识 保护方案标识 b
pub
a
pub
ke{msin} tag;
[0056]
其中,a
pub
为用户公钥;b
pub
为网络的公钥;ke{msin}表示加密的移动用户标识号msin;tag为消息认证码标签值; 表示级联。
[0057]
上述方案中,所述基于终端侧与网络侧的共享密钥使用特定类型的函数进行运算,包括:
[0058]
对所述终端侧与网络侧的共享密钥使用特定类型的函数进行运算。
[0059]
上述方案中,所述对所述终端侧与网络侧的共享密钥使用特定类型的函数进行运算,包括以下之一:
[0060]
对所述终端侧与网络侧的共享密钥进行哈希运算;
[0061]
利用所述终端侧与网络侧的共享密钥对与所述supi关联的128比特的数进行加密运算;
[0062]
使用milenage算法中的函数或tuak算法中的函数对所述终端侧与网络侧的共享密钥和与所述supi关联的128比特的数进行运算。
[0063]
上述方案中,消息认证码标签值通过以下公式之一生成:
[0064]
tag=hmac-sha-256(km,ke{msin},hash(opc或k));
[0065]
tag=hmac-sha-256(km,ke{msin},enc[supi’]
opc或k
);
[0066]
tag=hmac-sha-256(km,ke{msin},enc[supi
’⊕
opc]k);
[0067]
tag=hmac-sha-256(km,ke{msin},out);
[0068]
其中,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算法中的函数进行运算得到的输出值。
[0069]
上述方案中,所述终端包括全球用户识别卡(usim,universal subscriber identity module)和移动设备(me,mobile equipment);如果supi的加密在所述usim上进行,所述usim生成suci消息;并发送给所述me;所述me向网络发送所述suci消息;
[0070]
如果supi的加密在所述me上进行,所述usim将以下信息之一发送给所述me:
[0071]
hash(opc或k);
[0072]
enc[supi’]
opc或k

[0073]
enc[supi
’⊕
opc]k;
[0074]
out;
[0075]
所述me生成suci消息并向网络发送所述suci消息。
[0076]
上述方案中,与所述supi关联的128比特的数是supi值的末位补0后得到的。
[0077]
上述方案中,所述基于终端侧与网络侧的共享密钥使用特定类型的函数进行运算,包括:
[0078]
对所述终端侧与网络侧的共享密钥和用户公钥使用特定类型的函数进行运算。
[0079]
上述方案中,所述对所述终端侧与网络侧的共享密钥和用户公钥使用特定类型的函数进行运算,包括以下之一:
[0080]
对所述终端侧和网络侧的共享密钥和用户公钥进行哈希运算;
[0081]
利用所述用户公钥,得到与所述用户公钥关联的128比特的数;利用所述终端侧和网络侧的共享密钥对所述与所述用户公钥关联的128比特的数进行加密运算;
[0082]
利用所述用户公钥,得到与所述用户公钥关联的128比特的数;使用milenage算法中的函数或tuak算法中的函数对所述终端侧和网络侧的共享密钥和所述与所述用户公钥关联的128比特的数进行运算。
[0083]
上述方案中,消息认证码标签值通过以下公式之一生成:
[0084]
tag=hmac-sha-256(km,ke{msin},hash((opc或k)||a
pub
));
[0085]
tag=hmac-sha-256(km,ke{msin},enc[a
pub’]
opc或k
);
[0086]
tag=hmac-sha-256(km,ke{msin},enc[a
pub
’⊕
opc]k);
[0087]
tag=hmac-sha-256(km,ke{msin},out);
[0088]
其中,hmac-sha-256为消息认证码运算函数,km为完整性密钥;ke{msin}为加密的msin;hash为哈希函数;k为所述终端侧与网络侧的共享根密钥;opc为由密钥k推演出来的128位共享密钥;enc[a
pub’]
opc或k
表示使用opc或k对a
pub’进行加密;a
pub’为与a
pub
关联的128比特的数;a
pub
为用户公钥;

表示信息异或操作;out为基于所述终端侧与网络侧的共享密钥k和opc对a
pub’使用milenage算法中的函数或tuak算法中的函数进行运算得到的输出值。
[0089]
上述方案中,所述终端包括usim和me;如果supi的加密在所述usim上进行,所述usim生成suci消息;并发送给所述me;所述me向网络发送所述suci消息;
[0090]
如果supi的加密在所述me上进行,me生成a
pub
并传给所述usim,所述usim将以下信息之一发送给所述me:
[0091]
hash((opc或k)||a
pub
);
[0092]
enc[a
pub’]
opc或k

[0093]
enc[a
pub
’⊕
opc]k;
[0094]
out;
[0095]
所述me生成suci消息并向网络发送所述suci消息。
[0096]
上述方案中,所述与所述用户公钥关联的128比特的数是将所述用户公钥进行截取处理得到的。
[0097]
上述方案中,所述终端侧和网络侧的共享密钥包括以下至少之一:
[0098]
终端侧与网络侧的共享根密钥;
[0099]
终端侧与网络侧的opc。
[0100]
本技术实施例还提供了一种消息的处理装置,包括:
[0101]
获取单元,用于获取suci消息;所述suci消息至少包含用户公钥,以及消息认证码标签值;
[0102]
第一判断单元,用于根据所述suci消息中的用户公钥与本地存储的用户公钥,判断所述suci消息是否为suci重放攻击;
[0103]
第二判断单元,用于在所述suci消息不为suci重放攻击的情况下,对所述suci消息中的消息认证码标签值进行验证,确定所述suci消息是否为supi猜测攻击;其中,
[0104]
基于终端侧与网络侧的共享密钥使用特定类型的函数进行运算得到的函数运算结果作为消息认证码运算函数的输入之一。
[0105]
本技术实施例还提供了一种消息的处理装置,包括:
[0106]
生成单元,用于生成suci消息;
[0107]
发送单元,用于向网络发送所述suci消息;所述suci消息至少包含用户公钥,以及消息认证码标签值;其中,
[0108]
基于终端侧与网络侧的共享密钥使用特定类型的函数进行运算得到的函数运算结果作为消息认证码运算函数的输入之一。
[0109]
本技术实施例还提供了一种网络设备,包括:
[0110]
第一通信接口,用于获取suci消息;所述suci消息至少包含用户公钥,以及消息认证码标签值;
[0111]
第一处理器,用于根据所述suci消息中的用户公钥与本地存储的用户公钥,判断所述suci消息是否为suci重放攻击;并在所述suci消息不为suci重放攻击的情况下,对所述suci消息中的消息认证码标签值进行验证,确定所述suci消息是否为supi猜测攻击;其中,
[0112]
基于终端侧与网络侧的共享密钥使用特定类型的函数进行运算得到的函数运算结果作为消息认证码运算函数的输入之一。
[0113]
本技术实施例还提供了一种终端,包括:
[0114]
第二处理器,用于生成suci消息;
[0115]
第二通信接口,用于向网络发送所述suci消息;所述suci消息至少包含用户公钥,以及消息认证码标签值;其中,
[0116]
基于终端侧与网络侧的共享密钥使用特定类型的函数进行运算得到的函数运算结果作为消息认证码运算函数的输入之一。
[0117]
本技术实施例还提供了一种网络设备,包括:第一处理器和用于存储能够在处理
function),ausf再将suci传递给统一数据管理功能(udm,unified data management);
[0135]
步骤103:udm对suci解密得到supi,根据supi找到ue的用户配置文件(profile),从而确定使用何种认证协议对ue进行认证(5g aka或eap-aka’);
[0136]
步骤104:ue和网络使用选定的认证协议进行相互认证;
[0137]
步骤105:认证结束后,ue和ausf都获得基于长期密钥k而推导出的会话根密钥k
ausf

[0138]
其中,在步骤101中,ue加密supi的过程包括:
[0139]
首先,ue随机生成ecdh私钥a
pri
,并推演出ecdh公钥a
pub

[0140]
然后,ue使用自身的私钥a
pri
和网络的ecdh公钥b
pub
生成共享密钥k
ecdh
;ue从k
ecdh
推演出加密密钥ke,aes计数加密的初始值,完整性密钥km,这些参数称为密钥数据kd,即:
[0141][0142]
这里,kdf是密钥推演函数,是ue的ecdh公钥a
pub
的十进制数;从高比特位开始,kd中,最左边(高比特位)为加密密钥ke,中间为aes计数加密的初始值,最右边为完整性密钥km。
[0143]
supi是5g网络为用户分配的全球唯一长期标识,包括supi的类型和用户标识值,在5g中常用的是国际移动用户识别码(imsi,international mobile subscriber identity)。imsi包括移动国家码(mcc,mobile country code),移动网络码(mnc,mobile network code),和msin。其中,mcc和mnc是归属网络标识,msin用于在一个网络里辨识用户,它与用户的隐私相关,因此有必要对它进行加密。
[0144]
接着,ue基于高级加密标准(aes,advanced encryption standard)计数加密方式使用ke对supi的msin进行加密,使用km对加密的msin进行完保,产生消息认证码标签值tag。用公式表达消息认证码标签值tag,则有:
[0145]
tag=hmac-sha-256(km,ke{msin})。
[0146]
最终,产生的suci的内容如下:
[0147]
suci=supi的类型 归属网络标识 路由标识 保护方案标识 bpub apub ke{msin} tag;
[0148]
其中,归属网络标识用于寻找到相应的归属网络,路由标识用于在同一归属网络中寻找到相应的udm,“ ”表示消息级联。
[0149]
上述方案虽然保护了用户隐私,但易受到以下两种攻击:
[0150]
1)supi猜测攻击
[0151]
supi猜测攻击的基本思想是:攻击者通过猜测supi的值,并观察udm的反馈消息,从而确认猜测的supi是否正确。
[0152]
如图2所示,supi猜测攻击的流程包括:
[0153]
步骤201:攻击者(英文可以表达为attacker)猜测一个supi,然后使用网络的公钥将其转换为suci。然后,它在注册请求消息中将suci发送到seaf(通常设置在接入和移动性管理功能(amf,access and mobility management function)上)/amf。
[0154]
步骤202:seaf通过向ausf发送包含suci的nausf_ueauthentication_authenticate request(即鉴权请求)消息来调用nausf_ueauthentication(即鉴权)服务。
[0155]
步骤203:包含suci的nudm_ueauthentication_get请求从ausf发送到udm;
[0156]
步骤204:在接收到nudm_ueauthentication_get请求时,udm调用用户标识符隐藏功能(sidf,subscription identifier de-concealingfunction)(通常设置在udm上)来取消隐藏suci以获取supi,且udm确定数据库中是否存在supi;
[0157]
步骤205:如果在数据库中找到supi,则udm根据supi选择身份验证方法。然后,udm生成包含身份验证矢量的身份验证数据,并通过“200ok”将其在nudm_ueauthentication_get response消息中发送到ausf。如果在数据库中未找到supi,则udm在nudm_ueauthentication_get response消息中返回“404not found”并带有“user_not_found”的内容;
[0158]
步骤206:在接收到“200ok”后,ausf将“201created”发送到seaf/amf,其中,ueauthentictionctx包含有nausf_ueauthentication_authenticate response消息中的认证向量;ausf收到“404not found”后,会把含有“user_not_found”的“404not found”消息发送到seaf/amf;
[0159]
步骤207.在“201created”的情况下,seaf/amf在身份验证请求消息中将rand和autn发送到ue(攻击者)。在“404not found”的情况下,seaf/amf将带有原因#3(表示非法ue)的注册拒绝消息发送给ue(攻击者);
[0160]
这里,当网络拒绝ue的服务时,或者是因为ue的身份对于网络而言是不可接受的,或者因为ue没有通过身份验证检查,都会将5g移动性管理状态(5gmm,5g mobility management)原因发送给ue。
[0161]
在此阶段,原因#3用于指示ue的身份对于网络不可接受,因为此时网络尚未对ue进行身份验证。
[0162]
步骤208:收到身份验证请求消息后,攻击者可以确定猜测的supi是有效的。攻击者收到带有原因#3的注册拒绝消息后,可以确定猜测的supi不在公共陆地移动网(plmn,public land mobile network)中。
[0163]
可见,如何确定supi消息是否是猜测攻击消息就显得尤为重要。
[0164]
攻击者可以通过多次重复上述攻击来找出某个特定网络的整个supi数据库。攻击者还可以确定有效supi是否属于某个特定受害者。它将收到的身份验证请求消息转发给受害者。如果受害者回复“身份验证失败”消息,则有效的supi与受害者不匹配。如果受害者使用身份验证响应消息进行响应,则找到具有有效supi的受害者。
[0165]
2)suci重放攻击
[0166]
通过使用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的请求响应变慢。
[0167]
相关技术中,还存在使用一次性随机数(英文可以表达为nonce)或时间戳来防止重放攻击并减轻dos攻击的方案,对于随机数方式,将随机数n引入加密操作中,网络侧收到加密值后解密得到n,首先验证n是否是新的,若不是新的,则表示检测到重放攻击。一种具体实现方式是随机数方案,具体包括imsi
enc
=mcc||mnc||encpk(msin,n);其中,mcc和mnc未加密,因为它们需要用于在漫游情况下路由,||是级联操作,encpk(x)表示使用密钥pk来加密明文x。网络侧收到imsi
enc
后,解密得到n,首先验证n是否是新的。如果归属plmn之前已经看过n,则说明检测到重放攻击。另一种实现方式是时间戳方案,具体包括:用户的初始附着请求消息包含当前时间戳t
ue
和imsi
enc
。为了生成imsi
enc
,首先将n计算为n=fk(t
ue
);其中,k是ue的usim与归属plmn之间共享的对称密钥,fk()是使用密钥k的密钥化散列函数。imsi
enc
的构成如下:imsi
enc
=mcc||mnc||encpk(msin,n)。网络侧收到imsi
enc
和t
ue
后,解密imsi
enc
得到n,计算fk(t
ue
)并与n做对比,从而确定n是否被篡改。如果确定没有被篡改,判断t
ue
是否在合适的范围,如果不在,则检测到重放攻击。
[0168]
其中,随机数方案中,需要生成的随机数要求以前从没有出现过,而且网络侧如何知道n以前是否使用过也比较难实现,相关技术中并没有指出。时间戳方案在实际系统中较难实施,因为需要在ue和网络中存在时钟同步。
[0169]
基于此,在本技术的各种实施例中,网络设备先使用存储的用户公钥与收到的用户公钥对比判断suci消息是否为重放消息;且基于终端侧和网络侧的共享密钥使用特定类型的函数进行运算,将函数运算结果新增作为消息认证码运算函数的输入,在suci消息不为重放消息的情况下,网络设备再通过对消息认证码标签值的验证确定suci消息是否为supi猜测消息;具体地,终端基于终端侧和网络侧的共享密钥使用特定类型的函数进行运算,函数运算结果新增作为消息认证码运算函数的输入;而网络设备通过对消息认证码标签值的验证确定suci消息是否为supi猜测消息。
[0170]
本技术实施例中,网络设备先进行重放攻击的检测,再进行supi猜测攻击的检测,从而能避免对网络设备的dos攻击,因为在检测到重放攻击时,不需要再使用非对称算法对supi进行解密。
[0171]
同时,通过对消息认证码标签值的检测可以判断是否是supi猜测攻击,这是以为:攻击者不知道终端和网络的共享密钥,即使supi猜测正确,网络会检测出消息认证码标签值的错误,从而能够解决supi猜测攻击的问题。
[0172]
本技术实施例提供一种消息的处理方法,应用于终端,如图3所述,该方法包括:
[0173]
步骤301:生成suci消息;
[0174]
步骤302:向网络发送所述suci消息;所述suci消息至少包含用户公钥,以及消息认证码标签值;其中,
[0175]
基于终端侧与网络侧的共享密钥使用特定类型的函数进行运算得到的函数运算结果作为消息认证码运算函数的输入之一。
[0176]
其中,本技术实施例中,在对ecies方案没有大改动情况下同时解决suci重放攻击和supi猜测攻击,因此,suci消息的格式不用改动,即所述suci消息包括:
[0177]
supi的类型 归属网络标识 路由标识 保护方案标识 b
pub
a
pub
ke{msin} tag;
[0178]
其中,a
pub
为用户公钥(也可以称为终端的公钥);b
pub
为网络的公钥;ke{msin}表示加密的msin;tag为消息认证码标签值; 表示级联。
[0179]
本技术实施例中,终端基于终端侧和网络侧的共享密钥使用特定类型的函数进行运算,将函数运算结果新增作为消息认证码运算函数的输入。
[0180]
其中,所述终端侧和网络侧的共享密钥可以包括以下至少之一:
[0181]
终端侧与网络侧的共享根密钥k;
[0182]
终端侧与网络侧的opc。
[0183]
这里,opc是利用从运营商根密钥(op,operator code)和终端侧与网络侧的共享根密钥推演出的共享密钥,一般可以为128比特。
[0184]
其中,实际应用时,终端基于终端侧和网络侧的共享密钥使用特定类型的函数进行运算时,可以不加入其他参数(即随机值)进行函数运算,即仅使用终端侧和网络侧的共享密钥进行函数运算。
[0185]
这里,使用函数的不同,则运算结果不同,可以有以下三种情况:
[0186]
第一种情况,使用哈希函数。
[0187]
在这种情况下,终端使用ecies对supi加密,生成suci,其格式如下:
[0188]
suci=supi的类型 归属网络标识 路由标识 保护方案标识 b
pub
a
pub
ke{msin} tag;
[0189]
其中,在本技术实施例中,运算tag的函数输入项里增加了所述终端侧和网络侧的共享密钥(k或opc)的哈希值,即对所述终端侧和网络侧的共享密钥进行哈希运算,而相关技术中,运算tag的函数输入项为km,ke{msin};tag的计算公式可以如下:
[0190]
tag=hmac-sha-256(km,ke{msin},hash(opc或k));
[0191]
其中,hmac-sha-256为消息认证码运算函数,km为完整性密钥;ke{msin}为加密的msin;hash为哈希函数,如sha-256;k为所述终端侧与网络侧的共享根密钥;opc为由密钥k推演出来的128比特共享密钥。
[0192]
实际应用时,所述终端包括usim和me;如果对supi的加密操作是在usim上进行,则usim生成suci消息(也可以称为suci)并传给me(也可以称为移动终端),并由me传给网络。如果supi的加密在me上进行,则usim将hash(opc或k)传给me。me生成suci消息后,将生成的suci消息传给网络。
[0193]
网络收到suci消息后,首先使用a
pub
查询,如果出现过a
pub
,则判断suci消息为重放攻击;如果没有出现过,解密ke{msin},得到supi;再根据supi得到终端侧和网络侧的共享密钥;基于得到的终端侧和网络侧的共享密钥对tag进行验证,如果验证成功,则证明不存在supi猜测攻击,最后把a
pub
存储在网络设备上,并生成认证矢量返回给终端。如果验证失败,则判断suci消息为supi猜测攻击。
[0194]
第二种情况,使用加密函数。
[0195]
使用加密函数时,需要引入一个参数;该参数表征与所述supi关联的n比特的数;n为大于或等于1的整数。
[0196]
其中,基于实际使用的加密算法,该参数具体可以表征与所述supi关联的128比特的数。
[0197]
可以将所述supi的末位补第一数值后得到该参数,也就是说,该参数是将所述supi的末位补第一数值后得到的。其中,实际应用时,所述第一数值可以是0,也就是说,与所述supi关联的128比特的数supi’是supi值的末位补0后得到的,即将supi之后面填充0后
得到该参数。
[0198]
在这种情况下,终端使用ecies对supi加密,生成suci,其格式如下:
[0199]
suci=supi的类型 归属网络标识 路由标识 保护方案标识 b
pub
a
pub
ke{msin} tag;
[0200]
其中,在本技术实施例中,运算tag的函数输入项里增加了所述终端侧和网络侧的共享密钥(k或opc)对supi’的加密输出值,即利用所述终端侧与网络侧的共享密钥对与所述supi关联的128比特的数进行加密运算;而相关技术中,运算tag的函数输入项为km,ke{msin};tag的计算公式可以如下:
[0201]
tag=hmac-sha-256(km,ke{msin},enc[supi’]
opc或k
);
[0202]
其中,enc为加密函数,如aes,enc[supi’]
opc或k
表示使用opc或k对supi’进行加密;supi’为与supi关联的128比特的数。
[0203]
实际应用时,如果对supi的加密操作是在usim上进行,则usim生成suci消息并传给me,并由me传给网络。如果supi的加密在me上进行,则usim将enc[supi’]
opc或k
传给me。me生成suci消息后,将生成的suci消息传给网络。
[0204]
网络收到suci消息后,首先使用a
pub
查询,如果出现过a
pub
,则判断suci消息为重放攻击;如果没有出现过,解密ke{msin},得到supi;再根据supi得到终端侧和网络侧的共享密钥;基于终端侧和网络侧的共享密钥对tag进行验证,如果验证成功,则证明不存在supi猜测攻击,最后把a
pub
存储在网络设备上,并生成认证矢量返回给终端。如果验证失败,则判断suci消息为supi猜测攻击。
[0205]
supi’的加密也可能同时使用共享密钥opc和k,即enc[supi
’⊕
opc]k,tag的计算相应如下:
[0206]
tag=hmac-sha-256(km,ke{msin},enc[supi
’⊕
opc]k);
[0207]
这里,

表示信息异或操作。
[0208]
如果对supi的加密操作是在usim上进行,则usim生成suci消息并传给me,并由me传给网络。如果supi的加密在me上进行,则usim将enc[supi
’⊕
opc]k传给me。me生成suci消息后,将生成的suci消息传给网络。
[0209]
相应地,网络收到suci消息后,首先使用a
pub
查询,如果出现过a
pub
,则判断suci消息为重放攻击;如果没有出现过,解密ke{msin},得到supi;再根据supi得到终端侧和网络侧的共享密钥(k和opc);基于终端侧和网络侧的共享密钥对tag进行验证,如果验证成功,则证明不存在supi猜测攻击,最后把a
pub
存储在网络设备上,并生成认证矢量返回给终端。如果验证失败,则判断suci消息为supi猜测攻击。
[0210]
第三种情况,使用milenage算法中的函数或tuak算法中的函数。usim和udm会使用milenage算法中的函数或tuak算法中的函数基于终端侧和网络侧的共享密钥生成认证向量和认证响应。在本技术实施例中,利用milenage算法中的函数或tuak算法中的函数使用终端侧和网络侧的共享密钥和supi的128比特填充值supi’作为输入,生成一个输出值out,并将它添加为tag计算的输入项。
[0211]
在这种情况下,终端使用ecies对supi加密,生成suci,其格式如下:
[0212]
suci=supi的类型 归属网络标识 路由标识 保护方案标识 b
pub
a
pub
ke{msin} tag;
[0213]
其中,在本技术实施例中,运算tag的函数输入项里增加了所述终端侧和网络侧的共享密钥(k和opc)对supi’使用milenage算法中的函数进行运算得到的输出值out,即使用milenage算法中的函数或tuak算法中的函数对所述终端侧与网络侧的共享密钥和与所述supi关联的128比特的数进行运算,而相关技术中,运算tag的函数输入项为km,ke{msin};tag的计算公式可以如下:
[0214]
tag=hmac-sha-256(km,ke{msin},out);
[0215]
其中,out为基于所述终端侧与网络侧的共享密钥k和opc对supi’使用milenage算法中的函数或tuak算法中的函数进行运算得到的输出值。
[0216]
这里,out值的计算可以采用下列公式之一计算得出:
[0217]
out=f2(supi’,k);
[0218]
out=f3(supi’,k);
[0219]
out=f4(supi’,k);
[0220]
out=f5(supi’,k);
[0221]
其中,f2,f3,f4,f5是milenage算法中或tuak算法中定义的函数。
[0222]
实际应用时,如果对supi的加密操作是在usim上进行,则usim生成suci消息并传给me,并由me传给网络。如果supi的加密在me上进行,则usim将out传给me。me生成suci消息后,将生成的suci消息传给网络。
[0223]
网络收到suci消息后,首先使用a
pub
查询,如果出现过a
pub
,则判断suci消息为重放攻击;如果没有出现过,解密ke{msin},得到supi;再根据supi得到网络侧共享密钥;基于网络侧共享密钥以及supi对tag进行验证,如果验证成功,则证明不存在supi猜测攻击,最后把a
pub
存储在网络设备上,并生成认证矢量返回给终端。如果验证失败,则判断suci消息为supi猜测攻击。
[0224]
从上面的描述可以看出,即仅使用终端侧和网络侧的共享密钥进行函数运算时,对于上述三种情况,如果supi的加密在所述终端的usim上进行,所述usim生成suci消息;并发送给所述终端的me;所述me向网络发送所述suci消息;
[0225]
如果supi的加密在所述me上进行,所述usim将以下信息之一发送给所述me:
[0226]
hash(opc或k);
[0227]
enc[supi’]
opc或k

[0228]
enc[supi
’⊕
opc]k;
[0229]
out;
[0230]
所述me生成suci消息并向网络发送所述suci消息。
[0231]
实际应用时,终端基于终端和网络侧的共享密钥使用特定类型的函数进行运算时,也可以加入其他参数(即随机值,比如用户公钥)进行函数运算(加入其他参数作为输入),即使用终端侧和网络侧的共享密钥和其他参数进行函数运算。
[0232]
相应地,使用函数的不同,则运算结果不同,可以有以下三种情况:
[0233]
第一种情况,使用哈希函数。
[0234]
在这种情况下,终端(也可以称为ue)使用ecies对supi加密,生成suci,其格式如下:
[0235]
suci=supi的类型 归属网络标识 路由标识 保护方案标识 b
pub
a
pub
ke{msin}
tag;
[0236]
其中,在本技术实施例中,运算tag的函数输入项里增加了所述终端侧和网络侧的共享密钥(k或opc)以及用户公钥,即对所述终端侧和网络侧的共享密钥和用户公钥进行哈希运算,而相关技术中,运算tag的函数输入项为km,ke{msin};tag的计算公式可以如下:
[0237]
tag=hmac-sha-256(km,ke{msin},hash((opc或k)||a
pub
));
[0238]
其中,hmac-sha-256为消息认证码运算函数,km为完整性密钥;ke{msin}为加密的msin;hash为哈希函数,如sha-256。
[0239]
实际应用时,如果对supi的加密操作是在usim上进行,则usim生成suci消息(也可以称为suci)并传给me,并由me传给网络。如果supi的加密在me上进行,则usim将hash((opc或k)||a
pub
)传给me。me生成suci消息后,将生成的suci消息传给网络。
[0240]
网络收到suci消息后,首先使用a
pub
查询,如果出现过a
pub
,则判断suci消息为重放攻击;如果没有出现过,解密ke{msin},得到supi;再根据supi得到网络侧共享密钥;基于网络侧共享密钥以及a
pub
对tag进行验证,如果验证成功,则证明不存在supi猜测攻击,最后把a
pub
存储在网络设备上,并生成认证矢量返回给终端。如果验证失败,则判断suci消息为supi猜测攻击。
[0241]
第二种情况,使用加密函数。
[0242]
使用加密函数时,需要引入一个参数;该参数表征与所述随机数(即用户公钥)关联的m比特的数;m为大于或等于1的整数。
[0243]
其中,基于实际使用的加密算法,该参数具体可以表征与所述用户公钥关联的128比特的数。
[0244]
该参数可以是将用户公钥进行处理后得到的128比特位数值,具体可以是将所述用户公钥进行截取处理得到的,比如对用户公钥a
pub
截取前128比特位或截取后128比特位。也就是说,与a
pub
关联的128比特的数a
pub’是将a
pub
进行截取处理得到的。
[0245]
这种情况下,终端使用ecies对supi加密,生成suci,其格式如下:
[0246]
suci=supi的类型 归属网络标识 路由标识 保护方案标识 b
pub
a
pub
ke{msin} tag;
[0247]
其中,在本技术实施例中,运算tag的函数输入项里增加了所述终端侧和网络侧的共享密钥(k或opc)的对a
pub’的加密输出值,即利用所述用户公钥,得到与所述用户公钥关联的128比特的数;利用所述终端侧和网络侧的共享密钥对所述与所述用户公钥关联的128比特的数进行加密运算;而相关技术中,tag的输入项为km,ke{msin};tag的计算公式可以如下:
[0248]
tag=hmac-sha-256(km,ke{msin},enc[a
pub’]
opc或k
);
[0249]
其中,enc为加密函数,如aes,enc[a
pub’]
opc或k
表示使用opc或k对a
pub’进行加密;a
pub’为与a
pub
关联的128比特的数。
[0250]
实际应用时,如果对supi的加密操作是在usim上进行,则usim生成suci消息并传给me,并由me传给网络。如果supi的加密在me上进行,则me生成a
pub
,并将a
pub
传给usim,usim生成enc[a
pub’]
opc或k
,并将enc[a
pub’]
opc或k
传给me。me生成suci消息后,将生成的suci消息传给网络。
[0251]
网络收到suci消息后,首先使用a
pub
查询,如果出现过a
pub
,则判断suci消息为重放
攻击;如果没有出现过,解密ke{msin},得到supi;再根据supi得到终端侧和网络侧的共享密钥;基于终端侧和网络侧的共享密钥以及a
pub
对tag进行验证,如果验证成功,则证明不存在supi猜测攻击,最后把a
pub
存储在网络设备上,并生成认证矢量返回给终端。如果验证失败,则判断suci消息为supi猜测攻击。
[0252]apub’加密也可能同时使用共享密钥opc和k,即enc[a
pub
’⊕
opc]k,tag的计算相应如下:
[0253]
tag=hmac-sha-256(km,ke{msin},enc[a
pub
’⊕
opc]k);
[0254]
如果supi的加密在usim上进行,则usim生成suci消息并传给me,并由me传给网络。如果supi的加密在me上进行,则me生成a
pub
并将a
pub
传给usim,usim生成enc[a
pub
’⊕
opc]k,并将enc[a
pub
’⊕
opc]k传给me。me生成suci消息后,将生成的suci消息传给网络。
[0255]
相应地,网络收到suci消息后,首先使用a
pub
查询,如果出现过a
pub
,则判断suci消息为重放攻击;如果没有出现过,解密ke{msin},得到supi;再根据supi得到终端侧和网络侧的共享密钥;基于终端侧和网络侧的共享密钥以及a
pub
对tag进行验证,如果验证成功,则证明不存在supi猜测攻击,最后把a
pub
存储在网络设备上,并生成认证矢量返回给终端。如果验证失败,则判断suci消息为supi猜测攻击。
[0256]
第三种情况,使用milenage算法中的函数或tuak算法中定义的函数。
[0257]
在本技术实施例中,利用milenage算法中的函数或tuak算法中的函数使用共享密钥和a
pub
处理后得到的128比特值a
pub’作为输入,生成一个输出值out,并将它添加为tag计算的输入项。
[0258]
在这种情况下,终端使用ecies对supi加密,生成suci,其格式如下:
[0259]
suci=supi的类型 归属网络标识 路由标识 保护方案标识 b
pub
a
pub
ke{msin} tag;
[0260]
其中,在本技术实施例中,运算tag的函数输入项里增加了所述终端侧和网络侧的共享密钥(k和opc)对a
pub’使用milenage算法中的函数或tuak算法中定义的函数进行运算得到的输出值out,即利用所述用户公钥,得到与所述用户公钥关联的128比特的数;使用milenage算法中的函数或tuak算法中定义的函数对所述终端侧和网络侧的共享密钥和所述与所述用户公钥关联的128比特的数进行运算;而相关技术中,运算tag的函数输入项为km,ke{msin};tag的计算公式可以如下:
[0261]
tag=hmac-sha-256(km,ke{msin},out);
[0262]
其中,out为基于所述终端侧与网络侧的共享密钥k和opc对a
pub’使用milenage算法中的函数或tuak算法中的函数进行运算得到的输出值。
[0263]
这里,out值的计算可以采用下列公式之一计算得出:
[0264]
out=f2(supi’,k);
[0265]
out=f3(supi’,k);
[0266]
out=f4(supi’,k);
[0267]
out=f5(supi’,k);
[0268]
其中,f2,f3,f4,f5是milenage算法中或tuak算法中定义的函数。
[0269]
实际应用时,如果对supi的加密操作是在usim上进行,则usim生成suci消息并传给me,并由me传给网络。如果supi的加密在me上进行,则me生成a
pub
,并将a
pub
传给usim,usim
生成out,并将out传给me。me生成suci消息后,将生成的suci消息传给网络。
[0270]
网络收到suci消息后,首先使用a
pub
查询,如果出现过a
pub
,则判断suci消息为重放攻击;如果没有出现过,解密ke{msin},得到supi;再根据supi得到终端侧和网络侧的共享密钥;基于终端侧和网络侧的共享密钥以及a
pub
对tag进行验证,如果验证成功,则证明不存在supi猜测攻击,最后把a
pub
存储在网络设备上,并生成认证矢量返回给终端。如果验证失败,则判断suci消息为supi猜测攻击。
[0271]
从上面的描述可以看出,即使用终端侧和网络侧的共享密钥和用户公钥进行函数运算时,对于上述三种情况,如果supi的加密在所述终端的usim上进行,所述usim生成suci消息;并发送给所述终端的me;所述me向网络发送所述suci消息;
[0272]
如果supi的加密在所述me上进行,所述me生成a
pub
并传给所述usim,所述usim将以下信息之一发送给所述me:
[0273]
hash((opc或k)||a
pub
);
[0274]
enc[a
pub’]
opc或k

[0275]
enc[a
pub
’⊕
opc]k;
[0276]
out;
[0277]
所述me生成suci消息并向网络发送所述suci消息。
[0278]
相应地,本技术实施例还提供了一种消息的处理方法,应用于网络设备,如图4所示,该方法包括:
[0279]
步骤401:获取suci消息;所述suci消息至少包含用户公钥,以及消息认证码标签值;
[0280]
步骤402:根据所述suci消息中的用户公钥与本地存储的用户公钥,判断所述suci消息是否为suci重放攻击;
[0281]
步骤403:在所述suci消息不为suci重放攻击的情况下,对所述suci消息中的消息认证码标签值进行验证,确定所述suci消息是否为supi猜测攻击;其中,
[0282]
基于终端侧与网络侧的共享密钥使用特定类型的函数进行运算得到的函数运算结果作为消息认证码运算函数的输入之一。
[0283]
其中,实际应用时,所述网络设备可以是udm。
[0284]
在步骤402中,所述网络设备通过把从终端侧收到的用户公钥与存储在数据库中以前的用户公钥比对,以确定收到的suci消息是否是重放消息;具体地,所述网络设备利用所述suci消息中的用户公钥在数据库中进行查询,如果查询到,则说明所述suci消息中的用户公钥出现过,确定所述suci消息为重放攻击,如果未查询到,则说明所述suci消息中的用户公钥没有出现过,确定所述消息不为重放攻击。
[0285]
其中,实际应用时,用户公钥虽然不是一次性随机数,但它是在[0,2n]范围内变化的随机数,这里,n为用户公钥的长度。终端产生相同的公钥的概率为1/2n,且通常用户公钥的长度大于或等于256比特,因此终端产生相同公钥的概率可以忽略不计。相应地,网络设备依据用户公钥判断重放攻击的错误率也可以忽略不计。
[0286]
在一实施例中,所述对所述suci消息中的消息认证码标签值进行验证,确定所述suci消息是否为supi猜测攻击,包括:
[0287]
对所述suci消息中加密的supi进行解密,得到supi;
[0288]
利用得到的supi,从数据库中得到与supi对应的终端侧与网络侧的共享密钥;
[0289]
对所述对应的终端侧与网络侧的共享密钥使用特定类型的函数进行运算得到函数运算结果,并生成消息认证码标签值;
[0290]
将生成的消息认证码标签值与所述suci消息中的消息认证码标签值进行比对;若二者相同,确定所述suci消息不是supi猜测攻击,若二者不相同,确定所述suci消息为supi猜测攻击。
[0291]
其中,网络设备生成消息认证码标签值的过程与终端生成所述suci消息中的消息认证码标签值的过程完全相同,这里不再赘述。
[0292]
在验证成功的情况下,即确定所述suci消息不是supi猜测攻击的情况下,在本地存储所述suci消息中的用户公钥,即存储在数据库中,以便后续用于判断获取的suci消息是否是suci重放攻击。
[0293]
这里,实际应用时,在验证成功的情况下,所述网络设备会生成认证矢量返回给所述终端。
[0294]
本技术实施例提供的消息的处理方法,终端生成suci消息;并向网络发送所述suci消息;所述suci消息至少包含用户公钥,以及消息认证码标签值;而网络设备获取suci消息;所述suci消息至少包含用户公钥,以及消息认证码标签值;根据所述suci消息中的用户公钥与本地存储的用户公钥,判断所述suci消息是否为suci重放攻击;在所述suci消息不为suci重放攻击的情况下,对所述suci消息中的消息认证码标签值进行验证,确定所述suci消息是否为supi猜测攻击;其中,基于终端侧与网络侧的共享密钥使用特定类型的函数进行运算得到的函数运算结果作为消息认证码运算函数的输入之一,网络设备先进行重放攻击的检测,再进行supi猜测攻击的检测,所以能够同时解决supi猜测攻击和suci重放攻击的问题。同时,与相关技术相比,suci的格式不需要变动,只需要在终端侧基于终端侧和网络侧的共享密钥使用特定的函数进行运算,函数运算结果新增作为消息认证码运算函数的输入,如此,实现了与相关技术的最大兼容。
[0295]
为了实现本技术实施例的方法,本技术实施例还提供了一种消息的处理装置,设置在网络设备上,如图5所示,该装置包括:
[0296]
获取单元501,用于获取suci消息;所述suci消息至少包含用户公钥,以及消息认证码标签值;
[0297]
第一判断单元502,用于根据所述suci消息中的用户公钥与本地存储的用户公钥,判断所述suci消息是否为suci重放攻击;
[0298]
第二判断单元503,用于在所述suci消息不为suci重放攻击的情况下,对所述suci消息中的消息认证码标签值进行验证,确定所述suci消息是否为supi猜测攻击;其中,
[0299]
基于终端侧与网络侧的共享密钥使用特定类型的函数进行运算得到的函数运算结果作为消息认证码运算函数的输入之一。
[0300]
其中,在一实施例中,所述第二判断单元503,用于:
[0301]
对所述终端侧与网络侧的共享密钥使用特定类型的函数进行运算。
[0302]
其中,在一实施例中,所述对所述终端侧与网络侧的共享密钥使用特定类型的函数进行运算,包括以下之一:
[0303]
对所述终端侧与网络侧的共享密钥进行哈希运算;
[0304]
利用所述终端侧与网络侧的共享密钥对与所述supi关联的128比特的数进行加密运算;
[0305]
使用milenage算法中的函数对所述终端侧与网络侧的共享密钥和与所述supi关联的128比特的数进行运算。
[0306]
在一实施例中,所述第二判断单元503,用于通过以下公式之一生成消息认证码标签值:
[0307]
tag=hmac-sha-256(km,ke{msin},hash(opc或k));
[0308]
tag=hmac-sha-256(km,ke{msin},enc[supi’]
opc或k
);
[0309]
tag=hmac-sha-256(km,ke{msin},enc[supi
’⊕
opc]k);
[0310]
tag=hmac-sha-256(km,ke{msin},out);
[0311]
其中,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算法中的函数进行运算得到的输出值。
[0312]
在一实施例中,所述第二判断单元503,用于:
[0313]
对所述终端侧与网络侧的共享密钥和用户公钥使用特定类型的函数进行运算。
[0314]
其中,在一实施例中,所述对所述终端侧与网络侧的共享密钥和用户公钥使用特定类型的函数进行运算,包括以下之一:
[0315]
对所述终端侧与网络侧的共享密钥和用户公钥进行哈希运算;
[0316]
利用所述用户公钥,得到与所述用户公钥关联的128比特的数;利用所述终端侧与网络侧的共享密钥对所述与所述用户公钥关联的128比特的数进行加密运算;
[0317]
利用所述用户公钥,得到与所述用户公钥关联的128比特的数;使用milenage算法中的函数或tauk算法中的函数对所述终端侧和网络侧的共享密钥和所述与所述用户公钥关联的128比特的数进行运算。
[0318]
在一实施例中,所述第二判断单元503,用于通过以下公式之一生成消息认证码标签值:
[0319]
tag=hmac-sha-256(km,ke{msin},hash((opc或k)||a
pub
));
[0320]
tag=hmac-sha-256(km,ke{msin},enc[a
pub’]
opc或k
);
[0321]
tag=hmac-sha-256(km,ke{msin},enc[a
pub
’⊕
opc]k);
[0322]
tag=hmac-sha-256(km,ke{msin},out);
[0323]
其中,hmac-sha-256为消息认证码运算函数,km为完整性密钥;ke{msin}为加密的msin;hash为哈希函数;k为所述终端侧与网络侧的共享根密钥;opc为由密钥k推演出来的128比特共享密钥;enc[a
pub’]
opc或k
表示使用opc或k对a
pub’进行加密;a
pub’为与a
pub
关联的128比特的数;a
pub
为用户公钥;

表示信息异或操作;out为基于所述终端侧与网络侧的共享密钥k和opc对a
pub’使用milenage算法中的函数或tauk算法中的函数进行运算得到的输出值。
[0324]
在一实施例中,所述第二判断单元503,用于:
[0325]
对所述suci消息中加密的supi进行解密,得到supi;
[0326]
利用得到的supi,从数据库中得到与supi对应的终端侧与网络侧的共享密钥;
[0327]
对所述对应的终端侧与网络侧的共享密钥使用特定类型的函数进行运算得到函数运算结果,并生成消息认证码标签值;
[0328]
将生成的消息认证码标签值与所述suci消息中的消息认证码标签值进行比对;若二者相同,确定所述suci消息不是supi猜测攻击,若二者不相同,确定所述suci消息为supi猜测攻击。
[0329]
在一实施例中,该装置还可以包括:处理单元,用于在验证成功的情况下,在本地存储所述suci消息中的用户公钥。
[0330]
其中,在一实施例中,所述处理单元,还用于生成认证矢量返回给所述终端。
[0331]
实际应用时,所述获取单元501可由消息的处理装置中的通信接口实现;所述第一判断单元502及第二判断单元503可由消息的处理装置中的处理器实现;所述处理单元可由消息的处理装置中的处理器结合通信接口实现。
[0332]
为了实现本技术实施例终端侧的方法,本技术实施例还提供了一种消息的处理装置,设置在终端上,如图6所示,该装置包括:
[0333]
生成单元601,用于生成suci消息;
[0334]
发送单元602,用于向网络发送所述suci消息;所述suci消息至少包含用户公钥,以及消息认证码标签值;其中,
[0335]
基于终端侧与网络侧的共享密钥使用特定类型的函数进行运算得到的函数运算结果作为消息认证码运算函数的输入之一。
[0336]
其中,在一实施例中,所述生成单元601,用于:
[0337]
对所述终端侧与网络侧的共享密钥使用特定类型的函数进行运算。
[0338]
其中,在一实施例中,所述对所述终端侧与网络侧的共享密钥使用特定类型的函数进行运算,包括以下之一:
[0339]
对所述终端侧与网络侧的共享密钥进行哈希运算;
[0340]
利用所述终端侧与网络侧的共享密钥对与所述supi关联的128比特的数进行加密运算;
[0341]
使用milenage算法中的函数对所述终端侧与网络侧的共享密钥和与所述supi关联的128比特的数进行运算。
[0342]
在一实施例中,所述生成单元601,用于通过以下公式之一生成消息认证码标签值:
[0343]
tag=hmac-sha-256(km,ke{msin},hash(opc或k));
[0344]
tag=hmac-sha-256(km,ke{msin},enc[supi’]
opc或k
);
[0345]
tag=hmac-sha-256(km,ke{msin},enc[supi
’⊕
opc]k);
[0346]
tag=hmac-sha-256(km,ke{msin},out);
[0347]
其中,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算法中的函数进行运算得到的输出值。
[0348]
在一实施例中,所述生成单元601,用于:
[0349]
对所述终端侧与网络侧的共享密钥和用户公钥使用特定类型的函数进行运算。
[0350]
其中,在一实施例中,所述对所述终端侧与网络侧的共享密钥和用户公钥使用特定类型的函数进行运算,包括以下之一:
[0351]
对所述终端侧和网络侧的共享密钥和用户公钥进行哈希运算;
[0352]
利用所述用户公钥,得到与所述用户公钥关联的128比特的数;利用所述终端侧和网络侧的共享密钥对所述与所述用户公钥关联的128比特的数进行加密运算;
[0353]
利用所述用户公钥,得到与所述用户公钥关联的128比特的数;使用milenage算法中的函数或tauk算法中的函数对所述终端侧和网络侧的共享密钥和所述与所述用户公钥关联的128比特的数进行运算。
[0354]
在一实施例中,所述生成单元601,用于通过以下公式之一生成消息认证码标签值:
[0355]
tag=hmac-sha-256(km,ke{msin},hash((opc或k)||a
pub
));
[0356]
tag=hmac-sha-256(km,ke{msin},enc[a
pub’]
opc或k
);
[0357]
tag=hmac-sha-256(km,ke{msin},enc[a
pub
’⊕
opc]k);
[0358]
tag=hmac-sha-256(km,ke{msin},out);
[0359]
其中,hmac-sha-256为消息认证码运算函数,km为完整性密钥;ke{msin}为加密的msin;hash为哈希函数;k为所述终端侧与网络侧的共享根密钥;opc为由密钥k推演出来的128位共享密钥;enc[a
pub’]
opc或k
表示使用opc或k对a
pub’进行加密;a
pub’为与a
pub
关联的128比特的数;a
pub
为用户公钥;

表示信息异或操作;out为基于所述终端侧与网络侧的共享密钥k和opc对a
pub’使用milenage算法中的函数或tauk算法中的函数进行运算得到的输出值。
[0360]
实际应用时,所述生成单元601可由消息的处理装置中的处理器实现;所述发送单元602可由消息的处理装置中的通信接口实现。
[0361]
需要说明的是:上述实施例提供的消息的处理装置在进行控制信道的传输时,仅以上述各程序模块的划分进行举例说明,实际应用中,可以根据需要而将上述处理分配由不同的程序模块完成,即将装置的内部结构划分成不同的程序模块,以完成以上描述的全部或者部分处理。另外,上述实施例提供的消息的处理装置与消息的处理方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
[0362]
基于上述程序模块的硬件实现,且为了实现本技术实施例网络设备侧的方法,本技术实施例还提供了一种网络设备,如图7所示,该网络设备700包括:
[0363]
第一通信接口701,能够与其他设备进行信息交互;
[0364]
第一处理器702,与所述第一通信接口701连接,以实现与其他设备进行信息交互,用于运行计算机程序时,执行上述网络设备侧一个或多个技术方案提供的方法。而所述计算机程序存储在第一存储器703上。
[0365]
具体地,所述第一通信接口701,用于获取suci消息;所述suci消息至少包含用户公钥,以及消息认证码标签值;
[0366]
所述第一处理器702,用于根据所述suci消息中的用户公钥与本地存储的用户公钥,判断所述suci消息是否为suci重放攻击;并在所述suci消息不为suci重放攻击的情况下,对所述suci消息中的消息认证码标签值进行验证,确定所述suci消息是否为supi猜测
攻击;其中,
[0367]
基于终端侧与网络侧的共享密钥使用特定类型的函数进行运算得到的函数运算结果作为消息认证码运算函数的输入之一。
[0368]
具体地,在一实施例中,所述第一处理器702,用于:
[0369]
对所述终端侧与网络侧的共享密钥使用特定类型的函数进行运算。
[0370]
其中,在一实施例中,所述对所述终端侧与网络侧的共享密钥使用特定类型的函数进行运算,包括以下之一:
[0371]
对所述终端侧与网络侧的共享密钥进行哈希运算;
[0372]
利用所述终端侧与网络侧的共享密钥对与所述supi关联的128比特的数进行加密运算;
[0373]
使用milenage算法中的函数对所述终端侧与网络侧的共享密钥和与所述supi关联的128比特的数进行运算。
[0374]
在一实施例中,所述第一处理器702,用于通过以下公式之一生成消息认证码标签值:
[0375]
tag=hmac-sha-256(km,ke{msin},hash(opc或k));
[0376]
tag=hmac-sha-256(km,ke{msin},enc[supi’]
opc或k
);
[0377]
tag=hmac-sha-256(km,ke{msin},enc[supi
’⊕
opc]k);
[0378]
tag=hmac-sha-256(km,ke{msin},out);
[0379]
其中,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算法中的函数进行运算得到的输出值。
[0380]
在一实施例中,所述第一处理器702,用于:
[0381]
对所述终端侧与网络侧的共享密钥和用户公钥使用特定类型的函数进行运算。
[0382]
其中,在一实施例中,所述对所述终端侧与网络侧的共享密钥和用户公钥使用特定类型的函数进行运算,包括以下之一:
[0383]
对所述终端侧与网络侧的共享密钥和用户公钥进行哈希运算;
[0384]
利用所述用户公钥,得到与所述用户公钥关联的128比特的数;利用所述终端侧与网络侧的共享密钥对所述与所述用户公钥关联的128比特的数进行加密运算;
[0385]
利用所述用户公钥,得到与所述用户公钥关联的128比特的数;使用milenage算法中的函数或tauk算法中的函数对所述终端侧和网络侧的共享密钥和所述与所述用户公钥关联的128比特的数进行运算。
[0386]
在一实施例中,所述第一处理器702,用于通过以下公式之一生成消息认证码标签值:
[0387]
tag=hmac-sha-256(km,ke{msin},hash((opc或k)||a
pub
));
[0388]
tag=hmac-sha-256(km,ke{msin},enc[a
pub’]
opc或k
);
[0389]
tag=hmac-sha-256(km,ke{msin},enc[a
pub
’⊕
opc]k);
[0390]
tag=hmac-sha-256(km,ke{msin},out);
[0391]
其中,hmac-sha-256为消息认证码运算函数,km为完整性密钥;ke{msin}为加密的msin;hash为哈希函数;k为所述终端侧与网络侧的共享根密钥;opc为由密钥k推演出来的128比特共享密钥;enc[a
pub’]
opc或k
表示使用opc或k对a
pub’进行加密;a
pub’为与a
pub
关联的128比特的数;a
pub
为用户公钥;

表示信息异或操作;out为基于所述终端侧与网络侧的共享密钥k和opc对a
pub’使用milenage算法中的函数或tauk算法中的函数进行运算得到的输出值。
[0392]
在一实施例中,所述第一处理器702,用于:
[0393]
对所述suci消息中加密的supi进行解密,得到supi;
[0394]
利用得到的supi,从数据库中得到与supi对应的终端侧与网络侧的共享密钥;
[0395]
对所述对应的终端侧与网络侧的共享密钥使用特定类型的函数进行运算得到函数运算结果,并生成消息认证码标签值;
[0396]
将生成的消息认证码标签值与所述suci消息中的消息认证码标签值进行比对;若二者相同,确定所述suci消息不是supi猜测攻击,若二者不相同,确定所述suci消息为supi猜测攻击。
[0397]
在一实施例中,所述第一处理器702,还用于在验证成功的情况下,在本地存储所述suci消息中的用户公钥。
[0398]
在一实施例中,所述第一处理器702,还用于在验证成功的情况下,生成认证矢量返回给所述终端。
[0399]
需要说明的是:第一处理器702的具体处理过程可参照上述方法理解。
[0400]
当然,实际应用时,网络设备700中的各个组件通过总线系统704耦合在一起。可理解,总线系统704用于实现这些组件之间的连接通信。总线系统704除包括数据总线之外,还包括电源总线、控制总线和状态信号总线。但是为了清楚说明起见,在图7中将各种总线都标为总线系统704。
[0401]
本技术实施例中的第一存储器703用于存储各种类型的数据以支持网络设备700的操作。这些数据的示例包括:用于在网络设备700上操作的任何计算机程序。
[0402]
上述本技术实施例揭示的方法可以应用于所述第一处理器702中,或者由所述第一处理器702实现。所述第一处理器702可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过所述第一处理器702中的硬件的集成逻辑电路或者软件形式的指令完成。上述的所述第一处理器702可以是通用处理器、数字信号处理器(dsp,digital signal processor),或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。所述第一处理器702可以实现或者执行本技术实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者任何常规的处理器等。结合本技术实施例所公开的方法的步骤,可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于存储介质中,该存储介质位于第一存储器703,所述第一处理器702读取第一存储器703中的信息,结合其硬件完成前述方法的步骤。
[0403]
在示例性实施例中,网络设备700可以被一个或多个应用专用集成电路(asic,application specific integrated circuit)、dsp、可编程逻辑器件(pld,programmable logic device)、复杂可编程逻辑器件(cpld,complex programmable logic device)、现场
可编程门阵列(fpga,field-programmable gate array)、通用处理器、控制器、微控制器(mcu,micro controller unit)、微处理器(microprocessor)、或者其他电子元件实现,用于执行前述方法。
[0404]
基于上述程序模块的硬件实现,且为了实现本技术实施例终端侧的方法,本技术实施例还提供了一种终端,如图8所示,该终端800包括:
[0405]
第二通信接口801,能够与网络设备进行信息交互;
[0406]
第二处理器802,与所述第二通信接口801连接,以实现与网络设备进行信息交互,用于运行计算机程序时,执行上述终端侧一个或多个技术方案提供的方法。而所述计算机程序存储在第二存储器803上。
[0407]
具体地,所述第二处理器802,用于生成suci消息;
[0408]
所述第二通信接口801,用于向网络发送所述suci消息;所述suci消息至少包含用户公钥,以及消息认证码标签;其中,
[0409]
基于终端侧与网络侧的共享密钥使用特定类型的函数进行运算得到的函数运算结果作为消息认证码运算函数的输入之一。
[0410]
其中,在一实施例中,所述第二处理器802,用于:
[0411]
对所述终端侧与网络侧的共享密钥使用特定类型的函数进行运算。
[0412]
其中,在一实施例中,所述对所述终端侧与网络侧的共享密钥使用特定类型的函数进行运算,包括以下之一:
[0413]
对所述终端侧与网络侧的共享密钥进行哈希运算;
[0414]
利用所述终端侧与网络侧的共享密钥对与所述supi关联的128比特的数进行加密运算;
[0415]
使用milenage算法中的函数或tauk算法中的函数对所述终端侧与网络侧的共享密钥和与所述supi关联的128比特的数进行运算。
[0416]
在一实施例中,所述生成单元601,用于通过以下公式之一生成消息认证码标签值:
[0417]
tag=hmac-sha-256(km,ke{msin},hash(opc或k));
[0418]
tag=hmac-sha-256(km,ke{msin},enc[supi’]
opc或k
);
[0419]
tag=hmac-sha-256(km,ke{msin},enc[supi
’⊕
opc]k);
[0420]
tag=hmac-sha-256(km,ke{msin},out);
[0421]
其中,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算法中的函数进行运算得到的输出值。
[0422]
在一实施例中,所述第二处理器802,用于:
[0423]
对所述终端侧与网络侧的共享密钥和用户公钥使用特定类型的函数进行运算。
[0424]
其中,在一实施例中,所述对所述终端侧与网络侧的共享密钥和用户公钥使用特定类型的函数进行运算,包括以下之一:
[0425]
对所述终端侧和网络侧的共享密钥和用户公钥进行哈希运算;
only memory)、电可擦除可编程只读存储器(eeprom,electrically erasable programmable read-only memory)、磁性随机存取存储器(fram,ferromagnetic random access memory)、快闪存储器(flash memory)、磁表面存储器、光盘、或只读光盘(cd-rom,compact disc read-only memory);磁表面存储器可以是磁盘存储器或磁带存储器。易失性存储器可以是随机存取存储器(ram,random access memory),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的ram可用,例如静态随机存取存储器(sram,static random access memory)、同步静态随机存取存储器(ssram,synchronous static random access memory)、动态随机存取存储器(dram,dynamic random access memory)、同步动态随机存取存储器(sdram,synchronous dynamic random access memory)、双倍数据速率同步动态随机存取存储器(ddrsdram,double data rate synchronous dynamic random access memory)、增强型同步动态随机存取存储器(esdram,enhanced synchronous dynamic random access memory)、同步连接动态随机存取存储器(sldram,synclink dynamic random access memory)、直接内存总线随机存取存储器(drram,direct rambus random access memory)。本技术实施例描述的存储器旨在包括但不限于这些和任意其它适合类型的存储器。
[0440]
在示例性实施例中,本技术实施例还提供了一种存储介质,即计算机存储介质,具体为计算机可读存储介质,例如包括存储计算机程序的第一存储器703,上述计算机程序可由网络设备700的第一处理器702执行,以完成前述网络设备侧方法所述步骤。再比如包括存储计算机程序的第二存储器803,上述计算机程序可由终端800的第二处理器802执行,以完成前述终端侧方法所述步骤。计算机可读存储介质可以是fram、rom、prom、eprom、eeprom、flash memory、磁表面存储器、光盘、或cd-rom等存储器。
[0441]
需要说明的是:“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。
[0442]
另外,本技术实施例所记载的技术方案之间,在不冲突的情况下,可以任意组合。
[0443]
以上所述,仅为本技术的较佳实施例而已,并非用于限定本技术的保护范围。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献