SSL VPN技术原理

SSL详解

SSL VPN的技术主要用到了SSL技术。有关SSL具体技术,可以参考:

SSL/TLS协议详解

SSL VPN简介

SSL VPN是以SSL协议为安全基础的VPN远程接入技术,移动办公人员(在SSL VPN中被称为远程用户)使用SSL VPN可以安全、方便的接入企业内网,访问企业内网资源,提高工作效率。

SSL VPN与IPSec VPN对比:

SSL和IPSec

如上图,SSL保护的是应用层的数据,可以针对某个应用做具体保护。而IPSec VPN针对的是整个网络层。无法做精细化控制。

所以在SSL VPN出现之前,IPSec、L2TP等先期出现的VPN技术虽然可以支持远程接入这个应用场景,但这些VPN技术存在如下缺陷。

  • 远程用户终端上需要安装指定的客户端软件,导致网络部署、维护比较麻烦。
  • IPSec/L2TP VPN的配置繁琐
  • 网络管理人员无法对远程用户访问企业内网资源的权限做精细化控制

SSL VPN与传统VPN的对比:

传统VPN特点:

  • L2TP及拨号:
    • 不安全
    • 拨号上网的额外费用
    • 拨号接入服务器端口限制
    • 缺少信息鉴别
    • 无基于应用的访问控制策略。
    • 泄露内网IP
  • MPL VPN:
    • 不安全
    • 无用户认证
    • 无审计
    • 无加密
    • 无访问控制
    • 造价高
    • 跨运营商互通互联问题
    • 适用于大型企业内网互联
  • IPSec VPN:
    • 客户端管理费用高
    • NAT问题
    • 安全风险
    • 无基于应用的用户认证授权审计

SSL VPN技术优势:

  • 无客户端的便捷部署
  • 应用层接入的安全保护
  • 企业延伸的效率提升

SSL协议从身份认证、机密性、完整性三个方面确保了数据通信的安全

SSL VPN实现私密性 完整性 不可否认 源认证

SSL VPN的特点:

  • 采用B/S架构,远程用户无需安装额外软件,可直接使用浏览器访问内网资源。
  • SSL VPN可根据远程用户访问内网资源的不同,对其访问权限进行高细粒度控制。
  • 提供了本地认证、服务器认证、认证匿名和证书挑战多种身份认证方式,提高身份认证的灵活性。
  • 可以使用主机检查策略。
  • 缓存清理策略用于清理远程用户访问内网过程中在终端上留下的访问哼唧,加固用户的信息安全。

SSL VPN的应用场景:

SSL VPN的主要应用场景是保证远程用户能够在企业外部安全、高效的访问企业内部的网络资源。

通过多虚拟网关技术可以实现业务的隔离。

SSL VPN原理

SSL VPN访问内网资源的总体流程:

流程

图:SSL VPN远程用户访问内网资源的总体流程图

虚拟网关:FW向远程用户提供SSL VPN接入服务的功能模块称为虚拟网关,虚拟网关是远程用户访问企业内网资源的统一入口。

一台FW设备可以创建多个虚拟网关,每个虚拟网关之间相互独立,互不影响。可以在虚拟网关下配置各自的用户、资源和策略,进行单独管理。虚拟网关本身无独立的管理员,所有虚拟网关的创建、配置、修改和删除等管理操作统一由FW的系统管理员完成。

  1. 用户登录

    远程用户通过Web浏览器(客户端)登录虚拟网关,请求建立SSL连接。虚拟网关向远程用户发送自己的本地证书,远程用户对虚拟网关的本地证书进行身份认证。认证通过后,远程用户与虚拟网关成功建立SSL连接。

  2. 用户认证

    虚拟网关对远程用户进行用户认证,验证用户身份。用户认证可以选择以下四种方式之一:本地认证、服务器认证、证书匿名认证、证书挑战认证。

  3. 角色授权

    用户认证完成后,虚拟网关查询该用户的资源访问权限。用户的权限分配通过角色实现,先将具有相同权限的用户/组加入某个角色,然后角色关联可访问的业务资源,角色是联系用户和资源的纽带。

  4. 资源访问

    虚拟网关根据远程用户的角色信息,向用户推送可访问的资源链接,远程用户点击对应的资源链接进行资源访问。

