一种前向安全实现方法及装置

文档序号:1775761 发布日期:2019-12-03 浏览:40次 >En<

阅读说明:本技术 一种前向安全实现方法及装置 (A kind of forward secrecy implementation method and device ) 是由 谢振华 于 2019-02-26 设计创作,主要内容包括:本文公开了一种前向安全实现方法及装置。应用于第一网络节点的方法包括:向终端发送第一内容信息;向第二网络节点发送第一密文密钥;第一密文密钥基于第二内容信息和第一密钥生成,第二内容信息基于所述第一内容信息和第二密钥生成。应用于第二网络节点的方法包括:接收来自第一网络节点的第一密文密钥;接收来自终端的第二内容信息;基于第二内容信息和第一密文密钥生成第一密钥。应用于第三网络节点的方法包括:基于第一内容信息和第二密钥生成第二内容信息;基于第二内容信息和第一密钥生成第一密文密钥;第二密钥与终端共享;向第一网络节点发送第一密文密钥和第一内容信息。本文的技术方案能够实现网络通信的前向安全性。(Disclosed herein is a kind of forward secrecy implementation method and devices.Method applied to first network node includes: to send first content information to terminal;The first ciphertext key is sent to the second network node;First ciphertext key is based on the second content information and first key generates, and the second content information is based on the first content information and the second key generates.Method applied to the second network node includes: to receive the first ciphertext key from first network node;Receive the second content information for carrying out self terminal;First key is generated based on the second content information and the first ciphertext key.Method applied to third network node includes: to generate the second content information based on first content information and the second key;The first ciphertext key is generated based on the second content information and first key;Second key and terminal are shared;The first ciphertext key and first content information are sent to first network node.The technical solution of this paper can be realized the forward security of network communication.)

一种前向安全实现方法及装置

技术领域

本发明涉及通信技术领域,尤其涉及的是一种前向安全实现方法及装置。

背景技术

第三代合作伙伴计划(3rd Generation Partnership Project,简称3GPP)提出了一种下一代网络架构,实现了用户在移动过程中使用的密钥的后向安全,即源网络节点基于正在使用的密钥,使用哈希等算法计算出新密钥,然后将新密钥发给目标网络节点,同时通知终端更换密钥,终端也基于正在使用的密钥(与源网络节点正在使用的密钥相同)计算出新密钥,计算方法与源网络节点的相同,然后终端和目标网络节点就可以基于新密钥进行通讯了。后向安全使得目标网络节点无法知道源网络节点使用的密钥,可以保护历史通讯的安全。

目前并没有前向安全的技术(源网络节点无法知道目标网络节点使用的密钥),因此无法保护未来通讯的安全。

发明内容

本文提供一种前向安全实现方法及装置,能够实现网络通信的前向安全性。

根据本申请的第一方面,本发明实施例提供一种前向安全实现方法,应用于第一网络节点,包括:

向终端发送第一内容信息;

向第二网络节点发送第一密文密钥;

其中,所述第一密文密钥基于第二内容信息和第一密钥生成,所述第二内容信息基于所述第一内容信息和第二密钥生成。

根据本申请的第二方面,本发明实施例提供一种前向安全实现方法,应用于第二网络节点,包括:

接收来自第一网络节点的第一密文密钥;

接收来自终端的第二内容信息;

基于所述第二内容信息和所述第一密文密钥生成第一密钥。

根据本申请的第三方面,本发明实施例提供一种前向安全实现方法,应用于第三网络节点,包括:

基于第一内容信息和第二密钥生成第二内容信息;其中,所述第二密钥与终端共享;

基于所述第二内容信息和第一密钥生成第一密文密钥;

向第一网络节点发送所述第一密文密钥和所述第一内容信息。

根据本申请的第四方面,本发明实施例提供一种前向安全实现装置,包括:

存储器、处理器及存储在所述存储器上并可在所述处理器上运行的前向安全实现程序,所述前向安全实现程序被所述处理器执行时实现上述前向安全实现方法的步骤。

根据本申请的第五方面,本发明实施例提供一种计算机可读存储介质,所述计算机可读存储介质上存储有前向安全实现程序,所述前向安全实现程序被处理器执行时实现上述前向安全实现方法的步骤。

与相关技术相比,本发明实施例提供的一种前向安全实现方法及装置,第一网络节点向终端发送第一内容信息,向第二网络节点发送第一密文密钥;其中,所述第一密文密钥基于第二内容信息和第一密钥生成,所述第二内容信息基于所述第一内容信息和第二密钥生成。第二网络节点从终端接收第二内容信息,从第一网络节点接收第一密文密钥,基于所述第二内容信息和所述第一密文密钥生成第一密钥。终端和第二网络节点可以基于第一密钥进行通信,由于第一网络节点并不知道第一密钥,所以能够实现网络通信的前向安全性。

附图说明

图1为本发明实施例1的一种前向安全实现方法流程图(第一网络节点);

