掌桥专利:专业的专利平台
掌桥专利
首页

IPSec虚拟专用网客户端和方法

文献发布时间:2024-04-18 20:01:23


IPSec虚拟专用网客户端和方法

技术领域

本发明涉及计算机技术领域,尤其涉及一种IPSec虚拟专用网客户端和方法。

背景技术

随着信息国产化的越来越普遍,安全产品也需要越来越多的应用在国产化平台上,但是原来运行在Windows系统平台上的IPSec虚拟专用网(ipsec vpn)客户端在国产化平台上无法正常使用。为了适应信息国产化的需求,需要提供一种能够在国产化平台上使用的IPSec虚拟专用网客户端。

发明内容

本发明提供一种IPSec虚拟专用网客户端和方法,用以解决现有技术中IPSec虚拟专用网客户端在国产化平台上无法正常使用的缺陷。

本发明提供一种IPSec虚拟专用网客户端,包括:

用户交互模块,隧道协商模块和加密传输模块,

其中,所述用户交互模块用于提供客户端用户交互界面,以供用户在所述用户交互界面上对第一配置信息进行处理和/或执行第一操作;

所述隧道协商模块用于在协商的第一阶段,与防火墙协商出用于第一交互数据安全传输所采用的加密算法、认证算法和密钥,建立安全隧道,在协商的第二阶段,基于所述安全隧道,和防火墙协商出用于第二交互数据安全传输所采用的加密算法、认证算法和密钥,为IPSec协商安全服务建立IPSec安全联盟IPSec SA;

所述加密传输模块用于基于所述IPSec SA,对所述第二交互数据进行加密传输;

其中,所述第一交互数据包括:协商过程中用户认证的相关数据、从防火墙上获取到的配置信息,以及所述第二阶段的交互数据包;

所述第二交互数据为所述客户端访问保护子网的交互流量;

所述IPSec虚拟专用网客户端在国产系统下运行。

根据本发明提供的一种IPSec虚拟专用网客户端,所述用户交互模块和隧道协商模块采用跨平台的Qt技术实现。

根据本发明提供的一种IPSec虚拟专用网客户端,所述建立安全隧道,包括:

在协商的第一阶段之后和第二阶段之前,从防火墙上获取第二配置信息;

将所述第二配置信息保存在不同的环境变量中,并调用system系统函数执行shell脚本,在所述shell脚本中使用所述环境变量的值配置tun虚拟网卡的IP地址,并添加访问子网的路由信息;

基于所述tun虚拟网卡的IP地址和访问子网的路由信息,建立安全隧道;

其中,所述tun虚拟网卡为所述国产系统内置的字符设备。

根据本发明提供的一种IPSec虚拟专用网客户端,所述第二配置信息包括保护子网地址、保护子网掩码、虚拟地址池地址、虚拟地址池掩码、DNS信息中的一项或多项。

根据本发明提供的一种IPSec虚拟专用网客户端,所述协商进程是通过使用管理员权限启动的。

根据本发明提供的一种IPSec虚拟专用网客户端,所述加密传输模块用于基于所述用于第二交互数据安全传输所采用的加密算法、认证算法和密钥,通过所述tun虚拟网卡对所述第二交互数据进行加密传输。

根据本发明提供的一种IPSec虚拟专用网客户端,在编译完成后,所述用户交互模块,隧道协商模块和加密传输模块被打包成一个deb安装包。

本发明还提供一种数据传输方法,基于如上任一项所述的IPSec虚拟专用网客户端包括:

响应于用户在所述用户交互模块上的操作,通过所述隧道协商模块,建立IPSec安全联盟IPSec SA;

所述加密传输模块,基于所述IP Sec SA对所述IPSec虚拟专用网客户端与保护子网之间的交互流量进行加密传输。

本发明还提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如上所述的数据传输方法。

本发明还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如上所述的数据传输方法。

本发明还提供一种计算机程序产品,包括计算机程序,所述计算机程序被处理器执行时实现如上所述的数据传输方法。

本发明提供的IPSec虚拟专用网客户端和方法,包括用户交互模块,隧道协商模块和加密传输模块,能够在国产系统下运行,给使用国产化平台的用户在使用vpn功能时提供了很大的方便。

