CN107612899B - 一种基于量子密钥的OpenVPN安全通信方法和通信系统 - Google Patents
一种基于量子密钥的OpenVPN安全通信方法和通信系统 Download PDFInfo
- Publication number
- CN107612899B CN107612899B CN201710805350.9A CN201710805350A CN107612899B CN 107612899 B CN107612899 B CN 107612899B CN 201710805350 A CN201710805350 A CN 201710805350A CN 107612899 B CN107612899 B CN 107612899B
- Authority
- CN
- China
- Prior art keywords
- quantum
- openvpn
- key
- server
- authentication
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Landscapes
- Mobile Radio Communication Systems (AREA)
- Computer And Data Communications (AREA)
Abstract
本发明公开了一种基于量子密钥的OpenVPN安全通信方法的通信系统,本发明通信方法实施在作为OpenVPN网络通信双方的服务器和至少一个客户端之间,本发明通信系统,包括分别作为OpenVPN网络通信方的服务器和至少一个客户端,通信双方分别匹配有一量子设备,通信双方的量子设备中存储相应的量子密钥,用以通信双方之间进行身份认证以及数据加密传输。本发明充分利用量子密钥和量子分配网络优点,实现了OpenVPN系统扩展使用量子密钥作为认证密钥和会话密钥,且会话密钥更新频率高,极大地提高了现有OpenVPN的安全通信性能。
Description
技术领域
本发明涉及应用层互联网安全协议的虚拟专用网(OpenVPN),尤其涉及一种一种基于量子密钥的OpenVPN安全通信方法和通信系统。
背景技术
随着科技的进步,远程通信安全成为厄待解决的问题,虚拟专用网络(VPN)是一种在公共通信基础网络上通过逻辑方式隔离出来的网络,其效果相当于在广域网络中建立一条虚拟专用线路,从而保证通信安全。
OpenVPN是一个基于OpenSSL库的应用层VPN实现。和传统VPN相比,它的优点是简单易用。OpenVPN提供了多种身份验证方式,用以确认参与连接双方的身份,包括:第三方证书,用户名/密码组合及预享私钥。基于PKI的第三方证书提供了最完善的功能,但是需要额外的精力去维护一个PKI证书体系。OpenVPN2.0后引入了用户名/口令组合的身份验证方式,它可以省略客户端证书,但是仍有一份服务器证书需要被用作加密。预享密钥最为简单,但同时它只能用于建立点对点的VPN,且目前预享密钥采用基于经典算法的加密方式,这种加密的保密程度依赖于算法的复杂性,随着当代计算能力的不断提供以及未来量子计算机的出现,其安全性受到严重的威胁。
申请号为201310373510.9的发明专利申请公开了一种电网SSLVPN中密钥更新和使用的方法,采用基于DH、RSA算法的经典的加密方式,这种加密的保密程度依赖于算法的复杂性,随着当代计算能力的不断提高以及未来量子计算机的出现,其安全性受到严重的威胁。SSLVPN比较适合用于移动用户的远程接入(Client-Site),对(Client-Client)模式支持不够好。
现有的OpenVPN协议中,客户端与服务器、客户端与客户端之间的交互都采用基于算法的经典的加密方式,这种加密的保密程度依赖于算法的复杂性,随着当代计算能力的不断提供以及未来量子计算机的出现,其安全性受到严重的威胁。
发明内容
本发明提供一种基于量子密钥的OpenVPN安全通信方法,充分利用量子密钥和量子分配网络优点,实现了OpenVPN系统扩展使用量子密钥作为认证密钥和会话密钥,且会话密钥更新频率高,极大地提高了现有OpenVPN的安全通信性能。另外也相应的对OpenVPN的认证与密钥协商协议进行扩展,
本发明提供一种基于量子密钥的OpenVPN安全通信方法,实施在作为OpenVPN网络通信双方的服务器和至少一个客户端之间,通信双方分别匹配有一量子设备,通信双方的量子设备中存储相应的量子密钥,用以通信双方之间进行身份认证以及数据加密传输。
本发明还提供一种基于量子密钥的OpenVPN安全通信系统,包括分别作为OpenVPN网络通信方的服务器和至少一个客户端,通信双方分别匹配有一量子设备,通信双方的量子设备中存储相应的量子密钥,用以通信双方之间进行身份认证以及数据加密传输。
本发明中,通信双方分别匹配有一量子设备,在OpenVPN系统部署和数据传输中,通信双方可从所匹配的量子设备中获得相应的量子密钥(例如采用对称加密方式,两量子密钥存储有相同的量子密钥,分别用于数据的加、解密),实现相互认证或加密传输。
作为OpenVPN网络通信双方的服务器和客户端,也可分别成为OpenVPN服务器和OpenVPN客户端。
作为优选,通信双方分别匹配的量子设备之间通过QKD方式获得相应的量子密钥。
QKD是现有常用的量子密钥分发方式,通信双方的量子设备之间通过量子网络实现量子密钥的分配。
作为优选,通信双方分别匹配的量子设备中,所述客户端配置的量子设备为量子密钥卡,所述服务器配置的量子设备生成量子随机数并分发至所述量子密钥卡,使两量子设备中存储有相应的量子密钥。
量子密钥卡方便携带或移动,可以从服务器配置的量子设备中通过通过安全的物理连接,下载相应的量子密钥,当然该量子密钥在服务器配置的量子设备也有留存。
通信双方在通过数据通道进行数据加密传输前,还进行初始化、握手认证、以及部署控制通道和数据通道。
作为优选,通信双方分别进行初始化时,与己方所匹配的量子设备完成相互认证。
例如服务器匹配的量子设备为量子密钥管理服务器,初始化时服务器接受来自客户端的HARD_RESET消息,初始化来自量子密钥管理服务器密钥,忘记以前的状态,服务器还向量子密钥管理服务器发起认证,获取量子密钥管理服务器ID;
同理,例如客户端匹配的量子设备为量子密钥管理终端,初始化时客户端接受来自服务器的HARD_RESET消息,初始化来自量子密钥管理终端的密钥,忘记以前的状态;还向量子密钥管理终端发起认证,获取量子密钥管理终端ID、量子密钥管理服务器ID等。
作为优选,通信双方在握手认证时,采用基于量子密钥的单向或双向挑战应答认证。
本发明与现有OpenVPN的认证方式不同,采用单向或双向挑战应答认证,优选采用双向挑战应答认证,不仅如此在认证过程中也采用了所匹配量子设备提供的量子密钥。
作为优选,基于量子密钥进行挑战应答认证时包括:
请求方和认证方交互第一量子随机数和第二量子随机数;
请求方和认证方在各自匹配的量子设备中,分别利用第一量子随机数和第二量子随机数结合自身所存储的且与对方相应的量子密钥生成认证口令;
认证方通过对比两个认证口令是否相同进行认证。
作为优选,第一量子随机数由请求方匹配的量子设备提供,第二量子随机数由认证方匹配的量子设备提供,各量子设备中先利用第一量子随机数结合自身所存储的量子密钥运算生成认证密钥,再利用第二量子随机数和认证密钥运算生成所述认证口令。
通信双方在握手认证时,扩展原OpenVPN标准TLS/SSL握手协议,使用基于一次性动态量子密钥的对称加密算法单/双向挑战应答认证,验证身份的合法性以及最终为OpenVPN的密钥协商建立一条安全的加密通道做好准备。
作为优选,通信双方在握手认证时,对量子密钥和加密套件进行协商,还利用协商好的量子密钥和加密套件对双方交互的握手消息进行比较,以验证协商是否成功。
在握手的最后阶段,
客户端计算已交互的握手消息的Hash值,利用协商好的量子密钥和加密套件处理Hash值(计算并添加MAC值、加密等),并通过Finished消息发送给服务器。服务器利用同样的方法计算已交互的握手消息的Hash值,并与Finished消息的解密结果比较,如果二者相同,且MAC值验证成功,则证明密钥和加密套件协商成功。
同理,服务器计算已交互的握手消息的Hash值,利用协商好的量子密钥和加密套件处理Hash值(计算并添加MAC值、加密等),并通过Finished消息发送给客户端。客户端利用同样的方法计算已交互的握手消息的Hash值,并与Finished消息的解密结果比较,如果二者相同,且MAC值验证成功,则证明密钥和加密套件协商成功。
部署控制通道时,通信双方依据协商好的加密套件,相应的交互量子密钥的使用方式。
而现有技术部署控制通道时,通信双方交互密钥参数然后各自生成密钥。而本发明由于在各自的量子设备中以存储有量子密钥,无需另外生成因此在部署控制通道时,相应的交互量子密钥的使用方式,例如之前协商采用“一次一密”、“定数据报更新”、“定时更新”、“重协商更新”中的一种进行加密传输,那么在部署控制通道时根据选定的方式交互量子密钥的使用方式以及相关参数。
本发明利用量子密钥分发技术和一次性动态量子密钥的对称加密算法单/双向挑战应答认证方法,扩展OpenVPN应用层虚拟专用网协议,通信系统具有量子无条件安全,可以抵御黑客攻击,保证VPN网络的安全性。在当前量子网络设备尚未大规模部署的情况下,可在网络应用层使用量子密钥。
附图说明
图1为本发明通信方法的流程示意图;
图2为实施例1中通信系统的结构示意图;
图3为实施例1中ApplicationData消息的数据结构示意图;
图4为实施例1中采用一次一密方式时,ApplicationData消息的数据结构示意图;
图5为实施例2中通信系统的结构示意图;
图6为实施例2中ApplicationData消息的数据结构示意图。
具体实施方式
实施例1
参见图1,本实施例中一种基于量子密钥的OpenVPN安全通信系统包括一个服务器(图中的OpenVPN服务器)和一个以上客户端(OpenVPN客户端1~OpenVPN客户端n);
多个量子集控站通过量子网络相连,其中一量子集控站配置有量子密钥管理服务器,服务器配置在业务服务端,并与该量子密钥管理服务器相连,量子密钥管理服务器向服务器提供所需的量子密钥。
客户端配置在相应的用户端,并且分别与一量子终端相连,各个量子终端也接入其中一量子集控站,经由量子网络,各个量子终端可以与量子密钥管理服务器通信,进行量子密钥分发等操作。
服务器配置在业务服务端,和各客户端则通过经典网络通信,传输数据等。
结合图2本实施例中一种基于量子密钥的OpenVPN安全通信方法包括:
阶段1.OpenVPN连接初始化
服务器接受来自客户端的HARD_RESET消息,初始化来自量子密钥管理服务器密钥,忘记以前的状态,向量子密钥管理服务器发起认证,获取量子密钥管理服务器ID;
客户端接受来自服务器的HARD_RESET消息,初始化来自量子密钥管理终端的密钥,忘记以前的状态;向量子终端发起认证,获取量子终端ID。
阶段2.OpenVPN握手认证
以下通过客户端与服务器之间消息的交互来说明,包括:
ClientHello
客户端发送ClientHello消息,通常是握手过程中的第一条消息,用于告知服务器,客户端所支持的密码套件(包括加密算法、密钥交换算法、MAC算法等信息)种类、最高SSL/TLS协议版本以及压缩算法;ClientHello中还包含一个量子随机数RANDc,RANDc由4个字节的当前GMT UNIX时间以及28个随机选择的字节组成,共32字节。RANDc会在密钥生成过程中被使用;另外,ClientHello中还可能包含客户端支持的TLS扩展。
作为一次性动态量子密钥双向挑战应答认证的扩展,SSL/TLS协议版本号升版;RANDc可以使用由量子终端生产且长度可扩展,做为客户端对服务器的“挑战”;密码套件新增一次性动态量子密钥双向挑战应答认证定义;TLS扩展字段增加量子密钥管理终端ID或量子密钥卡ID、安全属性等定义。
ServerHello
服务器对接收到ClientHello的量子终端ID进行判断,是否为所属终端。若是则通知量子密钥管理服务器,使能QKD设备在两者之间分配预取量的密钥,同时进行后续ServerHello消息交换;否则不予回复。
服务器返回ServerHello时,会从客户端在ClientHello中提供的密码套件、SSL/TLS版本、压缩算法列表里选择它所支持的项,并把它的选择包含在ServerHello中告知客户端;接下来SSL协议的建立就基于服务器选择的密码套件类型、SSL/TLS协议版本以及压缩算法;ServerHello中同样会包含一个量子随机数RANDs,同样4+28字节类型,由服务器生成。
RANDs由QKD设备生产,通过量子密钥管理服务器获取且长度可扩展,做为服务器对客户端的“挑战”。
TLS扩展字段增加量子密钥管理服务器ID。
ServerKeyExchange
这条消息包含的数据与所选用的密钥交换算法有关。
作为一次性动态量子密钥双向挑战应答认证的扩展,数据为密文“认证口令”,做为服务端对客户端的“应答”,生成过程如下:
a.服务器认证密钥生成:量子密钥管理服务器利用密钥生成算法FK和RANDs,对量子密钥管理服务器内QKD设备分配预取量的密钥集合KK作用生成密钥Ks;
密钥生成算法FK的思路是输入RANDs,利用RANDs的特点,从预取量的密钥集合KK中选取元素并进行适当排列和算法运算,输出认证密钥Ks。
b.服务认证口令生成与发送:量子密钥管理服务器利用随机数RANDc和密钥Ks进行认证函数FR的运算生成认证口令Cs,将认证口令Cs密文作为ServerKeyExchange消息的数据,发送到给用户端。
c.用户认证密钥生成:客户端接收到ServerKeyExchange消息后,解析出用户发送的认证口令Cs,量子终端调用相应的QKD分配预取量的密钥集合KK',利用密钥生成算法FK'和RANDs,对密钥集合KK'作用生成密钥Ks'。
d.用户认证口令生成:RANDc和密钥Ks'进行认证函数FR'的运算生成认证口令Cs'。
e.对比口令与认证反馈:用户将认证口令Cs和认证口令Cs'进行比较,如果相同则认证该用户身份合法,则授权;如果不同则认证失败,拒绝该用户的访问。
ServerHelloDone
服务器发送这条消息表明服务器部分的密钥交换信息已经发送完了,等待客户端的消息以继续接下来的步骤。这条消息只用作提醒,不包含数据域。
ClientKeyExchange
这条消息包含的数据与所选用的密钥交换算法有关。
作为一次性动态量子密钥双向挑战应答认证的扩展,数据为密文“认证口令”,做为客户端对服务端的“应答”,生成过程如下:
a.用户认证密钥生成:客户端收到ServerHelloDone消息后,量子终端利用密钥生成算法FK和RANDc,对量子终端内QKD设备分配的预取量的密钥集合KK作用生成认证密钥Kc;
密钥生成算法FK的思路是输入RANDc,利用RANDc的特点,从预取量的密钥集合KK中选取元素并进行适当排列和算法运算,输出认证密钥Kc。
b.用户认证口令生成与发送:量子终端利用RANDs和认证密钥Kc进行认证函数FR的运算生成认证口令Cc,将认证口令Cc密文作为ClientKeyExchange消息的数据,发送到给服务器。
c.服务器认证密钥生成:服务器接收ClientKeyExchange消息后,解析出用户发送的认证口令Cc,根据量子终端ID,在站内调用量子密钥管理服务器相应的QKD设备分配的预取量的密钥集合KK',利用密钥生成算法FK'和RANDc,对密钥集合KK'作用生成认证密钥Kc'。
d.服务器认证口令生成:RANDs和认证密钥Kc'进行认证函数FR'的运算生成认证口令Cc'。
e.对比口令与认证反馈:服务器将认证口令Cc和认证口令Cc'进行比较,如果相同则认证该用户身份合法,则授权;如果不同则认证失败,拒绝该用户的访问。
ChangeCipherSpec
通知服务器后续报文将采用协商好的密钥和加密套件进行加密和MAC计算。
Finished
表明握手阶段结束。
客户端计算已交互的握手消息(除Change Cipher Spec消息外所有已交互的消息)的Hash值,利用量子密钥分配网络中量子终端和量子密钥管理服务器协商好的量子密钥和加密套件处理Hash值(计算并添加MAC值、加密等),并通过Finished消息发送给服务器。服务器利用同样的方法计算已交互的握手消息的Hash值,并与Finished消息的解密结果比较,如果二者相同,且MAC值验证成功,则证明密钥和加密套件协商成功。
ChangeCipherSpec
通知客户端后续报文将采用协商好的密钥和加密套件进行加密和MAC计算。
Finished
表明握手阶段结束。
服务器计算已交互的握手消息的Hash值,利用量子密钥分配网络中量子终端和量子密钥管理服务器协商好的量子密钥和加密套件处理Hash值(计算并添加MAC值、加密等),并通过Finished消息发送给客户端。客户端利用同样的方法计算已交互的握手消息的Hash值,并与Finished消息的解密结果比较,如果二者相同,且MAC值验证成功,则证明密钥和加密套件协商成功。
阶段3.OpenVPN密钥协商
在阶段2的ClientHello消息与ServerHello消息安全能力协商中的“密码套件”,扩展量子密钥协商方法。
为适应不同的使用场景,新定义“一次一密”、“定数据报更新”、“定时更新”、“重协商更新”等方式扩展OpenVPN控制通道的安全策略和数据通道的密钥。
阶段2完成认证后,TSL/SSL记录协议之上运行量子加密ApplicationData消息,用于传递安全策略、数据通道密钥规则参数。
ApplicationData消息格式如图3所示,ApplicationData以4个字节的0开始,跟着是一个字节的“密钥方法域”。这个密钥方法域作为对量子密钥的扩展,添加一次一密、定数据报更新、定时更新、更多的方法。
密钥方法参数,因密钥方法不同而异,具体报文格式下面接着介绍。
选项字符串长度域包含了不定长数据选项字符串的长度。对端节点之间使用选项字符串来判别双方的配置是否一致。
用户名长度域包含了不定长的用户名域的长度。相似的,密钥长度域包含了不定长的密钥域的长度。用户名和密钥用在OpenVPN运行在HTTP代理,而代理需要认证的情况。这些域可选,并且只在使用HTTP代理的时候使用。
以下根据不同方式分别介绍ApplicationData消息具体格式。
一次一密方式
通过ApplicationData消息传递加密和MAC使用量子密钥的规则及参数,消息数据报文格式如图4,此时密钥方法参数域为“量子密钥长度域”,两个字节,为0时表示加密数据与量子秘钥等长,这种适用于密钥生成速度不小于数据发送速度的情况;量子密钥长度域可以根据密钥生成速度、安全需求,选择适当的量子密钥种子长度,用于数据加密或HMAC认证。
定数据更新方式
通过ApplicationData消息传递数据包更新规则及参数、加密和MAC使用量子密钥的规则及参数;
消息格式见下表:
此时密钥方法参数域包括“数据计数类型域和数据包数量域”。计数类型高4位标识数据包计数方向。分为客户端到服务器方向、服务器到客户端方向、双向三种,选择一种参与计数;低4位选择按数据流量计数还是数据包个数计数。当指定方向的数据包,达到数据数量域中的数目时,VPN客户端与VPN服务器同时更新数据加密与HMAC认证的量子密钥。
定时更新方式
通过ApplicationData消息传递密钥生成周期(更新频率)等规则及参数、加密和MAC使用量子密钥的规则及参数;
消息格式见下表:
此时密钥方法参数域包括“计时类型域和数量域”。计时类型高4位标识时间同步服务器,来确定时间的基准;计时类型低4位,时间精度单位,如1us、10us、1ms、100ms。当参考指定时钟同步服务器,达到时间数量中指定的时间周期时,VPN客户端与VPN服务器同时更新数据加密与HMAC认证的量子密钥。
重协商更新方式
通过ApplicationData消息传递加密和MAC使用量子密钥的规则及参数。
消息格式见下表:
此时密钥方法参数域包括“发起类型域”。发起类型域来标识,由服务器、客户端或任意一方发起重协商。
阶段4.OpenVPN配置协商以及策略推送
此阶段的目的是为数据通道的部署做准备,主要内容是配置协商、策略推送,须为量子密钥的使用做扩展。
上表为建立数据通道的部署配置参数一个实例。PUSH_REPLY是消息名,包括拓扑类型、路由网段、ping包周期、网络通断检查阈值、虚拟网卡IP、对端IP、对端ID.等。
实施例2
参见图5,本实施例中一种基于量子密钥的OpenVPN安全通信系统包括一个服务器和一个以上客户端;
多个量子网络服务站(图中仅示意其中一个)通过量子网络相连,量子网络服务站内设有量子服务中心和量子密钥分发设备,两量子网络服务站之间通过量子密钥分发设备可实现站间密钥的共享。
量子网络服务站内还设有量子随机数发生器,所产生的量子随机数由量子密钥管理服务器存储和管理,
服务器(图中的OpenVPN服务器)配置在业务服务端,并与该量子密钥管理服务器相连,量子密钥管理服务器向服务器提供所需的量子密钥。
客户端(图中的OpenVPN客户端1~OpenVPN客户端n)配置在相应的用户端,并且使用时分别匹配有量子密钥卡,量子密钥卡可以通过量子密钥管理服务器获得量子随机数,即在量子密钥管理服务器与量子密钥卡之间完成相应量子密钥的分发。
服务器和各客户端则通过经典网络通信,传输数据等。
本实施例中一种基于量子密钥的OpenVPN安全通信方法包括:
阶段1.OpenVPN连接初始化
服务器接受来自客户端的HARD_RESET消息,初始化来自量子密钥管理服务器密钥,忘记以前的状态,向其提供服务的量子密钥管理服务器发起认证,获取量子密钥管理服务器ID;
客户端接受来自服务器的HARD_RESET消息,初始化来自量子密钥卡的密钥,忘记以前的状态;向其提供服务的量子密钥卡发起认证,获取量子密钥卡ID、注册量子密钥卡的量子密钥管理服务器ID、量子密钥集ID等。
阶段2.OpenVPN握手认证
ClientHello
客户端发送ClientHello消息,用于告知服务器,客户端所支持的密码套件种类、最高SSL/TLS协议版本以及压缩算法。
ClientHello中还包含一个量子随机数RANDc,RANDc由4个字节的当前GMT UNIX时间以及28个随机选择的字节组成,共32字节。RANDc会在密钥生成过程中被使用。另外,ClientHello中还可能包含客户端支持的TLS扩展。SSL/TLS协议版本号升版做适当扩展;RANDc由客户端所匹配的量子密钥卡生产,量子随机数且长度可扩展,做为客户端对服务器的“挑战”;
密码套件新增一次性动态量子密钥双向挑战应答认证定义;密钥协商添加“定数据报更新”、“定时更新”、“重协商更新”;TLS扩展字段增加量子密钥卡ID、量子密钥管理服务器ID、量子密钥集ID。
ServerHello
服务器对接受到ClientHello的量子密钥卡ID进行判断,是否为所属终端。若是则进行后续ServerHello消息交换;否则不予回复;不同于QKD方式,此时量子密钥卡中的密钥是通过手动复制的,量子密钥卡和量子密钥管理服务器各保存一份;
ServerHello中同样会包含一个随机数,随机数RANDs由量子随机数发生器设备生产,通过量子密钥管理服务器获取且长度可扩展,做为服务器对客户端的“挑战”;
TLS扩展字段增加量子管理服务器ID。
ServerKeyExchange
这条消息包含的数据与所选用的密钥交换算法有关。
作为一次性动态量子密钥双向挑战应答认证的扩展,数据为密文“认证口令”,做为服务端对客户端的“应答”,生成过程如下:
a.服务器认证密钥生成:量子密钥管理服务器利用密钥生成算法FK和RANDs,对量子密钥管理服务器内量子密钥数据库中与量子密钥卡ID、量子密钥集ID相对应的密钥集合KK作用生成密钥Ks;
密钥生成算法FK的思路是输入RANDs,利用RANDs的特点,从预取量的密钥集合KK中选取元素并进行适当排列和算法运算,输出认证密钥Ks。
b.服务认证口令生成与发送:量子密钥管理服务器利用随机数RANDc和密钥Ks进行认证函数FR的运算生成认证口令Cs,将认证口令Cs密文作为ServerKeyExchange消息的数据,发送到给用户端。
c.用户认证密钥生成:客户端接收到ServerKeyExchange消息后,解析出用户发送的认证口令Cs,量子密钥卡调用与量子密钥管理服务器ID相对应的密钥集合KK',利用密钥生成算法FK'和RANDs,对密钥集合KK'作用生成密钥Ks'。
d.用户认证口令生成:RANDc和密钥Ks'进行认证函数FR'的运算生成认证口令Cs'。
e.对比口令与认证反馈:用户将认证口令Cs和认证口令Cs'进行比较,如果相同则认证该用户身份合法,则授权;如果不同则认证失败,拒绝该用户的访问。
ServerHelloDone
服务器发送这条消息表明服务器部分的密钥交换信息已经发送完了,等待客户端的消息以继续接下来的步骤。这条消息只用作提醒,不包含数据域。
ClientKeyExchange
这条消息包含的数据与所选用的密钥交换算法有关。
作为一次性动态量子密钥双向挑战应答认证的扩展,数据为密文“认证口令”,做为客户端对服务端的“应答”,生成过程如下:生成过程如下:
a.用户认证密钥生成:客户端接受到ServerHelloDone消息后,量子密钥卡利用密钥生成算法FK和RANDc,对量子密钥卡内与量子密钥管理服务器ID相对应的密钥集合KK作用生成密钥Kc;
密钥生成算法FK的思路是输入RANDc,利用RANDc的特点,从量子密钥管理服务器ID相对应的密钥集合KK中选取元素并进行适当排列和算法运算,输出认证密钥Kc。
b.用户认证口令生成与发送:量子密钥卡利用RANDs和密钥Kc进行认证函数FR的运算生成认证口令Cc,将认证口令Cc密文作为ClientKeyExchange消息的数据,发送到给服务器。
c.服务器认证密钥生成:服务器接收ClientKeyExchange消息后,解析出用户发送的认证口令Cc,根据量子密钥卡ID,在站内调用与该量子密钥卡ID、密钥集ID相对应的密钥集合KK',利用密钥生成算法FK'和RANDc,对密钥集合KK'作用生成密钥Kc'。
d.服务器认证口令生成:RANDs和密钥Kc'进行认证函数FR'的运算生成认证口令Cc'。
e.对比口令与认证反馈:服务器将认证口令Cc和认证口令Cc'进行比较,如果相同则认证该用户身份合法,则授权;如果不同则认证失败,拒绝该用户的访问。
ChangeCipherSpec
通知服务器后续报文将采用协商好的密钥和加密套件进行加密和MAC计算。
Finished
表明握手阶段结束。
客户端计算已交互的握手消息(除Change Cipher Spec消息外所有已交互的消息)的Hash值,利用量子密钥卡和量子密钥管理服务器协商好的量子密钥和加密套件处理Hash值(计算并添加MAC值、加密等),并通过Finished消息发送给服务器。服务器利用同样的方法计算已交互的握手消息的Hash值,并与Finished消息的解密结果比较,如果二者相同,且MAC值验证成功,则证明密钥和加密套件协商成功。
ChangeCipherSpec
通知客户端后续报文将采用协商好的密钥和加密套件进行加密和MAC计算。
Finished
表明握手阶段结束。
服务器计算已交互的握手消息的Hash值,利用量子密钥卡和量子密钥管理服务器协商好的量子密钥和加密套件处理Hash值(计算并添加MAC值、加密等),并通过Finished消息发送给客户端。客户端利用同样的方法计算已交互的握手消息的Hash值,并与Finished消息的解密结果比较,如果二者相同,且MAC值验证成功,则证明密钥和加密套件协商成功。
阶段3.OpenVPN密钥协商
在阶段2的ClientHello消息与ServerHello消息安全能力协商中的“密码套件”,扩展量子密钥协商方法。
为适应不同的使用场景,新定义“定数据报更新”、“定时更新”、“重协商更新”等方式扩展OpenVPN控制通道的安全策略和数据通道的密钥。
阶段2完成认证后,TSL/SSL记录协议之上运行量子加密ApplicationData消息,用于传递安全策略、数据通道密钥规则参数。ApplicationData消息格式如图6所示。
ApplicationData消息以4个字节的0开始,跟着是一个字节的“密钥方法域”。这个密钥方法域作为对量子密钥的扩展,添加定数据报更新、定时更新、更多的方法。
密钥方法参数,因密钥方法不同而异,具体报文格式下面接着介绍。
选项字符串长度域包含了不定长数据选项字符串的长度。对端节点之间使用选项字符串来判别双方的配置是否一致。
用户名长度域包含了不定长的用户名域的长度。相似的,密钥长度域包含了不定长的密钥域的长度。用户名和密钥用在OpenVPN运行在HTTP代理,而代理需要认证的情况。这些域可选,并且只在我们使用HTTP代理的时候使用。
定数据更新方式
通过ApplicationData消息传递数据包更新规则及参数、加密和MAC使用量子密钥的规则及参数;
消息格式见下表:
此时密钥方法参数域包括“数据计数类型域和数据包数量域”。计数类型高4位标识数据包计数方向。分为客户端到服务器方向、服务器到客户端方向、双向三种,选择一种参与计数;低4位选择按数据流量计数还是数据包个数计数。当指定方向的数据包,达到数据数量域中的数目时,VPN客户端与VPN服务器同时更新数据加密与HMAC认证的量子密钥。
定时更新方式
通过ApplicationData消息传递密钥生成周期(更新频率)等规则及参数、加密和MAC使用量子密钥的规则及参数;
消息格式见下表:
此时密钥方法参数域包括“计时类型域和数量域”。计时类型高4位标识时间同步服务器,来确定时间的基准;计时类型低4位,时间精度单位,如1us、10us、1ms、100ms。当参考指定时钟同步服务器,达到时间数量中指定的时间周期时,VPN客户端与VPN服务器同时更新数据加密与HMAC认证的量子密钥。
重协商更新方式
通过ApplicationData消息传递加密和MAC使用量子密钥的规则及参数。
消息格式见下表:
此时密钥方法参数域包括“发起类型域”。发起类型域来标识,由服务器、客户端或任意一方发起重协商。
阶段4.OpenVPN配置协商以及策略推送
此阶段的目的是为数据通道的部署做准备,主要内容是配置协商、策略推送,须为量子密钥的使用做扩展。
上表为建立数据通道的部署配置参数一个实例。PUSH_REPLY是消息名,包括拓扑类型、路由网段、ping包周期、网络通断检查阈值、虚拟网卡IP、对端IP、对端ID等。
以上公开的仅为本发明的实施例,但是本发明并非局限于此,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。显然这些改动和变型均应属于本发明要求的保护范围保护内。此外,尽管本说明书中使用了一些特定的术语,但这些术语只是为了方便说明,并不对本发明构成任何特殊限制。
Claims (4)
1.一种基于量子密钥的OpenVPN安全通信系统,包括分别作为OpenVPN网络通信方的OpenVPN服务器和至少一个OpenVPN客户端,其特征在于,通信双方分别匹配有一量子设备,通信双方的量子设备中存储相应的量子密钥,用以通信双方之间进行身份认证以及数据加密传输;
所述OpenVPN安全通信系统还包括通过量子网络相连的多个量子集控站,其中一量子集控站配置有量子密钥管理服务器,所述OpenVPN服务器匹配的量子设备为该量子密钥管理服务器;
所述OpenVPN客户端匹配的量子设备为一量子终端,所述量子终端也接入其中一量子集控站,经由量子网络,所述量子终端与所述量子密钥管理服务器通信以进行量子密钥分发;通信双方在通过数据通道进行数据加密传输前,还进行初始化、握手认证、以及部署控制通道和数据通道;部署控制通道时,通信双方依据协商好的加密套件,相应的交互量子密钥的使用方式;
在所述初始化时,OpenVPN服务器获得量子密钥管理服务器ID,所述OpenVPN客户端获得量子终端ID;在所述握手认证时采用双向挑战应答认证,包括:
OpenVPN客户端向OpenVPN服务器发送ClientHello消息,所述ClientHello消息中包含由所述量子终端生产的量子随机数RANDc,以及所述量子终端ID;
OpenVPN服务器接收所述ClientHello消息并对所述量子终端ID进行判断,若所述量子终端与所述量子密钥管理服务器归属于同一量子网络,则通知所述量子密钥管理服务器,使能量子密钥分发设备在所述量子终端与所述量子密钥管理服务器之间分配预取量的密钥;
OpenVPN服务器还向所述OpenVPN客户端返回ServerHello消息,所述ServerHello消息中包含由所述量子密钥分发设备生成的量子随机数RANDs;
所述量子密钥管理服务器利用所述量子随机数RANDs,从预取量的密钥集合KK中选取元素并进行排列和算法运算,输出密钥Ks,再利用所述量子随机数RANDc和所述密钥Ks进行运算生成认证口令Cs,将所述认证口令Cs以密文形式通过所述OpenVPN服务器作为ServerKeyExchange消息的数据发送到OpenVPN客户端;
所述OpenVPN客户端解析接收到的ServerKeyExchange消息得到所述认证口令Cs,所述量子终端利用所述量子随机数RANDs,从预取量的密钥集合KK'中选取元素并进行排列和算法运算,输出密钥Ks',再利用所述量子随机数RANDc和所述密钥Ks'进行运算生成认证口令Cs',所述OpenVPN客户端比较认证口令Cs和认证口令Cs'是否相同、以判断OpenVPN服务器的身份是否合法;
OpenVPN服务器挑战OpenVPN客户端成功后,所述量子终端利用所述量子随机数RANDc,从预取量的密钥集合KK中选取元素并进行排列和算法运算,输出密钥Kc,再利用所述量子随机数RANDs和所述密钥Kc进行运算生成认证口令Cc,将所述认证口令Cc以密文形式通过所述OpenVPN客户端作为ClientKeyExchange消息的数据发送到OpenVPN服务器;
所述OpenVPN服务器解析接收到的ClientKeyExchange消息得到所述认证口令Cc,所述量子密钥管理服务器利用所述量子随机数RANDc,从预取量的密钥集合KK'中选取元素并进行排列和算法运算,输出密钥Kc',再利用所述量子随机数RANDs和所述密钥Kc'进行运算生成认证口令Cc',所述OpenVPN服务器比较认证口令Cc和认证口令Cc'是否相同、以判断OpenVPN客户端的身份是否合法。
2.如权利要求1所述的基于量子密钥的OpenVPN安全通信系统,其特征在于,通信双方分别进行初始化时,与己方所匹配的量子设备完成相互认证。
3.如权利要求1所述的基于量子密钥的OpenVPN安全通信系统,其特征在于,通信双方在握手认证时,对量子密钥和加密套件进行协商,还利用协商好的量子密钥和加密套件对双方交互的握手消息进行比较,以验证协商是否成功。
4.一种基于量子密钥的OpenVPN安全通信方法,实施在作为OpenVPN网络通信双方的OpenVPN服务器和至少一个OpenVPN客户端之间,其特征在于,通信双方分别匹配有一量子设备,通信双方的量子设备中存储相应的量子密钥,用以通信双方之间进行身份认证以及数据加密传输;
所述OpenVPN安全通信系统还包括通过量子网络相连的多个量子集控站,其中一量子集控站配置有量子密钥管理服务器,所述OpenVPN服务器匹配的量子设备为该量子密钥管理服务器;
所述OpenVPN客户端匹配的量子设备为一量子终端,所述量子终端也接入其中一量子集控站,经由量子网络,所述量子终端与所述量子密钥管理服务器通信以进行量子密钥分发;通信双方在通过数据通道进行数据加密传输前,还进行初始化、握手认证、以及部署控制通道和数据通道;
部署控制通道时,通信双方依据协商好的加密套件,相应的交互量子密钥的使用方式;
在所述初始化时,OpenVPN服务器获得量子密钥管理服务器ID,所述OpenVPN客户端获得量子终端ID;在所述握手认证时采用双向挑战应答认证,包括:
OpenVPN客户端向OpenVPN服务器发送ClientHello消息,所述ClientHello消息中包含由所述量子终端生产的量子随机数RANDc,以及所述量子终端ID;
OpenVPN服务器接收所述ClientHello消息并对所述量子终端ID进行判断,若所述量子终端与所述量子密钥管理服务器归属于同一量子网络,则通知所述量子密钥管理服务器,使能量子密钥分发设备在所述量子终端与所述量子密钥管理服务器之间分配预取量的密钥;
OpenVPN服务器还向所述OpenVPN客户端返回ServerHello消息,所述ServerHello消息中包含由所述量子密钥分发设备生成的量子随机数RANDs;
所述量子密钥管理服务器利用所述量子随机数RANDs,从预取量的密钥集合KK中选取元素并进行排列和算法运算,输出密钥Ks,再利用所述量子随机数RANDc和所述密钥Ks进行运算生成认证口令Cs,将所述认证口令Cs以密文形式通过所述OpenVPN服务器作为ServerKeyExchange消息的数据发送到OpenVPN客户端;
所述OpenVPN客户端解析接收到的ServerKeyExchange消息得到所述认证口令Cs,所述量子终端利用所述量子随机数RANDs,从预取量的密钥集合KK'中选取元素并进行排列和算法运算,输出密钥Ks',再利用所述量子随机数RANDc和所述密钥Ks'进行运算生成认证口令Cs',所述OpenVPN客户端比较认证口令Cs和认证口令Cs'是否相同、以判断OpenVPN服务器的身份是否合法;
OpenVPN服务器挑战OpenVPN客户端成功后,所述量子终端利用所述量子随机数RANDc,从预取量的密钥集合KK中选取元素并进行排列和算法运算,输出密钥Kc,再利用所述量子随机数RANDs和所述密钥Kc进行运算生成认证口令Cc,将所述认证口令Cc以密文形式通过所述OpenVPN客户端作为ClientKeyExchange消息的数据发送到OpenVPN服务器;
所述OpenVPN服务器解析接收到的ClientKeyExchange消息得到所述认证口令Cc,所述量子密钥管理服务器利用所述量子随机数RANDc,从预取量的密钥集合KK'中选取元素并进行排列和算法运算,输出密钥Kc',再利用所述量子随机数RANDs和所述密钥Kc'进行运算生成认证口令Cc',所述OpenVPN服务器比较认证口令Cc和认证口令Cc'是否相同、以判断OpenVPN客户端的身份是否合法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710805350.9A CN107612899B (zh) | 2017-09-08 | 2017-09-08 | 一种基于量子密钥的OpenVPN安全通信方法和通信系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710805350.9A CN107612899B (zh) | 2017-09-08 | 2017-09-08 | 一种基于量子密钥的OpenVPN安全通信方法和通信系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107612899A CN107612899A (zh) | 2018-01-19 |
CN107612899B true CN107612899B (zh) | 2020-08-11 |
Family
ID=61062726
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710805350.9A Active CN107612899B (zh) | 2017-09-08 | 2017-09-08 | 一种基于量子密钥的OpenVPN安全通信方法和通信系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107612899B (zh) |
Families Citing this family (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111756529B (zh) * | 2019-03-28 | 2023-05-19 | 广东国盾量子科技有限公司 | 一种量子会话密钥分发方法及系统 |
CN116886288A (zh) * | 2019-03-28 | 2023-10-13 | 广东国盾量子科技有限公司 | 一种量子会话密钥分发方法及装置 |
CN109981255B (zh) * | 2019-04-02 | 2022-06-14 | 如般量子科技有限公司 | 密钥池的更新方法和系统 |
CN110519222B (zh) * | 2019-07-12 | 2021-10-22 | 如般量子科技有限公司 | 基于一次性非对称密钥对和密钥卡的外网接入身份认证方法和系统 |
CN113014613B (zh) * | 2019-12-20 | 2022-10-11 | 北京华耀科技有限公司 | 一种基于tls1.3协议实现ssl卸载会话复用的数据传输系统及方法 |
JP7508589B2 (ja) * | 2020-05-15 | 2024-07-01 | ホアウェイ・テクノロジーズ・カンパニー・リミテッド | 通信方法及び通信装置 |
CN112765092A (zh) * | 2021-01-08 | 2021-05-07 | 北京虹信万达科技有限公司 | 一种基于信息系统运行的soc安全管理系统及方法 |
CN113595847B (zh) * | 2021-07-21 | 2023-04-07 | 上海淇玥信息技术有限公司 | 远程接入方法、系统、设备和介质 |
CN113572784A (zh) * | 2021-08-04 | 2021-10-29 | 神州数码系统集成服务有限公司 | Vpn用户身份认证方法及装置 |
CN113784298B (zh) * | 2021-09-16 | 2022-09-02 | 国科量子通信网络有限公司 | 基于量子密钥的北斗短报文的通信系统 |
CN114095183B (zh) * | 2022-01-23 | 2022-05-03 | 杭州字节信息技术有限公司 | 一种客户端双重认证方法、终端设备及存储介质 |
CN115801461B (zh) * | 2023-01-16 | 2023-04-18 | 合肥工业大学 | 一种用于车路云协同的车辆加密通信系统及方法 |
US12022012B1 (en) | 2023-01-16 | 2024-06-25 | Hefei University Of Technology | Systems and methods for vehicle encrypted communication for vehicle-road-cloud collaboration |
CN116743383B (zh) * | 2023-08-15 | 2023-10-27 | 湖南尚医康医疗科技有限公司 | 一种智慧医学信息加密方法及系统 |
CN118555133A (zh) * | 2024-07-25 | 2024-08-27 | 中电信量子信息科技集团有限公司 | 传输层安全协议的抗量子安全增强方法 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104660603A (zh) * | 2015-02-14 | 2015-05-27 | 山东量子科学技术研究院有限公司 | IPSec VPN中扩展使用量子密钥的方法及系统 |
CN106357649A (zh) * | 2016-09-23 | 2017-01-25 | 浙江神州量子网络科技有限公司 | 用户身份认证系统和方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050063547A1 (en) * | 2003-09-19 | 2005-03-24 | Audrius Berzanskis | Standards-compliant encryption with QKD |
-
2017
- 2017-09-08 CN CN201710805350.9A patent/CN107612899B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104660603A (zh) * | 2015-02-14 | 2015-05-27 | 山东量子科学技术研究院有限公司 | IPSec VPN中扩展使用量子密钥的方法及系统 |
CN106357649A (zh) * | 2016-09-23 | 2017-01-25 | 浙江神州量子网络科技有限公司 | 用户身份认证系统和方法 |
Also Published As
Publication number | Publication date |
---|---|
CN107612899A (zh) | 2018-01-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107612899B (zh) | 一种基于量子密钥的OpenVPN安全通信方法和通信系统 | |
US11588650B2 (en) | System and method for secure relayed communications from an implantable medical device | |
US10951423B2 (en) | System and method for distribution of identity based key material and certificate | |
EP3432532B1 (en) | Key distribution and authentication method, apparatus and system | |
JP5101620B2 (ja) | アドホックワイヤレスネットワークにおける認証キー材料のセキュリティ処理のための、セキュリティ方法およびセキュリティシステム | |
CN108599925B (zh) | 一种基于量子通信网络的改进型aka身份认证系统和方法 | |
CN111052672B (zh) | 无证书或预共享对称密钥的安全密钥传输协议 | |
CN106878016A (zh) | 数据发送、接收方法及装置 | |
CN111756530B (zh) | 量子服务移动引擎系统、网络架构及相关设备 | |
Pérez et al. | Application layer key establishment for end-to-end security in IoT | |
CN113364811B (zh) | 基于ike协议的网络层安全防护系统及方法 | |
JP2016526844A (ja) | 制約リソースデバイスのための鍵確立 | |
Sahmi et al. | MQTT-PRESENT: Approach to secure internet of things applications using MQTT protocol. | |
Lam et al. | Securing SDN southbound and data plane communication with IBC | |
CN111756528B (zh) | 一种量子会话密钥分发方法、装置及通信架构 | |
CN114765543B (zh) | 一种量子密码网络扩展设备的加密通信方法及系统 | |
CN107493294B (zh) | 一种基于非对称加密算法的ocf设备的安全接入与管理控制方法 | |
CN115459913A (zh) | 一种基于量子密钥云平台的链路透明加密方法及系统 | |
JP2010539839A (ja) | サーバ基盤移動インターネットプロトコルシステムにおけるセキュリティ方法 | |
CN108769988A (zh) | 一种基于802.1x的证书认证安全机制的本地mesh无线网络 | |
CN108259157B (zh) | 一种ike协商中身份认证的方法及网络设备 | |
EP3340530B1 (en) | Transport layer security (tls) based method to generate and use a unique persistent node identity, and corresponding client and server | |
Haj-Hassan et al. | Zero-touch mutual authentication scheme for 6TiSCH industrial IoT networks | |
CN114697039B (zh) | 量子密码网络扩展网络设备的身份认证方法和系统 | |
Dey et al. | An efficient dynamic key based eap authentication framework for future ieee 802.1 x wireless lans |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |