一种附着流程的实现方法及装置与流程

文档序号:16060870发布日期:2018-11-24 12:10阅读:429来源:国知局

本发明涉及移动通信领域中的附着技术,尤其涉及一种附着流程的实现方法及装置。

背景技术

第五代移动通信技术(5g,5thgenerationmobilecommunicationtechnology)追逐的目标是满足2020年及以后的商业需求,通过5g有望塑造一个完全移动和全面连接的社会,在今天难以想象的很多方面促使社会经济改革,如生产效率、可持续性发展等方面。5g有必要提供的性能包括:更大的吞吐量、超低延迟、极高可靠性、更高的连接密度和更高的移动范围。这种增强的性能预计将提供在高度异质网络环境中运行的能力,以及确保安全性、信任、身份和隐私的能力。

长期演进(lte,longtermevolution)的演进是5g的重要组成部分,不局限于此,5g还包括网络演变的所有部分,如核心和管理系统、以及从无线层到应用层的所有协议层。因此,5g的安全隐患可能会无处不在。第二代移动通信技术,也即全球移动通信系统(gsm,globalsystemformobilecommunication)是第一个拥有标准化、内置安全功能的系统,然后gsm演变到3g和4g。目前的4g蜂窝系统为用户和运营商提供足够的安全性和可信度,但其仍然存在一些安全漏洞,尤其是用户设备(ue,userequipment)在对网络进行附着的过程中。3gpptr33.899[1]是5g网络安全的研究报告,其中对附着流程可能出现的安全漏洞进行了归纳总结,具有如下漏洞:用户标识符隐私、长期密钥泄露、移动网络运营商之间的不安全链路、关联性攻击。

为此,在tr33.899中提出将迪菲赫尔曼(dh,diffie-hellman)密钥交换协议用于附着流程,此方案可以消除当攻击是被动时的三大安全威胁:用户标识符隐私、长期密钥泄露、移动网络运营商之间的不安全链路。然而,dh密钥交换协议用于附着流程方案存在如下主要缺点:

1)不能防止主动攻击,此方案在ue和seaf间使用dh密钥交换协议,由于交换的公钥没有完整性保护,此方案易受到中间人攻击,也就是不能防止主动攻击。

2)不能防止关联性攻击,此方案没有任何机制用于防止关联性攻击。



技术实现要素:

为解决上述技术问题,本发明实施例提供了一种附着流程的实现方法及装置。

本发明实施例提供的附着流程的实现方法,包括:

第一网元接收ue发送的附着请求消息,计算所述第一网元的dh公钥;

所述第一网元向第二网元发送签名请求消息,所述签名请求消息包括所述第一网元的dh公钥;所述第一网元接收所述第二网元发送的签名响应消息,所述签名响应消息包括被所述第二网元的私钥签名的第一网元的dh公钥;

所述第一网元向所述ue发送身份请求消息,所述身份请求消息包括被所述第二网元的私钥签名的第一网元的dh公钥;如果所述ue使用所述第二网元的公钥对所述签名验证成功,则所述第一网元接收所述ue发送的身份响应消息,所述身份响应消息包括被加密密钥加密的所述ue的身份信息,所述加密密钥基于所述第一网元的dh公钥而生成;

所述第一网元基于自身的dh公钥计算所述加密密钥,基于所述加密密钥从所述身份响应消息中获取所述ue的身份信息,并基于所述ue的身份信息向第三网元进行认证和密钥协商流程。

本发明实施例中,所述附着请求消息具有两种,分别为:第一附着请求消息、第二附着请求消息,其中,

如果所述ue已分配guti,则所述第一网元接收ue发送的第一附着请求消息,所述第一附着请求消息包括:nonce1,guti,mac0,所述nonce1代表一次性随机数,所述guti代表所述ue的临时身份,所述mac0代表消息验证码;

如果所述ue未分配guti,则所述第一网元接收ue发送的第二附着请求消息,所述第二附着请求消息包括:nonce1、mmc+mnc,所述mmc代表归属网络的国家号码,所述mnc代表网络号码。

本发明实施例中,所述mac0通过以下公式计算:

mac0=hash(kdh,nonce1,guti)

其中,hash为哈希函数,kdh为所述ue和所述第一网元之间上次使用的共享密钥。

本发明实施例中,所述第一网元接收ue发送的附着请求消息,计算所述第一网元的dh公钥,包括:

如果所述第一网元接收到ue发送的第二附着请求消息,则生成所述第一网元的dh私钥,并计算与所述第一网元的dh私钥相应的dh公钥;

如果所述第一网元接收到ue发送的第一附着请求消息,则判定如下条件是否成立:是否存在与所述ue的临时身份相对应的ue的真实身份、所述第一网元与ue之间是否已经建立共享密钥kdh;如果上述条件中的一个或两个不成立,则所述第一网元生成所述第一网元的dh私钥,并计算与所述第一网元的dh私钥相应的dh公钥。

本发明实施例中,所述方法还包括:

所述第一网元根据所述第一附着请求消息中guti中的mmc+mnc,或者根据所述第二附着请求消息中的mmc+mnc,生成所述签名请求消息,所述签名请求消息包括:nonce1,kspub,snid,所述kspub代表所述第一网元的dh公钥,所述snid代表服务网络号;

其中,如果所述mmc+mnc指向的网络与所述第一网元所在的网络属于不同属性的网络,则所述签名请求消息还包括:signseaf,所述signseaf代表所述第一网元或者与所述第一网元互联的安全网管利用所述第一网元的私钥对所述签名请求消息的数字签名。

本发明实施例中,在所述签名请求消息包括所述signseaf的情况下,所述签名响应消息具有两种,分别为:第一签名响应消息和第二签名响应消息,其中,

如果所述第二网元利用所述第一网元的公钥对所述签名请求消息的数字签名验证失败,则所述第一网元接收所述第二网元发送的第一签名响应消息,所述第一签名响应消息包括:nonce1、fail、signausf,所述fail代表验证失败,所述signausf代表所述第二网元利用所述第二网元的私钥对所述签名响应消息的数字签名;

如果所述第二网元利用所述第一网元的公钥对所述签名请求消息的数字签名验证成功,则所述第一网元接收所述第二网元发送的第二签名响应消息,所述第二签名响应消息包括:nonce1、kspub、signausf。

本发明实施例中,如果所述第一网元从所述第二网元接收到所述第一签名响应消息,则所述身份请求消息包括:nonce1、fail、signausf;

如果所述第一网元从所述第二网元接收到所述第二签名响应消息,则所述身份请求消息包括:nonce1、kspub、signausf。

本发明实施例中,所述身份响应消息包括kupub,{身份信息}ke,mac1,所述kupub代表所述ue的dh公钥,所述{身份信息}ke代表使用ke加密的身份信息,所述mac1代表使用km对所述身份响应消息计算出的消息认证码,其中,所述ke和所述km分别代表加密密钥和完整性密钥。

本发明实施例中,如果所述身份响应消息携带网络切片标识符和/或网络接入标识符,则所述身份响应消息包括:

kupub,{身份信息、网络切片标识符}ke,mac1;或者,

kupub,{身份信息、网络接入标识符}ke,mac1;或者,

kupub,{身份信息、网络切片标识符、网络接入标识符}ke,mac1;

其中,所述{}ke代表使用ke进行加密。

本发明实施例中,所述第一网元基于自身的dh公钥计算所述加密密钥,基于所述加密密钥从所述身份响应消息中获取所述ue的身份信息,包括:

所述第一网元使用所述ue的dh私钥以及所述第一网元的dh公钥,计算所述ue与所述第一网元之间的共享密钥;

利用所述共享密钥,基于以下公式计算加密密钥和完整性密钥:

ke=kdf(nonce1,kdh,number1);

km=kdf(nonce1,kdh,number2);

其中,ke代表加密密钥,km代表完整性密钥,kdf代表密钥推导函数,number1和number2分别代表两个不同的数据;

利用所述加密密钥从所述身份响应消息中获取所述ue的身份信息。

本发明实施例中,所述方法还包括:

所述第一网元向所述ue发送认证请求消息,所述认证请求消息包括rand和autn,所述rand代表随机数,所述autn代表认证令牌;

所述第一网元接收所述ue发送的认证响应消息,所述认证响应消息包括响应参数;如果对所述响应参数验证失败,则所述第一网元向所述ue发送认证拒绝消息,所述认证拒绝消息包括mac2,所述mac2代表使用km对所述认证拒绝消息进哈希计算出的消息认证码。

本发明实施例中,所述方法还包括:

所述第一网元向所述ue发送认证请求消息,所述认证请求消息包括rand和autn,所述rand代表随机数,所述autn代表认证令牌;

如果所述ue对所述autn进行mac检验失败或者所述ue检验同步失败,则所述第一网元接收所述ue发送的认证响应消息,所述认证响应消息包括fail_cause、tue、imsi、sqnms,所述认证响应消息中的内容使用ke和km进行加密;

其中,所述fail_cause的值为mac失败或者同步失败,如果所述fail_cause的值为同步失败,则所述第一网元利用所述认证响应消息中的sqnms与归属网络进行同步,所述sqnms代表ue的序列号;所述tue代表ue发送消息时的ue时钟或者随机数。

本发明另一实施例提供的附着流程的实现方法,包括:

ue向第一网元发送附着请求消息;

所述ue接收所述第一网元发送的身份请求消息,所述身份请求消息包括被第二网元的私钥签名的第一网元的dh公钥;

如果所述ue使用所述第二网元的公钥对所述签名验证成功,则所述ue从所述身份请求消息中获得所述第一网元的dh公钥;

所述ue基于所述第一网元的dh公钥,生成加密密钥,并基于所述加密密钥对所述ue的身份信息进行加密;

所述ue向所述第一网元发送身份响应消息,所述身份响应消息包括被加密密钥加密的所述ue的身份信息。

本发明实施例中,所述附着请求消息具有两种,分别为:第一附着请求消息、第二附着请求消息,其中,

如果所述ue已分配guti,则所述ue向第一网元发送第一附着请求消息,所述第一附着请求消息包括:nonce1,guti,mac0,所述nonce1代表一次性随机数,所述guti代表所述ue的临时身份,所述mac0代表消息验证码;

如果所述ue未分配guti,则所述ue向第一网元发送第二附着请求消息,所述第二附着请求消息包括:nonce1、mmc+mnc,所述mmc代表归属网络的国家号码,所述mnc代表网络号码。

本发明实施例中,所述mac0通过以下公式计算:

mac0=hash(kdh,nonce1,guti)

其中,hash为哈希函数,kdh为所述ue和所述第一网元之间上次使用的共享密钥。

本发明实施例中,如果所述第一网元从所述第二网元接收到第一签名响应消息,则所述身份请求消息包括:nonce1、fail、signausf;所述nonce1代表一次性随机数,所述fail代表验证失败,所述signausf代表所述第二网元利用所述第二网元的私钥对所述签名响应消息的数字签名;

如果所述第一网元从所述第二网元接收到第二签名响应消息,则所述身份请求消息包括:nonce1、kspub、signausf,所述kspub代表所述第一网元的dh公钥。

本发明实施例中,所述如果所述ue使用所述第二网元的公钥对所述签名验证成功,则所述ue从所述身份请求消息中获得所述第一网元的dh公钥;所述ue基于所述第一网元的dh公钥,生成加密密钥,并基于所述加密密钥对所述ue的身份信息进行加密,包括:

如果所述ue使用所述第二网元的公钥对所述签名验证成功,则判断所述身份请求消息中的内容;

如果所述身份请求消息中没有所述fail,且所述身份请求消息中的nonce1与自身向所述第一网元发送的nonce1一致,则所述ue获得所述第一网元的dh公钥;

所述ue生成自身的dh私钥及计算与所述dh私钥相应的dh公钥;

所述ue使用所述ue的dh私钥以及所述第一网元的dh公钥,计算所述ue与所述第一网元之间的共享密钥;

利用所述共享密钥,基于以下公式计算加密密钥和完整性密钥:

ke=kdf(nonce1,kdh,number1);

km=kdf(nonce1,kdh,number2);

其中,ke代表加密密钥,km代表完整性密钥,kdf代表密钥推导函数,number1和number2分别代表两个不同的数据;

利用所述加密密钥对所述ue的身份信息进行加密。

本发明实施例提供的附着流程的实现装置,包括:

附着请求单元,用于接收ue发送的附着请求消息,计算第一网元的dh公钥;

签名请求单元,用于向第二网元发送签名请求消息,所述签名请求消息包括所述第一网元的dh公钥;接收所述第二网元发送的签名响应消息,所述签名响应消息包括被所述第二网元的私钥签名的第一网元的dh公钥;

身份请求单元,用于向所述ue发送身份请求消息,所述身份请求消息包括被所述第二网元的私钥签名的第一网元的dh公钥;如果所述ue使用所述第二网元的公钥对所述签名验证成功,则接收所述ue发送的身份响应消息,所述身份响应消息包括被加密密钥加密的所述ue的身份信息,所述加密密钥基于所述第一网元的dh公钥而生成;

处理单元,用于基于自身的dh公钥计算所述加密密钥,基于所述加密密钥从所述身份响应消息中获取所述ue的身份信息,并基于所述ue的身份信息向第三网元进行认证和密钥协商流程。

本发明实施例中,所述附着请求消息具有两种,分别为:第一附着请求消息、第二附着请求消息,其中,

如果所述ue已分配guti,则所述第一网元接收ue发送的第一附着请求消息,所述第一附着请求消息包括:nonce1,guti,mac0,所述nonce1代表一次性随机数,所述guti代表所述ue的临时身份,所述mac0代表消息验证码;

如果所述ue未分配guti,则所述第一网元接收ue发送的第二附着请求消息,所述第二附着请求消息包括:nonce1、mmc+mnc,所述mmc代表归属网络的国家号码,所述mnc代表网络号码。

本发明实施例中,所述mac0通过以下公式计算:

mac0=hash(kdh,nonce1,guti)

其中,hash为哈希函数,kdh为所述ue和所述第一网元之间上次使用的共享密钥。

本发明实施例中,所述处理单元,还用于:

如果所述第一网元接收到ue发送的第二附着请求消息,则生成所述第一网元的dh私钥,并计算与所述第一网元的dh私钥相应的dh公钥;

如果所述第一网元接收到ue发送的第一附着请求消息,则判定如下条件是否成立:是否存在与所述ue的临时身份相对应的ue的真实身份、所述第一网元与ue之间是否已经建立共享密钥kdh;如果上述条件中的一个或两个不成立,则所述第一网元生成所述第一网元的dh私钥,并计算与所述第一网元的dh私钥相应的dh公钥。

