一种虚拟私有网络VPN客户端及实现方法与流程

文档序号:16926308发布日期:2019-02-22 19:53阅读:435来源:国知局
一种虚拟私有网络VPN客户端及实现方法与流程

本申请涉及通讯技术领域,尤其涉及一种虚拟私有网络vpn客户端及实现方法。



背景技术:

ssl(securitysocketlayer,安全套接层)协议是一种在internet上保证发送信息安全的通用协议,采用b/s结构(browser/server,浏览器/服务器模式)。它处在应用层,ssl用公钥加密通过ssl连接传输的数据来工作。ssl协议指定了在应用程序协议和tcp/ip之间进行数据交换的安全机制,为tcp/ip连接提供数据加密、服务器认证以及可选择的客户机认证。

vpn(virtualprivatenetwork,虚拟私有网络)属于远程访问技术,简单地说就是利用公用网络架设专属的私有网络。vpn的便利性、经济性使得越来越多的公司通过互联网等公共网络,采用vpn将公司总部和在家工作、出差在外、分公司员工以及合作伙伴连接到一起。

sslvpn是一种新兴的vpn技术。sslvpn指的是以ssl协议建立加密连接的vpn网络。sslvpn考虑的是应用软件的安全性,其协议工作在传输层之上,保护的是应用程序与应用程序之间的安全连接,更多应用在web的远程安全接入方面。

用户在首次访问sslvpn系统时,系统通常会自动引导用户安装vpn客户端程序,例如通过内嵌于web浏览器的插件引导用户在终端设备上安装vpn客户端程序。vpn客户端程序在安装过程中通常需要读写终端设备上的系统注册表、安装驱动程序和读取系统证书库等需要超级管理员权限的操作,在使用过程中通常也需要执行读写终端设备上的系统注册表、读取系统证书库等操作,如果终端用户没有管理员权限,则会导致用户无法正常安装和使用该vpn客户端,如果给普通终端用户赋予过高的系统访问权限也会带来很多安全性方面的问题。



技术实现要素:

有鉴于此,本申请提供一种虚拟私有网络vpn客户端及实现方法,用于解决vpn客户端在安全性方面所面临的问题。

鉴于现有技术中存在的技术问题,本发明公开了一种虚拟私有网络vpn客户端,该vpn客户端采用模块化分离、细粒度权限划分的设计思想,将现有技术中庞大的单体vpn客户端划分为三个模块,分别为服务模块、界面接口模块、登录控制模块,这三个模块为三个相对独立的程序进程,可分别独立分配用户的操作系统访问权限,三个模块之间通过通信接口进行信息交互。通过vpn客户端的模块化分离及操作系统访问权限的独立控制,可避免为普通用户分配过高的操作性访问权限,并可提高vpn客户端的可维护性和扩展性。

本发明公开的虚拟私有网络vpn客户端运行于电子设备,且该vpn客户端包括:

服务模块,用于与vpn服务端实现信息交互,为界面接口模块提供vpn的业务信息接口及状态信息接口,以及为登录控制模块提供vpn的用户登录接口;所述服务模块具有高级别的系统访问权限;

界面接口模块,用于提供vpn的业务信息及状态信息的图形用户接口gui,并通过与所述服务模块之间的业务信息接口及状态信息接口交互vpn的业务信息及状态信息;

登录控制模块,用于提供用户登录界面,并通过与所述服务模块之间的用户登录接口将用户登录信息发送给所述服务模块,及接收所述服务模块反馈的登录结果信息。

基于本发明公开的实施例,为了提高vpn客户端的安全性,本发明公开的vpn客户端通过ssl协议与vpn服务端进行信息交互。进一步地,本发明公开的vpn客户端还包括以下特征:

所述服务模块通过安全套接层ssl协议与vpn服务端通信。