图2为本发明实施例2的一种前向安全实现方法流程图(第二网络节点);

图3为本发明实施例3的一种前向安全实现方法流程图(第三网络节点);

图4为本发明实施例4的一种前向安全实现装置示意图(第一网络节点);

图5为本发明实施例5的一种前向安全实现装置示意图(第二网络节点);

图6为本发明实施例6的一种前向安全实现装置示意图(第三网络节点);

图7为本发明示例1的一种前向安全实现方法流程图;

图8为本发明示例2的一种前向安全实现方法流程图;

图9为本发明示例3的一种前向安全实现方法流程图。

具体实施方式

为使本发明的目的、技术方案和优点更加清楚明白,下文中将结合附图对本发明的实施例进行详细说明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互任意组合。

在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行。并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。

实施例1

如图1所示,本发明实施例提供了一种前向安全实现方法,应用于第一网络节点,包括:

步骤S110,向终端发送第一内容信息;

步骤S120,向第二网络节点发送第一密文密钥;

其中,所述第一密文密钥基于第二内容信息和第一密钥生成,所述第二内容信息基于所述第一内容信息和第二密钥生成。

在一种实施方式中,所述方法还包括:接收第一密文密钥和第一内容信息。比如,所述第一网络节点可以从第三网络节点获取第一密文密钥和第一内容信息。

在一种实施方式中,所述第一网络节点包括以下网元的任意一种:源基站,源核心网功能;

在一种实施方式中,当所述第一网络节点是源基站时,所述第二网络节点是目标基站;当所述第一网络节点是源核心网功能时,所述第二网络节点是目标核心网功能或目标基站;

在一种实施方式中,当所述第一网络节点是源基站时,所述第三网络节点是核心网功能;当所述第一网络节点是源核心网功能时,所述第三网络节点是安全功能;

所述基站包括以下任意一种:gNB(5G基站),eNB(4G基站);

所述核心网功能包括以下任意一种:AMF(Access ManagementFunction,接入管理功能),SMF(Session Management Function,会话管理功能);

所述安全功能包括以下任意一种:AUSF(Authentication ServerFunction,认证服务功能),UDM(Unified Data Management,统一数据管理),SEAF(Security AnchorFunction,安全锚功能)。

在一种实施方式中,当所述第一密文密钥包含一组密文密钥时,所述向第二网络节点发送第一密文密钥,包括:向第二网络节点发送第一密文密钥的部分或全部;

在一种实施方式中,当所述第一网络节点是源网络功能且所述第一密文密钥包含一组密文密钥时,所述向第二网络节点发送第一密文密钥,包括:

向目标核心网功能发送所述第一密文密钥的全部,通过所述目标核心网功能向目标基站转发所述第一密文密钥的部分;

在一种实施方式中,当所述第一网络节点是源基站时,所述向第二网络节点发送第一密文密钥,包括:

向目标基站发送所述第一密文密钥的全部;

在一种实施方式中,所述第一密文密钥采用以下方式生成:

基于第一密钥和第二内容信息进行异或操作,得到所述第一密文密钥;或者,

基于第二内容信息和第一密钥进行加密操作,得到所述第一密文密钥;

在一种实施方式中,所述第二内容信息是基于所述第一内容信息的部分或全部以及第二密钥,采用异或计算获得的;或者,所述第二内容信息是基于第一内容信息的部分或全部和第二密钥进行加密计算获得的。

其中,第二密钥是第三网络节点与终端间共享的密钥。

实施例2

如图2所示,本发明实施例提供了一种前向安全实现方法,应用于第二网络节点,包括:

步骤S210,接收来自第一网络节点的第一密文密钥;

步骤S220,接收来自终端的第二内容信息;

步骤S230,基于所述第二内容信息和所述第一密文密钥生成第一密钥。

在一种实施方式中,所述第一网络节点包括以下网元的任意一种:源基站,源核心网功能;

在一种实施方式中,当所述第一网络节点是源基站时,所述第二网络节点是目标基站;当所述第一网络节点是源核心网功能时,所述第二网络节点是目标核心网功能或目标基站;

在一种实施方式中,当所述第二网络节点是目标基站且所述第一网络节点是源基站时,所述接收来自第一网络节点的第一密文密钥,包括:

接收来自源基站的第一密文密钥。

在一种实施方式中,当所述第二网络节点是目标基站且所述第一网络节点是源核心网功能时,所述接收来自第一网络节点的第一密文密钥,包括:

接收目标核心网功能发送的第一密文密钥组的部分;其中,所述第一密文密钥包含一组密文密钥,所述第一密文密钥组来自源核心网功能;

在一种实施方式中,当所述第二网络节点是目标核心网功能且所述第一网络节点是源核心网功能时,所述接收来自第一网络节点的第一密文密钥,包括:

接收源核心网功能发送的第一密文密钥组的全部;其中,所述第一密文密钥包含一组密文密钥;

在一种实施方式中,当所述第二网络节点是目标核心网功能且所述第一网络节点是源核心网功能时,所述方法还包括:

