一种SSLVPN认证方法、客户端、服务器及网关与流程

文档序号:17147689发布日期:2019-03-19 23:07阅读:862来源:国知局
一种SSL VPN认证方法、客户端、服务器及网关与流程

本发明涉及网络技术领域,特别是涉及一种sslvpn认证方法、客户端、服务器及网关。



背景技术:

sslvpn是一种以ssl(securesocketlayer,安全套接层协议)/tls(transportlayersecurity,安全传输层协议)协议为基础的新型vpn(virtualprivatenetwork,虚拟专用网络)技术。sslvpn认证为接入用户提供了安全可靠地访问内部资源的方式。

目前,sslvpn认证过程中,sslvpn客户端将用户名和密码发送给sslvpn网关,由sslvpn网关将用户名和密码转发给aaa(authenticationauthorizationaccounting,认证、授权、计费)服务器进行验证,如果aaa服务器验证通过,则确定sslvpn认证成功。

然而,sslvpn客户端和sslvpn网关在发送用户名和密码时,是依据aaa服务器的地址、名称等属性信息发送至aaa服务器的,而这些属性信息容易被假冒钓鱼网站利用,将非法的用户名和密码通过验证,存在较大的安全隐患。



技术实现要素:

本发明实施例的目的在于提供一种sslvpn认证方法、客户端、服务器及网关,以提高sslvpn认证的安全性。具体技术方案如下:

第一方面,本发明实施例提供了一种sslvpn认证方法,应用于sslvpn客户端,所述方法包括:

在与sslvpn网关建立连接后,向所述sslvpn网关发送第一登录请求报文,以使所述sslvpn网关向aaa服务器传递所述第一登录请求报文中携带的证书认证标识;

接收所述sslvpn网关发送的第一登录应答报文,所述第一登录应答报文中携带所述aaa服务器加密后的服务器证书;

从所述第一登录应答报文中解析得到所述服务器证书,并对所述服务器证书进行解密验证;

若验证结果为所述服务器证书有效,则向所述sslvpn网关发送第二登录请求报文,以使所述sslvpn网关向所述aaa服务器传递所述第二登录请求报文中携带的所述sslvpn客户端加密后的客户端证书;

接收所述sslvpn网关发送的第二登录应答报文,并从所述第二登录应答报文中解析得到认证结果。

第二方面,本发明实施例提供了一种sslvpn认证方法,应用于aaa服务器,所述方法包括:

接收sslvpn网关发送的第一认证请求报文;

当识别到所述第一认证请求报文中携带证书认证标识时,向所述sslvpn网关发送第一认证响应报文,以使所述sslvpn网关向sslvpn客户端传递所述第一认证响应报文中携带的所述aaa服务器加密后的服务器证书;

接收所述sslvpn网关发送的第二认证请求报文,所述第二认证请求报文中携带所述sslvpn客户端加密后的客户端证书;

从所述第二认证请求报文中解析得到所述客户端证书,并对所述客户端证书进行解密验证;

若验证结果为所述客户端证书有效,则向所述sslvpn网关发送第二认证响应报文,以使所述sslvpn网关向sslvpn客户端传递所述第二认证响应报文中携带的认证成功的认证结果。

第三方面,本发明实施例提供了一种sslvpn认证方法,应用于sslvpn网关,所述方法包括:

接收sslvpn客户端发送的第一登录请求报文;

提取所述第一登录请求报文中携带的证书认证标识,并向aaa服务器发送携带所述证书认证标识的第一认证请求报文;

接收所述aaa服务器发送的第一认证响应报文;

提取所述第一认证响应报文中携带的所述aaa服务器加密后的服务器证书,并向所述sslvpn客户端发送携带所述服务器证书的第一登录应答报文;

接收所述sslvpn客户端发送的第二登录请求报文;

提取所述第二登录请求报文中携带的所述sslvpn客户端加密后的客户端证书,并向所述aaa服务器发送携带所述客户端证书的第二认证请求报文;

接收所述aaa服务器发送的第二认证响应报文;

提取所述第二认证响应报文中携带的认证结果,并向所述sslvpn客户端发送携带所述认证结果的第二登录应答报文,以使所述sslvpn客户端从所述第二登录应答报文中解析得到认证结果。

第四方面,本发明实施例提供了一种sslvpn认证装置,应用于sslvpn客户端,所述装置包括:

发送模块,用于在与sslvpn网关建立连接后,向所述sslvpn网关发送第一登录请求报文,以使所述sslvpn网关向aaa服务器传递所述第一登录请求报文中携带的证书认证标识;

接收模块,用于接收所述sslvpn网关发送的第一登录应答报文,所述第一登录应答报文中携带所述aaa服务器加密后的服务器证书;

验证模块,用于从所述第一登录应答报文中解析得到所述服务器证书,并对所述服务器证书进行解密验证;

所述发送模块,还用于若验证结果为所述服务器证书有效,则向所述sslvpn网关发送第二登录请求报文,以使所述sslvpn网关向所述aaa服务器传递所述第二登录请求报文中携带的所述sslvpn客户端加密后的客户端证书;

所述接收模块,还用于接收所述sslvpn网关发送的第二登录应答报文,并从所述第二登录应答报文中解析得到认证结果。

第五方面,本发明实施例提供了一种sslvpn认证装置,应用于aaa服务器,所述装置包括:

接收模块,用于接收sslvpn网关发送的第一认证请求报文;

发送模块,用于当识别到所述第一认证请求报文中携带证书认证标识时,向所述sslvpn网关发送第一认证响应报文,以使所述sslvpn网关向sslvpn客户端传递所述第一认证响应报文中携带的所述aaa服务器加密后的服务器证书;

所述接收模块,还用于接收所述sslvpn网关发送的第二认证请求报文,所述第二认证请求报文中携带所述sslvpn客户端加密后的客户端证书;

