SSL VPN技术白皮书
关键词:SSL VPN、HTTPS、Web接入方式、TCP接入方式、IP接入方式
摘 要:SSL VPN是一种新兴的以HTTPS为基础的VPN技术,为用户远程访问公司内部网络提供了安全保证。本文介绍了SSL VPN技术的实现原理及典型组网应用。
缩略语:
缩略语 | 英文全名 | 中文解释 |
AD | Active Directory | 活动目录 |
CA | Certificate Authority | 证书机构 |
HTTPS | HTTP Security | 安全的HTTP,即支持SSL的HTTP |
LDAP | Lightweight Directory Access Protocol | 轻型目录访问协议 |
RADIUS | Remote Authentication Dial-In User Service | 远程认证拨号用户服务 |
SMB | Server Message Block | 服务器信息块,用来实现文件共享、打印机等资源访问的协议,Windows、Linux操作系统均支持该协议 |
SSL | Secure Sockets Layer | 安全套接层 |
VPN | Virtual Private Network | 虚拟专用网络 |
目 录
随着互联网的普及和电子商务的飞速发展,越来越多的员工、客户和合作伙伴希望能够随时随地接入公司的内部网络,访问公司的内部资源。接入用户的身份可能不合法、远端接入主机可能不够安全,这些都为公司内部网络带来了安全隐患。
通过加密实现安全接入的VPN——SVPN(Security VPN)技术提供了一种安全机制,保护公司的内部网络不被攻击,内部资源不被窃取。SVPN技术主要包括IPsec VPN和SSL VPN。
由于IPsec VPN实现方式上的局限性,导致其存在着一些不足:
l 部署IPsec VPN网络时,需要在用户主机上安装复杂的客户端软件。而远程用户的移动性要求VPN可以快速部署客户端,并动态建立连接;远程终端的多样性还要求VPN的客户端具有跨平台、易于升级和维护等特点。这些问题是IPsec VPN技术难以解决的。
l 无法检查用户主机的安全性。如果用户通过不安全的主机访问公司内部网络,可能引起公司内部网络感染病毒。
l 访问控制不够细致。由于IPsec是在网络层实现的,对IP报文的内容无法识别,因而不能控制高层应用的访问请求。随着企业经营模式的改变,企业需要建立Extranet,与合作伙伴共享某些信息资源,以便提高企业的运作效率。对合作伙伴的访问必须进行严格有效地控制,才能保证企业信息系统的安全,而IPsec VPN无法实现访问权限的控制。
l 在复杂的组网环境中,IPsec VPN部署比较困难。在使用NAT的场合,IPsec VPN需要支持NAT穿越技术;在部署防火墙的网络环境中,由于IPsec协议在原TCP/UDP头的前面增加了IPsec报文头,因此,需要在防火墙上进行特殊的配置,允许IPsec报文通过。
IPsec VPN比较适合连接固定,对访问控制要求不高的场合,无法满足用户随时随地以多种方式接入网络、对用户访问权限进行严格限制的需求。
SSL VPN技术克服了IPsec VPN技术的缺点,以其跨平台、免安装、免维护的客户端,丰富有效的权限管理而成为远程接入市场上的新贵。
SSL VPN是以HTTPS为基础的VPN技术,它利用SSL协议提供的基于证书的身份认证、数据加密和消息完整性验证机制,为用户远程访问公司内部网络提供了安全保证。SSL VPN具有如下优点:
l 支持各种应用协议。SSL位于传输层和应用层之间,任何一个应用程序都可以直接享受SSL VPN提供的安全性而不必理会具体细节。
l 支持多种软件平台。目前SSL已经成为网络中用来鉴别网站和网页浏览者身份,在浏览器使用者及Web服务器之间进行加密通信的全球化标准。SSL协议已被集成到大部分的浏览器中,如IE、Netscape、Firefox等。这就意味着几乎任意一台装有浏览器的计算机都支持SSL连接。SSL VPN的客户端基于SSL协议,绝大多数的软件运行环境都可以作为SSL VPN客户端。
l 支持自动安装和卸载客户端软件。在某些需要安装额外客户端软件的应用中,SSL VPN提供了自动下载并安装客户端软件的功能,退出SSL VPN时,还可以自动卸载并删除客户端软件,极大地方便了用户的使用。
l 支持对客户端主机进行安全检查。SSL VPN可以对远程主机的安全状态进行评估,可以判断远程主机是否安全,以及安全程度的高低。
l 支持动态授权。传统的权限控制主要是根据用户的身份进行授权,同一身份的用户在不同的地点登录,具有相同的权限,称之为静态授权。而动态授权是指在静态授权的基础上,结合用户登录时远程主机的安全状态,对所授权利进行动态地调整。当发现远程主机不够安全时,开放较小的访问权限;在远程主机安全性较高时,则开放较大的访问权限。
l SSL VPN网关支持多种用户认证方式和细粒度的资源访问控制,实现了外网用户对内网资源的受控访问。
l SSL VPN的部署不会影响现有的网络。SSL协议工作在传输层之上,不会改变IP报文头和TCP报文头,因此,SSL报文对NAT来说是透明的;SSL固定采用443号端口,只需在防火墙上打开该端口,不需要根据应用层协议的不同来修改防火墙上的设置,不仅减少了网络管理员的工作量,还可以提高网络的安全性。
l 支持多个域之间独立的资源访问控制。为了使多个企业或一个企业的多个部门共用一个SSL VPN网关,减少SSL VPN网络部署的开销,SSL VPN网关上可以创建多个域,企业或部门在各自域内独立地管理自己的资源和用户。通过创建多个域,可以将一个实际的SSL VPN网关划分为多个虚拟的SSL VPN网关。
SSL VPN用户分为超级管理员、域管理员和普通用户:
l 超级管理员:整个SSL VPN网关的管理者,可以创建域,设置域管理员的密码。
l 域管理员:负责管理所在域,可以创建本地用户和资源、设置用户访问权限等。域管理员可能是某个企业的网管人员。
l 普通用户:简称用户,为服务器资源访问者,权限由域管理员指定。
图1 SSL VPN典型组网架构
SSL VPN的典型组网架构如图1所示,SSL VPN系统由以下几个部分组成:
l 远程主机:管理员和用户远程接入的终端设备,可以是个人电脑、手机、PDA等。
l SSL VPN网关:SSL VPN系统中的重要组成部分。管理员在SSL VPN网关上维护用户和企业网内资源的信息,用户通过SSL VPN网关查看可以访问哪些资源。SSL VPN网关负责在远程主机和企业网内服务器之间转发报文。SSL VPN网关与远程主机之间建立SSL连接,以保证数据传输的安全性。
l 企业网内的服务器:可以是任意类型的服务器,如Web服务器、FTP服务器,也可以是企业网内需要与远程接入用户通信的主机。
l CA:为SSL VPN网关颁发包含公钥信息的数字证书,以便远程主机验证SSL VPN网关的身份、在远程主机和SSL VPN网关之间建立SSL连接。
l 认证服务器:SSL VPN网关不仅支持本地认证,还支持通过外部认证服务器对用户的身份进行远程认证。
SSL VPN的工作过程可以分为以下三步:
(1) 超级管理员在SSL VPN网关上创建域。
(2) 域管理员在SSL VPN网关上创建用户和企业网内服务器对应的资源。
(3) 用户通过SSL VPN网关访问企业网内服务器。
如图2所示,超级管理员创建域的过程为:
(1) 超级管理员在远程主机上输入SSL VPN网关的网址,远程主机和SSL VPN网关之间建立SSL连接,通过SSL对SSL VPN网关和远程主机进行基于证书的身份验证。
(2) SSL连接建立成功后,进入SSL VPN网关的Web登录页面,输入超级管理员的用户名、密码和认证方式。SSL VPN网关根据输入的信息对超级管理员进行身份验证。身份验证成功后,进入SSL VPN网关的Web管理页面。
(3) 超级管理员在SSL VPN网关上创建域,并设置域管理员密码。
如图3所示,域管理员创建用户和企业网内服务器对应资源的过程为:
(1) 域管理员在远程主机上输入SSL VPN网关的网址,远程主机和SSL VPN网关之间建立SSL连接,通过SSL对SSL VPN网关和远程主机进行基于证书的身份验证。
(2) SSL连接建立成功后,进入SSL VPN网关的Web登录页面,输入域管理员的用户名、密码和认证方式。SSL VPN网关根据输入的信息对域管理员进行身份验证。身份验证成功后,进入SSL VPN网关的Web管理页面。
(3) 域管理员在SSL VPN网关上创建用户和企业网内服务器对应的资源,并设定用户对资源的访问权限。
如图4所示,用户访问企业网内服务器的过程为:
(1) 用户在远程主机上输入SSL VPN网关的网址,远程主机和SSL VPN网关之间建立SSL连接,通过SSL对SSL VPN网关和远程主机进行基于证书的身份验证。
(2) SSL连接建立成功后,进入SSL VPN网关的Web登录页面,输入普通用户的用户名、密码和认证方式。SSL VPN网关根据输入的信息对普通用户进行身份验证。身份验证成功后,进入SSL VPN网关的Web访问页面。
(3) 用户在Web访问页面上查看可以访问的资源列表,如Web服务器资源、文件共享资源等。
(4) 用户选择需要访问的资源,通过SSL连接将访问请求发送给SSL VPN网关。
(5) SSL VPN网关解析请求,检查用户权限,如果用户可以访问该资源,则以明文的形式将请求转发给服务器。
(6) 服务器将响应报文以明文的形式发送给SSL VPN网关。
(7) SSL VPN网关接收到服务器的应答后,将其通过SSL连接转发给用户。
SSL VPN支持三种接入方式:
l Web接入方式
l TCP接入方式
l IP接入方式
通过不同的接入方式,用户可以访问不同类型的资源;不同接入方式下,SSL VPN网关在远端主机和企业网内服务器之间转发数据的过程也有所不同。下面将分别对其进行介绍。
Web接入方式是指用户使用浏览器以HTTPS方式、通过SSL VPN网关对服务器提供的资源进行访问,即一切数据的显示和操作都是通过Web页面进行的。
通过Web接入方式可以访问的资源有两种:Web服务器和文件共享资源。
Web服务器以网页的形式为用户提供服务,用户可以通过点击网页中的超链接,在不同的网页之间跳转,以浏览网页获取信息。SSL VPN为用户访问Web服务器提供了安全的连接,并且可以防止非法用户访问受保护的Web服务器。
图5 Web资源访问机制
如图5所示,Web服务器访问过程中,SSL VPN网关主要充当中继的角色:
(1) SSL VPN网关收到用户的HTTP请求消息后,将HTTP请求URL中的路径映射到资源,并将HTTP请求转发到被请求资源对应的真正的Web服务器;
(2) SSL VPN网关收到HTTP回应消息后,将网页中的内网链接修改为指向SSL VPN网关的链接,使用户在访问这些内网链接对应的资源时都通过SSL VPN网关,从而保证安全,并实现访问控制。SSL VPN将改写后的HTTP回应消息发送给用户。
在Web服务器访问的过程中,从用户角度看,所有的HTTP应答都来自于SSL VPN网关;从Web服务器的角度看,所有的HTTP请求都是SSL VPN网关发起的。
文件共享是一种常用的网络应用,实现了对远程网络服务器或者主机上文件系统进行操作(如浏览文件夹、上传文件、下载文件等)的功能,如Windows操作系统上的共享文件夹应用。
SSL VPN网关将文件共享资源以Web方式提供给用户。如图6所示,文件共享资源访问过程中,SSL VPN网关起到协议转换器的作用:
(1) 远程主机与SSL VPN网关之间通过HTTPS协议通信:远程主机将用户访问文件共享资源的请求通过HTTPS报文发送给SSL VPN网关。
(2) SSL VPN网关与文件服务器通过SMB协议通信:SSL VPN网关接收到请求后,将其转换为SMB协议报文,发送给文件服务器。
(3) 文件服务器应答报文到达SSL VPN网关后,SSL VPN网关将其转换为HTTPS报文后,发送给远程主机。
TCP接入方式用于实现应用程序对服务器开放端口的安全访问。通过TCP接入方式,用户可以访问任意基于TCP的服务,包括远程访问服务(如Telnet)、桌面共享服务、邮件服务等。
用户利用TCP接入方式访问内网服务器时,不需要对现有的TCP应用程序进行升级,只需安装专用的TCP接入客户端软件,由该软件实现使用SSL连接传送应用层数据。
如图7所示,用户利用TCP接入方式访问内网服务器的工作流程为:
(1) 用户启动TCP应用后,远程主机自动从SSL VPN网关上下载TCP接入客户端软件。
(2) 用户通过点击SSL VPN网关Web访问页面上的资源链接或开启TCP应用程序(例如打开远程桌面连接程序,连接到远程的内网服务器)的方式访问TCP应用资源时,客户端软件就会与SSL VPN网关建立SSL连接,并使用扩展的HTTP消息请求访问该资源。
(3) SSL VPN网关与该资源对应的内网服务器建立TCP连接。
(4) 连接建立成功后,用户访问内网服务器的数据由TCP接入客户端通过SSL连接安全地发送给SSL VPN网关,SSL VPN网关获取应用层数据,通过已经建立的TCP连接发送给内网服务器。
(5) SSL VPN网关接收到内网服务器的应答后,通过SSL连接将其发送给远程主机的客户端软件,客户端软件获取服务器应答数据,将其转发给应用程序。
图7 TCP接入方式工作流程
IP接入方式实现远程主机与服务器网络层之间的安全通信,进而实现所有基于IP的远程主机与服务器的互通,如在远程主机上ping内网服务器。
用户通过IP接入方式访问内网服务器前,需要安装专用的IP接入客户端软件,该客户端软件会在主机上安装一个虚拟网卡。
如图8所示,用户利用IP接入方式访问内网服务器的工作流程为:
(1) 用户启动IP应用时,远程主机自动从SSL VPN网关上下载IP接入客户端软件,该软件负责与SSL VPN网关建立SSL连接,为虚拟网卡申请地址,并设置网关地址和以虚拟网卡为出接口的路由。
(2) 用户通过点击SSL VPN网关Web访问页面上的资源链接或执行IP访问命令(例如,执行ping命令)的方式访问IP网络资源时,IP报文根据路由发送到虚拟网卡,被客户端软件封装后通过SSL连接发送到SSL VPN网关。
(3) SSL VPN网关接收到数据后,将其还原成IP报文,发往对应的服务器。
(4) SSL VPN网关接收到服务器的回应报文后,将报文封装后通过SSL连接发送到远程主机的IP接入客户端软件。
(5) 客户端软件解封装后通过虚拟网卡将IP报文交给远程主机处理。
图8 IP接入方式工作流程
远程主机上运行的客户端软件包括:
l 支持SSL的Web浏览器:目前大多数操作系统都提供了浏览器,并支持SSL协议。利用操作系统自带的浏览器,就可以实现Web接入方式。
l 主机检查器:用来对远程主机的安全状态进行评估。用户登录时,远程主机会自动下载并安装主机检查器。
l 缓存清除器:用来在用户退出SSL VPN系统时,清除SSL VPN通信过程中使用的临时文件、配置文件和下载的客户端程序,以避免系统的私密信息被泄漏。用户登录后,远程主机自动下载并安装缓存清除器。
l TCP接入客户端:TCP接入方式中用到的客户端软件。
l IP接入客户端:IP接入方式中用到的客户端软件。
除Web浏览器是远程主机自带的以外,其它的客户端软件都是从SSL VPN网关下载的。这些客户端软件支持自动下载、自动安装、自动配置、自动建立连接,使用非常方便。
SSL VPN支持四种认证方式:
l 本地认证:由管理员在SSL VPN网关上创建本地用户,通过将用户输入的用户名和密码与本地保存的用户名和密码比较,来验证用户的身份是否合法。
l RADIUS认证:用户信息保存在RADIUS服务器上,SSL VPN网关作为RADIUS客户端,通过与RADIUS服务器交互认证消息,来验证用户的身份是否合法。
l LDAP认证:用户信息保存在LDAP服务器上,SSL VPN网关作为LDAP客户端查询LDAP服务器上的用户信息,来验证用户的身份是否合法。
l AD认证:LDAP认证方式的一种,Microsoft实现的LDAP称为AD。
用户通过浏览器连接到SSL VPN网关后进入登录页面,输入用户名、密码和认证方式,这些信息通过SSL连接传输到SSL VPN网关,保证了数据传输的安全性。SSL VPN网关收到登录信息后,根据认证方式进行认证。
SSL VPN网关提供的认证方式简单通用,扩展性很强。
不安全远程主机的接入有可能对内部网络造成安全隐患。通过主机检查器可以在用户登录SSL VPN时,检查主机的操作系统版本及其补丁、浏览器版本及其补丁、防火墙版本、杀毒软件版本等,根据检查的结果来判断该用户主机能够访问哪些资源。
在SSL VPN网关上可以设置安全策略,通过安全策略制定对远程主机进行安全检查的方法,明确需要检查的项目,并通过为安全策略指定保护资源,保证只有满足安全策略的远程主机才能访问相应的资源。
SSL VPN的资源访问控制机制可以方便灵活地控制用户访问权限,实现细粒度的资源访问权限控制。
超级管理员创建若干个域,并指定域管理员的密码;域管理员配置本域的资源和用户,将资源加入到资源组,将用户加入到用户组,然后为每个用户组指定可以访问的资源组,从而实现对用户访问权限的控制。
SSL VPN网关还可以对远程主机进行安全检查,根据检查的结果来判断该客户端能够访问哪些资源。
SSL VPN网关根据安全检查结果及用户所在的群组找到其可以访问的资源组,进而找到可以访问的资源列表,从而实现对资源访问的控制。
如图9所示,SSL VPN在远程接入方面具有很多优势,适用于多种复杂的网络环境。与IPsec VPN相比,SSL VPN尤其适合应用于如下场景:
l 动态的远程接入:用户使用各种终端设备,在任何时间、任何地点通过Internet接入公司内部网络。
l 无法保证远程主机的安全性:用户使用网吧、旅馆提供的公用计算机远程访问公司内部网络。公用计算机容易受到攻击、感染病毒,安全性无法得到保证。
l 不同的远程接入用户具有不同的访问权限:在使用Extranet时,远程接入用户可能是公司的员工、合作伙伴或其他人员,不同用户可以访问的资源各不相同。
l 远程终端的运行环境多种多样:远程终端可能安装不同的操作系统,使用不用的应用程序访问公司内部网络。
图10 SSL VPN网关作为企业网络的入口
如图10所示,SSL VPN网关可以与防火墙配合使用,作为企业网络的入口,保护所有的企业内部网络资源不受攻击。
图11 SSL VPN网关保护企业网内的重要服务器
如图11所示,SSL VPN网关还可以用来保护企业内部重要的服务器资源,在确保重要服务器资源不受攻击的同时,对企业网络中其它部分不会造成任何影响。
多个企业可以共用一个SSL VPN网关,每个企业使用一个域,在管理和使用上互不影响,从而为企业节省成本。如图12所示,企业A、企业B、企业C共用SSL VPN网关,分别在SSL VPN网关上创建域A、域B和域C。企业A在域A内管理自己的用户和服务器资源,并设置自己的安全策略等,保证企业A的用户只能访问企业A的资源,与企业B和企业C隔离。
根据SSL VPN网关接入网络方式的不同,SSL VPN组网模式分为单臂模式和双臂模式。
双臂模式中,SSL VPN网关位于内网(或内网服务器)与外网通信的路径上,如图9、图10和图11所示。双臂模式可以提供对内网的完全保护,但是由于SSL VPN网关处在内网与外网通讯的关键路径上,其性能和稳定性对内外网之间的数据传输有很大的影响。
如图13所示,单臂模式中,SSL VPN网关相当于一台代理服务器,代理远程的请求,与内部服务器进行通信。此时SSL VPN网关不处在网络通信的关键路径上,其性能不会影响内外网的通信。但是这种组网使得SSL VPN网关不能全面地保护企业内部的网络资源。
Copyright ©2009 杭州华三通信技术有限公司 版权所有,保留一切权利。
非经本公司书面许可,任何单位和个人不得擅自摘抄、复制本文档内容的部分或全部,并不得以任何形式传播。
本文档中的信息可能变动,恕不另行通知。