附图说明

为了更清楚地说明本发明或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本发明实施例提供的IPSec虚拟专用网客户端的结构示意图;

图2为本发明实施例提供的数据传输方法的流程示意图;

图3为本发明实施例提供的电子设备的实体结构示意图。

具体实施方式

为使本发明的目的、技术方案和优点更加清楚,下面将结合本发明中的附图,对本发明中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

随着信息国产化的越来越普遍,安全产品也需要越来越多的应用在国产化平台上,但是原来运行在Windows系统平台上的互联网协议安全虚拟专用网(InternetProtocol Security Virtual Private Network,IPSec VPN)客户端在国产化平台上无法正常使用。为了适应信息国产化的需求,本发明通过一定的技术手段将vpn客户端移植到了国产化平台上。

并且,运行在Windows系统平台上的IPSec虚拟专用网(IPSec VPN)客户端是使用开源的IPSec VPN源码编译出来的不带界面的客户端程序,用起来比较麻烦,并且对使用人员的技术要求较高,需要了解IPSec VPN相关协议,需要能看懂源码自带的配置文件,知道每个字段是什么意思,通过修改配置文件的方式进行使用。这种使用方式对普通用户来说门槛太高,非常不方便。

图1为本发明实施例提供的IPSec虚拟专用网客户端的结构示意图,如图1所示,本发明实施例提供的IPSec虚拟专用网客户端,包括:用户交互模块110,隧道协商模块120和加密传输模块130,

其中,所述用户交互模块110用于提供客户端用户交互界面,以供用户在所述用户交互界面上对第一配置信息进行处理和/或执行第一操作;

具体地,第一配置信息包括但不限于用户密码、防火墙出口IP地址、共享密钥等。

第一操作包括以下至少一项:连接或断开隧道,修改用户密码,查看日志。

所述隧道协商模块120用于在协商的第一阶段,与防火墙协商出用于第一交互数据安全传输所采用的加密算法、认证算法和密钥,建立安全隧道,在协商的第二阶段,基于所述安全隧道,和防火墙协商出用于第二交互数据安全传输所采用的加密算法、认证算法和密钥,为IPSec协商安全服务建立IPSec安全联盟(Security Association,SA);

其中,所述第一交互数据包括:协商过程中用户认证的相关数据、从防火墙上获取到的配置信息,以及所述第二阶段的交互数据包。

隧道协商阶段分为两个阶段,第一阶段使用野蛮模式(也叫积极模式)进行协商。这一阶段的主要功能是客户端和防火墙协商出合适的加密算法、认证算法和各种密钥,通信双方彼此之间建立一个已通过身份验证和安全保护的隧道,即IKE SA,该隧道用于后续数据的安全传输。这一阶段支持的对称加密算法包括des、3des、aes128、aes192、aes256。支持的认证算法包括md5、sha1、sha256。后续数据包括协商过程中用户认证的相关数据(AAA认证使用的用户和密码),从防火墙上获取到的配置信息(如保护子网地址、虚拟地址池地址、dns信息等),以及第二阶段(快速模式)的交互数据包。

第二阶段的协商采用快速模式,使用第一阶段建立的安全隧道为IPSec协商安全服务建立IPSec SA,IPSec SA用于最终的IP数据安全传送。也即是客户端和防火墙协商出合适的加密算法、认证算法和各种密钥,用于保护后续数据的安全传输,后续数据是指隧道建立成功以后,客户端访问保护子网的交互流量。第二阶段支持的加密算法包括des、3des、aes128、aes192、aes256,支持的认证算法包括hmac_md5、hmac_sha1、hmac_sha256。

所述加密传输模块130用于基于所述IPSec SA,对所述第二交互数据进行加密传输;

所述第二交互数据为所述客户端访问保护子网的交互流量;

具体地,隧道建立之后,为了保证安全性,客户端和防火墙交互的数据使用快速模式协商出来的加密算法和密钥进行加密传输。数据包的封装方式根据用户的选择,使用隧道模式或者传输模式。安全协议也根据用户的选择,使用esp协议或者ah协议。

传输模式下只对IP负载进行保护,可能是TCP/UDP/ICMP协议,也可能是AH/ESP协议。传输模式只为上层协议提供安全保护,在此种模式下,参与通信的双方主机都必须安装IPSec协议,而且它不能隐藏主机的IP地址。启用IPSec传输模式后,IPSec会在传输层包的前面增加AH/ESP头部或同时增加两种头部,构成一个AH/ESP数据包,然后添加IP头部组成IP包。在接收方,首先处理的是IP,然后再做IPSec处理,最后再将载荷数据交给上层协议。传输模式保护原始IP头部后面的数据,在原始IP头和载荷间插入IPSec头部(ESP或AH)。典型应用为端到端的会话,并且要求原始IP头部全局可路由。

隧道模式(Tunnel Mode)使用在两台网关之间,站点到站点(Site-to-Site)的通信。参与通信的两个网关实际是为了两个以其为边界的网络中的计算机提供安全通信的服务。隧道模式为整个IP包提供保护,为IP协议本身而不只是上层协议提供安全保护。通常情况下只要使用IPSec的双方有一方是安全网关,就必须使用隧道模式,隧道模式的一个优点是可以隐藏内部主机和服务器的IP地址。大部分VPN都使用隧道模式,因为它不仅对整个原始报文加密,还对通信的源地址和目的地址进行部分和全部加密,只需要在安全网关,而不需要在内部主机上安装VPN软件,期间所有加密和解密以及协商操作均由前者负责完成。启用IPSec隧道模式后,IPSec将原始IP看作一个整体作为要保护的内容,前面加上AH/ESP头部,再加上新IP头部组成新IP包。隧道模式的数据包有两个IP头,内部头由路由器背后的主机创建,是通信终点;外部头由提供IPSec的设备(如路由器、防火墙)创建,是IPSec的终点。

ESP协议对IPSec封装安全符合提供了加密和验证功能,ESP利用对称密钥对IP数据包进行加密,支持的加密算法有DES,3DES,AES。AH协议不提供加密服务,只提供验证服务。他们二者验证的范围不同,AH验证IP头(传输模式验证原IP头,隧道模式验证新的IP头和原IP头),ESP只验证部分IP头(传输模式验证IP头,隧道模式只验证原IP头,不验证新IP头)。

本发明实施例提供的IPSec虚拟专用网客户端在国产系统下运行。在一些实施例中,国产系统是指银河麒麟桌面操作系统。

本发明实施例提供的IPSec虚拟专用网客户端,能够在国产系统下运行,给使用国产化平台的用户在使用vpn功能时提供了很大的方便。

在上述实施例的基础上,所述用户交互模块和隧道协商模块采用跨平台的Qt技术实现。

由于国产系统不支持微软推出的MFC技术,所以在国产系统下使用跨平台的Qt技术开发出一套和windows系统下面一样的ipsecvpn客户端界面程序。也包括添加、修改、删除、导入、导出配置信息,连接、断开隧道,修改用户密码、查看日志等功能。Qt是一套基于C++语言的跨平台的集成开发工具。它是基于控件和消息槽函数机制驱动的。

在设计界面时候使用Qt自带的Designer可视化工具,将需要的各种控件拖到窗体的合适位置上,并为该控件添加对应的消息和槽函数,在收到控件的不同消息时,在不同的槽函数中进行相应的处理即可。

本发明实施例提供的IPSec虚拟专用网客户端,能够在国产系统下运行,给使用国产化平台的用户在使用vpn功能时提供了很大的方便,用户可以直接在可视化的界面上进行配置操作。

在上述实施例的基础上,所述建立安全隧道,包括:

在协商的第一阶段之后和第二阶段之前,从防火墙上获取第二配置信息;

将所述第二配置信息保存在不同的环境变量中,并调用system系统函数执行shell脚本,在所述shell脚本中使用所述环境变量的值配置tun虚拟网卡的IP地址,并添加访问子网的路由信息;

基于所述tun虚拟网卡的IP地址和访问子网的路由信息,建立安全隧道;

其中,所述tun虚拟网卡为所述国产系统内置的字符设备。

可选地,所述第二配置信息包括保护子网地址、保护子网掩码、虚拟地址池地址、虚拟地址池掩码、DNS信息中的一项或多项。

具体地,国产系统使用的虚拟网卡是系统内置的tun虚拟网络设备,该设备是位于/dev/net/tun的字符设备。windows系统下的tap是独立的虚拟网卡驱动程序,所以如果使用tap的话,在处理数据包时候,需要单独处理数据链路层的头信息。而使用tun时候,国产系统内核会自动处理这一层的头信息,简化了相关操作。

在上述实施例的基础上,所述协商进程是通过使用管理员权限启动的。

具体地,由于tun是系统内置的虚拟网络设备,所以在启动它时需要使用root权限,因此需要使用root权限启动协商进程。本发明实施例提供的IPSec虚拟专用客户端在安装之后,使用的时候会先判断保存的管理员密码是否存在,如果不存在的话,会提示用户输入管理员密码(在命令行中安装IPSec虚拟专用客户端时输入的密码)。将用户输入的管理员密码以加密的方式保存在配置文件中,方便以后使用。有了管理员密码就可以临时获取root权限来启动协商进程。为了方便用户使用,客户端升级新版本的时候,默认不会删除日志文件和配置文件,所以用户首次配置的管理员密码不会丢失。新版本在使用的时候也不需要再次输入管理员密码了,实现了一次配置永久使用。需要说明的是,若用户更换了密码就需要再重新配置一次。

由于国产系统不支持bat批处理脚本,所以本发明实施例使用shell脚本设置tun虚拟网卡的地址和添加能够访问保护子网的路由信息。在协商的第一阶段和第二阶段之间,协商进程从防火墙上获取到相应的配置信息之后,将这些信息分别保存在不同的环境变量中。然后直接由协商进程调用system系统函数执行shell脚本,在脚本中直接使用之前保存的环境变量的值来配置tun网卡的虚拟地址和相关路由信息,不需要将这些信息再发送到界面进程,由界面进程执行脚本了。

本发明实施例提供的IPSec虚拟专用网客户端,隧道协商部分有效地利用了国产系统内置的tun虚拟网卡功能模块进行数据包的收发工作,并且基于国产系统对shell脚本的支持性比较好,所以使用shell脚本设置tun虚拟网卡的IP地址和相关的路由信息用以建立联通的隧道,从而能够较好地适应国产系统,在国产系统下可正常运行,给使用国产化平台的用户在使用vpn功能时提供了很大的方便,用户可以直接在可视化的界面上进行配置操作。

在上述实施例的基础上,所述加密传输模块用于基于所述用于第二交互数据安全传输所采用的加密算法、认证算法和密钥,通过所述tun虚拟网卡对所述第二交互数据进行加密传输。

可以理解的是,隧道建立成功之后,就可以通过tun虚拟网卡进行数据传输了,具体地,所述加密传输模块用于基于所述用于第二交互数据安全传输所采用的加密算法、认证算法和密钥,通过所述tun虚拟网卡对所述第二交互数据进行加密传输。

在上述实施例的基础上,在编译完成后,所述用户交互模块,隧道协商模块和加密传输模块被打包成一个deb安装包。

国产系统一般情况都是使用命令行安装第三方程序的,为了方便用户使用,本发明实施例将ipsecvpn客户端程序的用户交互模块、隧道协商模块和加密传输模块以及依赖的一些其他文件一起打包成一个deb安装包,用户只需要使用简单的dpkg命令就可以一键安装,卸载时也可以使用remove命令进行一键卸载。

本发明实施例提供的IPSec虚拟专用网客户端,通过将用户交互模块,隧道协商模块和加密传输模块打包成一个deb安装包,可以方便用户安装和卸载。

综上所述,本发明实施例提供的IPSec虚拟专用网客户端,在国产系统下使用跨平台的Qt技术,开发出用户交互模块,用户可以直接在可视化的界面上进行配置操作,不需要再通过编译源码并修改配置文件的方式使用vpn客户端了,也不需要用户了解太多的ipsecvpn相关的知识,降低了对用户的技能要求,扩大了潜在的用户范围;隧道协商模块和加密传输模块,使用的是国产系统内置的tun虚拟网卡,国产系统内核会自动处理数据链路层的头信息,并在协商的第一阶段和第二阶段之间,使用shell脚本设置tun虚拟网卡的地址和添加能够访问保护子网的路由信息,简化了相应操作,可以提高数据传输效率;将用户交互模块,隧道协商模块和加密传输模块打包成一个deb安装包,可以方便用户安装和卸载。