向目标基站发送第一密文密钥组的部分;其中,所述第一密文密钥包含一组密文密钥;

在一种实施方式中,所述基于所述第二内容信息和第一密文密钥生成第一密钥,包括:

基于所述第二内容信息和所述第一密文密钥进行异或操作,得到所述第一密钥;或者,

基于所述第二内容信息和所述第一密文密钥进行解密操作,得到所述第一密钥。

在一种实施方式中,当所述第二网络节点是目标基站时,所述基于所述第二内容信息和第一密文密钥生成第一密钥,包括:

基于所述第二内容信息和所述第一密文密钥的全部进行异或操作,得到所述第一密钥;或者,

基于所述第二内容信息和所述第一密文密钥的全部进行解密操作,得到所述第一密钥。

在一种实施方式中,当所述第二网络节点是目标基站且所述第一网络节点是源核心网功能时,所述基于所述第二内容信息和第一密文密钥生成第一密钥,包括:

基于所述第二内容信息和第一密文密钥组的部分进行异或操作,得到所述第一密钥;或者,

基于所述第二内容信息和第一密文密钥组的部分进行解密操作,得到所述第一密钥;其中,所述第一密文密钥是密钥组;

在一种实施方式中,当所述第二网络节点是目标核心网功能且所述第一网络节点是源核心网功能时,所述基于所述第二内容信息和第一密文密钥生成第一密钥,包括:

基于所述第二内容信息和第一密文密钥组的部分进行异或操作,得到所述第一密钥;或者,

基于所述第二内容信息和第一密文密钥组的部分进行解密操作,得到所述第一密钥;其中,所述第一密文密钥是密钥组。

在一种实施方式中,所述第二内容信息是基于所述第一内容信息的部分或全部以及第二密钥,采用异或计算获得的;或者,所述第二内容信息是基于第一内容信息的部分或全部和第二密钥进行加密计算获得的。

实施例3

如图3所示,本发明实施例提供了一种前向安全实现方法,应用于第三网络节点,包括:

步骤S310,基于第一内容信息和第二密钥生成第二内容信息;

步骤S320,基于所述第二内容信息和第一密钥生成第一密文密钥;其中,所述第二密钥与终端共享;

步骤S330,向第一网络节点发送所述第一密文密钥和所述第一内容信息;

在一种实施方式中,所述第三网络节点包括以下网元的任意一种:安全功能,核心网功能;

在一种实施方式中,当所述第三网络节点是安全功能时,所述第一网络节点是源核心网功能;当所述第三网络节点是核心网功能时,所述第一网络节点是源基站;

所述安全功能包括以下任意一种:AUSF(Authentication Server Function,认证服务功能),UDM(Unified Data Management,统一数据管理),SEAF(Security AnchorFunction,安全锚功能)。

在一种实施方式中,所述基于所述第二内容信息和第一密钥生成第一密文密钥,包括:

基于第一密钥和所述第二内容信息进行异或操作,得到所述第一密文密钥;或

基于第一密钥和所述第二内容信息进行加密操作,得到所述第一密文密钥。

在一种实施方式中,所述基于第一内容信息和第二密钥生成第二内容信息,包括:

基于第一内容信息的部分或全部以及第二密钥进行异或操作,得到所述第二内容信息;或者

基于第一内容信息的部分或全部以及第二密钥进行加密操作,得到所述第二内容信息。

在一种实施方式中,所述第一密文密钥包含一组密文密钥。

实施例4

如图4所示,本发明实施例提供了一种前向安全实现装置,应用于第一网络节点,包括:

第一发送模块401,用于向终端发送第一内容信息;

第二发送模块402,用于向第二网络节点发送第一密文密钥;

其中,所述第一密文密钥基于第二内容信息和第一密钥生成,所述第二内容信息基于所述第一内容信息和第二密钥生成。

在一种实施方式中,所述装置还包括:第一接收模块403;

所述第一接收模块403,用于接收第一密文密钥和第一内容信息。

第二发送模块402,用于采用以下方式向第二网络节点发送第一密文密钥:当所述第一密文密钥包含一组密文密钥时,向第二网络节点发送第一密文密钥的部分或全部。

实施例5

如图5所示,本发明实施例提供了一种前向安全实现装置,应用于第二网络节点,包括:

第一接收模块501,用于接收来自第一网络节点的第一密文密钥;

第二接收模块502,用于接收来自终端的第二内容信息;

计算模块503,用于基于所述第二内容信息和第一密文密钥生成第一密钥。

在一种实施方式中,计算模块503,用于采用以下方式基于所述第二内容信息和第一密文密钥生成第一密钥:

基于所述第二内容信息和所述第一密文密钥进行异或操作,得到所述第一密钥;或者,

基于所述第二内容信息和所述第一密文密钥进行解密操作,得到所述第一密钥。

实施例6

如图6所示,本发明实施例提供了一种前向安全实现装置,应用于第三网络节点,包括:

第一计算模块601,用于基于第一内容信息和第二密钥生成第二内容信息;其中,所述第二密钥与终端共享;

第二计算模块602,用于基于所述第二内容信息和第一密钥生成第一密文密钥;

发送模块603,用于向第一网络节点发送所述第一密文密钥和所述第一内容信息。

在一种实施方式中,第一计算模块,用于采用以下方式基于第一内容信息和第二密钥生成第二内容信息:

基于第一内容信息的部分或全部以及第二密钥进行异或操作,得到所述第二内容信息;或者

基于第一内容信息的部分或全部以及第二密钥进行加密操作,得到所述第二内容信息。

在一种实施方式中,第二计算模块,用于采用以下方式基于所述第二内容信息和第一密钥生成第一密文密钥:

基于第一密钥和所述第二内容信息进行异或操作,得到所述第一密文密钥;或

基于第一密钥和所述第二内容信息进行加密操作,得到所述第一密文密钥。

在一种实施方式中,所述第一密文密钥包含一组密文密钥。

实施例7

本发明实施例提供了一种加快应用界面加载速度的装置,包括:

存储器、处理器及存储在所述存储器上并可在所述处理器上运行的前向安全实现程序,所述前向安全实现程序被所述处理器执行时实现上述实施例1或实施例2或实施例3中的前向安全实现方法的步骤。

实施例8

本发明实施例提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有前向安全实现程序,所述前向安全实现程序被处理器执行时实现上述实施例1或实施例2或实施例3中的前向安全实现方法的步骤。

示例1

本示例提供一种切换过程中的前向安全实现方法。本示例中,源基站是第一网络节点,目标基站是第二网络节点,核心网功能是第三网络节点。

如图7所示,本示例的前向安全实现方法可以包括以下步骤:

步骤S101:终端、源基站和核心网功能之间交互,进行通讯连接的建立;

其中,源基站可以是:gNB或eNB。核心网功能可以是AMF(Access ManagementFunction,接入管理功能)或SMF(Session Management Function,会话管理功能)。终端具体可以是UE(User Equipment,用户设备),IoT(Internet of Things,物联网)设备中的任意一种。其中,用户设备可以是智能手机(Smart Phone)、智能手表(Smart Watch),智能平板等等。物联网设备可以是传感器、电表、水表等等。

核心网功能在建立通讯连接的过程中可以获得或计算核心网相关密钥信息。比如,核心网功能获得AMF密钥Kamf,基于Kamf计算NAS(Non-access stratum,非接入层)密钥,NAS密钥可以包括:NAS保密性密钥Knas-enc,和/或NAS完整性密钥。

终端在建立通讯连接的过程中可以通过信令消息中的内容以及终端上的用户密钥也计算出核心网相关密钥,从而与核心网功能保持通讯的安全性。其中,终端和网络可以共享一个根密钥,信令交互过程中,通过参数的交互,网络和终端可以分别从根密钥派生出各种密钥用于各种目的。

步骤S102:核心网功能向源基站发送加密前向密钥、加密前向密钥生成参数和基站密钥;

其中,核心网功能在建立通讯连接的过程中可以向源基站发送UE InitialContext Setup消息,在所述消息中携带基站相关密钥信息。基站相关密钥可以包括:基站密钥KgNB,加密前向密钥,加密前向密钥生成参数;其中,在相关技术中,KgNB通常用于派生通讯密钥,用于终端和源基站通讯。在本示例中,加密前向密钥用于源基站向目标基站传递新的加密基站密钥,解密后可生成目标基站的KgNB。

其中,终端也可以计算出基站密钥,从而与源基站保持通讯的安全性。

其中,核心网功能在建立通讯连接的过程中可以通过核心网相关密钥计算基站密钥KgNB;

其中,核心网功能在建立通讯连接的过程中可以通过核心网相关密钥计算前向密钥(Next Hop Key,简称Knh)。核心网功能以加密前向密钥生成参数,前向密钥、核心网相关密钥中的一种或多种信息生成加密前向密钥。

比如,在计算前向密钥时,可以以任何哈希类函数(比如HMAC-SHA-256函数或SHA-256函数)为计算函数,计算参数包含核心网相关密钥,计算获得前向密钥Knh。

比如,在计算加密前向密钥时,可以以任何哈希类函数(比如HMAC-SHA-256函数或SHA-256函数)为计算函数,计算参数可以包含部分或全部加密前向密钥生成参数以及核心网相关密钥,计算获得中间结果(期望响应参数),再以期望响应参数加密前向密钥生成加密前向密钥。

在一种可能的实施方式中,基于Knas-int计算得到Knh。加密前向密钥生成参数可以是下一跳计数(Next Chain Count,简称NCC)。基于NCC和Kamf计算出期望响应参数,再以期望响应参数为密钥加密Knh,加密算法可以是异或算法,或祖冲之算法(ZUC)。

