SSL协议原理(Secure Socket Layer)【转载】

摘要 伴随企业信息化程度的加深,远程安全访问、协同工作需求的日益明显,SSL VPN技术逐渐成为企业用户远程安全接入的重要方式。本文着重阐述SSL(安全套接层)协议的基本原理,比较SSL VPN与IPSec VPN技术的优势与不足,探讨了SSL VPN的应用模式并且给出了实际部署的基本拓扑。
关键词 IPSec VPN SSL SSL VPN 远程安全接入
1、引言
  当前,越来越多的企业正在通过Internet来满足员工、客户以及合作伙伴的各种通信需求,允许他们随时随地访问企业内部的资源,这势必将企业的内部网络暴露在可被攻击的环境下,所以需要提供一种安全接入机制来保障通信以及敏感信息的安全。IETF组织提出了一组基于密码学的安全的开放网络安全协议,总称为IP安全体系架构——IPSec,IPSec VPN建立在该体系架构之上,通过为通信双方建立一个安全隧道来保障通信安全。但是IPSec VPN的设计初衷是用于可靠网络之间的互联(即提供一个虚拟的IP网),并不适用于大量分散移动用户的远程安全接入。相对于网络层的IPSec,基于SSL(安全套接层)协议的SSL VPN可以提供基于应用层的访问控制,具有数据加密、完整性检测和认证机制,而且客户端无需特定软件的安装,更加容易配置和管理等特点,因而更适合于远程用户的安全接入。理解SSL VPN的关键是对SSL协议的理解,下面简要概述SSL协议的基本原理。
2、SSL协议原理
  SSL协议是网景公司设计的基于Web应用的安全协议,它指定了在应用程序协议(如HTTP,Telnet和FTP等)和TCP/IP协议之间进行数据交换的安全机制,为TCP/IP连接提供数据加密、服务器认证以及可选的客户机认证,其协议栈如图1所示。

  SSL协议是由SSL记录协议、握手协议、密钥更改协议和告警协议组成,它们共同为应用访问连接提供认证、加密和防篡改功能。SSL握手协议主要是用于服务器和客户之间的相互认证,协商加密算法和MAC(Message Authentication Code)算法,用于生成在SSL记录中发送的加密密钥。SSL记录协议是为各种高层协议提供基本的安全服务,其工作机制如下:应用程序消息被分割成可管理的数据块(可以选择压缩数据),并产生一个MAC信息,加密,插入新的文件头,最后在TCP中加以传输;接收端将收到的数据解密,做身份验证、解压缩、重组数据报然后交给高层应用进行处理。SSL密钥更改协议是由一条消息组成,其作用是把未定状态拷贝为当前状态,更新用于当前连接的密钥组。SSL警告协议主要是用于为对等实体传递与SSL相关的告警信息,包括警告、严重和重大等三类不同级别的告警信息。

  作为应用层协议,SSL使用公开密钥体制和X.509数字证书技术保护信息传输的机密性和完整性。SSL安全功能组件包括三部分:认证(在连接两端对服务器或同时对服务器和客户端进行验证),加密(对通信进行加密,只有经过加密的双方才能交换信息并相互识别),完整性检验(进行信息内容检测,防止被篡改)。保证通信进程安全的关键步骤就是对通信双方进行认证,SSL握手协议负责这一进程的处理,图2描述了SSL握手协议的消息流程。