图2为本发明实施例提供的数据传输方法的流程示意图,本发明提供的数据传输方法,基于如上任一项所述的IPSec虚拟专用网客户端,包括:

步骤210、响应于用户在所述用户交互模块上的操作,通过所述隧道协商模块,建立IPSec安全联盟IPSec SA;

具体地,用户交互模块接收到用户的操作,隧道协商模块建立IPSec SA。

具体地,隧道协商模块在协商的第一阶段,与防火墙协商出用于第一交互数据安全传输所采用的加密算法、认证算法和密钥,建立安全隧道,在协商的第二阶段,基于所述安全隧道,和防火墙协商出用于第二交互数据安全传输所采用的加密算法、认证算法和密钥,为IPSec协商安全服务建立IPSec安全联盟IPSec SA。

其中,建立安全隧道,包括:

在协商的第一阶段之后和第二阶段之前,从防火墙上获取第二配置信息;

将所述第二配置信息保存在不同的环境变量中,并调用system系统函数执行shell脚本,在所述shell脚本中使用所述环境变量的值配置tun虚拟网卡的IP地址,并添加访问子网的路由信息;

基于所述tun虚拟网卡的IP地址和访问子网的路由信息,建立安全隧道;

其中,所述tun虚拟网卡为所述国产系统内置的字符设备。

步骤220、所述加密传输模块,基于所述IP Sec SA对所述IPSec虚拟专用网客户端与保护子网之间的交互流量进行加密传输。

具体地,加密传输模块基于所述用于第二交互数据安全传输所采用的加密算法、认证算法和密钥,通过tun虚拟网卡对IPSec虚拟专用网客户端与保护子网之间的交互流量进行加密传输,从而实现VPN功能。

本发明实施例提供的数据传输方法,基于IPSec虚拟专用网客户端实现,给使用国产化平台的用户在使用vpn功能时提供了很大的方便。

图3示例了一种电子设备的实体结构示意图,如图3所示,该电子设备可以包括:处理器(processor)310、通信接口(Communications Interface)320、存储器(memory)330和通信总线340,其中,处理器310,通信接口320,存储器330通过通信总线340完成相互间的通信。处理器310可以调用存储器330中的逻辑指令,以执行数据传输方法,该方法包括:响应于用户在所述用户交互模块上的操作,建立IPSec安全联盟IPSec SA;基于所述IP Sec SA对所述IPSec虚拟专用网客户端与保护子网之间的交互流量进行加密传输。

此外,上述的存储器330中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。

另一方面,本发明还提供一种计算机程序产品,所述计算机程序产品包括计算机程序,计算机程序可存储在非暂态计算机可读存储介质上,所述计算机程序被处理器执行时,计算机能够执行上述各方法所提供的数据传输方法,该方法包括:响应于用户在所述用户交互模块上的操作,建立IPSec安全联盟IPSec SA;基于所述IP Sec SA对所述IPSec虚拟专用网客户端与保护子网之间的交互流量进行加密传输。

又一方面,本发明还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现以执行上述各方法提供的数据传输方法,该方法包括:响应于用户在所述用户交互模块上的操作,建立IPSec安全联盟IPSec SA;基于所述IPSec SA对所述IPSec虚拟专用网客户端与保护子网之间的交互流量进行加密传输。

以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。

通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。

最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

相关技术
  • 一种目标定位方法、装置、系统及计算机可读存储介质
  • 一种车牌识别方法、装置、计算机装置及计算机可读存储介质
  • 一种元数据存储方法、装置、设备及计算机可读存储介质
  • 一种存储集群告警方法、装置和计算机可读存储介质
  • 一种数据存储方法、装置、设备及计算机可读存储介质
  • 标定装置及标定方法、计算机可读存储介质和计算机设备
  • 一种尺寸标定方法、尺寸标定装置和计算机可读存储介质
技术分类

06120116554014