验证模块,用于从所述第二认证请求报文中解析得到所述客户端证书,并对所述客户端证书进行解密验证;

所述发送模块,还用于若验证结果为所述客户端证书有效,则向所述sslvpn网关发送第二认证响应报文,以使所述sslvpn网关向sslvpn客户端传递所述第二认证响应报文中携带的认证成功的认证结果。

第六方面,本发明实施例提供了一种sslvpn认证装置,应用于sslvpn网关,所述装置包括:

接收模块,用于接收sslvpn客户端发送的第一登录请求报文;

发送模块,用于提取所述第一登录请求报文中携带的证书认证标识,并向aaa服务器发送携带所述证书认证标识的第一认证请求报文;

所述接收模块,还用于接收所述aaa服务器发送的第一认证响应报文;

所述发送模块,还用于提取所述第一认证响应报文中携带的所述aaa服务器加密后的服务器证书,并向所述sslvpn客户端发送携带所述服务器证书的第一登录应答报文;

所述接收模块,还用于接收所述sslvpn客户端发送的第二登录请求报文;

所述发送模块,还用于提取所述第二登录请求报文中携带的所述sslvpn客户端加密后的客户端证书,并向所述aaa服务器发送携带所述客户端证书的第二认证请求报文;

所述接收模块,还用于接收所述aaa服务器发送的第二认证响应报文;

所述发送模块,还用于提取所述第二认证响应报文中携带的认证结果,并向所述sslvpn客户端发送携带所述认证结果的第二登录应答报文,以使所述sslvpn客户端从所述第二登录应答报文中解析得到认证结果。

第七方面,本发明实施例提供了一种sslvpn客户端,包括处理器和机器可读存储介质,所述机器可读存储介质存储有能够被所述处理器执行的机器可执行的指令,所述指令由所述处理器加载并执行:以实现本发明实施例第一方面所述的方法。

第八方面,本发明实施例提供了一种机器可读存储介质,所述机器可读存储介质内存储有机器可执行的指令,所述指令由处理器加载并执行,以实现本发明实施例第一方面所述的方法。

第九方面,本发明实施例提供了一种aaa服务器,包括处理器和机器可读存储介质,所述机器可读存储介质存储有能够被所述处理器执行的机器可执行的指令,所述指令由所述处理器加载并执行:以实现本发明实施例第二方面所述的方法。

第十方面,本发明实施例提供了一种机器可读存储介质,所述机器可读存储介质内存储有机器可执行的指令,所述指令由处理器加载并执行,以实现本发明实施例第二方面所述的方法。

第十一方面,本发明实施例提供了一种sslvpn网关,包括处理器和机器可读存储介质,所述机器可读存储介质存储有能够被所述处理器执行的机器可执行的指令,所述指令由所述处理器加载并执行:以实现本发明实施例第三方面所述的方法。

第十二方面,本发明实施例提供了一种机器可读存储介质,所述机器可读存储介质内存储有机器可执行的指令,所述指令由处理器加载并执行,以实现本发明实施例第三方面所述的方法。

本发明实施例提供的一种sslvpn认证方法、客户端、服务器及网关,sslvpn客户端在与sslvpn网关建立连接后,sslvpn客户端向sslvpn网关发送第一登录请求报文,sslvpn网关在收到第一登录请求报文后,向aaa服务器发送第一认证请求报文,aaa服务器在识别到第一认证请求报文中携带证书认证标识时,与sslvpn客户端进行证书认证交互过程,如果sslvpn客户端验证到aaa服务器的服务器证书有效、且aaa服务器验证到sslvpn客户端的客户端证书有效,则可以确定sslvpn认证成功,通过sslvpn客户端与aaa服务器之间的双向证书验证,保证了sslvpn客户端和aaa服务器是对端可以识别为有效的设备,避免了sslvpn客户端和aaa服务器被假冒利用,从而提高了sslvpn认证的安全性。

附图说明

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

图1为本发明实施例的应用于sslvpn客户端的sslvpn认证方法的流程示意图;

图2为本发明实施例的应用于aaa服务器的sslvpn认证方法的流程示意图;

图3为本发明实施例的应用于sslvpn网关的sslvpn认证方法的流程示意图;

图4为本发明实施例的sslvpn认证方法的交互流程示意图;

图5为本发明实施例的基于eap-tls的sslvpn认证方法的交互流程示意图;

图6为本发明实施例的应用于sslvpn客户端的sslvpn认证装置的结构示意图;

图7为本发明实施例的应用于aaa服务器的sslvpn认证装置的结构示意图;

图8为本发明实施例的应用于sslvpn网关的sslvpn认证装置的结构示意图;

图9为本发明实施例的sslvpn客户端的结构示意图;

图10为本发明实施例的aaa服务器的结构示意图;

图11为本发明实施例的sslvpn网关的结构示意图。

具体实施方式

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

为了提高sslvpn认证的安全性,本发明实施例提供了一种sslvpn认证方法、装置、sslvpn客户端、aaa服务器、sslvpn网关及机器可读存储介质。下面首先对本发明实施例所提供的sslvpn认证方法进行介绍。

本发明实施例所提供的sslvpn认证方法可以应用于sslvpn认证系统,sslvpn认证系统可以包括sslvpn客户端、sslvpn网关和aaa服务器。首先对本发明实施例所提供的sslvpn认证方法分别在sslvpn客户端、sslvpn网关和aaa服务器中的执行过程进行介绍。其中,本实施例中的客户端和网关之间是通过sslvpn技术进行通信的,因此本实施例中所提供的方法中将客户端和网关分别命名为sslvpn客户端以及sslvpn网关。

如图1所示,本发明实施例所提供的一种sslvpn认证方法,应用于sslvpn客户端,该sslvpn认证方法可以包括如下步骤:

s101,在与sslvpn网关建立连接后,向sslvpn网关发送第一登录请求报文,以使sslvpn网关向aaa服务器传递第一登录请求报文中携带的证书认证标识。

其中,sslvpn客户端在第一登录请求报文中携带证书认证标识的目的是,使得sslvpn网关在接收到第一登录请求后,向aaa服务器发送认证请求报文时,在认证请求报文中携带证书认证标识,从而使得aaa服务器通过识别认证请求报文中携带的证书认证标识判断认证类型是否是证书认证。

s102,接收sslvpn网关发送的第一登录应答报文,其中,第一登录应答报文中携带aaa服务器加密后的服务器证书。

s103,从第一登录应答报文中解析得到服务器证书,并对服务器证书进行解密验证。

其中,aaa服务器将服务器证书发送到sslvpn客户端,目的是使得sslvpn客户端对aaa服务器进行验证,以此来防止假冒的钓鱼aaa服务器。

具体的证书的加密解密验证过程可以采用现有技术中的技术,本实施例对此不再赘述。

s104,若验证结果为服务器证书有效,则向sslvpn网关发送第二登录请求报文,以使sslvpn网关向aaa服务器传递第二登录请求报文中携带的sslvpn客户端加密后的客户端证书。

进一步的,当sslvpn客户端验证服务器证书为有效时,将客户端证书通过sslvpn网关发送至aaa服务器,从而使得aaa服务器利用客户端证书对sslvpn客户端进行认证。

s105,接收sslvpn网关发送的第二登录应答报文,并从第二登录应答报文中解析得到认证结果。

由此,本申请的上述实施例可以实现sslvpn客户端和aaa服务器之间的双向认证。并且,本实施例中,sslvpn客户端与aaa服务器之间支持证书认证,与现有技术中sslvpn的客户端的接入aaa服务器的认证过程中所采用的用户名和密码的方式相比,安全性更高。

如图2所示,本发明实施例所提供的一种sslvpn认证方法,应用于aaa服务器,该sslvpn认证方法可以包括如下步骤:

s201,接收sslvpn网关发送的第一认证请求报文。

s202,当识别到第一认证请求报文中携带证书认证标识时,向sslvpn网关发送第一认证响应报文,以使sslvpn网关向sslvpn客户端传递第一认证响应报文中携带的aaa服务器加密后的服务器证书。

s203,接收sslvpn网关发送的第二认证请求报文,其中,第二认证请求报文中携带sslvpn客户端加密后的客户端证书。

s204,从第二认证请求报文中解析得到客户端证书,并对客户端证书进行解密验证。

s205,若验证结果为客户端证书有效,则向sslvpn网关发送第二认证响应报文,以使sslvpn网关向sslvpn客户端传递第二认证响应报文中携带的认证成功的认证结果。

如图3所示,本发明实施例所提供的一种sslvpn认证方法,应用于sslvpn网关,该sslvpn认证方法可以包括如下步骤:

s301,接收sslvpn客户端发送的第一登录请求报文。

其中,第一登录请求报文中携带证书认证标识。

s302,提取第一登录请求报文中携带的证书认证标识,并向aaa服务器发送携带证书认证标识的第一认证请求报文。

其中,需要说明的是,sslvpn客户端与sslvpn网关之间采用的是sslvpn协议的报文,而sslvpn网关与aaa服务器之间采用的是radius协议的报文。因而,sslvpn客户端与aaa服务器之间的交互需要sslvpn网关进行协议的转换。

s303,接收aaa服务器发送的第一认证响应报文。

s304,提取第一认证响应报文中携带的aaa服务器加密后的服务器证书,并向sslvpn客户端发送携带服务器证书的第一登录应答报文。

s305,接收sslvpn客户端发送的第二登录请求报文。

s306,提取第二登录请求报文中携带的sslvpn客户端加密后的客户端证书,并向aaa服务器发送携带客户端证书的第二认证请求报文。

s307,接收aaa服务器发送的第二认证响应报文。

s308,提取第二认证响应报文中携带的认证结果,并向sslvpn客户端发送携带认证结果的第二登录应答报文,以使sslvpn客户端从第二登录应答报文中解析得到认证结果。

sslvpn客户端与sslvpn网关之间在建立连接之后,sslvpn客户端可以向sslvpn网关发送携带有证书认证标识的第一登录请求报文,sslvpn网关在接收到第一登录请求报文之后,可以以第一认证请求报文的方式携带证书认证标识发送至aaa服务器,aaa服务器在识别到证书认证标识时,可以确定当前需要与sslvpn客户端之间进行证书认证交互。

aaa服务器将自身的服务器证书进行加密,并发送携带了加密后的服务器证书的第一认证响应报文至sslvpn网关,sslvpn网关在接收到第一认证响应报文之后,可以以第一登录应答报文的方式携带服务器证书发送至sslvpn客户端。sslvpn客户端从第一登录应答报文中解析出服务器证书,并进行解密验证,如果验证服务器证书有效,则可以将自身的客户端证书进行加密,并发送携带了加密后的客户端证书的第二登录请求报文至sslvpn网关,sslvpn网关在接收到第二登录请求报文之后,可以以第二认证请求报文的方式携带客户端证书发送至aaa服务器,aaa服务器从第二认证请求报文中解析出客户端证书,并进行解密验证,如果验证客户端证书有效,则向sslvpn网关反馈携带有认证成功的认证结果的第二认证响应报文至sslvpn网关。

sslvpn网关在接收到第二认证响应报文之后,向sslvpn客户端反馈第二登录应答报文,则sslvpn客户端可以从第二登录应答报文中解析出认证结果。通过sslvpn客户端与aaa服务器之间的双向证书验证,保证了sslvpn客户端和aaa服务器是对端可以识别为有效的设备,避免了sslvpn客户端和aaa服务器被假冒利用,从而提高了sslvpn认证的安全性。

为了便于理解,下面从sslvpn客户端、sslvpn网关和aaa服务器的交互过程,对本发明实施例所提供的sslvpn认证方法进行介绍,如图4所示,该sslvpn认证方法可以包括如下步骤:

s401,sslvpn客户端与sslvpn网关之间建立连接。

sslvpn客户端在接入网络时,会向sslvpn网关发送连接请求,sslvpn网关在接收到连接请求后,基于连接请求中所携带的sslvpn客户端的设备信息,建立与sslvpn客户端的连接,并在连接成功后,向sslvpn客户端反馈连接成功应答,sslvpn客户端在接收到连接成功应答后,即可确定已与sslvpn网关建立连接。

s402,sslvpn客户端向sslvpn网关发送第一登录请求报文,以使sslvpn网关向aaa服务器传递第一登录请求报文中携带的证书认证标识。

sslvpn客户端在与sslvpn网关建立连接后,可以向sslvpn网关发起登录请求,即向sslvpn网关发送第一登录请求报文,第一登录请求报文中携带有sslvpn客户端的账户名和密码,除此之外,第一登录请求中还可以携带有证书认证标识。

具体的,sslvpn客户端向sslvpn网关发送的第一登录请求报文可以为采用sslvpn协议的报文。在该报文中可以新增一个字段,例如<private>字段,该字段中可以记载证书认证交互的eap(extensibleauthenticationprotocol,扩展认证协议)报文,证书认证相关属性包括证书认证标识。当然,证书认证交互的报文还可以为其他类型的交互报文,只要能够携带证书信息、证书认证标识等证书相关属性即可,这里不再一一赘述,下面均以eap为例进行介绍。

s403,sslvpn网关向aaa服务器发送第一认证请求报文,其中,第一认证请求报文中携带证书认证标识。

sslvpn网关在接收到第一登录请求报文后,作为数据转发的网络设备,sslvpn网关可以从第一登录请求报文中提取出证书认证标识,将证书认证标识携带至第一认证请求报文,并发送第一认证请求报文至aaa服务器。

具体的,sslvpn网关向aaa服务器发送的第一认证请求报文可以为采用radius(remoteauthenticationdialinuserservice,远端用户拨入验证服务)协议的报文,当然也可以为其他类型的aaa协议报文,这里不再一一列举,下面均以radius协议报文为例进行介绍。radius协议报文中的eap-message属性字段可以携带证书认证交互的eap报文,sslvpn网关可以从第一登录请求报文新增的<private>字段,提取eap报文,由于该eap报文是sslvpn客户端和aaa服务器之间传递的私有数据,则sslvpn网关不对提取的eap报文进行解析,而是直接将eap报文写入第一认证请求报文中的eap-message属性字段,保证了证书认证标识的传递。对于其他类型的aaa协议报文,eap报文可以携带在该协议报文的指定属性字段中。

同时,由于第一认证请求报文可以为采用radius协议的报文,可以通过识别该报文中的message-authenticator属性字段的内容,来判断所携带的eap报文是否被篡改,增强了对报文的保护。

s404,aaa服务器向sslvpn网关发送第一认证响应报文,其中,第一认证响应报文中携带aaa服务器加密的服务器证书。

aaa服务器在识别到第一认证请求报文中携带的证书认证标识后,确定当前需要与sslvpn客户端进行证书认证,为了保证数据传输的安全性,aaa服务器首先可以对其自身的服务器证书进行加密,然后将加密后的服务器证书携带至第一认证响应报文,发送给sslvpn网关。

aaa服务器识别证书认证标识的方式,可以是在接收到第一认证请求报文之后,判断第一认证请求报文中的eap-message属性字段是否携带eap报文;还可以是对第一认证请求报文中的eap-message属性字段进行解析,判断是否解析到证书认证标识。

具体的,aaa服务器向sslvpn网关发送的第一认证响应报文可以为采用radius协议的报文。该报文中的eap-message属性字段可以携带eap报文,aaa服务器将加密后的服务器证书写入该eap报文中。

aaa服务器在确定当前需要与sslvpn客户端进行证书认证后,可以向sslvpn网关发送证书认证发起报文,sslvpn网关将该证书认证发起报文发送给sslvpn客户端,sslvpn客户端在接收到证书认证发起报文后,确定进行证书认证,则可以通过向sslvpn网关发送请求报文client_hello,由sslvpn网关将client_hello报文转发至aaa服务器,以请求aaa服务器发送服务器证书,开始证书认证。

s405,sslvpn网关向sslvpn客户端发送第一登录应答报文,其中,第一登录应答报文中携带aaa服务器加密的服务器证书。

sslvpn网关在接收到第一认证响应报文之后,作为数据转发的网络设备,sslvpn网关可以从第一认证响应报文中提取出服务器证书,将服务器证书携带至第一登录应答报文,并发送第一登录应答报文至sslvpn客户端。

具体的,sslvpn网关向sslvpn客户端发送的第一登录应答报文可以为采用sslvpn协议的报文。在该报文中可以新增一个字段,例如<private>字段,sslvpn网关可以从第一认证响应报文中的eap-message属性字段中提取eap报文,由于该eap报文是sslvpn客户端和aaa服务器之间传递的私有数据,则sslvpn网关不对提取的eap报文进行解析,而是直接将eap报文写入第一登录应答报文中的<private>字段,保证了证书认证标识的传递。

可选的,第一登录应答报文中还可以携带第一密钥交换属性。

aaa服务器可以利用指定的加密方式对服务器证书进行加密,为了保证sslvpn客户端可以解密服务器证书,在发送服务器证书的同时,还可以发送第一密钥交换属性,即在第一登录应答报文和第一认证响应报文中还可以携带第一密钥交换属性,第一密钥交换属性中记录了服务器证书的解密方式,保证了sslvpn客户端在接收到服务器证书和第一密钥交换属性后,可以对服务器证书进行解密。当然,aaa服务器加密服务器证书的方式可以是预先设置好的,可以在aaa服务器和sslvpn客户端都预先记载了加密的方式,这样,sslvpn在接收到加密的服务器证书之后,可以直接利用已知的加密方式对应的解密方式进行解密,而不需要aaa服务器发送第一密钥交换属性。

