[转帖]SSL与IPSec的比较

坚强是说给别人听的谎言 提交于 2020-01-24 18:11:14

SSL与IPSec的比较

SSL与IPSec的比较

本文内容非原创,由本人整理。仅供学习之用。原文见脚注。

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

0. 软件硬件

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

IPSecVPN用户通常需要有相应的客户端软件。 
SSLVPN通常无需安装客户端,浏览器即可。

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通讯的协议,以应用层为中心。握手协议在TCP层进行协商,使用端口可以根据应用程序不同而有所改变。需要为每一个用户分配单独的通道及密钥,相互之间互不影响。

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

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

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


[1] 蒋娅雪. IPSec和SSL的比较分析[J]. 电脑知识与技术, 2011, 7(5): 1208-1210 
[2] IPSec VPN与SSL VPN具体有什么区别

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!