密钥协商方法、装置、计算机设备和存储介质
技术领域
本申请涉及通信安全领域,特别是涉及一种密钥协商方法、装置、计算机设备和存储介质。
背景技术
IPSec VPN(Internet Protocol Security Virtual Private Network,虚拟专用网络安全协议)密钥交换协议,都需要遵循国家密码局《IPSec VPN技术规范》中的标准进行设计和实现。所有IPSec VPN产品,都需遵循密钥交换协议进行密钥协商,才能与中心侧或对端设备建立VPN安全隧道,以完成正常的通信。
在IPSec通信过程中,对端设备建立会话,并协商一个会话密钥以进行加密通信。会话具有一个会话生存期,即会话密钥的有效时间。当会话生存期结束,当前的会话密钥失效,将会切换至新的会话密钥进行会话。会话生存期越短,即会话密钥切换频率越高,通信安全性越高。
然而,当会话生存期结束,如果对端设备的密钥切换不同步,导致两端设备切换的会话密钥不一致,则会导致通信数据丢包的问题。会话生存期越短,通信数据丢包越频繁,严重时可能会导致VPN隧道断裂的问题。
因此,现有技术的密钥协商方法存在着通信数据丢包的问题。
发明内容
基于此,有必要针对上述技术问题,提供一种密钥协商方法、一种密钥协商装置、一种计算机设备和一种计算机可读存储介质。
一种密钥协商方法,包括:
与对端设备进行会话;
在会话生存期结束之前,与所述对端设备进行预协商,得到会话密钥和所述对端设备的安全参数索引;
记录所述安全参数索引和所述会话密钥的对应关系,以在所述会话生存期结束之后、与所述对端设备进行会话时,根据所述对端设备的安全参数索引,查找对应的会话密钥。
在另一个实施例中,所述记录所述安全参数索引和所述会话密钥的对应关系,包括:
生成逻辑隧道号;
记录所述逻辑隧道号与所述会话密钥的对应关系;
记录所述安全参数索引与所述逻辑隧道号的对应关系。
在另一个实施例中,所述生成逻辑隧道号,包括:
确定当前会话的会话通道号,以及,确定当前会话的当前会话标识变化值;
计算所述当前会话标识变化值与预设的最大会话通道数的乘积,并计算所述乘积与所述会话通道号之和,得到所述逻辑隧道号。
在另一个实施例中,在所述会话生存期结束之后,当所述对端设备通过所述安全参数索引发起发话时,所述方法还包括:
查找与所述安全参数索引对应的所述逻辑隧道号;
查找与所述逻辑隧道号对应的所述会话密钥;
采用所述会话密钥,与所述对端设备进行会话。
在另一个实施例中,所述确定当前会话的当前会话标识变化值,包括:
确定上一次会话的历史会话标识变化值;
确定所述当前会话标识变化值;所述当前会话标识变化值的数值与所述历史会话标识变化值的数值不相同。
在另一个实施例中,还包括:
在所述会话生存期结束之后,设定密钥销毁时间,并开始计时;
当到达所述密钥销毁时间,销毁所述逻辑隧道号对应的会话密钥。
一种密钥协商方法,包括:
本端设备与对端设备进行会话;
所述本端设备在会话生存期结束之前,与所述对端设备进行预协商,得到会话密钥和所述对端设备的安全参数索引;
所述本端设备记录所述安全参数索引和所述会话密钥的对应关系;
所述对端设备在会话生存期结束之后,确定所述会话密钥对应的所述安全参数索引,并提供所述安全参数索引至所述本端设备;
所述本端设备根据所述对端设备提供的所述安全参数索引,查找对应的会话密钥。
一种密钥协商装置,包括:
会话模块,用于与对端设备进行会话;
预协商模块,用于在会话生存期结束之前,与所述对端设备进行预协商,得到会话密钥和所述对端设备的安全参数索引;
记录模块,用于记录所述安全参数索引和所述会话密钥的对应关系,以在所述会话生存期结束之后、与所述对端设备进行会话时,根据所述对端设备的安全参数索引,查找对应的会话密钥。
一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现以下步骤:
与对端设备进行会话;
在会话生存期结束之前,与所述对端设备进行预协商,得到会话密钥和所述对端设备的安全参数索引;
记录所述安全参数索引和所述会话密钥的对应关系,以在所述会话生存期结束之后、与所述对端设备进行会话时,根据所述对端设备的安全参数索引,查找对应的会话密钥。
一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现以下步骤:
与对端设备进行会话;
在会话生存期结束之前,与所述对端设备进行预协商,得到会话密钥和所述对端设备的安全参数索引;
记录所述安全参数索引和所述会话密钥的对应关系,以在所述会话生存期结束之后、与所述对端设备进行会话时,根据所述对端设备的安全参数索引,查找对应的会话密钥。
上述的密钥协商方法、密钥协商装置、计算机设备和计算机可读存储介质,通过在会话生存期结束之前,本端设备与对端设备进行预协商,得到会话密钥和所述对端设备的安全参数索引,并记录安全参数索引和会话密钥的对应关系,在会话生存期结束之后、与对端设备进行会话时,根据对端设备的安全参数索引查找对应的会话密钥,从而,无论对端设备是否切换至新的会话密钥,本端设备均可以与对端设备保持会话密钥的一致性,避免了由于会话密钥切换不同步导致通信数据丢失的问题,提升了通信稳定性。
附图说明
图1是一个实施例的一种密钥协商方法的流程示意图;
图2是一个实施例的一种密钥协商方法的应用环境图;
图3是一个实施例的一种快速模式的消息交换的示意图;
图4是另一个实施例的一种密钥协商方法的流程示意图;
图5是一个实施例的一种预协商的流程示意图;
图6是一个实施例的一种查找会话密钥的示意图;
图7是一个实施例的一种密钥协商装置的结构框图;
图8是一个实施例的一种计算机设备的内部结构图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
在一个实施例中,如图1所示,提供了一种密钥协商方法。本实施例提供的密钥协商方法,可以应用于如图2所示的应用环境中。
其中,对端设备210和本端设备220可以但不限于是各种个人计算机、笔记本电脑、智能手机、平板电脑和便携式可穿戴设备。需要说明的是,对端设备210和本端设备220的命名,是为了区分描述两个设备。在实际应用中,执行本申请实施例的密钥协商方法的设备则为本端设备220,当由另一端的设备执行本申请实施例的密钥协商方法,则另一端的设备为本端设备220。
需要说明的是,本申请实施例的密钥协商方法,可以应用于IPSec VPN的通信过程中。在IPSec VPN通信是基于IPSec VPN密钥交换协议的通信方式,IPSec VPN密钥交换协议,定义了建立、协商、修改和删除安全联盟的过程和报文格式,其包括两个阶段,分别对应两种模式。
第一阶段对应于主模式,实现通信双方(对端设备210和本端设备220)的身份认证和密钥协商,最终通信双方建立了一个ISAKMP SA((Internet Security Association KeyManagement Protocol Internet,安全联盟密钥管理协议),得到工作密钥,该工作密钥保护第二阶段的协商过程。
第二阶段对应快速模式,实现通信双方IPSec SA的协商,建立两个IPSecSA,确认通信双方的IPSec安全策略及会话密钥。
图3是一个实施例的一种快速模式的消息交换的示意图。如图所示,设备B首先发送消息1至设备A,消息内容为“HDR*,HASH(1),SA,Ni[Idci,IDcr]”,设备A则响应消息2,消息内容为“HDR*,HASH(2),SA,Nr[Idci,IDcr]”,设备B收到消息2后,响应消息3,消息内容为“HDR*,HASH(3)”。
其中,HDR*表示ISAKMP头后面的载荷是经过加密的;SA表示带有一个或多个建议载荷的安全联盟载荷;IDi表示发起方的标识载荷;IDr表示响应方的标识载荷;Ni表示发起方的nonce载荷;Nr表示响应方的nonce载荷。x表示可选参数;Hash(x)表示使用密码杂凑算法对x进行数据摘要运算。
通过上述的消息交换,协商出通信双方的IPSec安全策略和会话密钥。两端的设备可以将会话密钥保存在本地内存中,以在需要时调用。
本实施例中的一种密钥协商方法,以该方法应用于图2中的本端设备220为例进行说明,包括以下步骤:
步骤S110,与对端设备进行会话。
需要说明的是,本申请实施例的密钥协商方法可以在第二阶段的快速模式中执行。
具体实现中,在第二阶段的快速模式中,本端设备220与对端设备210协商了会话密钥,并建立了会话。假设,会话生存期为2min(分钟),即在2min内会话密钥有效,2min后会话生存期到达,会话密钥失效。
步骤S120,在会话生存期结束之前,与对端设备进行预协商,得到会话密钥和对端设备的安全参数索引。
其中,安全参数索引(SPI,Security Parameter Index)是一个4字节值,其与目的IP地址和安全协议共同标识了这个数据报文的安全联盟。
具体实现中,本端设备220可以对会话生存期进行计时,根据计时得知会话生存期将要结束时,本端设备220可以与对端设备210进行预协商。预协商具体过程,可以是本端设备220向对端设备210发起一个预协商请求,该预协商请求中可以包含有生成会话密钥的第一密钥素材,对端设备210则反馈一个安全参数索引和生成会话密钥的第二密钥素材。本端设备220根据第一密钥素材和第二密钥素材,生成会话密钥。由此,本端设备220得到了对端设备的安全参数索引。
此外,对端设备210根据第一密钥素材和第二密钥素材,生成会话密钥。由此,对端设备210和本端设备220之间协商出会话密钥。由于是在两端设备正式协商之前预先协商出一个当会话生存期到达之后所使用的会话密钥,因此该协商过程命名为预协商。
步骤S130,记录安全参数索引和会话密钥的对应关系,以在会话生存期结束之后、与对端设备进行会话时,根据对端设备的安全参数索引,查找对应的会话密钥。
具体实现中,本端设备220可以记录下安全参数索引与会话密钥之间的对应关系。记录对应关系的方式可以有多种,例如,可以直接生成一个对应关系记录表,记录安全参数索引与会话密钥之间的对应关系;又例如,可以利用本次会话的VPN会话通道的会话通道号,生成一个逻辑隧道号,利用该逻辑隧道号,记录安全参数索引与会话密钥之间的对应关系。本领域技术人员可以根据实际需要,采用各种方式记录下安全参数索引与会话密钥之间的对应关系。
若当前的会话生存期结束,用于进行当前会话的会话密钥已经失效。对端设备210继续与本端设备220进行会话,可能会切换至新的会话密钥。如果本端设备220没有及时切换至新的会话密钥,本端设备220继续使用原有的会话密钥,则无法解密对端设备210的加密数据,导致通信数据丢失。
而在本申请实施例中,本端设备220与对端设备210之间,在会话生存期结束之前进行预协商,协商出与安全参数索引对应的会话密钥,当对端设备210在当前的会话生存期到达之后,对端设备210可能会切换至新的会话密钥,也可能没有切换至新的会话密钥,而采用原有的会话密钥。但无论对端设备210是否切换至新的会话密钥,对端设备210均会根据当前所使用的会话密钥,确定对应的安全参数索引,并提供该安全参数索引给本端设备220,本端设备220根据在预协商时记录的安全参数索引和所述会话密钥的对应关系,即可以查找到安全参数索引对应的会话密钥,并采用查找到的会话密钥进行解密,由此得知对端设备210当前使用的会话密钥。从而,在生存会话期结束之后,无论对端设备210是否切换至新的会话密钥,本端设备220均可以与对端设备210保持会话密钥的一致性,避免了由于会话密钥切换不同步导致通信数据丢失的问题。
根据本申请实施例提供的技术方案,通过在会话生存期结束之前,本端设备与对端设备进行预协商,得到会话密钥和所述对端设备的安全参数索引,并记录安全参数索引和会话密钥的对应关系,在会话生存期结束之后、与对端设备进行会话时,根据对端设备的安全参数索引查找对应的会话密钥,从而,无论对端设备是否切换至新的会话密钥,本端设备均可以与对端设备保持会话密钥的一致性,避免了由于会话密钥切换不同步导致通信数据丢失的问题,提升了通信稳定性。
在另一个实施例中,所述步骤S130,包括:
生成逻辑隧道号;记录逻辑隧道号与会话密钥的对应关系;记录安全参数索引与逻辑隧道号的对应关系。
具体实现中,本端设备220可以生成一个逻辑隧道号。生成逻辑隧道号的方式可以有多种,例如,可以生成一个随机值,以作为安全参数索引、会话密钥的唯一性标识;又例如,可以根据本次会话的VPN会话通道的会话通道号,生成一个逻辑隧道号。
然后,记录逻辑隧道号与会话密钥的对应关系,并记录安全参数索引与逻辑隧道号的对应关系。由此,建立了安全参数索引、逻辑隧道号、会话密钥三者之间的对应关系。
在另一个实施例中,还包括:
生成逻辑隧道号的哈希(Hash,一种消息摘要算法)队列,在哈希队列中记录会话密钥。此外,记录逻辑隧道号与安全参数索引的对应关系。由此,在根据安全参数索引查找会话密钥时,可以首先查找安全参数索引对应的逻辑隧道号,然后查找逻辑隧道号对应的哈希队列,将哈希队列中的会话密钥,作为安全参数索引对应的会话密钥。
在另一个实施例中,所述生成逻辑隧道号,包括:
确定当前会话的会话通道号,以及,确定当前会话的当前会话标识变化值;
计算当前会话标识变化值与预设的最大会话通道数的乘积,并计算乘积与会话通道号之和,得到逻辑隧道号。
具体实现中,逻辑隧道号的一种具体生成方式中,本端设备220可以确定当前会话的会话通道号,例如,对端设备210与本端设备220当前的VPN会话通道的会话通道号为1。实际应用中,由于最大支持的会话通道数量为2048,因此,会话通道号为1-2048中的任意一个值。
此外,本端设备220还可以确定当前会话的当前会话标识变化值。会话标识变化值是一个标识不同会话的、在每次生成逻辑隧道号时进行变化的数值。例如,会话标识变化值可以记录为Δ,Δ可以为任意数值。实际应用中,Δ可以具体为0或1的数值,会话标识变化值Δ可以初始化为0,在每一次进行预协商、需要生成逻辑隧道号时,对会话标识变化值Δ进行反转,例如,如果本端设备220本地记录的历史会话标识变化值Δ为0,在需要生成逻辑隧道号时,则反转为1,即当前会话标识变化值为1,在下一次需要生成逻辑隧道号时,则反转为0。
在得到会话通道号和当前会话标识变化值之后,计算当前会话标识变化值与预设的最大会话通道数的乘积,并计算乘积与会话通道号之和,得到逻辑隧道号。
例如,会话通道号为1,最大会话通道数为2048,当前会话标识变化值Δ为1,逻辑隧道号=1*2048+1=2049。
又例如,会话通道号为2048,最大会话通道数为2048,当前会话标识变化值Δ为0,逻辑隧道号=0*2048+2048=2048。
需要说明的是,采用最大会话通道数作为相乘因子,是为了避免出现逻辑通道号重复,导致无法保证逻辑通道号的唯一性。假设不采用最大会话通道数作为相乘因子,会话通道号为1、当前会话标识变化值Δ为1的情况下,逻辑隧道号为101,而当会话通道号为101、当前会话标识变化值Δ为0的情况下,逻辑隧道号也为101,从而导致逻辑隧道号重复,无法起到唯一性的标识作用。
根据本申请实施例提供的技术方案,通过确定当前会话的会话通道号和当前会话标识变化值,并计算当前会话标识变化值与预设的最大会话通道数的乘积,然后计算乘积与会话通道号之和,作为逻辑隧道号,避免出现逻辑通道号重复,保证逻辑隧道号的唯一性。
在另一个实施例中,所述确定当前会话的当前会话标识变化值,包括:
确定上一次会话的历史会话标识变化值;确定当前会话标识变化值;当前会话标识变化值的数值与所述历史会话标识变化值的数值不相同。
具体实现中,本端设备220本地记录了上一次会话的历史会话标识变化值Δ,在需要生成逻辑隧道号时,则反转为另一数值,作为当前会话标识变化值Δ,使得当前会话标识变化值的数值与所述历史会话标识变化值的数值不相同。
例如,如果本端设备220本地记录的历史会话标识变化值Δ为0,在需要生成逻辑隧道号时,则反转为1,即当前会话标识变化值为1,在下一次需要生成逻辑隧道号时,则反转为0。
当然,本领域技术人员可以根据实际需要,采用不同的方式,根据历史会话标识变化值,确定当前会话标识变化值,使得当前会话标识变化值的数值与所述历史会话标识变化值的数值不相同。
在另一个实施例中,在会话生存期结束之后,当所述对端设备通过所述安全参数索引发起发话时,所述方法还包括:
查找与所述安全参数索引对应的所述逻辑隧道号;查找与所述逻辑隧道号对应的所述会话密钥;采用所述会话密钥,与所述对端设备进行会话。
具体实现中,在会话生存期结束之后,无论对端设备210是否切换至新的会话密钥,对端设备210均会根据当前所使用的会话密钥,确定对应的安全参数索引,并提供该安全参数索引给本端设备220。
本端设备220根据安全参数索引,可以查找到对应的逻辑隧道号,然后,根据逻辑隧道号,可以查找到对应的会话密钥。根据查找到的会话密钥,可以解密对端设备220发送的加密数据,从而保证与对端设备220进行正常的会话。
在另一个实施例中,还包括:
在会话生存期结束之后,设定密钥销毁时间,并开始计时;当到达密钥销毁时间,销毁逻辑隧道号对应的会话密钥。
具体实现中,本端设备220可以设定一个密钥销毁时间,例如,密钥销毁时间可以为3*会话生存期。在会话生存期结束进行计时,当到达密钥销毁时间,则对记录的逻辑隧道号、会话密钥进行销毁。
根据本申请实施例提供的技术方案,通过定期销毁会话密钥,在保证在会话时可以查找到匹配的会话密钥的同时,可以节省设备的存储空间。
在另一个实施例中,如图4所示,提供了一种密钥协商方法。本实施例提供的密钥协商方法,包括以下步骤:
步骤S410,本端设备与对端设备进行会话;
步骤S420,本端设备在会话生存期结束之前,与对端设备进行预协商,得到会话密钥和对端设备的安全参数索引;
步骤S430,本端设备记录安全参数索引和会话密钥的对应关系;
步骤S440,对端设备在会话生存期结束之后,确定会话密钥对应的安全参数索引,并提供安全参数索引至本端设备;
步骤S450,本端设备根据对端设备提供的安全参数索引,查找对应的会话密钥。
具体实现中,本申请实施例的密钥协商方法可以在IPSec VPN通信第二阶段的快速模式中执行。体实现中,本端设备220可以对会话生存期进行计时,根据计时得知会话生存期将要结束时,本端设备220可以与对端设备210进行预协商,得到会话密钥和对端设备210的安全参数索引。本端设备220可以记录下安全参数索引与会话密钥之间的对应关系。对端设备210在会话生存期结束之后,确定会话密钥对应的安全参数索引,并提供安全参数索引至本端设备220。本端设备220根据对端设备210提供的安全参数索引,查找对应的会话密钥,从而,在生存会话期结束之后,无论对端设备210是否切换至新的会话密钥,本端设备220均可以与对端设备210保持会话密钥的一致性,避免了由于会话密钥切换不同步导致通信数据丢失的问题。
为了便于本领域技术人员深入理解本申请实施例,以下将结合图5和图6的具体示例进行说明。
图5是一个实施例的一种预协商的流程示意图。假设一个会话生存期为2min,在第一个会话生存期a1剩余1分钟的时候,设备A与设备B通过会话通道号1进行预协商。设备A本次预协商的安全参数索引SPI为0x5e6a3c2d,设备A与设备B协商的会话密钥为00060e3c5d2e03052a1b23353e4a332b。设备B确定当前会话标识变化值Δ=0,最大会话通道数为2048,由此可以计算出逻辑隧道号=0*2048+1=1。设备B存储逻辑隧道号1、安全参数索引SPI0x5e6a3c2d、会话密钥00060e3c5d2e03052a1b23353e4a332b之间的对应关系。
当下一个会话的会话生存期a2剩余1分钟时,设备A与设备B通过会话通道号1,再次进行预协商。设备A本次预协商的安全参数索引SPI为0x123c6e4a,设备A与设备B协商的会话密钥为2a0e3c4a22129c7a4c3e5e03123b4a6c。设备B反转会话标识变化值Δ,得到当前会话标识变化值Δ=1,最大会话通道数为2048,由此可以计算出逻辑隧道号=1*2048+1=2049。设备B存储逻辑隧道号1、安全参数索引SPI0x123c6e4a、会话密钥2a0e3c4a22129c7a4c3e5e03123b4a6c之间的对应关系。
图6是一个实施例的一种查找会话密钥的示意图。如图所示,设备A当前切换至某个会话密钥,该会话密钥对应的安全参数索引SPI为0x12345678。设备A向设备B提供安全参数索引SPI为0x12345678,设备B通过哈希队列存储有逻辑隧道号、安全参数索引SPI和会话密钥的对应关系。根据设备A提供的安全参数索引SPI“0x12345678”,即可确定对应的逻辑隧道号“1”,然后,根据逻辑隧道号“1”,即可查找到对应的会话密钥“1234abcdefghilmn6789aabbccddeeff”。
需要说明的是,图6所示的数据结构,用于表明逻辑隧道号、安全参数索引、会话密钥之间的对应关系,在实际应用中,会话密钥是存储在设备内存的一个分区中,而逻辑隧道号和安全参数索引则是存储在设备内存的另一个分区中。在查找会话密钥时,需要先查找安全参数索引所对应的逻辑隧道号,然后才根据逻辑隧道号查找相应的会话密钥。
应该理解的是,虽然图1和图4的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图1和图4中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
在一个实施例中,如图7所示,提供了一种密钥协商装置,包括:会话模块710、预协商模块720和记录模块730,其中:
会话模块710,用于与对端设备进行会话;
预协商模块720,用于在会话生存期结束之前,与所述对端设备进行预协商,得到会话密钥和所述对端设备的安全参数索引;
记录模块730,用于记录所述安全参数索引和所述会话密钥的对应关系,以在所述会话生存期结束之后、与所述对端设备进行会话时,根据所述对端设备的安全参数索引,查找对应的会话密钥。
根据本申请实施例提供的技术方案,通过在会话生存期结束之前,本端设备与对端设备进行预协商,得到会话密钥和所述对端设备的安全参数索引,并记录安全参数索引和会话密钥的对应关系,在会话生存期结束之后、与对端设备进行会话时,根据对端设备的安全参数索引查找对应的会话密钥,从而,无论对端设备是否切换至新的会话密钥,本端设备均可以与对端设备210保持会话密钥的一致性,避免了由于会话密钥切换不同步导致通信数据丢失的问题,提升了通信稳定性。
在另一个实施例中,所述记录模块730,包括:
生成子模块,用于生成逻辑隧道号;
第一关系记录子模块,用于记录所述逻辑隧道号与所述会话密钥的对应关系;
第二关系记录子模块,用于记录所述安全参数索引与所述逻辑隧道号的对应关系。
在另一个实施例中,所述生成子模块,包括:
确定单元,用于确定当前会话的会话通道号,以及,确定当前会话的当前会话标识变化值;
计算单元,用于计算所述当前会话标识变化值与预设的最大会话通道数的乘积,并计算所述乘积与所述会话通道号之和,得到所述逻辑隧道号。
在另一个实施例中,还包括:
隧道号查找模块,用于查找与所述安全参数索引对应的所述逻辑隧道号;
会话密钥查找模块,用于查找与所述逻辑隧道号对应的所述会话密钥;
会话模块,用于采用所述会话密钥,与所述对端设备进行会话。
在另一个实施例中,所述确定单元,具体用于:
确定上一次会话的历史会话标识变化值;确定所述当前会话标识变化值;所述当前会话标识变化值的数值与所述历史会话标识变化值的数值不相同。
在另一个实施例中,还包括:
计时模块,用于在所述会话生存期结束之后,设定密钥销毁时间,并开始计时;
销毁模块,用于当到达所述密钥销毁时间,销毁所述逻辑隧道号对应的会话密钥
关于密钥协商装置的具体限定可以参见上文中对于密钥协商方法的限定,在此不再赘述。上述密钥协商装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
上述提供的密钥协商装置可用于执行上述任意实施例提供的密钥协商方法,具备相应的功能和有益效果。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是终端,其内部结构图可以如图8所示。该计算机设备包括通过系统总线连接的处理器、存储器、网络接口、显示屏和输入装置。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统和计算机程序。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种空气传感器的室内定位方法。该计算机设备的显示屏可以是液晶显示屏或者电子墨水显示屏,该计算机设备的输入装置可以是显示屏上覆盖的触摸层,也可以是计算机设备外壳上设置的按键、轨迹球或触控板,还可以是外接的键盘、触控板或鼠标等。
本领域技术人员可以理解,图8中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现以下步骤:
与对端设备进行会话;
在会话生存期结束之前,与所述对端设备进行预协商,得到会话密钥和所述对端设备的安全参数索引;
记录所述安全参数索引和所述会话密钥的对应关系,以在所述会话生存期结束之后、与所述对端设备进行会话时,根据所述对端设备的安全参数索引,查找对应的会话密钥。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:
生成逻辑隧道号;
记录所述逻辑隧道号与所述会话密钥的对应关系;
记录所述安全参数索引与所述逻辑隧道号的对应关系。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:
确定当前会话的会话通道号,以及,确定当前会话的当前会话标识变化值;
计算所述当前会话标识变化值与预设的最大会话通道数的乘积,并计算所述乘积与所述会话通道号之和,得到所述逻辑隧道号。
在一个实施例中,在所述会话生存期结束之后,当所述对端设备通过所述安全参数索引发起发话时,处理器执行计算机程序时还实现以下步骤:
查找与所述安全参数索引对应的所述逻辑隧道号;
查找与所述逻辑隧道号对应的所述会话密钥;
采用所述会话密钥,与所述对端设备进行会话。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:
确定上一次会话的历史会话标识变化值;
确定所述当前会话标识变化值;所述当前会话标识变化值的数值与所述历史会话标识变化值的数值不相同。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:
在所述会话生存期结束之后,设定密钥销毁时间,并开始计时;
当到达所述密钥销毁时间,销毁所述逻辑隧道号对应的会话密钥。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:
与对端设备进行会话;
在会话生存期结束之前,与所述对端设备进行预协商,得到会话密钥和所述对端设备的安全参数索引;
记录所述安全参数索引和所述会话密钥的对应关系,以在所述会话生存期结束之后、与所述对端设备进行会话时,根据所述对端设备的安全参数索引,查找对应的会话密钥。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:
生成逻辑隧道号;
记录所述逻辑隧道号与所述会话密钥的对应关系;
记录所述安全参数索引与所述逻辑隧道号的对应关系。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:
确定当前会话的会话通道号,以及,确定当前会话的当前会话标识变化值;
计算所述当前会话标识变化值与预设的最大会话通道数的乘积,并计算所述乘积与所述会话通道号之和,得到所述逻辑隧道号。
在一个实施例中,在所述会话生存期结束之后,当所述对端设备通过所述安全参数索引发起发话时,计算机程序被处理器执行时还实现以下步骤:
查找与所述安全参数索引对应的所述逻辑隧道号;
查找与所述逻辑隧道号对应的所述会话密钥;
采用所述会话密钥,与所述对端设备进行会话。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:
确定上一次会话的历史会话标识变化值;
确定所述当前会话标识变化值;所述当前会话标识变化值的数值与所述历史会话标识变化值的数值不相同。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:
在所述会话生存期结束之后,设定密钥销毁时间,并开始计时;
当到达所述密钥销毁时间,销毁所述逻辑隧道号对应的会话密钥。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。