s406,sslvpn客户端从第一登录应答报文中解析得到服务器证书,并对该服务器证书进行解密验证。

sslvpn客户端在接收到第一登录应答报文后,由于第一登录应答报文可以为sslvpn协议报文,sslvpn客户端可以利用sslvpn协议报文解析方式对第一登录应答报文进行解析,从而得到服务器证书。sslvpn客户端可以对服务器证书进行解密验证。

可选的,sslvpn客户端对服务器证书进行解密验证的方式,具体可以为:

从第一登录应答报文中解析得到第一密钥交换属性;

利用第一密钥交换属性中记录的解密方式,对服务器证书进行解密;

判断解密后的服务器证书是否有效。

第一登录应答报文中还可以携带第一密钥交换属性,第一密钥交换属性中记录了aaa服务器加密服务器证书所对应的解密方式,则sslvpn客户端可以利用该解密方式对服务器证书进行解密,在对服务器证书进行解密后,可以利用预设的证书认证方式,判断解密后的服务器证书是否有效,其中,证书认证方式可以采用传统的ca(certificateauthority,证书授权)认证方式,这里不再赘述。

s407,若验证结果为服务器证书有效,则sslvpn客户端向sslvpn网关发送第二登录请求报文,以使sslvpn网关向aaa服务器传递第二登录请求报文中携带的sslvpn客户端加密后的客户端证书。

如果验证服务器证书无效,则说明aaa服务器可能为假冒的服务器,则应当停止数据交互,以保证网络安全。如果验证服务器证书有效,则可以继续进行双向证书认证,为了保证数据传输的安全性,sslvpn客户端首先可以对其自身的客户端证书进行加密,然后将加密后的客户端证书携带至第二登录请求报文,发送给sslvpn网关。

具体的,sslvpn客户端向sslvpn网关发送的第二登录请求报文可以为采用sslvpn协议的报文。在该报文中可以新增一个字段,例如<private>字段,该字段可以记载eap报文,sslvpn客户端将加密后的客户端证书写入该eap报文。

s408,sslvpn网关向aaa服务器发送第二认证请求报文,其中,第二认证请求报文中携带sslvpn客户端加密的客户端证书。

sslvpn网关在接收到第二登录请求报文之后,作为数据转发的网络设备,sslvpn网关可以从第二登录请求报文中提取出客户端证书,将客户端证书携带至第二认证请求报文,并发送第二认证请求报文至aaa服务器。

具体的,sslvpn网关向aaa服务器发送的第二认证请求报文可以为采用radius协议的报文,在该报文的eap-message属性字段中携带eap报文。sslvpn网关可以从第二登录请求报文新增的<private>字段,提取eap报文,由于该eap报文是sslvpn客户端和aaa服务器之间传递的私有数据,则sslvpn网关不对提取的eap报文进行解析,而是直接将eap报文写入第二认证请求报文中的eap-message属性字段,保证了证书认证标识的传递。

可选的,第二认证请求报文中还可以携带第二密钥交换属性。

sslvpn客户端可以利用指定的加密方式对客户端证书进行加密,为了保证aaa服务器可以解密客户端证书,在发送客户端证书的同时,还可以发送第二密钥交换属性,即在第二登录请求报文和第二认证请求报文中还可以携带第二密钥交换属性,第二密钥交换属性中记录了客户端证书的解密方式,保证了aaa服务器在接收到客户端证书和第二密钥交换属性后,可以对客户端证书进行解密。当然,sslvpn客户端加密客户端证书的方式可以是预先设置好的,可以在aaa服务器和sslvpn客户端都预先记载了加密的方式,这样,aaa服务器在接收到加密的客户端证书之后,可以直接利用已知的加密方式对应的解密方式进行解密,而不需要sslvpn客户端发送密钥交换属性。

s409,aaa服务器从第二认证请求报文中解析得到客户端证书,并对该客户端证书进行解密验证。

aaa服务器在接收到第二认证请求报文后,由于第二认证请求报文可以为采用radius协议的报文,aaa服务器可以利用radius协议报文解析方式对第二认证请求报文进行解析,从而得到客户端证书。aaa服务器可以对客户端证书进行解密验证。

可选的,aaa服务器对客户端证书进行解密验证的方式,具体可以为:

从第二认证请求报文中解析得到第二密钥交换属性;

利用第二密钥交换属性中记录的解密方式,对客户端证书进行解密;

判断解密后的客户端证书是否有效。

第二认证请求报文中还可以携带第二密钥交换属性,第二密钥交换属性中记录了sslvpn客户端加密客户端证书所对应的解密方式,则aaa服务器可以利用该解密方式对客户端证书进行解密,在对客户端证书进行解密后,可以利用预设的证书认证方式,判断解密后的客户端证书是否有效。

s410,若验证结果为客户端证书有效,则aaa服务器向sslvpn网关发送第二认证响应报文,其中,第二认证响应报文中携带认证成功的认证结果。

如果验证客户端证书无效,则说明sslvpn客户端可能为假冒的客户端,则aaa服务器可以向sslvpn网关发送携带有认证失败的认证结果的第二认证响应报文。aaa服务器还可以对sslvpn客户端的账户名和密码进行验证,如果账户名和密码不匹配,也可以向sslvpn网关发送携带有认证失败的认证结果的第二认证响应报文。当然,aaa在接收到第一认证请求报文之后,可以先对sslvpn客户端的账户名和密码进行校验,如果不匹配,则不进行本发明实施例所提供的认证过程,而直接提醒用户账户名或密码错误。

如果验证客户端证书有效,则说明aaa服务器和sslvpn客户端都为有效的设备,则aaa服务器可以向sslvpn网关发送携带认证结果的第二认证响应报文,该认证结果为认证成功的认证结果。

具体的,aaa服务器向sslvpn网关发送的第二认证响应报文可以为采用radius协议的报文。该报文中的eap-message属性字段可以携带eap报文,aaa服务器将认证结果写入该eap报文中。

s411,sslvpn网关向sslvpn客户端发送第二登录应答报文,其中,第二登录应答报文中携带认证成功的认证结果。

sslvpn网关在接收到第二认证响应报文之后,作为数据转发的网络设备,sslvpn网关可以从第二认证响应报文中提取出认证结果,将认证结果携带至第二登录应答报文,并发送第二登录应答报文至sslvpn客户端。

具体的,sslvpn网关向sslvpn客户端发送的第二登录应答报文可以为采用sslvpn协议的报文。在该报文中可以新增一个字段,例如<private>字段,sslvpn网关可以从第二认证响应报文中的eap-message属性字段中提取eap报文,由于该eap报文是sslvpn客户端和aaa服务器之间传递的私有数据,则sslvpn网关不对提取的eap报文进行解析,而是直接将eap报文写入第一登录应答报文中的<private>字段,保证了证书认证标识的传递。

s412,sslvpn客户端从第二登录应答报文中解析出认证成功的认证结果。

sslvpn客户端在接收到第二登录应答报文后,由于第二登录应答报文可以为采用sslvpn协议的报文,sslvpn客户端可以利用sslvpn协议报文解析方式对第二登录应答报文进行解析,从而得到认证结果。sslvpn客户端在通过对第二登录应答报文进行解析得到认证成功的认证结果后,可以确定能够成功登录到内网,通过与sslvpn网关之间的vpn隧道访问内网数据。

如上述,可选的,第一登录请求报文、第一登录应答报文、第二登录请求报文以及第二登录应答报文均可以为采用sslvpn协议的报文。相应的,证书认证标识、服务器证书、客户端证书及认证结果分别可以携带在上述各sslvpn协议报文的新增字段中。

可选的,第一认证请求报文、第一认证响应报文、第二认证请求报文以及第二认证响应报文均可以为采用radius协议的报文。相应的,证书认证标识、服务器证书、客户端证书及认证结果分别可以携带在上述各radius协议报文的指定消息属性字段中。

在交互过程中,sslvpn客户端与sslvpn网关通过sslvpn协议报文交互,并在新增字段(例如<private>字段)传递携带证书认证交互的eap报文;sslvpn网关和aaa服务器通过radius协议报文交互,使用eap-message传递携带证书认证交互的eap报文,并且,通过识别radius协议报文中的message-authenticator属性字段的内容,来判断所携带的eap报文是否被篡改,增强了对报文的保护。

应用本实施例,sslvpn客户端在与sslvpn网关建立连接后,sslvpn客户端向sslvpn网关发送第一登录请求报文,sslvpn网关在收到第一登录请求报文后,向aaa服务器发送第一认证请求报文,aaa服务器在识别到第一认证请求报文中携带证书认证标识时,与sslvpn客户端进行证书认证交互过程,如果sslvpn客户端验证到aaa服务器的服务器证书有效、且aaa服务器验证到sslvpn客户端的客户端证书有效,则可以确定sslvpn认证成功,通过sslvpn客户端与aaa服务器之间的双向证书验证,保证了sslvpn客户端和aaa服务器是对端可以识别为有效的设备,避免了sslvpn客户端和aaa服务器被假冒利用,从而提高了sslvpn认证的安全性。

为了更便于理解,下面以eap-tls认证成功为例,对sslvpn认证的流程进行介绍,其他证书认证的方法以及认证失败的方式与本例相类似,这里不再一一列举。

如图5所示,详细的sslvpn认证流程如下:

第一步,sslvpn客户端向sslvpn网关发送链接请求connection_request。

第二步,sslvpn网关向sslvpn发送连接成功应答connection_success_response。

第三步,sslvpn客户端向sslvpn网关发送登录请求login_request(携带用户名username和密码password),sslvpn网关向aaa服务器发送认证请求radiusaccess_request(携带username和password)。

第四步,aaa服务器判断是eap-tls证书认证。

第五步,aaa服务器向sslvpn网关发起eap-tls认证radiusaccess_challenge(携带eap请求eap-request/eap-tls启动指令eap-tlsstart),sslvpn网关向sslvpn客户端发送登录应答login_response(携带eap-request/eap-tlsstart)。

第六步,sslvpn客户端向sslvpn网关发送login_request(携带eap响应eap-response/eap-tls:client_hello),sslvpn网关向aaa服务器发送radiusaccess_request(携带eap-response/eap-tls:client_hello)。

第七步,aaa服务器向sslvpn网关发送radiusaccess_challenge(携带eap-request/eap-tls:server_hello,certificate,server_key_exchange,certificate_request,server_hello_done),sslvpn网关向sslvpn客户端发送login_response(携带eap-request/eap-tls:server_hello,certificate,server_key_exchange,certificate_request,server_hello_done)。certificate为服务器证书,server_key_exchange为密钥交换属性,certificate_request为证书请求,server_hello_done表示aaa服务器证书认证结束。

第八步,sslvpn客户端验证服务器证书。

第九步,sslvpn客户端向sslvpn网关发送login_request(携带eap-response/eap-tls:certificate,client_key_exchange,[certificate_verify],change_cipher_spec,tls_finish),sslvpn网关向aaa服务器发送radiusaccess_request(携带eap-response/eap-tls:certificate,client_key_exchange,[certificate_verify],change_cipher_spec,tls_finish)。certificate为客户端证书,client_key_exchange为密钥交换属性,change_cipher_spec为加密套件,tls_finish表示tls认证结束。