本地证书认证:

本地证书认证是在建立SSL连接前,客户端对虚拟网关身份的验证。

本地证书认证

图:本地证书认证的流程图
  1. 用户在客户端输入https://*虚拟网关地址:端口https://域名*,向SSL VPN虚拟网关请求建立SSL连接。

  2. 虚拟网关在收到请求后,从证书模块调用虚拟网关引用的本地证书。

  3. 虚拟网关将本地证书发送给客户端。

  4. 客户端根据自己证书库中的CA证书检查虚拟网关的本地证书是否可信。

    当满足以下三个条件时,客户端认为虚拟网关的本地证书可信,则继续运行下一步。

    • 虚拟网关的本地证书在有效期内。
    • 客户端的CA证书与虚拟网关的本地证书是同一个CA机构颁发的。
    • 虚拟网关的本地证书的CN字段取值与虚拟网关地址或域名一致。

    如果以上三个条件不能同时满足,则虚拟网关会为客户端推送一个提示框,要求客户端信任虚拟网关。如果客户端选择信任,则继续运行下一步。如果客户端选择不信任,则本地证书认证不通过。

  5. 客户端与虚拟网关进行TCP三次握手以及一次SSL握手,成功建立SSL连接。用户看到SSL VPN虚拟网关登录界面。

用户认证:

用户认证是虚拟网关对客户端身份的验证,包括:本地认证、服务器认证、证书匿名认证和证书挑战认证。

认证授权:

  • VPNDB认证授权
  • 第三方服务器认证授权(Radius、LDAP、AD、SecurID)
  • 数字证书认证(X.509/USB Key + X.509)
  • 短信辅助认证

(1)本地认证:

本地用户名和密码,存在SSL网关的本地用户。

本地认证

图:本地认证流程图
  1. 用户在SSL VPN虚拟网关登录界面输入用户名和密码后,客户端会将用户名和密码发送给虚拟网关。

  2. 虚拟网关会将用户名、密码发送给认证域模块。

    用户属于哪个认证域是由用户名中携带的“@”后的字符串来决定的。如“user1@bj”属于“bj”认证域。如果用户名中没有携带“@”,则属于缺省的default认证域。

  3. 认证域模块将用户名和密码发送给用户/组模块。

  4. 用户/组模块会根据自己的数据库检查用户名和密码是否正确。如果是则认证通过,如果不是则认证不通过。

  5. 用户/组模块将认证结果返回给认证域模块。

  6. 认证域模块将认证结果返回给虚拟网关。

  7. 如果认证结果为通过,则虚拟网关会从自己的角色授权列表中查找用户所属角色从而确认此用户的业务权限。如果认证结果为不通过,则直接进行8.

  8. 虚拟网关将认证结果返回给客户端。

    认证结果为通过的用户能够登录SSL VPN虚拟网关界面,以相应的业务权限来使用SSL VPN业务。认证结果为不通过的用户会在客户端上看到“认证失败”。

(2)服务器认证:

服务器认证是指SSL VPN用户的用户名和密码保存在服务器上,需要在服务器上完成用户认证。服务器认证支持的服务器类型包括:RADIUS、HWTACACS、SecurID、AD、LDAP。

服务器认证

图:服务器认证流程图

(3)证书匿名认证:

只采用证书,客户端发送证书给服务器认证 。

匿名认证

图:证书匿名认证流程图

(4) 证书挑战认证:(最安全)

证书挑战认证是指将验证客户端证书与本地认证或服务器认证结合起来。

证书+本地用户名密码

证书+服务器认证

挑战认证

图:证书挑战认证流程图

RADIUS双因子认证:

RADIUS双因子认证是指FW和RADIUS服务器配合,对SSL VPN用户进行身份认证。认证时,除了验证用户名和静态PIN码,还要求用户输入动态验证码。动态验证码可以是短信验证码或硬件令牌生成的动态密码。


SSL VPN业务