3、SSL VPN技术特点

  IPSec VPN和SSL VPN是两种不同的VPN架构,IPSec VPN是工作在网络层的,提供所有在网络层上的数据保护和透明的安全通信,而SSL VPN是工作在应用层(基于HTTP协议)和TCP层之间的,从整体的安全等级来看,两者都能够提供安全的远程接入。但是,IPSec VPN技术是被设计用于连接和保护在信任网络中的数据流,因此更适合为不同的网络提供通信安全保障,而SSL VPN因为以下的技术特点则更适合应用于远程分散移动用户的安全接入。

  (1)客户端支撑维护简单

  对于大多数执行基于SSL协议的远程访问是不需要在远程客户端设备上安装软件,只需通过标准的Web浏览器连接因特网,即可以通过网页访问到企业内部的网络资源。而IPSec VPN需要在远程终端用户一方安装特定软件以建立安全隧道。

  (2)提供增强的远程安全接入功能

  IPSec VPN通过在两站点间创建安全隧道提供直接(非代理方式)接入,实现对整个网络的透明访问;一旦隧道创建,用户终端就如同物理地处于企业内部局域网中,这会带来很多安全风险,尤其是在接入用户权限过大的情况下。SSL VPN提供安全、可代理连接。通常SSL VPN的实现方式是在企业的防火墙后面放置一个SSL代理服务器。如果用户希望安全地连接到公司网络上,那么当用户在浏览器上输入一个URL后,连接将被SSL代理服务器取得,并验证该用户的身份,然后SSL代理服务器将连接映射到不同的应用服务器上。

  (3)提供更细粒度的访问控制

  SSL VPN能对加密隧道进行细分,使终端用户能够同时接入Internet和访问内部企业网资源。另外,SSL VPN还能细化接入控制功能,提供用户级别的鉴权,依据安全策略确保只有授权的用户才能够访问特定的内部网络资源,这种精确的接入控制功能对远程接入IPSec VPN来说几乎是不可能实现的。

  (4)能够穿越NAT和防火墙设备

  SSL VPN工作在传输层之上,因而能够遍历所有NAT设备和防火墙设备,这使得用户能够从任何地方远程接入到公司的内部网络。而IPSec VPN工作在网络层上,它很难实现防火墙和NAT设备的遍历,并且无力解决IP地址冲突。

  (5)能够较好地抵御外部系统和病毒攻击

  SSL是一个安全协议,数据是全程加密传输的。另外,由于SSL网关隔离了内网服务器和客户端,只留下一个Web浏览接口,客户端的大多数木马病毒感染不到内网服务器。而传统的IPSec VPN由于实现的是IP级别的访问,一旦隧道创建,用户终端就如同物理地处于企业内部局域网中,内部网络所连接的应用系统都是可以侦测得到,这就为黑客攻击提供了机会,并且使得局域网能够传播的病毒,通过VPN一样能够传播。

  (6)网络部署灵活方便

  IPSec VPN在部署时一般放置在网络网关处,因而需要考虑网络的拓扑结构,如果增添新的设备,往往要改变网络结构。而SSL VPN却有所不同,它一般部署在内网中防火墙之后,可以随时根据需要,添加需要VPN保护的服务器,因此无需影响原有网络结构。

  然而SSL VPN技术也存在一些不足,如认证方式比较单一,只能够采用证书,而且一般是单向认证,而IPSec VPN可以采取IKE(Internet Key Exchange)方式,使用数字凭证或是一组加密密钥来做认证;SSL VPN用户只能访问基于Web服务器的应用,而IPSec VPN却几乎可以为所有的应用提供访问,包括B/S,C/S模式的应用;SSL VPN只对通信双方的某个应用通道进行加密,而不是对在通信双方的主机之间的整个通道进行加密;SSL VPN是应用层加密,性能相对来说可能会受到较大影响。此外,SSL VPN主要适用于点到点的信息加密传输,如果要实现网络到网络的安全互联,只能考虑采用IPSec VPN。

4、SSL VPN的实际应用

  SSL VPN在实际应用中就是要依据安全控制策略为分散移动用户提供从外网访问企业内网资源的安全访问通道。通常企业内部的资源服务器向外网用户提供一个虚拟的URL地址,当用户从外网访问企业内网资源时,发起的连接被SSL VPN网关取得,通过认证后映射到不同的应用服务器,采用这种方式能够屏蔽内部网络的结构,不易遭受来自外部的攻击。对于SSL VPN的网关设备应当从三个基本层面来满足不同的应用需求:

  (1)支持Web方式的应用。例如通过SSL VPN建立的安全通道访问基于Web的电子邮件系统收发邮件。

  (2)支持非Web方式的应用。例如终端用户想要实现非Web页面的文件共享,那么SSL VPN网关必须将与内网FTP服务器的通信内容转化为HTTPS协议和HTML格式发往客户端,使终端用户感觉这些应用就是一些基于Web的应用。

  (3)支持基于客户/服务器应用的代理。这种应用需要在终端系统上运行一个非常小的Java或ActiveX程序作为端口转发器,监听某个端口上的连接。当数据包进入这个端口时,它们通过SSL连接中的隧道被传送到SSL VPN网关中,SSL VPN网关解开封装的数据包,将它们转发给目的应用服务器。图3所示为一个基本的SSL VPN实际部署拓扑。


  对于一个企业来说不仅提供基于Web的应用,也同时提供大量不基于Web的应用,如OA、财务、销售管理、ERP等应用。在现阶段,SSL VPN只能访问基于Web的应用,而IPSec VPN却几乎可以为所有的应用提供访问,不过,IPSec不容易穿越防火墙和NAT设备,所以当用户需要从外网接入企业内部网络时就难以实现。对于用户来说,理想的方式是将SSL VPN和IPSec VPN结合起来使用。一方面为数量有限的用户提供IPSec VPN连接,使其能够访问企业内网的所有资源;另一方面为多数用户提供SSL VPN连接,使其可以访问基于Web的企业应用。

5、结束语

  伴随企业信息化程度的加深,远程安全访问、协同工作的需求会日益明显,SSL VPN由于其自身的技术优势,势必将成为企业用户远程安全接入的首选方式,并且将与IPSec VPN技术一同为企业提供一个安全的远程接入平台。

你可能感兴趣的:(web开发)