本发明实施例中,所述处理单元,还用于:根据所述第一附着请求消息中guti中的mmc+mnc,或者根据所述第二附着请求消息中的mmc+mnc,生成所述签名请求消息,所述签名请求消息包括:nonce1,kspub,snid,所述kspub代表所述第一网元的dh公钥,所述snid代表服务网络号;

其中,如果所述mmc+mnc指向的网络与所述第一网元所在的网络属于不同属性的网络,则所述签名请求消息还包括:signseaf,所述signseaf代表所述第一网元或者与所述第一网元互联的安全网管利用所述第一网元的私钥对所述签名请求消息的数字签名。

本发明实施例中,在所述签名请求消息包括所述signseaf的情况下,所述签名响应消息具有两种,分别为:第一签名响应消息和第二签名响应消息,其中,

如果所述第二网元利用所述第一网元的公钥对所述签名请求消息的数字签名验证失败,则所述第一网元接收所述第二网元发送的第一签名响应消息,所述第一签名响应消息包括:nonce1、fail、signausf,所述fail代表验证失败,所述signausf代表所述第二网元利用所述第二网元的私钥对所述签名响应消息的数字签名;

如果所述第二网元利用所述第一网元的公钥对所述签名请求消息的数字签名验证成功,则所述第一网元接收所述第二网元发送的第二签名响应消息,所述第二签名响应消息包括:nonce1、kspub、signausf。

本发明实施例中,如果从所述第二网元接收到所述第一签名响应消息,则所述身份请求消息包括:nonce1、fail、signausf;

如果从所述第二网元接收到所述第二签名响应消息,则所述身份请求消息包括:nonce1、kspub、signausf。

本发明实施例中,所述装置还包括:

认证请求单元,用于向所述ue发送认证请求消息,所述认证请求消息包括rand和autn,所述rand代表随机数,所述autn代表认证令牌;接收所述ue发送的认证响应消息,所述认证响应消息包括响应参数;如果对所述响应参数验证失败,则所述第一网元向所述ue发送认证拒绝消息,所述认证拒绝消息包括mac2,所述mac2代表使用km对所述认证拒绝消息进哈希计算出的消息认证码。

本发明实施例中,所述装置还包括:

认证请求单元,用于向所述ue发送认证请求消息,所述认证请求消息包括rand和autn,所述rand代表随机数,所述autn代表认证令牌;如果所述ue对所述autn进行mac检验失败或者所述ue检验同步失败,则接收所述ue发送的认证响应消息,所述认证响应消息包括fail_cause、tue、imsi、sqnms,所述认证响应消息中的内容使用ke和km进行加密;

其中,所述fail_cause的值为mac失败或者同步失败,如果所述fail_cause的值为同步失败,则所述第一网元利用所述认证响应消息中的sqnms与归属网络进行同步,所述sqnms代表ue的序列号;所述tue代表ue发送消息时的ue时钟或者随机数。

本发明另一实施例提供的附着流程的实现装置,包括:

附着请求单元,用于向第一网元发送附着请求消息;

身份请求单元,用于接收所述第一网元发送的身份请求消息,所述身份请求消息包括被第二网元的私钥签名的第一网元的dh公钥;向所述第一网元发送身份响应消息,所述身份响应消息包括被加密密钥加密的所述ue的身份信息;

处理单元,用于如果使用所述第二网元的公钥对所述签名验证成功,则所述ue从所述身份请求消息中获得所述第一网元的dh公钥;基于所述第一网元的dh公钥,生成加密密钥,并基于所述加密密钥对所述ue的身份信息进行加密。

本发明实施例中,所述附着请求消息具有两种,分别为:第一附着请求消息、第二附着请求消息,其中,

如果所述ue已分配guti,则所述ue向第一网元发送第一附着请求消息,所述第一附着请求消息包括:nonce1,guti,mac0,所述nonce1代表一次性随机数,所述guti代表所述ue的临时身份,所述mac0代表消息验证码;

如果所述ue未分配guti,则所述ue向第一网元发送第二附着请求消息,所述第二附着请求消息包括:nonce1、mmc+mnc,所述mmc代表归属网络的国家号码,所述mnc代表网络号码。

本发明实施例中,所述mac0通过以下公式计算:

mac0=hash(kdh,nonce1,guti)

其中,hash为哈希函数,kdh为所述ue和所述第一网元之间上次使用的共享密钥。

本发明实施例的技术方案,第一网元接收ue发送的附着请求消息,计算所述第一网元的dh公钥;所述第一网元向第二网元发送签名请求消息,所述签名请求消息包括所述第一网元的dh公钥;所述第一网元接收所述第二网元发送的签名响应消息,所述签名响应消息包括被所述第二网元的私钥签名的第一网元的dh公钥;所述第一网元向所述ue发送身份请求消息,所述身份请求消息包括被所述第二网元的私钥签名的第一网元的dh公钥;如果所述ue使用所述第二网元的公钥对所述签名验证成功,则所述第一网元接收所述ue发送的身份响应消息,所述身份响应消息包括被加密密钥加密的所述ue的身份信息,所述加密密钥基于所述第一网元的dh公钥而生成;所述第一网元基于自身的dh公钥计算所述加密密钥,基于所述加密密钥从所述身份响应消息中获取所述ue的身份信息,并基于所述ue的身份信息向第三网元进行认证和密钥协商流程。采用本发明实施例的技术方案,能够消除四大安全威胁,即使存在以下主动攻击:用户标识符隐私、长期密钥泄露、移动网络运营商之间的不安全链路、关联性攻击,也能够满足5g网络接入的安全需求。

附图说明

图1为dh密钥交换协议用于附着流程的示意图;

图2为本发明实施例的附着流程的实现方法的流程图一;

图3为本发明实施例的附着流程的实现方法的流程图二;

图4为本发明实施例的成功附着流程的流程示意图;

图5为本发明实施例的失败附着流程的流程示意图一;

图6为本发明实施例的失败附着流程的流程示意图二;

图7为本发明实施例的附着流程的实现装置的结构组成示意图一;

图8为本发明实施例的附着流程的实现装置的结构组成示意图二;

图9为本发明实施例的附着流程的实现设备的结构组成示意图。

具体实施方式

为了能够更加详尽地了解本发明实施例的特点与技术内容,下面结合附图对本发明实施例的实现进行详细阐述,所附附图仅供参考说明之用,并非用来限定本发明实施例。

附着过程是ue访问网络的一个重要步骤,它可以根据其不同的功能分为三个阶段:(1)身份管理,用于在网络侧确定ue的身份,(2)ue和网络之间进行认证和密钥管理(aka,authenticationandkeyagreement),用于相互认证以及导出会话密钥,(3)安全模式命令(smc,securitymodecommand),用于密码算法的协商和激活消息的保护。虽然大部分时间一个ue接入到网络使用临时身份(例如在lte网络中的全球唯一临时ue标识(guti,globallyuniquetemporaryueidentity)),但仍可能在某些时间内会泄露其真实身份,如第一次附着到网络时。

aka协议在附着流程中负责认证和密钥管理,虽然aka协议已使用多年,但有关aka协议的假定条件的安全性近年来已受到质疑,其结果是,攻击者可能不需要攻破aka协议就能窃听通信。此外,aka协议本身也可能泄露用户隐私,攻击者使用关联性攻击来跟踪用户位置。

ue附着网络流程的安全漏洞可归纳如下:

1)用户标识符隐私:自从2g网络起,3gpp已经做了很多努力来处理用户标识符的隐私。基本思路是将一个临时身份分配给ue用于网络接入,以隐藏ue的真实身份。然而,由于不完善的身份管理过程,攻击者仍然可能获得ue的真实身份。连接网络时,至少在两种情况下,ue可能泄露其真实身份:第一次网络附着的情况下,以及国际移动用户识别码(imsi,internationalmobilesubscriberidentificationnumber)和guti之间同步出现问题的情况下。被动攻击者可以通过窃听第一次网络附着消息获得imsi,因为ue会在第一次连接到网络时,暴露其真实身份给网络。这样的攻击在机场这类场景特别有效,因为大多数人都是第一次从注册网络漫游到访问网络。主动攻击者可以通过使用imsi捕捉器随时随地获得ue的真实身份,其中将imsi捕捉器伪装成基站迫使ue透露其身份,用户标识的隐私已在tr33.899被确定为一个关键问题。

2)长期密钥泄露:aka协议依靠分别存储在全球用户识别卡(usim,universalsubscriberidentitymodule)和归属签约用户服务器(hss,homesubscriberserver)中的根密钥k实现ue和网络之间的相互认证,并导出会话密钥。安全的假设条件是根密钥k除了网络运营商外,别人都不知道。然而,研究报告表明这种假设并不总是正确的,因为根密钥k可能在usim卡的生产阶段就已被泄露。因此,被动攻击者可以使用从根密钥k、以及ue和网络之间交换消息而衍生的会话密钥来窃听通信。一个主动攻击者可能会利用偷来的大量根密钥伪造基站而发起中间人攻击。长期密钥泄密已经在tr33.899被认为是一个关键问题。

3)移动网络运营商之间的不安全链路:会话密钥,也被称为无线接口密钥,在注册网络的hss上计算。它们会通过移动网络运营商(mno,mobilenetworkoperator)间的链接被传送到访问网络的服务节点,如ss7/diameter消息。aka协议假定mno间的链接是安全的,然而,mno间ss7链路的攻击证明这样的假设是可疑的。其结果是,攻击者可能使用从mno之间的链路上取得的会话密钥监听访问网络通信,并使用从mno之间的链路上取得的会话密钥来监听空口通信内容。移动网络运营商之间的不安全链路在tr33.899被标记为一个关键问题。

4)关联性攻击:aka协议遭受关联性攻击的原因是在ue认证网络失败的情况下可以从ue发送到网络两个不同的错误信息(消息验证码(mac,messageauthenticationcodes)失败,同步失败),这两个错误信息都没有完整性和机密性保护,可以被攻击者明文截获。为了检测某一ue在某个区域的存在性,主动攻击者可以事先捕获任意一个网络侧发给该ue的合法认证请求消息中包含的消息对(随机数(rand),认证令牌(autn))。攻击者不需要知道用户的imsi与msisdn,只需在区域内重放以前捕获的认证请求消息对(rand,autn),如果攻击者接收到同步失败的消息,攻击者就可以确定目标ue在该区域内,这违反了用户位置机密性要求。

在tr33.899中提出将迪菲赫尔曼(dh,diffie-hellman)密钥交换协议用于附着流程,如图1所示:

基本思路是:dh密钥交换协议被集成到附着流程的身份管理阶段。ue和网络之间协商的密钥kdh用于生成加密密钥ke,ue的真实身份用密钥ke加密,使被动攻击者无法获得ue的真实身份。aka协议结束后,ue和网络在共享根密钥k的基础上生成相同的密钥kmid。然后,ue和网络利用密钥kmid和密钥kdh计算会话密钥ks。在smc阶段,安全模式命令和安全模式响应消息的mac值使用会话密钥ks来计算,以确认密钥ks的正确性。此方案可以消除当攻击是被动时的三大安全威胁:用户标识符隐私、长期密钥泄露、移动网络运营商之间的不安全链路。然而,此方案具有如下问题:1)不能防止主动攻击,2)不能防止关联性攻击。

本发明实施例的技术方案,旨在消除四大安全威胁,即使存在以下主动攻击:用户标识符隐私、长期密钥泄露、移动网络运营商之间的不安全链路、关联性攻击,也能够满足5g网络接入的安全需求。以下对本发明实施例的技术方案做详细描述。

本发明实施例的技术方案,将dh密钥交换协议和数字签名应用在附着流程中。其中,dh密钥交换协议是主要用于通过公共渠道建立双方之间共享密钥的密钥协商方案。数字签名是一种使用发送方公钥,接收方能验证收到数据真实性的方法。本发明实施例的基本思路是:ue和网络之间进行dh密钥交换时,服务网络的dh公钥被归属网络的长效私钥签名,ue使用预先配置的归属网络的长效公钥验证数字签名,从而保证ue获取的服务网络seaf的dh公钥是真实的。ue和网络之间协商的密钥kdh用于生成加密密钥ke,ue的真实身份用密钥ke加密。只有服务网络能得到ue的真实身份,因ue使用的是真实的服务网络dh公钥,从而防止了中间人攻击。aka协议结束后,ue和网络在共享根密钥k的基础上生成相同的密钥kmid。然后,ue和网络利用密钥kmid和密钥kdh计算会话密钥ks。此外,在附着失败的情况下,本发明实施例的技术方案对ue发向网络的认证响应消息使用加密密钥ke和完整性密钥km进行保护,以抵制关联性攻击。

下一代网络针对附着流程定义了四种逻辑网络实体:ue、安全锚点功能(seaf)、认证服务器功能(ausf)、认证凭证存储和处理功能(arpf)。归属网络有一公私钥对,其中,私钥安全地保存在ausf上,公钥预先配置在ue上。服务网络也有一公私钥对,其中,私钥安全地保存在seaf上或与其他运营商互联的安全网关上,公钥通过漫游协议让归属网络知悉。

图2为本发明实施例的附着流程的实现方法的流程图一,本实施例中,第一网元可以通过seaf实现,第二网元可以通过ausf来实现,第三网元可以通过arpf来实现,如图2所示,所述方法包括以下步骤:

步骤201:第一网元接收ue发送的附着请求消息,计算所述第一网元的dh公钥。

本发明实施例中,所述附着请求消息具有两种,分别为:第一附着请求消息、第二附着请求消息,其中,

如果所述ue已分配guti,则所述第一网元接收ue发送的第一附着请求消息,所述第一附着请求消息包括:nonce1,guti,mac0,所述nonce1代表一次性随机数,所述guti代表所述ue的临时身份,所述mac0代表消息验证码;

如果所述ue未分配guti,则所述第一网元接收ue发送的第二附着请求消息,所述第二附着请求消息包括:nonce1、mmc+mnc,所述mmc代表归属网络的国家号码,所述mnc代表网络号码。

本发明实施例中,所述mac0通过以下公式计算:

mac0=hash(kdh,nonce1,guti)

其中,hash为哈希函数,kdh为所述ue和所述第一网元之间上次使用的共享密钥。

本发明实施例中,所述第一网元接收ue发送的附着请求消息,计算所述第一网元的dh公钥,包括:

如果所述第一网元接收到ue发送的第二附着请求消息,则生成所述第一网元的dh私钥,并计算与所述第一网元的dh私钥相应的dh公钥;

如果所述第一网元接收到ue发送的第一附着请求消息,则判定如下条件是否成立:是否存在与所述ue的临时身份相对应的ue的真实身份、所述第一网元与ue之间是否已经建立共享密钥kdh;如果上述条件中的一个或两个不成立,则所述第一网元生成所述第一网元的dh私钥,并计算与所述第一网元的dh私钥相应的dh公钥。