第十步,aaa服务器验证客户端证书。

第十一步,aaa服务器向sslvpn网关发送radiusaccess_challenge(携带eap-request/eap-tls:change_cipher_spec,tls_finish),sslvpn网关向sslvpn客户端发送login_response(携带eap-request/eap-tls:change_cipher_spec,tls_finish)。

第十二步,sslvpn客户端向sslvpn网关发送login_request(携带eap-response/eap-tls:tls_ack_finish),sslvpn网关向aaa服务器发送radiusaccess_request(携带eap-response/eap-tls:tls_ack_finish)。tls_ack_finish为sslvpn客户端的结束确认消息。

第十三步,aaa服务器向sslvpn网关发送radiusaccess_accept(携带eap-success),sslvpn网关向sslvpn客户端发送login_success_response(携带eap-success)。sslvpn客户端可以确定认证成功。

相应于上述方法实施例,本发明实施例提供了一种sslvpn认证装置,如图6所示,应用于sslvpn客户端,该装置可以包括:

发送模块610,用于在与sslvpn网关建立连接后,向所述sslvpn网关发送第一登录请求报文,以使所述sslvpn网关向aaa服务器传递第一登录请求报文中携带的证书认证标识;

接收模块620,用于接收所述sslvpn网关发送的第一登录应答报文,所述第一登录应答报文中携带所述aaa服务器加密后的服务器证书;

验证模块630,用于从所述第一登录应答报文中解析得到所述服务器证书,并对所述服务器证书进行解密验证;

所述发送模块610,还用于若验证结果为所述服务器证书有效,则向所述sslvpn网关发送第二登录请求报文,以使所述sslvpn网关向所述aaa服务器传递所述第二登录请求报文中携带的所述sslvpn客户端加密后的客户端证书;

所述接收模块620,还用于接收所述sslvpn网关发送的第二登录应答报文,并从所述第二登录应答报文中解析得到认证结果。

可选的,所述第一登录请求报文、所述第一登录应答报文、所述第二登录请求报文以及所述第二登录应答报文可以为采用sslvpn协议的报文。

可选的,所述证书认证标识、所述服务器证书、所述客户端证书及所述认证结果分别可以携带在各sslvpn协议报文的新增字段中。

可选的,所述第一登录应答报文中还可以携带第一密钥交换属性;

所述验证模块630,具体可以用于:

从所述第一登录应答报文中解析得到所述第一密钥交换属性;

利用所述第一密钥交换属性中记录的解密方式,对所述服务器证书进行解密;

判断解密后的服务器证书是否有效。

本发明实施例还提供了一种sslvpn认证装置,如图7所示,应用于aaa服务器,该装置可以包括:

接收模块710,用于接收sslvpn网关发送的第一认证请求报文;

发送模块720,用于当识别到所述第一认证请求报文中携带证书认证标识时,向所述sslvpn网关发送第一认证响应报文,以使所述sslvpn网关向sslvpn客户端传递所述第一认证响应报文中携带的所述aaa服务器加密后的服务器证书;

所述接收模块710,还用于接收所述sslvpn网关发送的第二认证请求报文,所述第二认证请求报文中携带所述sslvpn客户端加密后的客户端证书;

验证模块730,用于从所述第二认证请求报文中解析得到所述客户端证书,并对所述客户端证书进行解密验证;

所述发送模块720,还用于若验证结果为所述客户端证书有效,则向所述sslvpn网关发送第二认证响应报文,以使所述sslvpn网关向sslvpn客户端传递所述第二认证响应报文中携带的认证成功的认证结果。

可选的,所述第一认证请求报文、所述第一认证响应报文、所述第二认证请求报文以及所述第二认证响应报文可以为采用radius协议的报文。

可选的,所述证书认证标识、所述服务器证书、所述客户端证书及所述认证结果分别可以携带在各radius协议报文的指定消息属性字段中。

可选的,所述第二认证请求报文中还可以携带第二密钥交换属性;

所述验证模块730,具体可以用于:

从所述第二认证请求报文中解析得到所述第二密钥交换属性;

利用所述第二密钥交换属性中记录的解密方式,对所述客户端证书进行解密;

判断解密后的客户端证书是否有效。

本发明实施例还提供了一种sslvpn认证装置,如图8所示,应用于sslvpn网关,该装置可以包括:

接收模块810,用于接收sslvpn客户端发送的第一登录请求报文;

发送模块820,用于提取所述第一登录请求报文中携带的证书认证标识,并向aaa服务器发送携带所述证书认证标识的第一认证请求报文;

所述接收模块810,还用于接收所述aaa服务器发送的第一认证响应报文;

所述发送模块820,还用于提取所述第一认证响应报文中携带的所述aaa服务器加密后的服务器证书,并向所述sslvpn客户端发送携带所述服务器证书的第一登录应答报文;

所述接收模块810,还用于接收所述sslvpn客户端发送的第二登录请求报文;

所述发送模块820,还用于提取所述第二登录请求报文中携带的所述sslvpn客户端加密后的客户端证书,并向所述aaa服务器发送携带所述客户端证书的第二认证请求报文;

所述接收模块810,还用于接收所述aaa服务器发送的第二认证响应报文;

所述发送模块820,还用于提取所述第二认证响应报文中携带的认证结果,并向所述sslvpn客户端发送携带所述认证结果的第二登录应答报文,以使所述sslvpn客户端从所述第二登录应答报文中解析得到认证结果。

可选的,所述sslvpn网关与所述sslvpn客户端之间交互的报文可以为采用sslvpn协议的报文;

所述sslvpn网关与所述aaa服务器之间交互的报文可以为采用radius协议的报文。

应用本实施例,sslvpn客户端在与sslvpn网关建立连接后,sslvpn客户端向sslvpn网关发送第一登录请求报文,sslvpn网关在收到第一登录请求报文后,向aaa服务器发送第一认证请求报文,aaa服务器在识别到第一认证请求报文中携带证书认证标识时,与sslvpn客户端进行证书认证交互过程,如果sslvpn客户端验证到aaa服务器的服务器证书有效、且aaa服务器验证到sslvpn客户端的客户端证书有效,则可以确定sslvpn认证成功,通过sslvpn客户端与aaa服务器之间的双向证书验证,保证了sslvpn客户端和aaa服务器是对端可以识别为有效的设备,避免了sslvpn客户端和aaa服务器被假冒利用,从而提高了sslvpn认证的安全性。

本发明实施例还提供了一种sslvpn客户端,如图9所示,包括处理器901和机器可读存储介质902,所述机器可读存储介质902存储有能够被所述处理器901执行的机器可执行的指令,所述指令由所述处理器901加载并执行:以实现本发明实施例所提供的应用于sslvpn客户端的sslvpn认证方法。

本发明实施例还提供了一种aaa服务器,如图10所示,包括处理器1001和机器可读存储介质1002,所述机器可读存储介质1002存储有能够被所述处理器1001执行的机器可执行的指令,所述指令由所述处理器1001加载并执行:以实现本发明实施例所提供的应用于aaa服务器的sslvpn认证方法。

本发明实施例还提供了一种sslvpn网关,如图11所示,包括处理器1101和机器可读存储介质1102,所述机器可读存储介质1102存储有能够被所述处理器1101执行的机器可执行的指令,所述指令由所述处理器1101加载并执行:以实现本发明实施例所提供的应用于sslvpn网关的sslvpn认证方法。

上述机器可读存储介质可以包括ram(randomaccessmemory,随机存取存储器),也可以包括nvm(non-volatilememory,非易失性存储器),例如至少一个磁盘存储器。可选的,机器可读存储介质还可以是至少一个位于远离前述处理器的存储装置。

上述处理器可以是通用处理器,包括cpu(centralprocessingunit,中央处理器)、np(networkprocessor,网络处理器)等;还可以是dsp(digitalsignalprocessor,数字信号处理器)、asic(applicationspecificintegratedcircuit,专用集成电路)、fpga(field-programmablegatearray,现场可编程门阵列)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。

机器可读存储介质902与处理器901之间、机器可读存储介质1002与处理器1001之间、机器可读存储介质1102与处理器1101之间可以通过有线连接或者无线连接的方式进行数据传输,并且sslvpn客户端、aaa服务器与sslvpn网关之间以及sslvpn客户端、aaa服务器、sslvpn网关与其他的设备之间可以通过有线通信接口或者无线通信接口进行通信。图9、图10和图11所示的仅为通过总线进行数据传输的示例,不作为具体连接方式的限定。

本实施例中,处理器901通过读取机器可读存储介质902中存储的机器可执行的指令,处理器1001通过读取机器可读存储介质1002中存储的机器可执行的指令,处理器1101通过读取机器可读存储介质1102中存储的机器可执行的指令,通过加载并执行指令,能够实现:sslvpn客户端在与sslvpn网关建立连接后,sslvpn客户端向sslvpn网关发送第一登录请求报文,sslvpn网关在收到第一登录请求报文后,向aaa服务器发送第一认证请求报文,aaa服务器在识别到第一认证请求报文中携带证书认证标识时,与sslvpn客户端进行证书认证交互过程,如果sslvpn客户端验证到aaa服务器的服务器证书有效、且aaa服务器验证到sslvpn客户端的客户端证书有效,则可以确定sslvpn认证成功,通过sslvpn客户端与aaa服务器之间的双向证书验证,保证了sslvpn客户端和aaa服务器是对端可以识别为有效的设备,避免了sslvpn客户端和aaa服务器被假冒利用,从而提高了sslvpn认证的安全性。

另外,本发明实施例还提供了一种机器可读存储介质,所述机器可读存储介质内存储有机器可执行的指令,所述指令被处理器加载并执行,以实现本发明实施例所提供的应用于sslvpn客户端的sslvpn认证方法。

本发明实施例还提供了一种机器可读存储介质,所述机器可读存储介质内存储有机器可执行的指令,所述指令被处理器加载并执行,以实现本发明实施例所提供的应用于aaa服务器的sslvpn认证方法。

本发明实施例还提供了一种机器可读存储介质,所述机器可读存储介质内存储有机器可执行的指令,所述指令被处理器加载并执行,以实现本发明实施例所提供的应用于sslvpn网关的sslvpn认证方法。

本实施例中,机器可读存储介质存储有处理器在运行时执行本发明实施例所提供的应用于sslvpn客户端、aaa服务器和sslvpn网关的sslvpn认证方法的机器可执行的指令,因此能够实现:sslvpn客户端在与sslvpn网关建立连接后,sslvpn客户端向sslvpn网关发送第一登录请求报文,sslvpn网关在收到第一登录请求报文后,向aaa服务器发送第一认证请求报文,aaa服务器在识别到第一认证请求报文中携带证书认证标识时,与sslvpn客户端进行证书认证交互过程,如果sslvpn客户端验证到aaa服务器的服务器证书有效、且aaa服务器验证到sslvpn客户端的客户端证书有效,则可以确定sslvpn认证成功,通过sslvpn客户端与aaa服务器之间的双向证书验证,保证了sslvpn客户端和aaa服务器是对端可以识别为有效的设备,避免了sslvpn客户端和aaa服务器被假冒利用,从而提高了sslvpn认证的安全性。

对于sslvpn客户端、aaa服务器、sslvpn网关及机器可读存储介质实施例而言,由于其涉及的方法内容基本相似于前述的方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。

需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置、sslvpn客户端、aaa服务器、sslvpn网关及机器可读存储介质实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。

以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。

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