SSL 与 IPSec 是两个广泛使用的网络安全技术,都是协议。

0. 软件硬件

IPSec 适用于网对网的VPN连接(Site-Site),广泛应用于VPN路由器部署中。
SSL 比较适用于移动用户的远程接入(Client-Site),广泛应用于网络安全交易和远程控制。

IPSec VPN用户通常需要有相应的客户端软件。 — Ipsec VPN,用Ipsec协议族实现的VPN
SSL VPN通常无需安装客户端,浏览器即可。 — SSL VPN,用SSL协议实现的VPN

IPSec两端的软件需要供应商相同(见5.协作性),不利于建立企业外网的应用。需要配置管理通讯的每个结点,且从特定设备接入,提高了配置和运行的成本。
SSL让企业实现多用户在不同地点接入,需要维护中心结点和网关设备,客户端免维护,对客户端设备要求低,降低了配置和运行成本。

1. 认证算法

技术 支持的认证算法
IPSec 数字签名、密钥算法
SSL 数字签名

2. 认证方法

IPSec支持一种身份验证方法,SSL支持多种不同的身份认证方法。

IPSec采用双向身份验证,SSL采用单向/双向身份验证。

技术 验证方法 验证算法
IPSec 对等体身份验证 密钥算法 数字签名
SSL 服务器端身份验证 RSA算法(询问/响应)
DSA算法 数字签名
客户端身份验证 RSA/DSA算法 数字签名

3. 底层协议

IPSec是网络层保证IP通讯而提供的协议族,以网络层(三层)为中心。Phase 1在UDP层进行协商,使用端口500,需保留重传计时器。允许多个用户使用两个端点间的同一隧道,可以减少因建立单个连接所需的开销。
SSL是套接字层保护HTTP通讯的协议,以应用层(所以主要是保护HTTP协议,也可以保护其他数据)为中心握手协议在TCP层进行协商,使用端口可以根据应用程序不同而有所改变。需要为每一个用户分配单独的通道及密钥,相互之间互不影响。

在服务器端,IPSec和SSL都要绑定到特定的端口。
在客户端,IPSec需要绑定到特定端口,而SSL不用。

UDP可能会导致数据在传输过程中丢失或者被篡改,为了避免UDP传输的不可靠: IPSec向原数据包增加新的TCP报头,支持UDP和TCP应用程序。
SSL在TCP层上工作,只支持TCP应用程序。

:::info WCYTIP:所以SSL一般适用于WEB应用,供手机、笔记本等一些移动终端快速接入
IPSEC:保护IP层,支持TCP、UDP
SSL:仅保护TCP :::

4. 命令加密操作

IPSec先对数据进行加密,然后为加密的数据生成消息鉴别码MAC。
SSL先为明文创建MAC,然后再对数据进行加密。

IPSec在进行任何解密过程之前,先验证MAC。
SSL先将数据包解密,然后再验证MAC。

5. 协作性

IPSec供应商们在某些方面还没有很好的统一,需要根据情况做出相应的修改。

6. 开销

IPSec向原始数据包添加报头,造成额外开销。具体开销见下表:

协议 模式 开销(字节)
IPSec Tunnel ESP 32
ESP & AH 44
IPSec Transport ESP 36
ESP & AH 48
SSL HMAC-MD5 21
HMAC-SHA1 25

7. 握手所需时间

IPSec握手时间,基于2048位的RSA密钥交换机制、1536位的DH交换算法。

模式类型 握手所需时间(ms)
主模式(PSK认证算法) 97
高级模式(PSK认证算法) 56
主模式(RSA数字签名) 170

SSL握手时间,基于基于2048位的RSA密钥交换机制、768位的DH交换算法。

模式类型 握手所需时间(ms)
服务器端认证 41.7
客户端认证 74.8
服务器端认证(DH算法) 66.1
客户端认证(DH算法) 118.6

使用1536位DH算法的客户端认证需要1648ms,与768位相比是极其缓慢的。

8. 压缩算法

IPSec通过IPComp的协议进行压缩。
SSL在小范围内使用压缩,OpenSSL支持压缩。

在低带宽拓扑环境中,使用压缩后,IPSec和SSL的吞吐量都有提升。
在高带宽拓扑环境中,使用压缩后,IPSec除了3DES之外的情况吞吐量都降低,SSL的吞吐量依然增加。

吞吐量变化的影响因素有:协议所在的层次、每个协议产生的额外开销、压缩、加密及传输的速度。

9. 业务特性区别

SSL VPN提供安全、可代理连接,只有经认证的用户才能对资源进行访问。SSL VPN能对加密隧道进行细分,从而使得终端用户能够同时接入Internet和访问内部企业网资源,也就是说它具备可控功能。

另外,SSL VPN还能细化接入控制功能,易于将不同访问权限赋予不同用户,实现伸缩性访问;这种精确的接入控制功能对远程接入IPSec VPN来说几乎是不可能实现的。

IPSec VPN通过在两站点间创建隧道提供直接(非代理方式)接入,实现对整个网络的透明访问;一旦隧道创建,用户PC就如同物理地处于企业LAN中。就通常的企业高级用户(Power User)和LAN-to-LAN连接所需要的直接访问企业网络功能而言,IPSec无可比拟。

然而,典型的SSL VPN被认为最适合于普通远程员工访问基于Web的应用。SSL VPN不需要在最终用户的PC和便携式电脑上装入另外的客户软件。有些公司之所以选择SSL而不是IPSec,这项不需要客户软件的功能正是一个重要因素。因为最终用户避免了携带便携式电脑,通过与因特网连接的任何设备就能获得访问,SSL更容易满足大多数员工对移动连接的需求。

但SSL VPN也有其缺点。业内人士认为,这些缺点通常涉及客户端安全和性能等问题。对E-mail和Intranet而言,SSL VPN是很好;但对需要较高安全级别(SSL VPN的加密级别通常不如IPSec VPN高)、较为复杂的应用而言,就需要IPSec VPN。

IPSec是提供站点到站点连接的首要工具,通过这种连接,你可以在广域网(WAN)上实现基础设施到基础设施的通信。而SSL VPN不需要客户软件的特性有助于降低成本、减缓远程桌面维护方面的担忧。

但是,SSL的局限性在于,只能访问通过网络浏览器连接的资源。所以,这要求某些应用要有小应用程序,这样才能够有效地访问。如果企业资产或应用没有小应用程序,要想连接到它们就比较困难。因而,你无法在没有客户软件的环境下运行,因为这需要某种客户软件丰富(Client-Rich)的交互系统。

SSL这种方案可以解决OS客户软件问题、客户软件维护问题,但肯定不能完全替代IPSec VPN,因为他们各自所要解决的是几乎没多少重叠的两种不同问题:
1、SSL优势其实主要集中在VPN客户端的部署和管理上,我们知道SSL无需安装客户端,主要是由于浏览器内嵌了SSL协议,也就是说是基于B/S结构的业务时,可以直接使用浏览器完成SSL的VPN建立;但如果客户的应用系统采用的是C/S结构的话,仍然需要安装Client软件;
2、目前进行VPN部署的用户大部分都是要求对现有业务需要支持的用户,而据统计这样的用户95%以上都有基于C/S架构的重要应用系统,也就是说其“Client软件无需安装”的优势是有很大局限性的;
3、基于B/S结构的安全性劣于基于C/S结构;
4、基于IPSEC的VPN虽然在业务应用基于B/S上没有基于SSL的方便,但在业务应用基于C/S方面却存在很大优势。