步骤202:所述第一网元向第二网元发送签名请求消息,所述签名请求消息包括所述第一网元的dh公钥;所述第一网元接收所述第二网元发送的签名响应消息,所述签名响应消息包括被所述第二网元的私钥签名的第一网元的dh公钥。

本发明实施例中,所述第一网元根据所述第一附着请求消息中guti中的mmc+mnc,或者根据所述第二附着请求消息中的mmc+mnc,生成所述签名请求消息,所述签名请求消息包括:nonce1,kspub,snid,所述kspub代表所述第一网元的dh公钥,所述snid代表服务网络号;

其中,如果所述mmc+mnc指向的网络与所述第一网元所在的网络属于不同属性的网络,则所述签名请求消息还包括:signseaf,所述signseaf代表所述第一网元或者与所述第一网元互联的安全网管利用所述第一网元的私钥对所述签名请求消息的数字签名。

本发明实施例中,在所述签名请求消息包括所述signseaf的情况下,所述签名响应消息具有两种,分别为:第一签名响应消息和第二签名响应消息,其中,

如果所述第二网元利用所述第一网元的公钥对所述签名请求消息的数字签名验证失败,则所述第一网元接收所述第二网元发送的第一签名响应消息,所述第一签名响应消息包括:nonce1、fail、signausf,所述fail代表验证失败,所述signausf代表所述第二网元利用所述第二网元的私钥对所述签名响应消息的数字签名;

如果所述第二网元利用所述第一网元的公钥对所述签名请求消息的数字签名验证成功,则所述第一网元接收所述第二网元发送的第二签名响应消息,所述第二签名响应消息包括:nonce1、kspub、signausf。

步骤203:所述第一网元向所述ue发送身份请求消息,所述身份请求消息包括被所述第二网元的私钥签名的第一网元的dh公钥;如果所述ue使用所述第二网元的公钥对所述签名验证成功,则所述第一网元接收所述ue发送的身份响应消息,所述身份响应消息包括被加密密钥加密的所述ue的身份信息,所述加密密钥基于所述第一网元的dh公钥而生成。

本发明实施例中,如果所述第一网元从所述第二网元接收到所述第一签名响应消息,则所述身份请求消息包括:nonce1、fail、signausf;

如果所述第一网元从所述第二网元接收到所述第二签名响应消息,则所述身份请求消息包括:nonce1、kspub、signausf。

本发明实施例中,所述身份响应消息包括kupub,{身份信息}ke,mac1,所述kupub代表所述ue的dh公钥,所述{身份信息}ke代表使用ke加密的身份信息,所述mac1代表使用km对所述身份响应消息计算出的消息认证码,其中,所述ke和所述km分别代表加密密钥和完整性密钥。

其中,如果所述身份响应消息携带网络切片标识符和/或网络接入标识符,则所述身份响应消息包括:

kupub,{身份信息、网络切片标识符}ke,mac1;或者,

kupub,{身份信息、网络接入标识符}ke,mac1;或者,

kupub,{身份信息、网络切片标识符、网络接入标识符}ke,mac1;

其中,所述{}ke代表使用ke进行加密。

步骤204:所述第一网元基于自身的dh公钥计算所述加密密钥,基于所述加密密钥从所述身份响应消息中获取所述ue的身份信息,并基于所述ue的身份信息向第三网元进行认证和密钥协商流程。

本发明实施例中,所述第一网元基于自身的dh公钥计算所述加密密钥,基于所述加密密钥从所述身份响应消息中获取所述ue的身份信息,包括:

所述第一网元使用所述ue的dh私钥以及所述第一网元的dh公钥,计算所述ue与所述第一网元之间的共享密钥;

利用所述共享密钥,基于以下公式计算加密密钥和完整性密钥:

ke=kdf(nonce1,kdh,number1);

km=kdf(nonce1,kdh,number2);

其中,ke代表加密密钥,km代表完整性密钥,kdf代表密钥推导函数,number1和number2分别代表两个不同的数据;

利用所述加密密钥从所述身份响应消息中获取所述ue的身份信息。

本发明实施例中,所述方法还包括:所述第一网元向所述ue发送认证请求消息,所述认证请求消息包括rand和autn,所述rand代表随机数,所述autn代表认证令牌;

所述第一网元接收所述ue发送的认证响应消息,所述认证响应消息包括响应参数;如果对所述响应参数验证失败,则所述第一网元向所述ue发送认证拒绝消息,所述认证拒绝消息包括mac2,所述mac2代表使用km对所述认证拒绝消息进哈希计算出的消息认证码。

本发明实施例中,所述方法还包括:所述第一网元向所述ue发送认证请求消息,所述认证请求消息包括rand和autn,所述rand代表随机数,所述autn代表认证令牌;

如果所述ue对所述autn进行mac检验失败或者所述ue检验同步失败,则所述第一网元接收所述ue发送的认证响应消息,所述认证响应消息包括fail_cause、tue、imsi、sqnms,所述认证响应消息中的内容使用ke和km进行加密;

其中,所述fail_cause的值为mac失败或者同步失败,如果所述fail_cause的值为同步失败,则所述第一网元利用所述认证响应消息中的sqnms与归属网络进行同步,所述sqnms代表ue的序列号;所述tue代表ue发送消息时的ue时钟或者随机数。

图3为本发明实施例的附着流程的实现方法的流程图二,如图3所示,所述方法包括以下步骤:

步骤301:ue向第一网元发送附着请求消息。

本发明实施例中,所述附着请求消息具有两种,分别为:第一附着请求消息、第二附着请求消息,其中,

如果所述ue已分配guti,则所述ue向第一网元发送第一附着请求消息,所述第一附着请求消息包括:nonce1,guti,mac0,所述nonce1代表一次性随机数,所述guti代表所述ue的临时身份,所述mac0代表消息验证码;

如果所述ue未分配guti,则所述ue向第一网元发送第二附着请求消息,所述第二附着请求消息包括:nonce1、mmc+mnc,所述mmc代表归属网络的国家号码,所述mnc代表网络号码。

本发明实施例中,所述mac0通过以下公式计算:

mac0=hash(kdh,nonce1,guti)

其中,hash为哈希函数,kdh为所述ue和所述第一网元之间上次使用的共享密钥。

步骤302:所述ue接收所述第一网元发送的身份请求消息,所述身份请求消息包括被第二网元的私钥签名的第一网元的dh公钥。

本发明实施例中,如果所述第一网元从所述第二网元接收到第一签名响应消息,则所述身份请求消息包括:nonce1、fail、signausf;所述nonce1代表一次性随机数,所述fail代表验证失败,所述signausf代表所述第二网元利用所述第二网元的私钥对所述签名响应消息的数字签名;

如果所述第一网元从所述第二网元接收到第二签名响应消息,则所述身份请求消息包括:nonce1、kspub、signausf,所述kspub代表所述第一网元的dh公钥。

步骤303:如果所述ue使用所述第二网元的公钥对所述签名验证成功,则所述ue从所述身份请求消息中获得所述第一网元的dh公钥。

步骤304:所述ue基于所述第一网元的dh公钥,生成加密密钥,并基于所述加密密钥对所述ue的身份信息进行加密。

步骤305:所述ue向所述第一网元发送身份响应消息,所述身份响应消息包括被加密密钥加密的所述ue的身份信息。

如果所述ue使用所述第二网元的公钥对所述签名验证成功,则判断所述身份请求消息中的内容;

如果所述身份请求消息中没有所述fail,且所述身份请求消息中的nonce1与自身向所述第一网元发送的nonce1一致,则所述ue获得所述第一网元的dh公钥;

