IPSec VPN中扩展使用量子密钥的方法及系统
技术领域
本发明涉及互联网安全协议的虚拟专用网(IPSec VPN),特别是提供了一种IPSecVPN中扩展使用量子密钥的方法、IPSec VPN网关、量子密钥管理终端以及IPSec VPN系统。
背景技术
互联网密钥交换(IKE)协议为IPSec VPN的安全通信提供密钥,其密钥交换过程分为两个阶段,如图1所示。其中在第一阶段交换中,发起方和响应方协商建立了一个互联网安全关联和密钥管理协议(ISAKMP)安全关联(SA),即ISAKMP SA,该SA是协商双方为建立IPSec SA而使用的共享策略和密钥,使用该SA保护IPSec SA的协商过程;在第二阶段交换中,通信双方使用第一阶段ISAKMP SA协商建立IPSec SA,该SA是为保护它们之间的数据通信而使用的共享策略和密钥。参见图1,整个协商过程为:
步骤1:ISAKMP SA阶段开始,发起方向响应方发送一个建议载荷,响应方在收到建议载荷之后回复发起方,表示自己接收发起方的建议,同时标明响应方的签名证书和加密证书;
步骤2:发起方和响应方交换身份认证和生成密钥的各种参数,包括身份标识(ID)、生成加密密钥和认证密钥的参数(Nonce)等参数,最终生成发起方和响应方的基本密钥参数SKEYID、ISAKMP SA用来验证其消息完整性以及数据源身份所使用的工作密钥SKEYID_a、ISAKMP SA用来保护其消息机密性所使用的工作密钥SKEYID_e和用于产生会话密钥的SKEYID_d;
步骤3:发起方和响应方认证上面的交换过程,传递的信息使用SKEYID_e加密,到此ISAKMP SA阶段结束;
步骤4:IPSec SA阶段开始,IPSec SA过程中使用ISAKMP SA阶段协商的安全策略和密钥进行保护,发起方向响应方发送信令,定义加密策略,使用工作密钥SKEYID_a;
步骤5:响应方向发起方回复信令,确认加密策略,使用工作密钥SKEYID_a;
步骤6:发起方向响应方发送信令,对步骤5和步骤6的交换过程进行认证,使用工作密钥SKEYID_a,到此会话密钥产生,由工作密钥SKEYID_d得到。
量子密钥分发(QKD)技术被看作是用于产生和共享密钥的有前途的技术。该技术基于“海森堡测不准原理”和“量子不可复制原理”,使用每比特单光子传输随机数,由此发送端和接收端能够产生并共享随机数密钥。原理上,对QKD过程的任何窃听都必然会被发现。以常用的光量子通信方案为例,量子信息由单光子的量子状态承载;而单光子是光能量变化的最小单元,也可以说是组成光的最基本单元,已不可再分,窃听者不能通过分割光子来窃听信息;“量子不可复制原理”决定了未知单光子状态不能被精确复制,因此窃听者也不能通过截获并复制光子状态来窃听信息;“海森堡测不准原理”则决定了对未知单光子状态的测量必然会对其状态产生扰动,通信者就可以利用这一点发现窃听。因此,QKD过程所产生的密钥具有理论上的无条件安全性。
标准的IKE协议是利用Diffie-Hellman密钥交换算法在IPSec通信双方之间直接协商安全策略、交换安全参数、验证双方身份以及生成共享的会话密钥。Diffie-Hellman密钥交换算法是一种基于“离散对数问题”的公共密钥算法,其安全性局限于当前的计算能力。随着高性能计算技术的发展,尤其是量子计算技术的逐步实用化,破解Diffie-Hellman算法将变得很容易,直接威胁到IPSec VPN的安全性。而且,现有技术中,通常在IPSec VPN的密钥交换协议里没有设计读取量子密钥的机制,又或者使用量子密钥参与第一阶段ISAKMP SA的协商过程,或者将量子密钥与IKE协商密钥相结合(例如,采用异或方式结合)后作为会话密钥,处理过程都比较复杂,使得第二阶段IPSec SA中会话密钥的更新频率难以得到有效提高,并且现有技术也未对IPSec VPN与量子设备间交互量子密钥的协商过程做出明确说明。
发明内容
为了克服上述现有技术的缺陷,本发明通过在IPSec VPN的密钥交换协议中加入获取量子密钥的机制,并通过设计IPSec VPN系统与量子设备间交互量子密钥的有效协商过程,实现了IPSec VPN系统扩展使用量子密钥作为会话密钥,且会话密钥更新频率高,极大地提高了现有IPSec VPN的安全通信性能。
本发明一方面提供一种在IPSec VPN系统中扩展使用量子密钥的方法,其中该IPSecVPN系统具有包括发起IPSec VPN网关和响应IPSec VPN网关在内的至少两个IPSecVPN网关、及对应的包括第一和第二量子密钥管理终端在内的至少两个量子密钥管理终端,该方法包括:
步骤1.发起和响应IPSec VPN网关进行ISAKMP SA协商,建立ISAKMP SA,该SA是网关间为建立IPSec SA而使用的共享策略和密钥;
步骤2.发起和响应IPSec VPN网关进行IPSec SA协商,建立IPSec SA,该SA是为保护网关间数据通信的安全而使用的共享策略和密钥,其中并行处理量子密钥和IKE协商密钥的协商,将量子密钥作为优先使用的第一会话密钥,IKE协商密钥作为第二会话密钥;而且,发起和响应IPSec VPN网关分别向第一和第二量子密钥管理终端获取所需的量子密钥;
步骤3.发起和响应IPSec VPN网关使用所建立的IPSec SA对用户数据加解密,进行安全通信。
优选地,发起和响应IPSec VPN网关进行ISAKMP SA协商前,分别向第一和第二量子密钥管理终端发送认证请求,与向其提供服务的量子密钥管理终端进行握手认证。
进一步地,发起和响应IPSec VPN网关分别向第一和第二量子密钥管理终端发送认证请求帧,第一和第二量子密钥管理终端分别回复认证响应帧给发起和响应IPSec VPN网关,如果认证成功,发起和响应IPSec VPN网关分别与第一和第二量子密钥管理终端建立对应关系。
进一步地,在握手认证之前,还包括发起和响应IPSec VPN网关、第一和第二量子密钥管理终端的初始化,该初始化包括:第一,对发起和响应IPSec VPN网关的设备参数进行页面配置,参数包括量子密钥更新频率、会话密钥源、IPSec生存周期、设备ID、隧道标识以 及IP地址;第二,对IPSec VPN网关与量子密钥管理终端间的物理连接进行确认。
优选地,所述步骤2中的量子密钥协商过程包括:发起和响应IPSec VPN网关协商确定参数配置,包括开始ID、目的ID、隧道标识、密钥使用方式、一次请求的密钥量;其中,所述开始ID和目的ID用于标识发起IPSec VPN网关对应的第一量子密钥管理终端和响应IPSec VPN网关对应的第二量子密钥管理终端间共享的量子密钥;发起和响应IPsec VPN网关根据协商的参数配置,分别向第一和第二量子密钥管理终端发送密钥请求以获取量子密钥。
进一步地,发起和响应IPSec VPN网关分别向第一和第二量子密钥管理终端发送密钥请求帧,该密钥请求帧中包括确定的参数配置。
进一步地,第一和第二量子密钥管理终端建立与隧道标识相对应的隧道缓存,用于分别缓存发起和响应IPSec VPN网关一次请求的量子密钥,同时第一和第二量子密钥管理终端回复密钥响应帧,当有足够的量子密钥时,密钥响应帧中的密钥数据为隧道缓存中的量子密钥;当没有足够的量子密钥时,密钥响应帧中的密钥数据为空。进一步地,发起和响应IPSec VPN网关分别建立与隧道标识相对应的隧道缓存,用于存放对应隧道所使用的量子密钥。
进一步地,当密钥响应帧中的密钥数据不为空时,发起和响应IPSec VPN网关将获取的量子密钥分别存入相应的隧道缓存,并对获取的量子密钥进行一致性校验,通过一致性校验的量子密钥将作为IPsec SA的第一会话密钥。
优选地,当第一会话密钥为空时,发起和响应IPSec VPN网关使用第二会话密钥进行安全通信。
进一步地,发起和响应IPSec VPN网关检查所建立的IPSec SA是否到期,如果未到期,则持续更新量子密钥,并保持IKE协商密钥不变;如果已到期,则清除自身的与该条隧道的隧道标识相应的隧道缓存,并分别向第一和第二量子密钥管理终端发送清除隧道缓存请求。
本发明第二方面提供一种IPSec VPN系统,该系统包括发起IPSec VPN网关和响应IPSec VPN网关在内的至少两个IPSec VPN网关,及对应的包括第一和第二量子密钥管理终端在内的至少两个量子密钥管理终端,其特征在于:
发起IPSec VPN网关,用于发起与响应IPSec VPN网关的ISAKMP SA协商和IPSecSA协商,其中并行处理量子密钥和IKE协商密钥的协商,并根据协商参数向第一量子密钥管理终端请求并获取量子密钥,将量子密钥作为优先使用的第一会话密钥,IKE协商密钥作为第二会话密钥;
响应IPSec VPN网关,用于响应发起IPSec VPN网关发起的ISAKMP SA协商和IPSecSA协商,其中并行处理量子密钥和IKE协商密钥的协商,并根据协商参数向第二量子密钥管理终端请求并获取量子密钥,将量子密钥作为优先使用的第一会话密钥,IKE协商密钥作为第二会话密钥;
第一量子密钥管理终端,用于缓存管理供给发起IPSec VPN网关的量子密钥;
第二量子密钥管理终端,用于缓存管理供给响应IPSec VPN网关的量子密钥;
发起和响应IPSec VPN网关使用所建立的IPSec SA对用户数据加解密,进行安全通信。
优选地,发起和响应IPSec VPN网关进行ISAKMP SA协商之前,分别向第一和第二量子密钥管理终端发送认证请求,与向其提供服务的量子密钥管理终端进行握手认证。
进一步地,发起和响应IPSec VPN网关分别向第一和第二量子密钥管理终端发送认证请求帧,第一和第二量子密钥管理终端分别回复认证响应帧给发起和响应IPSec VPN网关,如果认证成功,发起和响应IPSec VPN网关分别与第一和第二量子密钥管理终端建立对应关系。
进一步地,在握手认证之前,还包括发起和响应IPSec VPN网关、第一和第二量子密钥 管理终端的初始化,该初始化包括:第一,对发起和响应IPSec VPN网关的设备参数进行页面配置,参数包括量子密钥更新频率、会话密钥源、IPSec生存周期、设备ID、隧道标识以及IP地址;第二,对IPSec VPN网关与量子密钥管理终端间的物理连接进行确认。
优选地,量子密钥的协商过程包括:发起和响应IPSec VPN网关协商确定参数配置,包括开始ID、目的ID、隧道标识、密钥使用方式、一次请求的密钥量;其中,所述开始ID和目的ID用于标识发起IPSec VPN网关对应的第一量子密钥管理终端和响应IPSec VPN网关对应的第二量子密钥管理终端间共享的量子密钥;发起和响应IPSec VPN网关根据协商的参数配置,分别向第一和第二量子密钥管理终端发送密钥请求以获取量子密钥。
进一步地,发起和响应IPSec VPN网关分别向第一和第二量子密钥管理终端发送密钥请求帧,该密钥请求帧中包括确定的参数配置。
进一步地,第一和第二量子密钥管理终端建立与隧道标识相对应的隧道缓存,用于分别缓存发起和响应IPSec VPN网关一次请求的量子密钥,同时第一和第二量子密钥管理终端回复密钥响应帧,当有足够的量子密钥时,密钥响应帧中的密钥数据为隧道缓存中的量子密钥;当没有足够的量子密钥时,密钥响应帧中的密钥数据为空。
进一步地,发起和响应IPSec VPN网关分别建立与隧道标识相对应的隧道缓存,用于存放对应隧道所使用的量子密钥。
进一步地,当密钥响应帧中的密钥数据不为空时,发起和响应IPSec VPN网关将获取的量子密钥分别存入相应的隧道缓存,并对获取的量子密钥进行一致性校验,通过一致性校验的量子密钥将作为IPsec SA的第一会话密钥。
优选地,当第一会话密钥为空时,发起和响应IPSec VPN网关使用第二会话密钥进行安全通信。
进一步地,发起和响应IPSec VPN网关检查所建立的IPSec SA是否到期,如果未到期,则持续更新量子密钥,并保持IKE协商密钥不变;如果已到期,则清除自身的与该条隧道的隧道标识相应的隧道缓存,并分别向第一和第二量子密钥管理终端发送清除隧道缓存请求。
本发明第三方面提供一种IPSec VPN网关,用于在IPSec VPN系统中与其他至少一个IPSec VPN网关之间扩展使用量子密钥,该IPSec VPN网关包括:
密钥协商IKE模块,用于与其他至少一个IPSec VPN网关进行传统IKE密钥协商以及扩展使用量子密钥时的相关参数协商,其中并行处理量子密钥和IKE协商密钥的协商,将量子密钥作为优先使用的第一会话密钥,IKE协商密钥作为第二会话密钥,并将所建立的IPSec SA发送到IPSec协议栈模块;
量子密钥交互模块,用于根据所述协商参数向量子密钥管理终端请求并获取量子密钥;
IPSec协议栈模块,用于接收密钥协商IKE模块发送的IPSec SA,实现发起和响应IPSec VPN网关间对用户通信数据的加解密。
优选地,所述IPSec VPN网关还包括:初始化模块,用于对IPSec VPN网关进行页面配置和物理连接确认的初始化工作;所述页面配置的参数包括量子密钥更新频率、会话密钥源、IPSec生存周期、设备ID、隧道标识以及IP地址。
进一步地,所述IPSec VPN网关还包括:认证模块,用于根据初始化模块的配置,向对应的量子密钥管理终端发送认证请求帧,并接收来自对应的量子密钥管理终端的认证响应帧,实现与对应的量子密钥管理终端间的握手认证。
进一步地,所述IPSec VPN网关还包括:缓存模块,用于根据隧道标识建立相应的隧道缓存,以缓存量子密钥交互模块所获取的量子密钥,并将量子密钥发送到密钥协商IKE模块,密钥协商IKE模块进行密钥的完整性校验,并将通过校验的量子密钥用作会话密钥。
优选地,所述协商参数包括开始ID、目的ID、隧道标识、密钥使用方式、一次请求的密钥量;其中,所述开始ID和目的ID用于标识发起IPSec VPN网关对应的量子密钥管理终端和响应IPSec VPN网关对应的量子密钥管理终端间共享的量子密钥。
本发明第四方面提供一种量子密钥管理终端,用于提供在IPSec VPN系统中的至少两个IPSec VPN网关之间扩展使用的量子密钥,其中在IPSec VPN网关中具有两种会话密钥源,量子密钥作为优先使用的第一会话密钥,该量子密钥管理终端包括:
输出缓存模块,用于将接收缓存模块发送的量子密钥进行缓存,并将量子密钥发送到量子密钥交互模块;
量子密钥交互模块,用于接收对应的IPSec VPN网关发送的密钥请求,从输出缓存模块中获取量子密钥,实现向IPSec VPN网关的量子密钥输出;
接收缓存模块,用于对QKD系统发送的量子密钥进行缓存管理,根据对应的IPSecVPN网关的密钥需求,将相应数量的量子密钥发送到输出缓存模块。
优选地,所述量子密钥管理终端还包括:初始化模块,用于对量子密钥管理终端进行物理连接确认的初始化工作。
进一步地,所述量子密钥管理终端还包括:认证模块,用于接收对应的IPSec VPN网关发送的认证请求帧,并回复认证响应帧,实现与IPSec VPN网关间的握手认证。
优选地,所述输出缓存模块根据IPSec VPN网关间协商的隧道标识建立与隧道标识对应的隧道缓存。
本发明在兼容原有IPSec协议的基础上,使传统的IPSec SA具有量子密钥和传统IKE协商密钥两种会话密钥源,会话密钥结构新颖,并且优先使用量子密钥作为会话密钥源,极大地提升了会话密钥的更新频率,可达到300次/min,远远大于传统IPSec SA中的会话密钥更新速率,便于实现一次一密。
本发明优先使用具有较高更新频率的量子密钥直接作为会话密钥,若量子密钥为空,则使用IKE协商密钥,不降低原有系统的安全性,且能很好地保持业务数据传输的连续性;此种处理机制快捷高效,既保证了通信的高安全性,又能使得会话密钥以较高的频率更新,密 钥更新频率的提高反过来又进一步提高了通信的安全性,两者相辅相成。
进一步地,本发明IPSec SA协商过程中,通过协商量子设备ID能够保证发送和响应端共享量子密钥的一致性,实现了量子密钥的准确获取;同时,通过在发送和响应端建立与隧道标识对应的隧道缓存,保证了IPSec VPN间多条隧道并行处理的高效性,多条隧道都能够快速获取量子密钥,且每条隧道都有相应的IPSec SA与之对应;再有,通过协商一次请求的密钥量,能够保证双方间量子密钥的获取以及通信数据的高安全保密传输的持续性。
附图说明
图1是现有技术的IPSec VPN密钥交换协商过程的流程图;
图2是本发明实施例提供的IPSec VPN网络系统结构图;
图3是本发明实施例提供的在IPSec VPN中支持量子密钥作为会话密钥的方法的流程图;
图4是本发明实施例提供的IPSec VPN网关初始化流程示意图;
图5是本发明实施例提供的IPSec VPN网关与量子密钥管理终端进行物理连接确认过程的示意图;
图6是本发明实施例提供的认证请求帧帧结构的示意图;
图7是本发明实施例提供的认证响应帧帧结构的示意图;
图8是本发明实施例提供的密钥请求帧帧结构的示意图;
图9是本发明实施例提供的密钥响应帧帧结构的示意图;
图10是本发明实施例提供的清除隧道缓存请求帧帧结构的示意图;
图11是本发明实施例提供的清除隧道缓存响应帧帧结构的示意图;
图12是本发明实施例提供的IPSec VPN系统结构框图;
图12a,12b是本发明实施例提供的IPSec VPN网关的示意图;
图13a,13b是本发明实施例提供的量子密钥管理终端的示意图。
具体实施方式
为了使本发明的实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施方式,都属于本发明保护的范围。
图2示例性地给出了本发明所涉及的网络结构,即由多个(图中为三个)包含IPSecVPN网关的内网组成的网络系统,多个内网之间通过量子网络和经典网络相连。每个内网包括一个IPSec VPN网关、一个量子密钥管理终端和一个量子密钥分配(QKD)系统,QKD系统之间通过量子网络生成量子密钥。具体的,在图2中,有三个内网,内网1包括一个IPSec VPN网关-1、一个量子密钥管理终端-1和一个QKD系统-1,内网2包括一个IPSec VPN网关-2、一个量子密钥管理终端-2和一个QKD系统-2,内网3包括一个IPSec VPN网关-3、一个量子密钥管理终端-3和一个QKD系统-3。QKD系统-1、QKD系统-2和QKD系统-3之间通过量子网络生成量子密钥。
目前,基于量子密钥分配技术已能搭建大规模的量子网络,比如通过量子集控站、光交换机和量子通信服务器可实现多个量子密钥收发终端(即QKD系统)间量子密钥的分配,在本发明中,可以通过上述量子网络生成量子密钥,也可以采用其他形式的量子网络生成量子密钥,对此,本发明不做任何限制。
QKD系统生成的量子密钥通过本地连接注入到量子密钥管理终端中,量子密钥管理终端对量子密钥进行缓存管理,此时,所述量子密钥管理终端与所述QKD系统是彼此独立的,需要说明的是,所述量子密钥管理终端也可以集成在所述QKD系统中,对此,本发明不做任何限制。
IPSec VPN网关向与其相连的量子密钥管理终端请求并接收量子密钥,该量子密钥可用 于IPSec VPN网关之间的会话密钥。利用该网络系统可实现IPSec VPN网关扩展使用量子密钥,不同内网中的IPSec VPN网关之间通过经典网络相连,在隧道模式下实现不同内网之间用户通信数据的高安全保密传输。
下面实施例将主要以包括两个IPSec VPN网关(即发起和响应IPSec VPN网关),以及分别向发起和响应IPSec VPN网关提供服务的两个量子密钥管理终端(即第一和第二量子密钥管理终端)的IPSec VPN系统为例进行说明,但是本领域技术人员应当明了,这不是对本发明的限制,该系统可以包括多个IPSec VPN网关和多个量子密钥管理终端。
另外,QKD系统之间、QKD系统与量子密钥管理终端之间的通信过程,独立于量子密钥管理终端与IPSec VPN网关之间的通信过程,且不是本专利的重点所在。
实施例一
参见图3,本发明实施例提供一种在IPSec VPN中支持量子密钥作为会话密钥的方法,其中包括发起IPSec VPN网关、响应IPSec VPN网关、第一量子密钥管理终端和第二量子密钥管理终端,该方法包括:
步骤1.发起和响应IPSec VPN网关进行ISAKMP SA协商,建立ISAKMP SA,该SA是网关间为建立IPSec SA而使用的共享策略和密钥;
步骤2.发起和响应IPSec VPN网关进行IPSec SA协商,建立IPSec SA,该SA是为保护网关间数据通信的安全而使用的共享策略和密钥,其中并行处理量子密钥和IKE协商密钥的协商,将量子密钥作为优先使用的第一会话密钥,IKE协商密钥作为第二会话密钥;而且,发起和响应IPSec VPN网关分别向第一和第二量子密钥管理终端获取所需的量子密钥;
步骤3.发起和响应IPSec VPN网关使用所建立的IPSec SA对用户数据加解密,进行安全通信。
优选地,发起和响应IPSec VPN网关进行ISAKMP SA协商前,分别向第一和第二量子密钥管理终端发送认证请求,与向其提供服务的量子密钥管理终端进行握手认证。
下面将具体描述本实施例的上述方法步骤:
步骤1.发起和响应IPSec VPN网关进行ISAKMP SA协商,建立ISAKMP SA,该SA是网关间为建立IPSec SA而使用的共享策略和密钥。
发起IPSec VPN网关与响应IPSec VPN网关开始密钥协商过程,双方进行第一阶段ISAKMP SA协商,与传统IPSec VPN间第一阶段ISAKMP SA的协商过程无区别,这是本领域技术人员所知的。
优选地,发起和响应IPSec VPN网关在进行ISAKMP SA协商之前,分别向第一和第二量子密钥管理终端发送认证请求帧,与向其提供服务的量子密钥管理终端进行握手认证。第一量子密钥管理终端回复认证响应帧给发起IPSec VPN网关,如果认证成功,发起IPSec VPN网关与第一量子密钥管理终端建立对应关系。同样地,第二量子密钥管理终端回复认证响应帧给响应IPSec VPN网关,如果认证成功,响应IPSec VPN网关与第二量子密钥管理终端建立对应关系。
其中认证请求帧和认证响应帧的帧结构如图6和图7所示,认证请求/响应帧包括帧头、载荷长度、公有信息和私有信息,各部分功能描述如下:
(1)下一个载荷:1个字节,该部分与保留字节一起构成帧头,标识了本载荷后下一个载荷的类型,如果当前载荷是最后一个,则该字段将被置为0;
(2)保留:1个字节,值为0;
(3)载荷长度:2个字节,以字节为单位标明包含载荷头在内的整个载荷长度;
(4)消息类型:主要用于标识该消息是加密消息还是不加密消息;
(5)命令字:具体的命令字,标识消息的目的是什么,具有很好的扩展性;
(6)消息发送端设备信息:包含应用类型(如:01表示VPN型应用,02表示密钥管理型应用)、设备类型(如:01表示IPSec VPN网关,02表示量子密钥管理终端)、厂家标识(如:01表示某VPN设备公司,02表示某量子设备公司)、设备ID(如:VPN网关的设 备ID为00000001,量子设备ID为00000002);
其中消息类型、命令字和消息发送端设备信息共同构成了公有信息;
(7)私有信息:在认证请求帧中,指身份认证信息;在认证响应帧中,用于标识认证是否成功。
需要说明的是,在量子密钥管理终端或具有量子密钥管理功能的QKD系统中,通常以量子设备ID来标识两个量子密钥管理终端或两个QKD系统间共享的量子密钥。例如,第一和第二量子密钥管理终端间共享的量子密钥,在第一量子密钥管理终端中是以第二量子密钥管理终端的设备ID来标识的,而在第二量子密钥管理终端中是以第一量子密钥管理终端的设备ID来标识的。由于设备ID是设备的唯一标识,因此通过设备ID能够使IPSec VPN网关与量子设备在握手认证成功后建立对应关系,并保证发起和响应IPSec VPN网关后续所获取的量子密钥的一致性。而且,优选地,在握手认证之前,还包括发起和响应IPSec VPN网关、第一和第二量子密钥管理终端的初始化。IPSec VPN网关和量子密钥管理终端的初始化主要包括两个步骤,即对IPSec VPN网关的设备参数进行页面配置、对IPSec VPN网关与量子密钥管理终端间的物理连接进行确认,如图4所示。
A.确保第一量子密钥管理终端、发起IPSec VPN网关各自的物理连接正常,对发起IPSec VPN网关进行页面配置,包括量子密钥更新频率、会话密钥源(优选第一密钥源为量子密钥、第二密钥源为IKE协商密钥)、IPSec生存周期、设备ID(包括IPSec VPN网关的设备ID,以及向其提供服务的量子密钥管理终端的设备ID或称量子设备ID)、隧道标识(即隧道名称或隧道ID,每条隧道都有唯一的隧道标识)、IP地址等参数;第二量子密钥管理终端与响应IPSec VPN网关也进行类似的初始化过程,这里不再赘述。
B.发起IPSec VPN网关与第一量子密钥管理终端进行物理连接确认,如图5所示。由发起IPSec VPN网关发送hello消息给第一量子密钥管理终端,若收到第一量子密钥管理终端回复的ACK消息,则双方物理连接正常,此时发起IPSec VPN网关与第一量子密钥管理终端已完成物理连接确认,但并未进行握手认证。响应IPSec VPN网关与第二量子密钥管理终端也完成类似的操作。
IPSec VPN网关一般使用隧道模式,隧道模式是封装、路由和解封装的过程。隧道将原始数据包封装在新的数据包内部,该新的数据包会有新的寻址与路由信息,使其能够通过网络传输。封装的数据包到达目的地后,会解封装,原始数据包头用于将数据包路由到最终的目的地。
IPSec VPN网关通信前,需要对隧道进行初始配置,此时隧道并未真正生效。隧道是逻辑上的概念,多条隧道可能复用同一条物理链路。上述页面配置过程中,应保证隧道两端的发起和响应IPSec VPN网关所设置的相关参数的一致性。
步骤2.发起和响应IPSec VPN网关进行IPSec SA协商,建立IPSec SA,该SA是为保护网关间数据通信的安全而使用的共享策略和密钥,其中并行处理量子密钥和IKE协商密钥的协商,将量子密钥作为优先使用的第一会话密钥,IKE协商密钥作为第二会话密钥。
发起IPSec VPN网关与响应IPSec VPN网关进行第二阶段IPSec SA协商,该过程包括两个异步过程,即并行处理两种会话密钥的协商过程,一种采用IKE协商密钥作为会话密钥,另一种采用量子密钥作为会话密钥,优选地,包括如下步骤:
步骤(2-1):双方进行传统IPSec VPN间的第二阶段IPSec SA的协商过程,生成用于IPSec SA的会话密钥,即作为第二会话密钥的IKE协商密钥。
步骤(2-2-1):双方协商确定开始ID(与发起IPSec VPN网关建立了对应关系的量子密钥管理终端的设备ID,通常为初始配置的量子设备ID)、目的ID(与响应IPSec VPN网关建立了对应关系的量子密钥管理终端的设备ID,通常为初始配置的量子设备ID)、隧道标识(即隧道名称或隧道ID,每条隧道都有唯一的隧道标识)、密钥使用方式(加密或解密)、一次请求的密钥量(根据初始配置的量子密钥更新频率确定),双方均根据隧道标识建立相应的隧道缓存。
两个IPSec VPN网关间的参数协商类似一个挑战-应答式过程,例如,发起IPSecVPN网关将开始ID(通常为发起IPSec VPN网关初始配置的量子设备ID,如:00000003)、隧道标识(如:123)、密钥使用方式(如:加密)、一次请求的密钥量(如:1K)发送到响应IPSecVPN网关;响应IPSec VPN网关将开始ID(00000003)、目的ID(通常为响应IPSec VPN网关初始配置的量子设备ID,如:00000004)、隧道标识(123)、密钥使用方式(加密)、一次请求的密钥量(1K)回复给发起IPSec VPN网关,则双方完成一次参数协商过程。发起和响应IPSecVPN网关均根据隧道标识建立相应的隧道缓存。
需要说明的是,每条隧道都有唯一的隧道标识,隧道标识是在初始化阶段配置的,IPSec VPN网关通信过程中不会自动更改。通过建立与隧道标识相对应的隧道缓存,能够保证在IPSec VPN网关间存在多条隧道时,多条隧道都能够快速获取量子密钥。
由于在量子密钥管理终端中,通常以量子设备ID来标识两个量子密钥管理终端间共享的量子密钥,因此IPSec VPN网关间通过协商相应的量子设备ID(即开始ID和目的ID),能够保证向相应的量子密钥管理终端获取所需的量子密钥的一致性。
一条隧道通常对应一对IPSec SA(流入和流出),IPSec VPN网关间通过协商密钥使用方式,能够保证所获取的量子密钥用于哪个IPSec SA。
量子密钥更新频率决定了IPSec SA中会话密钥的更新频率,除了受量子密钥生成速度影响外,很大程度上还依赖于会话密钥协商过程中的处理机制。如果量子密钥更新频率较高,则IPSec VPN网关一次获取的密钥量不应过大,因此IPSec VPN网关间通过协商一次请求的密钥量,能够保证双方间量子密钥的获取以及通信数据的高安全保密传输的持续性。
步骤(2-2-2):根据步骤(2-2-1)所确定的各参数,发起IPSec VPN网关向第一量子密钥管理终端发送密钥请求帧,响应IPSec VPN网关同时也向第二量子密钥管理终端发送密钥请求帧(如图8所示)。
步骤(2-2-3):与隧道标识相对应,第一量子密钥管理终端建立相应的隧道缓存,用于缓存发起IPSec VPN网关一次请求的量子密钥。根据开始ID、目的ID,如果第一量子密钥管理终端中相应的量子密钥量不少于发起IPSec VPN网关的一次请求的密钥量,则根据一次请求的密钥量,将相应数量的共享量子密钥发送到与隧道标识相应的隧道缓存,并回复发起IPSec VPN网关密钥响应帧(如图9所示),其中密钥数据为隧道缓存中的量子密钥;如果第一量子密钥管理终端中相应的量子密钥量小于发起IPSec VPN网关的一次请求的密钥量,则第一量子密钥管理终端回复发起IPSec VPN网关密钥响应帧(如图9所示),其中密钥数 据为空。第二量子密钥管理终端也进行上述类似的过程,并回复响应IPSec VPN网关密钥响应帧。
如图8和图9所示,密钥请求/响应帧的帧头、载荷长度、公有信息的各部分功能与认证请求/响应帧的相应部分的功能类似,私有信息中的各部分内容如下:
(1)开始ID、目的ID:通常情况下,分别指为发起和响应IPSec VPN网关初始配置的量子设备ID;在量子密钥管理终端中或具有量子密钥管理功能的QKD系统中,通常以量子设备ID来标识两个量子密钥管理终端或两个QKD系统间共享的量子密钥;
(2)隧道标识:即隧道名称或隧道ID,每条隧道都有唯一的隧道标识,与隧道模式下一对IPSec SA相对应,用作申请标识;与一个隧道标识相对应,IPSec VPN网关和量子密钥管理终端分别建立相应的隧道缓存,用于存放IPSec VPN网关一次请求的量子密钥;
(3)帧序号:用作IPSec VPN网关与量子密钥管理终端间的交互标识;
(4)密钥使用方式:用于标识密钥是“加密密钥”还是“解密密钥”;
(5)一次请求的密钥量:根据初始配置的量子密钥更新频率确定;
(6)密钥数据:实际输出的量子密钥。
步骤(2-2-4):若密钥响应帧中的密钥数据不为空,则发起IPSec VPN网关根据隧道标识,将获取的量子密钥存入相应的隧道缓存,并计算所获取量子密钥的数据完整性校验值(如MD5、SM3等),将该校验值发送到响应IPSec VPN网关;响应IPSec VPN网关根据隧道标识,将获取的量子密钥存入相应的隧道缓存,并计算所获取量子密钥的数据完整性校验值(与发起IPSec VPN网关的计算方法相同),将该校验值与发起IPSec VPN网关发送的校验值进行比较;若校验值一致,则将校验值一致的结果通知发起IPSec VPN网关,双方将所获取的量子密钥作为会话密钥,即作为IPSec SA的第一会话密钥;若校验值不一致,则将校验值不一致的结果通知发起IPSec VPN网关,双方抛弃所获取的量子密钥。
双方建立相应的IPSec SA,该IPSec SA含有两个会话密钥,将步骤(2-1)得到的IKE协商密钥作为第二会话密钥,将步骤(2-2-4)得到的量子密钥作为第一会话密钥,并将所建立的IPSec SA下发至内核;若所述步骤(2-2-4)中密钥响应帧中的密钥数据为空,或者校验值不一致,则第一会话密钥为空。上述会话密钥协商过程中,IPSec VPN网关时刻检查所 建立的IPSec SA是否已到期,并采取相应措施。例如,发起IPSec VPN网关检查某IPSecSA是否已到期(根据初始配置的IPSec生存周期确定),若未到期,则双方继续进行会话密钥协商过程;根据初始配置的量子密钥更新频率,若该IPSec SA未到期,则仍然按照步骤(2-2-1)到步骤(2-2-4)中的过程协商新的量子密钥,IKE协商密钥仍然使用上次通过步骤(2-1)协商的密钥。在一个IPSec生存周期内,IKE协商密钥不再更新,量子密钥以初始配置的量子密钥更新频率进行更新。
若该IPSec SA已到期,则发起IPSec VPN网关清除与该IPSec SA对应隧道的隧道标识相应的隧道缓存,并向第一量子密钥管理终端发送清除隧道缓存请求帧(如图10所示);响应IPSec VPN网关也进行类似的过程,并向第二量子密钥管理终端发送清除隧道缓存请求帧。第一量子密钥管理终端根据隧道标识,清除相应的隧道缓存,并回复发起IPSecVPN网关清除隧道缓存响应帧(如图11所示);第二量子密钥管理终端也进行类似的过程,并回复响应IPSec VPN网关清除隧道缓存响应帧。IPSec VPN网关间重新通过步骤2进行IPSecSA协商,为该条隧道建立相应的IPSec SA;IPSec SA的建立标志着该条隧道的生效。
图10和图11的清除隧道缓存请求帧/响应帧的结构中,私有信息包括:开始ID、目的ID、隧道标识、密钥使用方式、响应值。
步骤3.发起和响应IPSec VPN网关使用所建立的IPSec SA对用户数据加解密,进行安全通信。
本发明不改变SA表的尺寸,即不改变SA表中SA的数量,一条隧道仍对应一对IPSecSA(流入和流出),能够更好地兼容原有IPSec协议;同时,所述的IPSec SA的会话密钥结构新颖,每个SA中含有两种会话密钥源——量子密钥和IKE协商密钥,优先使用量子密钥直接作为会话密钥,IKE协商密钥为备用会话密钥。在一个IPSec生存周期内,IKE协商密钥不再更新,量子密钥以设定的密钥更新频率进行更新,即不断地有量子密钥作为会话密钥供IPSec SA使用,会话密钥在不断地更新。
本发明优先使用具有较高更新频率的量子密钥直接作为会话密钥,若量子密钥为空,则使用IKE协商密钥,不降低原有系统的安全性,且能很好地保持业务数据传输的连续性;此 种处理机制快捷高效,既保证了通信的高安全性,又能使得会话密钥以较高的频率更新,密钥更新频率的提高反过来又进一步提高了通信的安全性,两者相辅相成。
通过本实施例提供的在IPSec VPN网关中支持量子密钥作为会话密钥的方法,实现了将量子密钥优先作为第一会话密钥,增强了会话密钥的安全性,而且有效提高了会话密钥的更新频率。
实施例二
如图12所示,本发明实施例提供一种IPSec VPN系统,该系统包括发起IPSec VPN网关和响应IPSec VPN网关,第一量子密钥管理终端和第二量子密钥管理终端,其特征在于:
发起IPSec VPN网关,用于发起与响应IPSec VPN网关的ISAKMP SA协商和IPSecSA协商,其中并行处理量子密钥和IKE协商密钥的协商,并根据协商参数向第一量子密钥管理终端请求并获取量子密钥,将量子密钥作为优先使用的第一会话密钥,IKE协商密钥作为第二会话密钥;
响应IPSec VPN网关,用于响应发起IPSec VPN网关发起的ISAKMP SA协商和IPSecSA协商,其中并行处理量子密钥和IKE协商密钥的协商,并根据协商参数向第二量子密钥管理终端请求并获取量子密钥,将量子密钥作为优先使用的第一会话密钥,IKE协商密钥作为第二会话密钥;
第一量子密钥管理终端,用于缓存管理供给发起IPSec VPN网关的量子密钥;
第二量子密钥管理终端,用于缓存管理供给响应IPSec VPN网关的量子密钥;
发起和响应IPSec VPN网关使用所建立的IPSec SA对用户数据加解密,进行安全通信。
优选地,发起和响应IPSec VPN网关进行ISAKMP SA协商之前,分别向第一和第二量子密钥管理终端发送认证请求,与向其提供服务的量子密钥管理终端进行握手认证。
本发明一个实施例的IPSec VPN系统结构框图如图12所示,其中:
内网1与内网2分别通过发起IPSec VPN网关与响应IPSec VPN网关,在隧道模式下实现安全的加密通信,发起IPSec VPN网关、响应IPSec VPN网关在公网的对外IP分别为IP1、IP2;本领域技术人员知道,该IPSec VPN系统可以包括多个内网、多个IPSec VPN网关和多个量子密钥管理终端,如图2所示;
IPSec VPN网关使用两种密钥源——量子密钥和IKE协商密钥,且优选的第一密钥源为量子密钥;
QKD-1与QKD-2为量子密钥分发(QKD)系统,分别与第一量子密钥管理终端、第二量子密钥管理终端连接,两个QKD系统之间通过量子网络进行量子密钥分发,并将所生成的量子密钥发送到相应的量子密钥管理终端;
量子密钥管理终端将QKD系统发送的量子密钥进行缓存管理,并以量子设备ID作为标识,以便IPSec VPN网关能够根据量子设备ID获取相应的量子密钥。
对于发起IPSec VPN网关与响应IPSec VPN网关进行ISAKMP SA协商和IPSec SA协商的过程与实施例一中的相同,在这里不再赘述。而且,实施例一中的优选方式都可以应用于实施例二中。
实施例三
参见图12a,本发明实施例提供一种IPSec VPN网关,用于在IPSec VPN系统中与其他至少一个IPSec VPN网关之间扩展使用量子密钥,该IPSec VPN网关包括:
密钥协商IKE模块,用于与其他至少一个IPSec VPN网关进行传统IKE密钥协商以及扩展使用量子密钥时的相关参数协商,其中并行处理量子密钥和IKE协商密钥的协商,将量子密钥作为优先使用的第一会话密钥,IKE协商密钥作为第二会话密钥,并将所建立的IPSec SA发送到IPSec协议栈模块;
量子密钥交互模块,用于根据所述协商参数向量子密钥管理终端请求并获取量子密钥;
IPSec协议栈模块,用于接收密钥协商IKE模块发送的IPSec SA,实现发起和响应IPSec VPN网关间对用户通信数据的加解密。
优选地,IPSec VPN网关如图12b所示,进一步包括:
初始化模块,用于对IPSec VPN网关进行页面配置和物理连接确认等初始化工作,并对配置信息进行存储,可实现配置的显示、查询、添加、删除、导入、导出等。
进一步地,本发明的IPSec VPN网关还包括:
认证模块,用于根据初始化模块的配置,向对应的量子密钥管理终端发送认证请求帧,并接收量子密钥管理终端发送的认证响应帧,实现与对应的量子密钥管理终端间的握手认证。
进一步地,本发明的IPSec VPN网关还包括:
缓存模块,用于根据隧道标识建立相应的隧道缓存,以缓存量子密钥交互模块所获取的量子密钥,并将量子密钥发送到密钥协商IKE模块,以用作会话密钥。
另外,本发明的IPSec VPN网关还包括控制模块,用于IPSec VPN网关的内部功能控制。
进一步,所述页面配置的参数包括量子密钥更新频率、会话密钥源、IPSec生存周期、设备ID、隧道标识、IP地址等参数。
进一步,所述协商参数包括开始ID、目的ID、隧道标识、密钥使用方式、一次请求的密钥量,具体协商过程与实施例一中的过程相同,在这里不再赘述。
进一步,所述密钥协商IKE模块,接收缓存模块发送的量子密钥,进行密钥数据的完整性校验,将通过完整性校验的量子密钥作为会话密钥。
进一步,所述量子密钥交互模块根据所述协商参数向对应的量子密钥管理终端发送密钥请求帧、清除隧道缓存请求帧,接收量子密钥管理终端发送的密钥响应帧、清除隧道缓存响应帧。上述帧结构参见图8-11,具体描述参见实施例一的相关描述。
其中IPSec VPN网关初始化过程、握手认证的方式、量子密钥的传输、隧道缓存的处理机制等与实施例一中的相同,在这里不再赘述。
实施例四
参见图13a,本发明实施例提供一种量子密钥管理终端,用于提供在IPSec VPN系统中的至少两个IPSec VPN网关之间扩展使用的量子密钥,其中在IPSec VPN网关中具有两种会话密钥源,量子密钥作为优先使用的第一会话密钥,该量子密钥管理终端包括:
输出缓存模块,用于将接收缓存模块发送的量子密钥进行缓存,并将量子密钥发送到量子密钥交互模块;
量子密钥交互模块,用于接收对应的IPSec VPN网关发送的密钥请求,从输出缓存模块中获取量子密钥,实现向IPSec VPN网关的量子密钥输出;
接收缓存模块,用于对QKD系统发送的量子密钥进行缓存管理,根据对应的IPSecVPN网关的密钥需求,将相应数量的量子密钥发送到输出缓存模块。
优选地,参见图13b,量子密钥管理终端进一步包括如下模块:
初始化模块,用于对量子密钥管理终端进行物理连接确认等初始化工作。
进一步地,本发明的量子密钥管理终端还包括:
认证模块,用于接收对应的IPSec VPN网关发送的认证请求帧,并发送认证响应帧,实现与IPSec VPN网关间的握手认证。
另外,本发明的量子密钥管理终端还包括控制模块,用于量子密钥管理终端的内部功能控制。
进一步,所述输出缓存模块根据隧道标识建立相应的隧道缓存,将接收缓存模块发送的量子密钥进行缓存,并将量子密钥发送到量子密钥交互模块。
进一步,所述量子密钥交互模块接收对应的IPSec VPN网关发送的密钥请求帧、清除隧道缓存请求帧,向IPSec VPN网关发送密钥响应帧、清除隧道缓存响应帧。上述帧结构参见图8-11,具体描述参见实施例一的相关描述。
其中量子密钥管理终端的初始化过程、握手认证的方式、量子密钥的传输、隧道缓存的处理机制等与实施例一中的相同,在这里不再赘述。
本发明支持使用量子密钥代替传统IPSec SA中的会话密钥,量子密钥管理终端配合IPSec VPN可达到会话密钥更新频率为300次/min,远远大于传统IPSec SA中的会话密钥最快只有约每分钟一次的更新速率,如此高的密钥更新频率使得加密数据无法被破解,从而确保了使用IPSec VPN对数据进行加密传输的安全性。
以上对本发明实施例所提供的在IPSec VPN中支持量子密钥作为会话密钥的方法、 IPSec VPN网关、量子密钥管理终端以及IPSec VPN系统进行了详细介绍,但是以上实施例的说明只是用于帮助理解本发明的方法及其核心思想,不应理解为对本发明的限制。本技术领域的技术人员在本发明揭露的技术范围内,轻易想到的变化或者替换,都应涵盖在本发明的保护范围之内。。