在另一种可能的实施方式中,加密前向密钥生成参数可以包括NCC和RAND(随机数)。以NCC为迭代次数基于Kamf进行迭代加密生成前向密钥Knh。比如,NCC等于2时,以Kamf为参数使用哈希类函数计算得到结果,再以结果为参数使用哈希类函数计算得到Knh。NCC为不同值则以此类推。基于随机字符串RAND和Kamf计算出期望响应参数(或基于随机字符串RAND和Knas-int计算出期望响应参数),再以期望响应参数为密钥加密Knh。

在步骤S102之后,终端在进行会话的过程中发生移动,源基站决定将终端切换到新的目标基站上。

步骤S103:源基站向目标基站发送切换请求消息,在所述切换请求消息中携带加密前向密钥;

其中,所述切换请求消息可以是Handover Request消息;

其中,所述切换请求消息中还可以携带基站密钥KgNB,或基于KgNB生成的KgNB*;所述KgNB*可以采用以下方式获得:以KgNB为参数以任何哈希类函数(比如HMAC-SHA-256)计算获得。

步骤S104:目标基站向源基站发送切换响应;

其中,所述切换响应消息可以是Handover Response消息;

步骤S105:源基站向终端发送切换命令消息,在所述切换命令消息中携带加密前向密钥生成参数;

其中,所述切换命令消息可以是Handover Command消息;

步骤S106:终端采用与核心网功能计算前向密钥Knh相同的方式计算出前向密钥Knh;终端还采用与核心网功能计算期望响应参数相同的方式基于加密前向密钥生成参数计算响应参数;终端还可以基于响应参数计算传输参数。

比如,加密前向密钥生成参数包括NCC,终端基于Knas-int计算得到Knh,基于NCC和Kamf计算响应参数。再比如,加密前向密钥生成参数包括NCC和RAND(随机数),终端基于Kamf和NCC计算得到Knh,再以RAND和Kamf计算出响应参数,或者以RAND和Knas-int计算出响应参数。终端还可以基于KgNB(或KgNB*)以及响应参数计算传输参数。

步骤S106后,终端调制到与目标基站相连。

步骤S107:终端向目标基站发送切换完成消息,在所述切换完成消息中携带响应参数或传输参数;

其中,所述切换完成消息可以是Handover Complete消息。

其中,所述切换完成消息可以被加密。

步骤S108:目标基站基于响应参数和加密前向密钥计算获得前向密钥,或者基于传输参数计算获得响应参数,再基于响应参数和加密前向密钥计算获得前向密钥。

其中,目标基站收到响应参数后,目标基站以响应参数为密钥采用ZUC算法解密加密前向密钥,获得前向密钥;或者,目标基站以响应参数和加密前向密钥做异或计算获得前向密钥。

其中,目标基站收到传输参数后,先从传输参数获取响应参数,比如:以传输参数和KgNB(或KgNB*)做异或计算获得响应参数,或者,以KgNB(或KgNB*)为密钥采用ZUC算法解密传输参数获得响应参数。目标基站计算出响应参数后,再基于响应参数和加密前向密钥计算获得前向密钥。

目标基站可以基于前向密钥(基站前向密钥)与终端进行通讯,由于源基站并不知道基站前向密钥,所以终端和目标基站之间的通信是前向安全的。

示例2

本示例提供一种切换过程中的前向安全实现方法。本示例中,源核心网功能是第一网络节点,目标基站或目标核心网功能是第二网络节点,安全功能是第三网络功能。

如图8所示,本示例的前向安全实现方法可以包括以下步骤:

步骤S201:终端、源基站、源核心网功能和安全功能之间交互,进行通讯连接的建立;

其中,安全功能可以是:认证服务功能(Authentication Server Function,简称AUSF),或统一数据管理(Unified Data Management,简称UDM),或安全锚功能(SecurityAnchor Function,简称SEAF)。

步骤S202:当安全功能与源核心网功能不是合一部署时,安全功能向源核心网功能发送密钥提供消息,在所述密钥提供消息中携带核心网相关密钥、加密前向密钥组和加密前向密钥组生成参数;

其中,所述密钥提供消息可以是AUSF/UDM发送的Authentication Success消息,或者是SEAF发送的Key Provide消息。其中,AUSF/UDM可以发送Kseaf,SEAF可以基于Kseaf生成Kamf后发送Kamf。

其中,安全功能在建立通讯连接的过程中可以获得或计算核心网相关密钥信息。比如,AUSF/UDM会生成Kausf,SEAF会获得Kseaf或Kamf,其中Kseaf基于Kausf生成,Kamf基于Kseaf生成。终端在建立通讯连接的过程中也可以计算出核心网相关密钥信息(比如:Kausf、Kseaf、Kamf)。

其中,安全功能使用核心网相关密钥计算前向密钥组(GroupNext Hop Key,简称Kgnh),所述前向密钥组包括:前向核心网密钥Kgnh-c和前向基站密钥Kgnh-b。再以加密前向密钥组生成参数、核心网相关密钥、和前向密钥组生成加密前向密钥组。

