一种sslvpn的代理方法、服务器以及客户端及其处理方法

文档序号:9870016阅读:7954来源:国知局
一种sslvpn的代理方法、服务器以及客户端及其处理方法
【技术领域】
[0001] 本申请设及SSLVPN(Secu;rity Socket Layer Virtual Private 化twork,安全套 接层虚拟专用网络)技术领域,尤其设及一种SSLVPN的代理方法、服务器W及客户端及其处 理方法。
【背景技术】
[0002] 目前,互联网及AND(A卵Iication Delivery Networking,应用分发网络)领域, SSLVPN动态内容传输加速方向,在TCP^ransmission Con化〇1 Protocol,传输控制协议) 代理转发的方法中,在使用通用服务端口 443或者1194的情况下,需要增加 IPQnternet Pro toco 1,因特网协议)进行区分不同SSLVPN目的地址的问题,提出了一种通用的SSLVPN协 议解析,目的地址识别的方法,实现了基于TCP的通用的SSLVPN代理服务器。
[0003] 在ADN领域中,针对一个频道的SSLVPN请求,通过DNS(Domain化me System,域名 系统)服务器将用户的访问引导到最近的TCP代理服务器上,TCP代理服务器通过监听特定 的套接字(IP地址+端口)来接受来自用户的访问请求(通常为443或者1194端口),并使用预 先配置好的源站的套接字与源站服务器建立连接,将SSLVPN请求WTCP数据的形式发给源 站服务器,同时将来自源站服务器的响应转发给用户,而在本地不做分析。
[0004] TCP代理服务器的一个IP的443端口只能服务一个SSLVPN频道,如果需要服务多个 频道的话就会出现冲突。如果需要服务多个源站的时候就需要通过增加 IP的方式进行解 决,即IPl: 443服务一个频道,IP2:443服务另外一个频道。
[0005] 现有技术中无疑对IP资源的消耗非常严重。尽管可W做到多个SSLVPN频道的转 发,但是限制了 SSLVPN服务频道个数。图1示出了传统SSLVPN代理架构,如图所示,要区分两 个不同的频道,需要使用两个不同的IP,频道1解析到IPl上,频道2解析到IP2上。从而做到 S化VPN代理转发的功能。现有技术中的SSLVPN代理基本都是位于TCP层或者IP层的。基本都 是通过增加 IP或者更换端口的方式进行区分。还未有基于一个IP = PORT(端口)的通用的 SSLVPN代理服务器。

【发明内容】

