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方面却存在很大优势。