比如,以任何哈希类函数(比如HMAC-SHA-256函数或SHA-256函数)为计算函数,计算参数包含核心网相关密钥,计算获得前向密钥组Kgnh,包含Kgnh-c和Kgnh-b。再以任何哈希类函数(比如HMAC-SHA-256函数或SHA-256函数)为计算函数,计算参数包含部分或全部加密前向密钥生成参数,以及核心网相关密钥,计算获得期望响应参数,再以期望响应参数加密前向密钥组生成加密前向密钥组。

在一种可能的实施方式中,加密前向密钥组生成参数包括NCC。基于Kausf分别计算得到Kgnh-c和Kgnh-b,Kgnh-b可以是基于Kgnh-c计算得到的(比如使用Kgnh-c为参数以任何哈希类函数计算),再基于NCC和Kausf计算出期望响应参数,以期望响应参数为密钥加密Kgnh,比如采用异或算法,或采用祖冲之算法(ZUC)加密Kgnh。

在另一种可能的实施方式中,加密前向密钥组生成参数包括:NCC、RAND1(随机数1)、RAND2(随机数2)。以NCC为迭代次数基于Kseaf进行迭代加密生成Kgnh-c。比如,NCC等于2时,以Kseaf为参数使用哈希类函数计算得到中间结果,再以中间结果为参数使用哈希类函数计算得到Kgnh-c,NCC为不同值则以此类推。再基于随机字符串RAND1和Kseaf计算出期望响应参数1,再以期望响应参数1为密钥加密Kgnh-c,基于Kgnh-c计算出Kgnh-b,再基于随机字符串RAND2和Kgnh-c计算出期望响应参数2,再以期望响应参数2为密钥加密Kgnh-b。

当安全功能与源核心网功能不是合一部署时,安全功能向源核心网功能发送密钥提供消息,比如AUSF/UDM发送Authentication Success消息,或SEAF发送Key Provide消息,消息携带核心网相关密钥,比如AUSF/UDM发送Kseaf,或SEAF基于Kseaf生成Kamf后发送Kamf。密钥提供消息还携带加密前向密钥组和加密前向密钥组生成参数

步骤S203:终端在进行会话的过程中发生移动,源基站决定将终端切换到新的目标基站上,于是向源核心网功能发送第一切换请求消息;

其中,所述第一切换请求消息可以是:Handover Required消息;

步骤S204:源核心网功能向目标核心网功能发送第二切换请求消息,在所述第二切换请求消息中携带加密前向密钥组;

其中,所述第二切换请求消息可以是:Forward Relocation Request消息;

步骤S205:目标核心网功能向目标基站发送第三切换请求消息,在所述第三切换请求消息中携带加密前向密钥组中的一部分内容(即基站加密前向密钥);

其中,所述第三切换请求消息中还可以携带基站密钥KgNB,或基于KgNB生成的KgNB*;所述KgNB*可以采用以下方式获得:以KgNB为参数以任何哈希类函数(比如HMAC-SHA-256)计算获得。

其中,所述第三切换请求消息可以是Handover Request消息;

步骤S206:目标基站向目标核心网功能发送第一切换响应消息;

其中,所述第一切换响应消息可以是:Handover Response消息;

步骤S207:目标核心网功能向源核心网功能发送第二切换响应消息;

其中,所述第二切换响应消息可以是:Forward Relocation Response消息;

步骤S208:源核心网功能通过源基站向终端发送切换命令消息,在所述切换命令消息中携带加密前向密钥组生成参数;

其中,所述切换命令消息可以是:Handover Command消息;

步骤S209:终端采用与核心网功能计算前向密钥组Kgnh相同的方式计算出前向密钥组Kgnh;终端还采用与核心网功能计算期望响应参数相同的方式基于加密前向密钥组生成参数计算响应参数;终端还可以基于响应参数计算传输参数。

比如,加密前向密钥组生成参数包括NCC,终端基于Kausf分别计算得到Kgnh-c和Kgnh-b,Kgnh-b可以是基于Kgnh-c计算得到的(比如使用Kgnh-c为参数以任何哈希类函数计算),再基于NCC和Kausf计算出响应参数。再比如,加密前向密钥组生成参数包括NCC、RAND1(随机数1)、RAND2(随机数2),终端基于Kseaf和NCC计算得到Kgnh-c,再基于RAND1和Kseaf计算出响应参数1,再基于Kgnh-c计算出Kgnh-b,再基于RAND2和Kgnh-c计算出响应参数2,以响应参数1、响应参数2组合成响应参数。终端可以基于KgNB或KgNB*以及响应参数计算传输参数。

步骤210:终端调制到与目标基站相连,向目标基站发送切换完成消息,在所述切换完成消息中携带响应参数或传输参数;

其中,所述切换完成消息可以是Handover Complete消息;

其中,所述切换完成消息可以被加密;

