[转帖]SSL与IPSec的比较

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具体有什么区别

猜你喜欢

转载自www.cnblogs.com/jinanxiaolaohu/p/12213346.html