业务 定义
Web代理 远程用户访问内网Web资源时使用Web代理业务。
文件共享 远程用户访问内网文件服务器(如支持SMB协议的Windows系统、支持NFS协议的Linux系统)时使用文件共享业务。远程用户直接通过Web浏览器就能在内网文件系统上创建和浏览目录,进行下载、上传、改名、删除等文件操作,就像对本机文件系统进行操作一样方便。
端口转发 远程用户访问内网TCP资源时使用端口转发业务。适用于TCP的应用服务包括Telnet、远程桌面、FTP、Email等。端口转发提供了一种端口级的安全访问内网资源的方式。
网络扩展 远程用户访问内网IP资源时使用网络扩展业务。Web资源、文件资源以及TCP资源都属于IP资源,通常在不区分用户访问的资源类型时为对应用户开通此业务。

Web代理:

web代理实现对内网Web资源的安全访问:

  • Web代理实现了无客户端的页面访问。

  • Web代理有两种实现方式:Web-Link和Web改写(默认)。

    • Web改写:是将内网web链接隐藏起来,起到加密的作用。即远程用户在点击虚拟网关资源列表中的链接时,虚拟网关会将用户要访问的真实URL进行加密。

      同时用户要访问的Web资源页面链接对象(例如Flash、PDF、Java Applet等)的URL也会被一并加密。

    • Web-Link:不会进行加密和适配,只做单纯“转发”远程用户的Web资源请求。

web代理

图:web代理业务交换流程

Web代理功能的基本实现原理是将远程用户访问Web Server的过程被分成了两个阶段。首先是远程用户与FW虚拟网关之间建立HTTPS会话,然后FW虚拟网关再与Web Server建立HTTP会话。虚拟网关在远程用户访问企业内网Web Server中起到了改写、转发Web请求的作用。

Web代理报文封装原理:

封装

图:Web代理报文封装原理

远程用户访问内网Web资源时的报文封装过程,从图中可以看出远程用户的访问过程本质上是由HTTPS和HTTP这两个会话衔接而成。其中,远程用户与虚拟网关建立HTTPS会话时,使用的源端口为6293,这个源端口是一个随机端口;目的端口是443。虚拟网关与Web Server建立HTTP会话时,源端口是10091,这个源端口也是随机端口,目的端口为80。

文件共享:

提供了对内网文件系统的安全访问:

  • 采用协议转化技术,无需安装专有客户端,直接通过浏览器安全接入内部文件系统。
  • 将客户端发起的文件共享请求转化成相应的协议格式,与服务器进行交互。

支持:SMB协议(Windows),NFS(Linux)

在文件共享业务中FW起到了协议转换器的作用。

文件共享

图:文件共享的交互过程

注意:在文件共享中,Ctrl + C等组合键无法使用。

文件共享应用的特点:

  • 所有文件接入需要认证
  • 所有文件传输采用SSL加密
  • 文件级的访问权限控制
  • SVN增加额外的访问控制
  • 就像操作本机文件系统一样安全便捷。

端口转发:

提供丰富的内网TCP应用服务。

广泛支持静态端口的TCP应用:

  • 单端口单服务器(如:Telnet,SSH,MS RDP, VNC等)
  • 单端口多服务器(如:Lotus Notes)
  • 多端口多服务器(如:Outlook)

支持动态端口的TCP应用:

  • 动态端口(如:FTP,Oracle)

提供端口级的访问控制。

端口转发实现原理:

端口转发需要在客户端上运行一个ActiveX控件作为端口转发器,用于侦听指定端口上的连接。

端口转发

图:端口转发的交互过程,Telnet示例

端口转发的应用特点:

  1. 实现对内网TCP应用的广泛支持
  2. 远程桌面、Outlook、Notes、FTP等
  3. 所有数据流都经过加密认证
  4. 对用户进行统一的授权、认证
  5. 提供对TCP应用的访问控制
  6. 只需标准浏览器,不用安装客户端。
  7. 保证TCP应用的安全性、可靠性,提供方便快捷的操作、管理方式。

网络扩展:

实现对内网所有复杂应用的全网访问.

  • 通过建立安全的SSL隧道,实现对基于IP的内网业务的全面访问。

  • 实现方式:

    • ActiveX控件
    • 专用客户端软件:一次安装,零配置。
  • 访问方式:

    • 全路由模式(Full Tunnel)

      全通道方式,所有流量都流向网关。

    • 分离模式(Split Tunnel)

      分离通道方式:处理可以访问内网,还能够访问客户端所在的本地子网。

    • 手动模式(Manual Tunnel)

      能够访问内网和特定网段的资源,同时,客户端访问本地子网和Internet的操作不受影响。

网络扩展实现原理:

网络扩展

图:网络扩展业务交换流程

启动网络扩展功能,会触发以下几个动作:

  1. 远程用户与虚拟网关之间会建立一条SSL VPN隧道。

  2. 远程用户本地PC会自动生成一个虚拟网卡。虚拟网关从地址池中随机选择一个IP地址,分配给远程用户的虚拟网卡,该地址作为远程用户与企业内网Server之间通信之用。有了该私网IP地址,远程用户就如同企业内网用户一样可以方便访问内网IP资源。

  3. 虚拟网关向远程用户下发到达企业内网Server的路由信息。

    虚拟网关会根据网络扩展业务中的配置,向远程用户下发不同的路由信息。

网络扩展报文封装过程:

网络扩展功能建立SSL VPN隧道的方式有两种:可靠传输模式和快速传输模式。可靠传输模式中,SSL VPN采用SSL协议封装报文,并以TCP协议作为传输协议;快速传输模式中,SSL VPN采用采用UDP协议作为传输协议。

可靠

图:可靠性传输模式下报文封装过程

可靠性传输模式下,SSL VPN隧道之间使用了TCP作为传输协议。

快四

图:快速传输模式下报文封装过程

模式下报文的封装原理和可靠性模式下报文封装原理是一样的,只是传输协议由TCP改为了UDP。

终端安全:

终端安全是在请求接入内网的主机上部署一个软件,通过该软件检查终端主机的安装状况。主要包括:主机检查、缓存清理。

主机检查:检查用户用来访问内网资源的主机是否符号位安全要求。主机检查策略包括如下检查项:

  • 查毒软件检查
  • 防火墙检查
  • 注册表检查
  • 文件检查
  • 端口检查
  • 进程检查
  • 操作系统检查

缓存清理:清除接入虚拟网关的主机的访问痕迹,实现客户端的零痕迹访问。清理范围如下:

  • Internet临时文件
  • 浏览器自动保存的密码
  • Cookie记录
  • 浏览器的访问历史记录
  • 回收站和最近打开的文档列表
  • 指定文件或文件夹

完善的日志功能:

  • 日志查询
  • 日志导出
  • 虚拟网关管理员日志
  • 用户日志
  • 系统日志

SSL VPN使用限制:

  • 在负载分担组网下,不支持SSL VPN功能。
  • SSL VPN特性不支持IPv6。

SSL VPN组网分析

SSL VPN应用典型网络位置:

SSL VPN网关多部署于网络出口处,应用服务器之前,介于远程用户和服务器之间,控制两者的通信。

典型网络位置

图:SSL VPN典型组网

SSL VPN单臂组网模式应用场景分析:

单臂和双臂组网方式,多用于SVN设备,SVN单臂挂接在防火墙、路由器或交换机上,内网和Internet都通过这个网口与SVN通信, 这种模式称为单臂模式。

单臂组网

图:SSL VPN单臂组网拓扑

这种方案部署的缺点:因为SSL VPN的流量是加密的,那么当远程用户访问时,如果流量中有攻击或者病毒,而防火墙不认识加密流量,会转发给SVN,SVN解密后直接诶发往内网。会存在安全隐患。

所以,最好的部署是将SVN与防火墙串联。远程用户的流量先到SVN,解密后给防火墙检查。检查通过后发送给内网。

SSL VPN双臂组网模式应用场景分析:

SVN双臂挂接在防火墙、路由器或者交换机上。内网和Internet都通过不同的网口语SVN进行通信,这种模式成为双臂模式。

双臂组网

图:SSL VPN双臂组网模式

参考文档:华为HedEx文档


坚持原创技术分享,您的支持将鼓励我继续创作!