步骤S211:目标基站基于响应参数和基站加密前向密钥计算获得基站使用的前向密钥(基站前向密钥),或者基于传输参数计算获得响应参数,再基于响应参数和基站加密前向密钥计算获得基站前向密钥。

其中,目标基站收到响应参数后,目标基站以响应参数为密钥采用ZUC算法解密基站加密前向密钥,获得基站前向密钥;或者,目标基站以响应参数和基站加密前向密钥做异或计算获得基站前向密钥;或者,以部分响应参数(比如响应参数1)为密钥采用比如ZUC等算法解密基站加密前向密钥获得基站前向密钥;或者,以部分响应参数(比如响应参数1)和基站加密前向密钥做异或计算获得基站前向密钥。

其中,目标基站收到传输参数后,先从传输参数获取响应参数,比如以传输参数和KgNB或KgNB*做异或计算获得响应参数,或以KgNB或KgNB*为密钥,采用ZUC等算法解密传输参数获得响应参数。目标基站计算出响应参数后,再基于响应参数和基站加密前向密钥计算获得基站前向密钥。

步骤S212,目标基站向目标网络功能发送切换通知消息,在所述切换通知消息中携带全部或部分响应参数,或者全部或部分传输参数;

其中,部分响应参数可以是响应参数2;

步骤S213,目标核心网功能基于响应参数和部分或全部加密前向密钥组计算获得核心网使用的前向密钥(核心网前向密钥),或者基于传输参数计算获得响应参数,再基于响应参数和部分或全部加密前向密钥组计算获得核心网前向密钥。

其中,目标核心网功能收到响应参数,基于响应参数和加密前向密钥组计算获得核心网使用的前向密钥。比如:以响应参数为密钥采用比如ZUC算法解密加密前向密钥组,或以响应参数和加密前向密钥组做异或计算,或以部分响应参数(比如响应参数2)为密钥采用比如ZUC等算法解密部分加密前向密钥组(比如加密Kgnh-c),或以部分响应参数(比如响应参数1)和部分加密前向密钥组(比如加密Kgnh-c)做异或计算。

目标核心网功能和目标基站可以分别基于核心网前向密钥和基站前向密钥与终端进行通讯,由于源基站和源核心网功能并不知道基站前向密钥和核心网前向密钥,所以终端和目标基站以及目标核心网功能之间的通信是前向安全的。

示例3

本示例提供一种重启过程(Resume)中的前向安全实现方法。本示例中,源基站是第一网络节点,目标基站是第二网络节点,核心网功能是第三网络节点。

如图7所示,本示例的前向安全实现方法可以包括以下步骤:

步骤301:终端、源基站和核心网功能之间交互,进行通讯连接的建立;

核心网功能在建立通讯连接的过程中可以获得或计算核心网相关密钥信息。比如,核心网功能获得AMF密钥Kamf,基于Kamf计算NAS(Non-access stratum,非接入层)密钥,NAS密钥可以包括:NAS保密性密钥Knas-enc,和/或NAS完整性密钥。

终端在建立通讯连接的过程中可以通过信令消息中的内容以及终端上的用户密钥也计算出核心网相关密钥,从而与核心网功能保持通讯的安全性。

步骤302:核心网功能向源基站发送加密前向密钥、加密前向密钥生成参数和基站密钥;

其中,核心网功能在建立通讯连接的过程中可以向源基站发送UE InitialContext Setup消息,在所述消息中携带基站相关密钥信息。基站相关密钥可以包括:基站密钥KgNB,加密前向密钥,加密前向密钥生成参数;

其中,终端也可以计算出基站密钥,从而与源基站保持通讯的安全性。

其中,核心网功能在建立通讯连接的过程中可以通过核心网相关密钥计算基站密钥KgNB;

其中,核心网功能在建立通讯连接的过程中可以通过核心网相关密钥计算前向密钥(Next Hop Key,简称Knh)。核心网功能以加密前向密钥生成参数,前向密钥、核心网相关密钥中的一种或多种信息生成加密前向密钥。

比如,在计算前向密钥时,可以以任何哈希类函数(比如HMAC-SHA-256函数或SHA-256函数)为计算函数,计算参数包含核心网相关密钥,计算获得前向密钥Knh。

比如,在计算加密前向密钥时,可以以任何哈希类函数(比如HMAC-SHA-256函数或SHA-256函数)为计算函数,计算参数可以包含部分或全部加密前向密钥生成参数以及核心网相关密钥,计算获得中间结果(期望响应参数),再以期望响应参数加密前向密钥生成加密前向密钥。

在一种可能的实施方式中,基于Knas-int计算得到Knh。加密前向密钥生成参数可以是下一跳计数(Next Chain Count,简称NCC)。基于NCC和Kamf计算出期望响应参数,再以期望响应参数为密钥加密Knh,加密算法可以是异或算法,或祖冲之算法(ZUC)。

