本技术涉及网络安全领域,尤其涉及一种基于vpp的国标ipsec vpn实现方法、装置、系统及电子设备。
背景技术:
1、ipsec(互联网安全协议,internet protocol security)作为一种开放标准的安全框架结构,可以用来保证ip数据报文在网络上传输的机密性、完整性和防重放。ipsec不是一个单独的协议,它通过ah(authentication header)和esp(encapsulating securitypayload)这两个安全协议来实现ip数据报文的安全传送,再通过ike(网络密钥交换协议,internet key exchange)协议提供密钥协商,建立和维护安全联盟/安全关联(sa,security association)等服务。
2、基于ipsec的ipsec vpn(internet protocol security virtual privatenetwork)技术具有在网络层灵活透明部署的优势,是普遍使用的主流vpn技术之一。ipsecvpn体系结构主要由ah、esp和ike协议套件组成。通常,ipsec vpn可通过linux内核协议栈和xfrm框架协同实现搭建。国密标准下,ipsec vpn需要使用国家商用密码进行加密和解密,比如ipsec vpn在安全连接建立阶段,需要调用国家商用密码中的sm2算法鉴别通信方身份与保护信息交换,但由于sm2运算基于gf(p)下椭圆曲线点运算,涉及运算密集的大数运算,因此通过软件实现sm2算法复杂并且效率较低。又由于xfrm框架处理esp报文或ah报文时,需调用linux内核中注册的加密算法实现对报文的加密与解密,从而引起linux内核的软中断。软中断期间不允许出现空等待时间,否则会导致内核崩溃,而调用硬件密码设备对报文进行加密和解密会出现空等待时间。因此,linux内核协议栈和xfrm框架协同实现的ipsec vpn只能在软件层面实现部分国家商用密码算法,无法使用硬件密码设备对报文进行加密和解密。
3、因此,如何在ipsec vpn中调用硬件密码设备实现国家商用密码算法成为亟待解决的技术问题。
技术实现思路
1、本技术提供一种基于vpp的国标ipsec vpn实现方法、装置、系统及电子设备,用于解决在ipsec vpn中调用硬件密码设备的问题。
2、第一方面,本技术提供一种基于vpp的国标ipsec vpn实现方法,应用于linux系统的服务器,该方法包括:接收到第一发送设备发送的第一网络数据包,第一发送设备与服务器存在安全关联,第一网络数据包为ipsec vpn数据包,第一网络数据包的目的地址指向服务器,第一网络数据包的约定封装方式为基于esp协议和/或ah协议的封装方式,第一网络数据包的约定加密算法为包括在硬件密码设备上实现的国家商用密码算法,硬件密码设备与服务器通信连接,第一网络数据包对应的安全策略指示网络数据包为ipsec流量;基于vpp框架,按照约定封装方式、约定加密算法和约定密钥,对第一网络数据包进行解密和解封装,获得解封装数据包。
3、由上述技术方案可知,在本技术实施例提供的基于vpp的国标ipsec vpn实现方法中,本方法基于vpp框架,接收第一网络数据包,并对ipsec vpn传输的第一网络数据包进行解密和解封装。相比相近技术中,对数据包的解密和解封装都是通过linux内核协议栈进行处理,但由于linux内核协议栈处理数据包时存在软中断而无法调用硬件密码设备,本方法则将对数据包的解密和解封装放在了linux内核协议栈外的vpp框架中进行处理,从而在实现ipsec vpn时可以调用硬件密码设备。
4、在一种可能的实现方式中,在接收到第一发送设备发送的第一网络数据包之前,基于vpp的国标ipsec vpn实现方法还包括:接收到第一发送设备发送的第二网络数据包,第二网络数据包的目的地址指向服务器,第二网络数据包的目的端口指向预设端口;基于vpp框架,与第一发送设备基于网络密钥交换协议建立安全关联,并生成安全关联信息,安全关联信息包括约定封装方式、约定加密算法和约定密钥。
5、在一种可能的实现方式中,基于vpp框架,按照约定封装方式、约定加密算法和约定密钥,对第一网络数据包进行解密和解封装,获得解封装数据包,包括:基于vpp框架,将第一网络数据包发送到硬件密码设备的待处理数据包队列;基于vpp框架,接收到硬件密码设备发送的解封装数据包,解封装数据包为硬件密码设备基于约定封装方式、约定加密算法和约定密钥对待处理数据包队列中的第一网络数据包进行解封装和解密获得。
6、在一种可能的实现方式中,服务器的物理网口属于vpp框架所处的第一网络命名空间,服务器的linux内核协议栈属于第二网络命名空间;第一网络命名空间还包括虚拟主机接口和第一虚拟以太网设备,虚拟主机接口与物理网口桥接,虚拟主机接口与第一虚拟以太网设备通信连接;第二网络命名空间还包括第二虚拟以太网设备,第一虚拟以太网设备和第二虚拟以太网设备通信连接。
7、在一种可能的实现方式中,服务器的物理网口属于vpp框架所处的第一网络命名空间,服务器的linux内核协议栈属于第二网络命名空间;方法还包括:在第一网络命名空间中创建虚拟主机接口,并基于vpp框架桥接虚拟主机接口与服务器的物理网口;在第一网络命名空间创建第一虚拟以太网设备,在第二网络命名空间创建第二虚拟以太网设备,第一虚拟以太网设备与虚拟主机接口通信连接,第二虚拟以太网设备与第一虚拟以太网设备通信连接。
8、在一种可能的实现方式中,基于vpp的国标ipsec vpn实现方法还包括:接收到第二发送设备发送的第三网络数据包,第三网络数据包指示的目的地址为第二虚拟以太网设备;在第三网络数据包指示的目的地址为第二虚拟以太网设备的情况下,基于服务器的物理网口、虚拟主机接口、第一虚拟以太网设备和第二虚拟以太网设备的通信连接,将第三网络数据包发送至第二虚拟以太网设备所属的第二网络命名空间中,并通过linux内核协议栈转发给linux系统对应的应用进行处理。
9、在一种可能的实现方式中,基于vpp的国标ipsec vpn实现方法还包括:接收到第三发送设备发送的第四网络数据包,第四网络数据包的目的地址指向服务器,第四网络数据包的封装方式为基于esp协议和/或ah协议的封装方式,第三发送设备与服务器不存在安全关联;基于vpp框架,根据预设策略转发第四网络数据包。
10、在一种可能的实现方式中,基于vpp的国标ipsec vpn实现方法还包括:接收到第四发送设备发送的第五网络数据包,第五网络数据包为基于除约定封装方式封装以外的其他封装方式封装;基于vpp框架,将第五网络数据包转发至除ipsec vpn以外的虚拟网络的协议栈中处理。
11、在一种可能的实现方式中,基于vpp的国标ipsec vpn实现方法,还包括:接收到第五发送设备发送的第六网络数据包,第六网络数据包的目的地址不指向服务器;基于vpp框架,根据第六网络数据包的目的地址,转发网络数据包。
12、在一种可能的实现方式中,基于vpp的国标ipsec vpn实现方法,还包括:接收到第七网络数据包,第七网络数据包的目的地址指示的接收设备与服务器存在安全关联,第七网络数据包对应的安全策略指示第七网络数据包为ipsec流量;基于vpp框架,根据基于esp协议和/或ah协议的封装方式和国家商用密码算法,封装第七网络数据包;根据封装后的第七网络数据包的目的地址,基于vpp框架转发封装后的第七网络数据包。
13、第二方面,本技术提供一种基于vpp的国标ipsec vpn实现方法,应用于linux系统的服务器,包括:接收网络数据包,网络数据包的目的地址指示的接收设备与服务器存在安全关联,网络数据包对应的安全策略指示网络数据包为ipsec流量;基于vpp框架根据安全关联对应的封装方式、加密算法和密钥,封装网络数据包;安全关联对应的封装方式为基于esp协议和/或ah协议的封装方式,安全关联对应的加密算法为包括在硬件密码设备上实现的国家商用密码算法,硬件密码设备与服务器通信连接;根据封装后的网络数据包的目的地址,基于vpp框架转发封装后的网络数据包。
14、第三方面,本技术提供一种基于vpp的国标ipsec vpn实现装置,该基于vpp的国标ipsec vpn实现装置包括:数据包接收单元、解封装单元;数据包接收单元,用于接收到第一发送设备发送的第一网络数据包,发送设备与服务器存在安全关联,第一网络数据包为ipsec vpn数据包,第一网络数据包的目的地址指向服务器,第一网络数据包的约定封装方式为基于esp协议和/或ah协议的封装方式,第一网络数据包的约定加密算法为包括在硬件密码设备上实现的国家商用密码算法,硬件密码设备与服务器通信连接,第一网络数据包对应的安全策略指示网络数据包为ipsec流量;解封装单元,用于基于vpp框架,按照约定封装方式、约定加密算法和约定密钥,对第一网络数据包进行解密和解封装,获得解封装数据包。
15、在一种可能的实现方式中, 基于vpp的国标ipsec vpn实现装置还包括信息约定单元,用于在接收到第一发送设备发送的第一网络数据包之前,接收到第一发送设备发送的第二网络数据包,第二网络数据包的目的地址指向服务器,第二网络数据包的目的端口指向预设端口;基于vpp框架,与第一发送设备基于网络密钥交换协议建立安全关联,并生成安全关联信息,安全关联信息包括约定封装方式、约定加密算法和约定密钥。
16、在一种可能的实现方式中,解封装单元,具体用于基于vpp框架,将第一网络数据包发送到硬件密码设备的待处理数据包队列;基于vpp框架,接收到硬件密码设备发送的解封装数据包,解封装数据包为硬件密码设备基于约定封装方式、约定加密算法和约定密钥对待处理数据包队列中的第一网络数据包进行解封装和解密获得。
17、在一种可能的实现方式中,装置的物理网口属于vpp框架所处的第一网络命名空间,装置的linux内核协议栈属于第二网络命名空间;第一网络命名空间还包括虚拟主机接口和第一虚拟以太网设备,虚拟主机接口与物理网口桥接,虚拟主机接口与第一虚拟以太网设备通信连接;第二网络命名空间还包括第二虚拟以太网设备,第一虚拟以太网设备和第二虚拟以太网设备通信连接。
18、在一种可能的实现方式中,数据包接收单元,还用于接收到第二发送设备发送的第三网络数据包,第三网络数据包指示的目的地址为第二虚拟以太网设备。基于vpp的国标ipsec vpn实现装置还包括转发单元,转发单元用于在第三网络数据包指示的目的地址为第二虚拟以太网设备的情况下,基于装置的物理网口、虚拟主机接口、第一虚拟以太网设备和第二虚拟以太网设备的通信连接,将第三网络数据包发送至第二虚拟以太网设备所属的第二网络命名空间中,并通过linux内核协议栈转发给linux系统对应的应用进行处理。
19、在一种可能的实现方式中,数据包接收单元,还用于接收到第三发送设备发送的第四网络数据包,第四网络数据包的目的地址指向装置,第四网络数据包的封装方式为基于esp协议和/或ah协议的封装方式,第三发送设备与装置不存在安全关联;转发单元,还用于基于vpp框架,根据预设策略转发第四网络数据包。
20、在一种可能的实现方式中,数据包接收单元,还用于接收到第四发送设备发送的第五网络数据包,第五网络数据包为基于除约定封装方式封装以外的其他封装方式封装;基于vpp框架,将第五网络数据包转发至除ipsec vpn以外的虚拟网络的协议栈中处理。
21、在一种可能的实现方式中,数据包接收单元,还用于接收到第五发送设备发送的第六网络数据包,第六网络数据包的目的地址不指向装置;转发单元,还用于基于vpp框架,根据第六网络数据包的目的地址,转发网络数据包。
22、在一种可能的实现方式中,数据包接收单元,还用于接收到第七网络数据包,第七网络数据包的目的地址指示的接收设备与服务器存在安全关联,第七网络数据包对应的安全策略指示第七网络数据包为ipsec流量;基于vpp的国标ipsec vpn实现装置还包括封装单元,封装单元用于基于vpp框架,根据基于esp协议和/或ah协议的封装方式和国家商用密码算法,封装第七网络数据包;转发单元,还用于根据封装后的第七网络数据包的目的地址,基于vpp框架转发封装后的第七网络数据包。
23、第四方面,本技术提供一种基于vpp的国标ipsec vpn实现装置,包括:数据包接收单元、封装单元和转发单元;数据包接收单元,用于接收网络数据包,网络数据包的目的地址指示的接收设备与服务器存在安全关联,网络数据包对应的安全策略指示网络数据包为ipsec流量;封装单元,用于基于vpp框架根据安全关联对应的封装方式、加密算法和密钥,封装网络数据包;安全关联对应的封装方式为基于esp协议和/或ah协议的封装方式,安全关联对应的加密算法为包括在硬件密码设备上实现的国家商用密码算法,硬件密码设备与装置通信连接;转发单元,用于根据封装后的网络数据包的目的地址,基于vpp框架转发封装后的网络数据包。
24、第五方面,本技术提供一种基于vpp的国标ipsec vpn实现系统,包括:发送设备、第一服务器、第二服务器和硬件密码设备;发送设备与第一服务器存在安全关联,第一服务器与第二服务器存在安全关联;第一服务器和第二服务器上搭载linux系统;发送设备,用于基于vpp框架,向第一服务器发送原始网络数据包,原始网络数据包为ipsec流量;第一服务器,用于基于vpp框架,根据安全关联对应的约定封装方式、约定加密算法和约定密钥,封装原始网络数据包,得到第一网络数据包;以及,根据第一网络数据包的目的地址,基于vpp框架转发第一网络数据包至第二服务器;约定封装方式为基于esp协议和/或ah协议的封装方式,约定加密算法包括在硬件密码设备上实现的国家商用密码算法;第二服务器,用于接收第一网络数据包,基于vpp框架,按照约定封装方式、约定加密算法和约定密钥,对第一网络数据包进行解密和解封装,获得解封装数据包。
25、第六方面,本技术实施例提供一种电子设备,包括:存储器和处理器;存储器和处理器耦合;存储器用于存储计算机程序代码,计算机程序代码包括计算机指令;其中,当处理器执行计算机指令时,使得电子设备执行如第一方面及其任一种可能的设计方式的基于vpp的国标ipsec vpn实现方法。
26、第七方面,本技术提供一种计算机可读存储介质,该计算机可读存储介质包括:计算机软件指令;当计算机软件指令在基于vpp的国标ipsec vpn实现装置中运行时,使得基于vpp的国标ipsec vpn实现装置实现上述第一方面的方法。
27、第八方面,本技术提供一种计算机程序产品,当该计算机程序产品在基于vpp的国标ipsec vpn实现装置上运行时,使得基于vpp的国标ipsec vpn实现装置执行上述第一方面描述的相关方法的步骤,以实现上述第一方面的方法。
28、上述第二方面至第八方面的有益效果可以参考第一方面的对应描述,不再赘述。