所述ue生成自身的dh私钥及计算与所述dh私钥相应的dh公钥;

所述ue使用所述ue的dh私钥以及所述第一网元的dh公钥,计算所述ue与所述第一网元之间的共享密钥;

利用所述共享密钥,基于以下公式计算加密密钥和完整性密钥:

ke=kdf(nonce1,kdh,number1);

km=kdf(nonce1,kdh,number2);

其中,ke代表加密密钥,km代表完整性密钥,kdf代表密钥推导函数,number1和number2分别代表两个不同的数据;

利用所述加密密钥对所述ue的身份信息进行加密。

图4为本发明实施例的成功附着流程的流程示意图,如图4所示,所述附着流程包括如下步骤:

1.ue发起附着流程,并发送一个附着请求到seaf。

如果ue已分配了一个临时身份guti,附着请求消息为1-a,包括一次性随机数nonce1,guti,mac0。mac0的计算如下:

mac0=hash(kdh,nonce1,guti)

其中hash为哈希函数,kdh为ue和seaf间上次的共享密钥。

如果ue还没有分配guti,附着请求消息为1-b,包括一次性随机数nonce1和归属网络的国家号码(mmc)加上网络号码(mnc)。

2.seaf接收到该附着请求后,执行如下过程:

情况一:如果为消息1-b,seaf生成dh私钥kspri,并计算相应的dh公钥kspub。

情况二:如果为消息1-a,seaf检查是否存在对应于这个临时身份的真实身份,以及是否seaf与ue已经建立了共享密钥kdh,

1)在这两个条件都满足的情况下,seaf将验证mac0,如果验证成功进入第6步。在进入第6步之前,seaf使用与ue的共享密钥kdh导出加密密钥ke和完整性密钥km。ke和km的计算方法如下:

ke=kdf(nonce1,kdh,number1);

km=kdf(nonce1,kdh,number2);

这里kdf是密钥推导函数。kdf函数中的“number1”和“number2”用于区分加密密钥ke和完整性密钥km。

2)如果有其中任意一个条件不满足,则seaf生成dh私钥kspri,并计算相应的dh公钥kspub。

2a.seaf根据消息1-b中的mmc+mnc或消息1-a所含guti中的mmc+mnc生成签名请求消息,包括nonce1,seaf的dh公钥kspub,服务网络号snid,以及seaf对签名请求消息的数字签名signseaf。归属网络在与服务网络签署漫游协议时获取服务网络的公钥,以便能对服务网络的数字签名进行验证。如果mmc+mnc指向的网络与服务网络属于同一家运营商,则数字签名signseaf可以省略。

值得注意的是,这里是seaf对签名请求消息进行数字签名,也可以是与其他运营商互联的安全网关对签名请求消息进行数字签名。

3.ausf收到签名请求消息,如果有数字签名signseaf,则对数字签名进行验证。ausf向seaf发送签名响应消息,如果数字签名验证失败,消息内容为nonce1,“fail”,以及ausf对签名响应消息的数字签名signausf;如果数字签名验证成功,消息内容为nonce1,seaf的dh公钥kspub,以及ausf对签名响应消息的数字签名signausf。

4.seaf向ue发送身份请求消息,其内容与从ausf收到的签名响应消息相同。

4a.ue接收身份请求消息后,使用归属网络的公钥对数字签名signausf进行验证。如果验证失败,则终止附着流程。如果验证成功,身份请求消息中没有“fail”,以及收到的nonce1与发送的nonce1相同,则ue获得seaf的真实dh公钥kspub。ue生成私钥kupriv并推导出相应的公钥kupub。ue使用其私钥kupriv和seaf的公钥kspub派生出与seaf之间的共享密钥kdh。为了加密ue的身份,导出加密密钥ke和完整性密钥km。ke和km的计算方法如下:

ke=kdf(nonce1,kdh,number1);

km=kdf(nonce1,kdh,number2);

这里kdf是密钥推导函数。“number1”和“number2”用于区分加密密钥ke和完整性密钥km。

如果采用认证加密方法加密ue的身份,只要生成加密密钥ke。

5.ue把它的公钥kupub,使用ke加密的身份,以及对该消息使用km计算出的消息认证码mac1,传给seaf。

5a.以ue同样的方式,seaf导出加密密钥ke和完整性密钥km。它首先验证mac1,如果验证成功,则它用ke解密消息的加密部分,以获得ue的真实身份。否则,它终止附着流程。

6.seaf把含有ue真实身份的认证数据请求消息发给ausf/arpf。

7.arpf根据ue的身份查找ue的根密钥k,ausf依据根密钥k计算出认证向量。然后ausf发送认证向量给seaf。

8.seaf向ue发送认证请求消息,包含rand和autn。

9.ue回应seaf认证响应消息,包括ue认证网络成功后生成的res(f2k(rand))。

ue同时生产中间密钥kmid,它类似于lte中的密钥kasme。

seaf受到认证响应消息后,验证res成功后,生成中间密钥kmid。

ue和seaf计算会话密钥ks如下:

ks=kdf(kdh,kmid)

上述流程中,dh密钥交换也可用椭圆曲线dh密钥交换,因为椭圆曲线dh密钥交换比普通的dh密钥交换更高效。

ue失败附着可以有多种原因,本发明实施例主要考虑以下三种失败附着流程,因它们与关联性攻击和dos攻击相关:seaf认证res失败,mac_fail,sync_fail。

图5为本发明实施例的失败附着流程的流程示意图一,本实施例以seaf认证res失败为例,如图5所示,所述附着流程包括如下步骤:

8.seaf向ue发送认证请求消息,包含rand和autn。

9.ue回应seaf认证响应消息,res(f2k(rand))。

10.seaf收到认证响应消息,如果验证res失败,seaf可能向ue发出认证拒绝消息,其完整性由km对认证拒绝消息进行哈希生成的mac2保护,以避免引起攻击者向ue发送假的认证拒绝消息而引起的对ue的dos攻击。

图6为本发明实施例的失败附着流程的流程示意图二,本实施例以mac_fail和sync_fail为例,mac_fail和sync_fail合并处理。无论是mac_fail或是sync_fail,ue都向seaf发送具有相同格式的认证响应消息,其机密性和完整性有密钥ke和km保护,从而避免关联性攻击。如图6所示,所述附着流程包括如下步骤:

8.seaf向ue发送认证请求消息,包含rand和autn。

9.当ue检验autn中的mac失败或者检验同步失败后,回应seaf认证响应消息,其包括fail_cause,tue,imsi,sqnms,其机密性和完整性有密钥ke和km保护。fail_cause的值可以是mac失败或者是同步失败,seaf收到是同步失败后,用消息中ue的当前sqnms与归属网络间进行同步。tue是ue发送消息时ue的时钟,也可以是一随机数,其目的是使每次认证响应消息的密文都不相同,以避免攻击者从密文上猜测出是mac_fail或是sync_fail。imsi在此消息中发送给seaf,以避免seaf再次向ue发起身份请求消息,这样无论是mac_fail或是sync_fail,seaf都只会向ue发送认证请求消息,从而避免了攻击者根据收到认证响应消息后,seaf回应不同的响应消息而产生的关联性攻击。

10-11.seaf收到ue的认证响应后,seaf可能再次向ue发起认证请求,ue并用认证响应消息回应。

本发明实施例的技术方案具有以下特性:

1.安全性

(1)中间人攻击

该方案可以防止中间人攻击由于引入了双重认证机制:一是归属网络对服务网络dh公钥的数字签名signausf,二是aka协议进行ue和seaf的双向认证。seaf的dh公钥的真实性由数字签名signausf来保证。ue和seaf间生成加密密钥ke和完整性密钥km,只有拥有相应dh私钥的seaf才能解密加密的消息。这意味seaf使用自身的私钥向ue认证。这样一来,在进行中间人攻击获取会话密钥ks之前,攻击者需开展以下攻击:破解seaf获取seaf的私钥,破解ausf获取归属网络的私钥,以及窃取aka协议中使用的根密钥k。即使根密钥k被泄露,主动攻击者仍然不可能获得会话密钥ks,除非它能破解seaf或ausf。

(2)用户标识符隐私

该方案可以防止攻击者(无论是主动或被动攻击者)获得用户标识符,因为它们用加密密钥ke加密。攻击者没有办法获得加密密钥ke,因为这需要它攻破ausf或seaf。

(3)长期密钥泄露

所提出的方案可以防止被动攻击者和主动攻击者得到会话密钥ks,即使长期密钥已泄露。这是因为,会议密钥ks的产生不仅取决于从长期密钥k推导出的中间密钥kmid,还取决于共享密钥kdh。攻击者不能获得会话密钥ks,因为它无法推断密钥kdh,除非它可以破解ausf或seaf。

(4)移动网络运营商之间的不安全链路

攻击者无法获取会话ks的,即使它已移动网络运营商处之间的链路上窃听到认证向量。与长期密钥泄露类似,由于不知道kdh,攻击者无法获取的会话密钥ks。

(5)关联性攻击

mac_fail和sync_fail合并处理,无论是mac_fail或是sync_fail,ue都向seaf发送具有相同格式的认证响应消息,其机密性和完整性有密钥ke和km保护,攻击者无法从密文上获悉ue向seaf发送的是mac_fail或是sync_fail。并且无论是mac_fail或是sync_fail,seaf都只会向ue发送认证请求消息,从而避免了攻击者根据收到认证响应消息后,seaf回应不同的响应消息而产生的关联性攻击。

总之,本发明实施例的技术方案不仅能预防被动攻击而且能抵御主动攻击。

2.复杂性

所提出的方案有简单的一面,因为它的操作并不需要使用的pki,只需每个ue预先配置归属网络的公钥即可。方案复杂的一面是运营商间签漫游协议时要交换网络公钥,以及seaf的dh公钥需要可信的ausf对其进行数字签名。

3.兼容性

因为它不触及对lteaka协议的修改,本发明实施例与lteeps系统高度后向兼容。此外,在lte(imsi的guti映射)成熟的身份管理系统仍然可以在5g系统使用,因为本发明实施例保持身份管理原理不变,并通过在最初的附着流程中隐藏ue的真实身份而增强它的安全性。

4.效率

本发明实施例的方案的高效性在于ue和seaf之间的共享密钥kdh可以重用。ue再次连接网络时生成会话密钥ks可以重用kdh,只要imsi和guti之间没有同步问题。这可显著降低由于dh计算造成的计算开销。

此外,本发明实施例用加密密钥ke和完整性密钥km对身份消息进行处理,以保护ue的真实身份。实际上,在附着流程初始阶段ue向seaf发送的身份响应消息也可以包含其它需要保护的消息,如网络切片标识符,网络接入标识符等。

1.保护网络切片标识符

5g网络中根据业务的不同,业务可能会使用不同的网络切片。每个网络切片会有不同的网络切片标识符以于区分。为了防止攻击者根据不同网络切片标识符来判断ue的业务使用习惯,需要对它进行加密。网络切片标识符可以使用ke来加密,那么本发明实施例中的身份响应消息变为:

kupub,{身份,网络切片标识符}ke,mac1

其中,mac1的计算使用完整性密钥km。

2.保护网络接入标识符

eap(extensibleauthenticationprotocol)很有可能成为5g网络的统一认证框架。其支持众多的认证方法,如eap-aka,eap-aka`,eap-peap等。ue和seaf在相互认证前需交换消息,确定它们使用哪种认证方法进行认证。一种典型的方法是ue传给seaf带有指示认证方法的网络接入标识符(nai),告知seaf使用什么认证方法。nai消息需要安全保护,以避免受到协商攻击。如果nai消息被安全信道所保护,那么本发明实施例的身份响应消息变为:

kupub,{身份,网络切片标识符,nai}ke,mac0

其中,mac0的计算使用完整性密钥km。

本发明实施例的技术方案,认证部分是以aka协议为例,也可适配到eap-aka,eap-aka`以及基于eap协议的其他认证方法如eap-peap。只要把本发明实施例中的aka协议替换成要适配的协议即可。本发明实施例的技术方案充分考虑了5g网络接入对安全,后向兼容,效率的要求。

图7为本发明实施例的附着流程的实现装置的结构组成示意图一,如图7所示,所述装置包括:

附着请求单元71,用于接收ue发送的附着请求消息,计算第一网元的dh公钥;

签名请求单元72,用于向第二网元发送签名请求消息,所述签名请求消息包括所述第一网元的dh公钥;接收所述第二网元发送的签名响应消息,所述签名响应消息包括被所述第二网元的私钥签名的第一网元的dh公钥;

身份请求单元73,用于向所述ue发送身份请求消息,所述身份请求消息包括被所述第二网元的私钥签名的第一网元的dh公钥;如果所述ue使用所述第二网元的公钥对所述签名验证成功,则接收所述ue发送的身份响应消息,所述身份响应消息包括被加密密钥加密的所述ue的身份信息,所述加密密钥基于所述第一网元的dh公钥而生成;

处理单元74,用于基于自身的dh公钥计算所述加密密钥,基于所述加密密钥从所述身份响应消息中获取所述ue的身份信息,并基于所述ue的身份信息向第三网元进行认证和密钥协商流程。

本发明实施例中,所述附着请求消息具有两种,分别为:第一附着请求消息、第二附着请求消息,其中,

如果所述ue已分配guti,则所述第一网元接收ue发送的第一附着请求消息,所述第一附着请求消息包括:nonce1,guti,mac0,所述nonce1代表一次性随机数,所述guti代表所述ue的临时身份,所述mac0代表消息验证码;

如果所述ue未分配guti,则所述第一网元接收ue发送的第二附着请求消息,所述第二附着请求消息包括:nonce1、mmc+mnc,所述mmc代表归属网络的国家号码,所述mnc代表网络号码。

本发明实施例中,所述mac0通过以下公式计算:

mac0=hash(kdh,nonce1,guti)

其中,hash为哈希函数,kdh为所述ue和所述第一网元之间上次使用的共享密钥。

本发明实施例中,所述处理单元74,还用于:

如果所述第一网元接收到ue发送的第二附着请求消息,则生成所述第一网元的dh私钥,并计算与所述第一网元的dh私钥相应的dh公钥;

如果所述第一网元接收到ue发送的第一附着请求消息,则判定如下条件是否成立:是否存在与所述ue的临时身份相对应的ue的真实身份、所述第一网元与ue之间是否已经建立共享密钥kdh;如果上述条件中的一个或两个不成立,则所述第一网元生成所述第一网元的dh私钥,并计算与所述第一网元的dh私钥相应的dh公钥。

本发明实施例中,所述处理单元74,还用于:根据所述第一附着请求消息中guti中的mmc+mnc,或者根据所述第二附着请求消息中的mmc+mnc,生成所述签名请求消息,所述签名请求消息包括:nonce1,kspub,snid,所述kspub代表所述第一网元的dh公钥,所述snid代表服务网络号;

其中,如果所述mmc+mnc指向的网络与所述第一网元所在的网络属于不同属性的网络,则所述签名请求消息还包括:signseaf,所述signseaf代表所述第一网元或者与所述第一网元互联的安全网管利用所述第一网元的私钥对所述签名请求消息的数字签名。

本发明实施例中,在所述签名请求消息包括所述signseaf的情况下,所述签名响应消息具有两种,分别为:第一签名响应消息和第二签名响应消息,其中,

如果所述第二网元利用所述第一网元的公钥对所述签名请求消息的数字签名验证失败,则所述第一网元接收所述第二网元发送的第一签名响应消息,所述第一签名响应消息包括:nonce1、fail、signausf,所述fail代表验证失败,所述signausf代表所述第二网元利用所述第二网元的私钥对所述签名响应消息的数字签名;

如果所述第二网元利用所述第一网元的公钥对所述签名请求消息的数字签名验证成功,则所述第一网元接收所述第二网元发送的第二签名响应消息,所述第二签名响应消息包括:nonce1、kspub、signausf。

本发明实施例中,如果从所述第二网元接收到所述第一签名响应消息,则所述身份请求消息包括:nonce1、fail、signausf;

如果从所述第二网元接收到所述第二签名响应消息,则所述身份请求消息包括:nonce1、kspub、signausf。

本发明实施例中,所述装置还包括:

认证请求单元,用于向所述ue发送认证请求消息,所述认证请求消息包括rand和autn,所述rand代表随机数,所述autn代表认证令牌;接收所述ue发送的认证响应消息,所述认证响应消息包括响应参数;如果对所述响应参数验证失败,则所述第一网元向所述ue发送认证拒绝消息,所述认证拒绝消息包括mac2,所述mac2代表使用km对所述认证拒绝消息进哈希计算出的消息认证码。

本发明实施例的认证请求单元,还可以用于向所述ue发送认证请求消息,所述认证请求消息包括rand和autn,所述rand代表随机数,所述autn代表认证令牌;如果所述ue对所述autn进行mac检验失败或者所述ue检验同步失败,则接收所述ue发送的认证响应消息,所述认证响应消息包括fail_cause、tue、imsi、sqnms,所述认证响应消息中的内容使用ke和km进行加密;

其中,所述fail_cause的值为mac失败或者同步失败,如果所述fail_cause的值为同步失败,则所述第一网元利用所述认证响应消息中的sqnms与归属网络进行同步,所述sqnms代表ue的序列号;所述tue代表ue发送消息时的ue时钟或者随机数。

本领域技术人员应当理解,图7所示的附着流程的实现装置中的各单元的实现功能可参照前述附着流程的实现方法的相关描述而理解。图7所示的信息推荐装置中的各单元的功能可通过运行于处理器上的程序而实现,也可通过具体的逻辑电路而实现。

图8为本发明实施例的附着流程的实现装置的结构组成示意图二,如图8所示,所述装置包括:

附着请求单元81,用于向第一网元发送附着请求消息;

身份请求单元82,用于接收所述第一网元发送的身份请求消息,所述身份请求消息包括被第二网元的私钥签名的第一网元的dh公钥;向所述第一网元发送身份响应消息,所述身份响应消息包括被加密密钥加密的所述ue的身份信息;

处理单元83,用于如果使用所述第二网元的公钥对所述签名验证成功,则所述ue从所述身份请求消息中获得所述第一网元的dh公钥;基于所述第一网元的dh公钥,生成加密密钥,并基于所述加密密钥对所述ue的身份信息进行加密。

本发明实施例中,所述附着请求消息具有两种,分别为:第一附着请求消息、第二附着请求消息,其中,

如果所述ue已分配guti,则所述ue向第一网元发送第一附着请求消息,所述第一附着请求消息包括:nonce1,guti,mac0,所述nonce1代表一次性随机数,所述guti代表所述ue的临时身份,所述mac0代表消息验证码;

如果所述ue未分配guti,则所述ue向第一网元发送第二附着请求消息,所述第二附着请求消息包括:nonce1、mmc+mnc,所述mmc代表归属网络的国家号码,所述mnc代表网络号码。

本发明实施例中,所述mac0通过以下公式计算:

mac0=hash(kdh,nonce1,guti)

其中,hash为哈希函数,kdh为所述ue和所述第一网元之间上次使用的共享密钥。

本领域技术人员应当理解,图8所示的附着流程的实现装置中的各单元的实现功能可参照前述附着流程的实现方法的相关描述而理解。图8所示的信息推荐装置中的各单元的功能可通过运行于处理器上的程序而实现,也可通过具体的逻辑电路而实现。

图9为本发明实施例的附着流程的实现设备的结构组成示意图,如图9所示,所述设备包括:存储器91、处理器92,所述存储器91上存储有可执行指令,当所述可执行指令被所述处理器92执行时,能够实现以下方法步骤:

接收ue发送的附着请求消息,计算第一网元的dh公钥;

向第二网元发送签名请求消息,所述签名请求消息包括所述第一网元的dh公钥;所述第一网元接收所述第二网元发送的签名响应消息,所述签名响应消息包括被所述第二网元的私钥签名的第一网元的dh公钥;

向所述ue发送身份请求消息,所述身份请求消息包括被所述第二网元的私钥签名的第一网元的dh公钥;如果所述ue使用所述第二网元的公钥对所述签名验证成功,则所述第一网元接收所述ue发送的身份响应消息,所述身份响应消息包括被加密密钥加密的所述ue的身份信息,所述加密密钥基于所述第一网元的dh公钥而生成;

基于自身的dh公钥计算所述加密密钥,基于所述加密密钥从所述身份响应消息中获取所述ue的身份信息,并基于所述ue的身份信息向第三网元进行认证和密钥协商流程。

在另一实施方式中,当所述可执行指令被所述处理器92执行时,能够实现以下方法步骤:

ue向第一网元发送附着请求消息;

接收所述第一网元发送的身份请求消息,所述身份请求消息包括被第二网元的私钥签名的第一网元的dh公钥;

如果所述ue使用所述第二网元的公钥对所述签名验证成功,则从所述身份请求消息中获得所述第一网元的dh公钥;

基于所述第一网元的dh公钥,生成加密密钥,并基于所述加密密钥对所述ue的身份信息进行加密;

向所述第一网元发送身份响应消息,所述身份响应消息包括被加密密钥加密的所述ue的身份信息。

本发明实施例所记载的技术方案之间,在不冲突的情况下,可以任意组合。

在本发明所提供的几个实施例中,应该理解到,所揭露的方法和智能设备,可以通过其它的方式实现。以上所描述的设备实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,如:多个单元或组件可以结合,或可以集成到另一个系统,或一些特征可以忽略,或不执行。另外,所显示或讨论的各组成部分相互之间的耦合、或直接耦合、或通信连接可以是通过一些接口,设备或单元的间接耦合或通信连接,可以是电性的、机械的或其它形式的。

上述作为分离部件说明的单元可以是、或也可以不是物理上分开的,作为单元显示的部件可以是、或也可以不是物理单元,即可以位于一个地方,也可以分布到多个网络单元上;可以根据实际的需要选择其中的部分或全部单元来实现本实施例方案的目的。

另外,在本发明各实施例中的各功能单元可以全部集成在一个第二处理单元74中,也可以是各单元分别单独作为一个单元,也可以两个或两个以上单元集成在一个单元中;上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。

以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1