在另一种可能的实施方式中,加密前向密钥生成参数可以包括NCC和RAND(随机数)。以NCC为迭代次数基于Kamf进行迭代加密生成前向密钥Knh。比如,NCC等于2时,以Kamf为参数使用哈希类函数计算得到结果,再以结果为参数使用哈希类函数计算得到Knh。NCC为不同值则以此类推。基于随机字符串RAND和Kamf计算出期望响应参数(或基于随机字符串RAND和Knas-int计算出期望响应参数),再以期望响应参数为密钥加密Knh。

步骤S303:源基站决定将终端暂时挂起,于是向终端UE发送挂起请求消息,在所述挂起请求消息中携带加密前向密钥生成参数;

其中,所述挂起请求消息可以是:RRC_Suspend消息;

步骤S304:终端在挂起一段时间后决定重启连接,终端采用与核心网功能计算前向密钥Knh相同的方式计算出前向密钥Knh;终端还采用与核心网功能计算期望响应参数相同的方式基于加密前向密钥生成参数计算响应参数;终端还可以基于响应参数计算传输参数。

比如,加密前向密钥生成参数包括NCC,终端基于Knas-int计算得到Knh,基于NCC和Kamf计算响应参数。再比如,加密前向密钥生成参数包括NCC和RAND(随机数),终端基于Kamf和NCC计算得到Knh,再以RAND和Kamf计算出响应参数,或者以RAND和Knas-int计算出响应参数。终端还可以基于KgNB(或KgNB*)以及响应参数计算传输参数。

步骤S305:终端在挂起期间发生了移动,处于目标基站的覆盖之下,于是调制到与目标基站相连,向目标基站发送重启请求消息,在所述重启请求消息中携带响应参数或传输参数;

其中,所述重启请求消息可以是Resume Request消息;

其中,所述重启请求消息可以被加密;

步骤S306:目标基站向源基站发送上下文请求消息;

其中,所述上下文请求消息可以是:UE Context Request消息;

步骤S307:源基站向目标基站发送上下文响应消息,在所述上下文响应消息中携带加密前向密钥;

其中,所述上下文响应消息可以是UE Context Response消息;

其中,所述上下文响应消息中还可以携带基站密钥KgNB,或基于KgNB生成的KgNB*(比如以KgNB为参数以任何哈希类函数(比如HMAC-SHA-256)计算获得KgNB*);

步骤S308:目标基站基于响应参数和加密前向密钥计算获得前向密钥,或者基于传输参数计算获得响应参数,再基于响应参数和加密前向密钥计算获得前向密钥。

其中,目标基站收到响应参数和加密前向密钥后,目标基站以响应参数为密钥采用ZUC算法解密加密前向密钥,获得前向密钥;或者,目标基站以响应参数和加密前向密钥做异或计算获得前向密钥。

其中,目标基站收到传输参数和加密前向密钥后,先从传输参数获取响应参数,比如:以传输参数和KgNB(或KgNB*)做异或计算获得响应参数,或者,以KgNB(或KgNB*)为密钥采用ZUC算法解密传输参数获得响应参数。目标基站计算出响应参数后,再基于响应参数和加密前向密钥计算获得前向密钥。

目标基站可以基于基站前向密钥与终端进行通讯,由于源基站并不知道基站前向密钥,所以终端和目标基站之间的通信是前向安全的。

本领域普通技术人员可以理解,上文中所公开方法中的全部或某些步骤、系统、装置中的功能模块/单元可以被实施为软件、固件、硬件及其适当的组合。在硬件实施方式中,在以上描述中提及的功能模块/单元之间的划分不一定对应于物理组件的划分;例如,一个物理组件可以具有多个功能,或者一个功能或步骤可以由若干物理组件合作执行。某些物理组件或所有物理组件可以被实施为由处理器,如中央处理器、数字信号处理器或微处理器执行的软件,或者被实施为硬件,或者被实施为集成电路,如专用集成电路。这样的软件可以分布在计算机可读介质上,计算机可读介质可以包括计算机存储介质(或非暂时性介质)和通信介质(或暂时性介质)。如本领域普通技术人员公知的,术语计算机存储介质包括在用于存储信息(诸如计算机可读指令、数据结构、程序模块或其他数据)的任何方法或技术中实施的易失性和非易失性、可移除和不可移除介质。计算机存储介质包括但不限于RAM、ROM、EEPROM、闪存或其他存储器技术、CD-ROM、数字多功能盘(DVD)或其他光盘存储、磁盒、磁带、磁盘存储或其他磁存储装置、或者可以用于存储期望的信息并且可以被计算机访问的任何其他的介质。此外,本领域普通技术人员公知的是,通信介质通常包含计算机可读指令、数据结构、程序模块或者诸如载波或其他传输机制之类的调制数据信号中的其他数据,并且可包括任何信息递送介质。

需要说明的是,本发明还可有其他多种实施例,在不背离本发明精神及其实质的情况下,熟悉本领域的技术人员可根据本发明作出各种相应的改变和变形,但这些相应的改变和变形都应属于本发明所附的权利要求的保护范围。

21页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:病毒分子网络体系结构和设计

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!