[0006] 本申请实施例提出了一种SSLVPN的代理方法、服务器W及客户端及其处理方法, 用于减少IP资源的消耗。
[0007] 在一个方面,本申请实施例提供了一种SSLVPN的代理方法,包括:
[000引生成代理会话标识PSID,根据所述PSID与客户端进行OPENVPN建立连接;
[0009] 解析所述客户端发送的报文获取目的服务器端的地址;
[0010] 根据所述目的服务器端的地址与所述目的服务器进行传输控制协议TCP建立连 接;
[0011] 根据从所述客户端获得的客户端会话标识CSID与所述目的服务器端进行OPENVPN 建立连接,并将在与所述目的服务器端进行OPENVPN建立连接阶段接收到的来自所述目的 服务器端的全部报文中的服务器会话标识SSID替换成所述PSID后发送给所述客户端。
[0012] 并提供了与上述代理方法对应的一种SSLVPN的代理服务器包括:
[0013] 代理会话标识生成模块,用于生成代理会话标识PSID;
[0014] 第一 OPENVPN模块,用于根据所述PSID与客户端进行OPENVPN建立连接;
[0015] 解析模块,用于解析所述客户端发送的报文获取目的服务器端的地址;
[0016] TCP模块,用于根据所述目的服务器端的地址与所述目的服务器进行传输控制协 议TCP建立连接;
[0017] 第二OPENVPN模块,用于根据从所述客户端获得的客户端会话标识CSID与所述目 的服务器端进行OPENVPN建立连接,并将在与所述目的服务器端进行OPENVPN建立连接阶段 接收到的来自所述目的服务器端的全部报文中的服务器会话标识SSID替换成所述PSID后 发送给所述客户端。
[001引在另一个方面,本申请实施例提供了一种SSLVPN的客户端处理方法,包括:
[0019] 获得目的服务器端的信息;
[0020] 将所述目的服务器端的信息发送给代理服务器。
[0021 ]并提供了与上述客户端处理方法对应的SSLVPN的客户端,包括:
[0022] 信息获取模块,用于获得目的服务器端的信息;
[0023] 发送模块,用于将所述目的服务器端的信息发送给代理服务器。
[0024] 有益效果如下:
[0025] 在本发明实施例中,增加 SSLVPN的代理服务器与客户端W及目的服务器端进行 0阳NVPN建立连接阶段的信息处理,从而避免了现有技术中TCP代理服务器一个IP的443端 口只能服务一个SSLVPN频道,如果需要服务多个频道的话就会出现冲突,如果需要服务多 个源站的时候就需要通过增加 IP的方式进行解决的问题。从而减少了 IP资源的消耗。
【附图说明】
[0026] 下面将参照附图描述本申请的具体实施例,其中:
[0027] 图1示出了传统SSLVPN代理架构示意图;
[00%]图2示出了在没有代理的情况下SSLVPN的处理流程示意图;
[0029] 图3示出了本申请实施例中采用了通用的SSLVPN代理服务器的SSLVPN的处理流程 示意图;
[0030] 图4示出了本申请实施例中SSLVPN代理服务器的代理方法流程示意图;
[0031 ]图5示出了本申请实施例中SSLVPN客户端处理方法流程示意图;
[0032] 图6示出了本申请实施例中的SSLVPN代理架构示意图;
[0033] 图7示出了本申请实施例中的SSLVPN的代理服务器的结构示意图;
[0034] 图8示出了本申请实施例中SSLVPN的客户端的结构示意图;
[0035] 图9示出了本申请实施例中一个具体的SSLVPN的客户端的结构示意图。
【具体实施方式】
[0036] 为了使本申请的技术方案及优点更加清楚明白,W下结合附图对本申请的示例性 实施例进行进一步详细的说明,显然,所描述的实施例仅是本申请的一部分实施例,而不是 所有实施例的穷举。并且在不冲突的情况下,本说明书中的实施例及实施例中的特征可W 互相结合。
[0037] 基于TCP的SSLVPN代理服务器的前提是无证书,所谓无证书指的是源站不将S化的 证书及私钥放在代理服务器上,运样代理服务器不具备对S化协议解析的功能,即客户端的 访问内容依然是加密的,安全性可W保证。代理服务器作为中间人的角色,从TCP的层面进 行TCP包的转发。
[0038] 在没有代理的情况下,如图2所示,根据SSLVPN的原理,S化VPN Client(客户)端与 Server (服务器)端首先进行TCP建立连接,TCP建立连接后进行0阳NVPN建立连接,主要是客 户端发送"P_C0NTR0L_HEAD_RESETJ:LIENT_V2",服务器端发送"P_C0NTR0L_HEAD_RESET_ SERVER"。主要是客户端与服务端各自生成CSID(客户端会话标识)和SSID(服务器会话标 识),即一个随机的会话号。OPENVPN建立连接之后即进入S化建立连接阶段。S化建立连接阶 段遵循正常的SSLALS(^a)Isport Layer Security Protocol,安全传输层协议)流程。主 要流程为客户端发送Client Hello与服务器端进行建立连接,该字段为明文。服务器端接 收到之后发送Server Hello及证书等流程。在验证证书及秘钥通过后即可协商一个加密通 道VPN(Vbtual Private化twork,虚拟专用网络)。客户端与服务端的交互数据即可通过 该加密通道进行传输。
[0039] 但是由于SSLVPN位于公共互联网基础之上,受到各种网络因素的影响,稳定性及 速度均受到影响。如果使用AND加速网络的话,可W明显的解决访问速度及稳定性的问题。 但是现有的TCP代理的方式严重浪费IP资源(如前文所述),故本发明用一个通用的SSLVPN 代理服务器来解决W上问题。
[0040] 为解决IP资源浪费的问题,本发明主要需解决两个问题:1、如何识是来自不同的 VPN客户端的目的地问题;2、SSLVPN客户端及服务器端如何信任VPN代理,即解决SID的问 题。
[0041 ] 1、针对问题1 ,SSLALS协议中SNKServer Name Indication,服务器名称指示)扩 展字段为通用的方式,在通用的HTTPS协议中,在Client Hello的明文包中即插入了访问的 去向域名。例如SS1 vpn. teSt. com.不同的访问目的地址该SNI字段不同,且为明文字段。但 是在SSLVPN协议中均未利用该SNI字段。本发明利用运个SNI字段进行SSLVPN经过代理服务 器时的目的地址选择的标识,在客户端插入了SNI字段,具体可W如下: Secure Sockets Layer TLSvl Record Layer: Handshake Protocol: Client Hello Content Type: Handshake (22) Version: TLS 1.0 (0x0301) Length: 287
[0042] Handshake Protocol: Client Hello Handshake Type: Client Helio (I) Length: 283 Version: TLS 1.2 (0x0303) Random Session ID Length: 0 Cipher S山tes Length: 110 Cipher Suites (55 suites) Compression IVi芭thods Length: I Compression Methods (I method) Extensions Length: 132 Ext色n S i D n: S芭rver_na m它
[0043] Type: server-.name (OxOOOO) Length; 23 Server Name Indication extension Server Name list length: 21 Server Na所e Type: host-name (O) Server Name length: 18 Server Name: www.cloudminds.com
[0044] 但是,S化/TLS的建立连接阶段是位于OPENVPN建立连接之后的,即如果代理服务 器不知道目的地址的话,OPENVPN建立连接是不成功的。更无法进行后续的S化建立连接。所 W为了解决OPENVPN建立连接不通的问题,提出方法解决问题2;
[0045] 2、如图3所示,由于OPENVPN建立连接阶段,客户端与服务器端各自生成CSID与 SSID,且OPENVPN进行S次握手的时候,VPNPR0XY代服务器端与客户端进行OPENVPN进行建 立连接,生成一个Proxy Session ID,简称PSID(代理会话标识),该PSID可随机生成,也可 根据实际需要按不同算法生成,通过PSID代替SSID与客户端进行建立连接。在客户端与VPN 代理建立OPENVPN连接之后,客户端会发送Client HelIo的明文字段进行S化建立
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1