基于本发明公开的实施例,为了避免为普通用户分配过高的操作系统访问权限,对上述服务模块、界面接口模块和登录控制模块分别进行权限控制。服务模块作为vpn客户端的核心模块与vpn服务端交互,由该模块来主要实现vpn业务功能和vpn客户端的状态维护,所有需要访问操作系统资源的高级别权限的操作都在服务模块实现,因此需要为该模块分配高级别的系统访问权限。界面接口模块和登录控制模块在需要获取业务信息和/或状态信息时,通过与服务模块之间的接口获取即可,因此仅需要为界面接口模块和登录控制模块分配普通用户权限即可。基于上述思想,本发明公开的vpn客户端进一步包括如下特征:

所述vpn客户端所需的高级别的系统访问权限的处理步骤集中在所述服务模块中实现,所述界面接口模块和登录控制模块具有普通用户权限。所述高级别的系统访问权限为系统管理员权限或不限于以下一种或多种系统访问权限:访问系统注册表、安装及更新驱动程序、更新vpn客户端的各模块、读取系统证书库。

基于本发明公开的实施例,为了避免由用户每次启动服务模块的进程,在下载安装vpn客户端的程序的时候,将所述服务模块设置为开机自启动的服务进程。

基于本发明公开的实施例,为了实现上述三个模块在权限和功能上的分离,本发明在上述三个模块之间优选地采用无状态通信接口,基于该思想,本发明公开的vpn客户端进一步包括如下特征:

所述服务模块与界面接口模块,以及服务模块与登录控制模块之间的接口基于http协议的可被呈现的状态转换rest应用程序接口api实现。

基于本发明公开的实施例,为了防止服务模块和/或界面接口模块的进程由于某些原因产生故障不能提供正常的服务,例如服务进程因为某些软硬件故障导致挂起或退出,本发明还加入了服务进程状态监控功能,当发现服务模块和/或界面接口模块所在的进程故障时,由登录控制模块负责重新启动服务模块和/或界面接口模块,在故障的模块重新启动后,可重新进行自动登录、业务数据及状态信息的同步等,从而为用户提供更好的业务持续性。基于该思想,本发明公开的vpn客户端进一步包括如下特征:

所述登录控制模块还用于监控所述服务模块和/或界面接口模块的运行状态,当发现所述服务模块和/或界面接口模块故障时,所述登录控制模块重新启动所述服务模块和/或界面接口模块。

基于本发明公开的实施例,为了使用户更好的了解vpn客户端当前的业务处理状态及vpn客户端本身的运行状态,本发明公开的vpn客户端进一步包括如下特征:

所述服务模块维护一状态机,该状态机反映所述vpn客户端的运行状态,该状态机至少包括:启动状态、连接状态、会话建立状态、安全检查状态、身份认证状态;

所述服务模块通过所述状态信息接口将所述状态机当前的状态信息发送给界面接口模块,以供界面接口模块显示。

基于本发明公开的实施例,与本发明公开的虚拟私有网络vpn客户端相对应地,本发明还公开了一种虚拟私有网络vpn客户端的实现方法,该方法运行于电子设备,包括:

通过服务模块与vpn服务端实现信息交互,为界面接口模块提供vpn的业务信息接口及状态信息接口,以及为登录控制模块提供vpn的用户登录接口;为所述服务模块分配高级别的系统访问权限;

通过界面接口模块提供vpn的业务信息及状态信息的图形用户接口gui,并通过界面接口模块与所述服务模块之间的业务信息接口及状态信息接口交互vpn的业务信息及状态信息;

通过登录控制模块提供用户登录界面,并通过登录控制模块与所述服务模块之间的用户登录接口将用户登录信息发送给所述服务模块,及接收所述服务模块反馈的登录结果信息。

本申请提供的vpn客户端及实现方法使用模块分离的微服务架构,将vpn客户端分为服务模块、界面接口模块和登录控制模块三个模块,三个模块之间通过通信接口互联。为服务模块分配高级别的系统访问权限。通过将vpn客户端所需的高级别的系统访问权限的处理步骤集中在所述服务模块中实现,避免了为普通终端用户分配过高的系统访问权限,通过模块化的划分,提高了vpn客户端的可维护性和扩展性。

附图说明

图1为本发明一实施例示例的运行vpn客户端200的电子设备100的硬件结构示意图;

图2为本发明一实施例示例的vpn客户端200功能模块组成结构示意图;

图3为本发明一实施例示例的vpn客户端200的实现方法示意图;

图4为本发明一实施例示例的vpn客户端200的状态机示意图。

具体实施方式

这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。

在本申请使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本申请。在本申请和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。

应当理解,尽管在本申请可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本申请范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。

以上关于附图及术语方面的说明,同样适用于发明内容部分的描述。

图1为本发明一实施例示例的运行vpn客户端200的电子设备100的硬件结构示意图,本发明不限定运行vpn客户端200的电子设备的类型,任何具有实现本发明公开的终端及方法的电子设备类型都属于本发明保护范围,例如可以是个人电脑、平板电脑、手机等。本发明公开的vpn客户端200可以通过软件实现,也可以通过硬件或者软硬件结合的方式实现。以软件实现为例,作为一个逻辑意义上的装置,是通过其所在电子设备的处理器将非易失性存储器中对应的计算机程序指令读取到内存中运行形成的。从硬件层面而言,如图1所示,所述电子设备除了图1所示的处理器、内存、网络接口、以及非易失性存储器之外,实施例中vpn客户单200所在的电子设备通常根据该电子设备的实际功能,还可以包括其他硬件,对此不再赘述。

vpn技术为企业在广域网范围内提供了一种安全、便利、经济的私有网络的组建方式,为移动办公提供了安全保障。由vpn技术实现的业务系统通常会包括vpn客户端和vpn服务端两个部分。

图2为本发明一实施例示例的vpn客户端200功能模块组成结构示意图,该vpn客户端包括:服务模块220、界面接口模块210、登录控制模块230;

服务模块220为vpn客户端200的核心模块,完成主要的业务基础功能,例如客户端认证、用户认证、检查数据合法性、与界面接口模块210和登录控制模块230同步业务及状态信息、转发业务系统数据等。服务模块220基于ssl协议与vpn服务端300建立连接,实现信息交互。服务模块220为界面接口模块210提供vpn的业务信息接口及状态信息接口,以及为登录控制模块230提供vpn的用户登录接口;

界面接口模块210主要用于为客户端用户提供vpn的业务信息及状态信息的图形用户接口gui,客户端用户通过键盘、鼠标、显示器等输入输出设备与界面接口模块210提供的软件界面形成交互。界面接口模块210通过与所述服务模块之间的业务信息接口及状态信息接口交互vpn的业务信息及状态信息,并通过gui界面将这些信息以一定的方式呈现给用户。

登录控制模块230主要用于提供用户登录界面,实现用户登录的控制。登录控制模块230通过与所述服务模块220之间的用户登录接口将用户登录信息发送给所述服务模块220,及接收服务模块220反馈的登录结果信息。

ssl协议是一种在internet上保证信息交互安全的通信协议,基于ssl协议的vpn客户端200可实现对网络资源的细粒度的访问控制,用户有三种访问资源的方式,分别是:web接入方式、tcp接入方式和ip接入方式。同时基于ssl协议的vpn客户端200还可采用基于角色的权限管理方法,根据用户登录的身份,限制用户可以访问的资源。本发明一实施例中采用ssl协议实现vpn客户端200与vpn服务端300之间协议及数据报文的通信。

本发明提供vpn客户端200采用了微服务设计架构,将原本集成了所有功能的巨大的单体式应用分解为小的互相连接的微服务。每个微服务提供相对独立的某项或某些功能,微服务之间通过接口进行业务信息的交互,提高了vpn客户端的可维护性和扩展性。

基于上述模块分离的设计思想,本发明一实施例进一步还对各个模块访问操作系统的功能权限进行了划分,以达到避免为普通用户分配过高的操作系统访问权限所产生的安全性风险的目的。在该实施例中,为服务模块220分配高级别的系统访问权限,所述高级别的系统访问权限是相对于普通用户所具有的操作系统访问权限而言的,可参考windows操作系统中的超级用户权限、管理员权限及普通用户权限等权限级别的划分。本案将vpn客户端200进行用户认证、客户端认证、鉴权等需要高级别操作系统访问权限的业务操作集中在服务模块220上来实现,这样仅需要在安装vpn客户端的时候为服务模块220单独分配一次高级别的操作系统访问权限即可,界面接口模块210和登录控制模块230在需要通过高级别的操作系统访问权限才能获得的信息时,仅需要通过与服务模块220之间的接口从服务模块220获取即可,这样就仅需要给界面接口模块210和登录控制模块230分配普通的用户权限即可,普通用户仅需普通的操作系统访问权限即可运行界面接口模块210和登录控制模块230。本发明实施例中所述的高级别的操作系统访问权限为系统管理员权限或不限于以下一种或多种系统访问权限:访问系统注册表、安装及更新驱动程序、更新vpn客户端的各模块、读取系统证书库等。

为了进一步提供vpn客户端200的客户体验,本发明一实施例将服务模块220设置为开机自启动的服务进程,操作系统在每次启动后自动加载服务模块220,服务模块220的进程在加载后系统与vpn服务端300建立通信连接或由用户操作触发建立连接。

为了实现服务模块220、界面接口模块210和登录控制模块230三个模块在权限和功能上的分离,本发明一实施例在上述三个模块之间优选地采用基于http协议的可被呈现的状态转换rest应用程序接口api实现。界面接口模块210和登录控制模块230可使用定时器周期性地调用该restapi查询当前vpn客户端200的运行状态,然后以图形化方式展现给用户。

为了使用户更好的了解vpn客户端200当前的业务处理状态及vpn客户端200本身的运行状态,本发明一实施例中将vpn客户端的运行状态划分为多个阶段,每个阶段对应一种状态,同时服务模块220维护一状态机,通过该状态机反映vpn客户端200在不同阶段的运行状态,该状态机至少包括:启动状态、连接状态、会话建立状态、安全检查状态、身份认证状态等。服务模块220通过状态信息接口将所述状态机当前的状态信息发送给界面接口模块210和/或登录控制模块230以供显示给用户。例如,如图4所示,本发明一实施例将vpn客户端200的运行状态划分为12个阶段,分别为:

stoped:系统初始状态,表示用户未使用vpn客户端200;

starting:启动状态,表示vpn客户端200正在启动;

initial:初始化状态,表示正在初始化vpn客户端200的运行环境;

connecting:连接状态,表示vpn客户端200正在连接vpn服务端300;

handshake:握手状态,表示vpn客户端200正在与vpn服务端建立会话;

securityauth:安全认证状态,表示业务系统正在对vpn客户端200进行安全检查;

authenticate:身份认证状态,表示业务系统正在对vpn客户端200进行身份认证;

tapinit:网卡参数配置状态,表示正在配置vpn客户端200虚拟网卡参数;

tuninit:网卡启动状态,表示正在启动虚拟网卡;

connected:连接状态,表示vpn客户端200与vpn服务端300连接成功,可以开始使用业务系统提供的功能;

disconnected:断开状态,表示vpn客户端200已与vpn服务端300断开连接;

stopping:退出状态,表示vpn客户端200正在退出程序或业务系统。

在本发明一实施例中,在用户需要登录vpn服务端300时,用户可通过桌面的快捷方式运行登录控制模块230的程序进程,在登录控制模块230加载运行显示用户登录界面,并自动与服务模块220建立通信连接,若服务模块220未运行,则登录控制模块230还负责启动所述服务模块220。在与服务模块220建立通信连接后,与其同步当前vpn客户端200的状态信息。用户可在登录控制模块230的gui界面输入用户名、密码等信息,然后点击登录按钮登录vpn业务系统。登录控制模块230首先将用户登录信息发送给服务模块220,若需要读取用户的配置信息或数字签名等认证信息时,服务模块220根据登录控制模块230传送的用户信息调用相应的api从操作系统获取,获取成功后再形成登录请求向vpn服务端300发送给登录请求,登录请求中可携带用户身份信息、客户端认证信息、鉴权等,在认证、鉴权通过后,vpn服务端300反馈登录结果给服务模块220,服务模块更新vpn客户端当前的状态。

本发明一实施例中,为了防止服务模块220和/或界面接口模块210的进程由于某些原因产生故障不能提供正常的服务,例如服务进程因为某些软硬件故障导致挂起或退出,本发明一实施例还为登录控制模块230加入了服务进程状态监控功能,在该实施例中,登录控制模块230在用户登录成功后,其进程并不会立刻退出,而是以守护进程的方式常驻内存。登录控制模块230可周期性地通过接口向服务模块220和/或界面接口模块210发送心跳检测报文,当发现服务模块220和/或界面接口模块210所在的进程故障时,由登录控制模块230负责重新启动服务模块220和/或界面接口模块210,在故障的模块重新启动后,可重新进行自动登录、业务数据及状态信息的同步等,从而为用户提供更好的业务持续性。基于该思想,本发明公开的vpn客户端进一步包括如下特征:

所述登录控制模块还用于监控所述服务模块和/或界面接口模块的运行状态,当发现所述服务模块和/或界面接口模块故障时,所述登录控制模块重新启动所述服务模块和/或界面接口模块。

与上述vpn客户端对应的,本发明一实施例公开了一种虚拟私有网络vpn客户端200的实现方法,该方法运行于电子设备,如图3所示,该包括:

步骤301、通过服务模块220与vpn服务端实现信息交互,为界面接口模块210提供vpn的业务信息接口及状态信息接口,以及为登录控制模块230提供vpn的用户登录接口;为服务模块220分配高级别的系统访问权限;

步骤302、通过界面接口模块210提供vpn的业务信息及状态信息的图形用户接口,并通过界面接口模块210与服务模块220之间的业务信息接口及状态信息接口交互vpn的业务信息及状态信息;

步骤303、通过登录控制模块230提供用户登录界面,并通过登录控制模块230与服务模块220之间的用户登录接口将用户登录信息发送给服务模块220,及接收服务模块220反馈的登录结果信息。

进一步地,通过安全套接层ssl协议实现服务模块220与vpn服务端300通信。

进一步地,在电子设备开机启动时将服务模块220作为服务进程加载运行。

进一步地,vpn客户端200所需的高级别的系统访问权限的处理步骤集中在服务模块220中实现。为所述界面接口模块210和登录控制模块230分配普通用户权限;所述高级别的系统访问权限为系统管理员权限或不限于以下一种或多种系统访问权限:访问系统注册表、安装及更新驱动程序、更新vpn客户端的各模块、读取系统证书库。

进一步地,服务模块220与界面接口模块210,以及服务模块220与登录控制模块230之间的接口基于http协议的可被呈现的状态转换rest应用程序接口api实现。

进一步地,本发明一实施例公开的一种虚拟私有网络vpn客户端200实现方法还包括:通过登录控制模块230监控服务模块220和/或界面接口模块210的运行状态,当发现服务模块220和/或界面接口模块210故障时,登录控制模块230重新启动服务模块220和/或界面接口模块210。

进一步地,本发明一实施例公开的一种虚拟私有网络vpn客户端200实现方法还包括:服务模块220维护一状态机,该状态机反映所述vpn客户端200的运行状态,该状态机至少包括:启动状态、连接状态、会话建立状态、安全检查状态、身份认证状态;服务模块220通过所述状态信息接口将所述状态机当前的状态信息发送给界面接口模块210,以供界面接口模块210显示。

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

以上所述仅为本申请的较佳实施例而已,并不用以限制本申请,凡在本申请的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本申请保护的范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1