IPSec VPN #
IPSec 是 Internet Protocol Security 的缩写。在 TCP/IP 协议网络中,由于 IP 协议的安全脆弱性,如地址假冒、易受篡改、窃听等。为了增强IP网络的安全性。Internet工程组 (CIETF) 成立了 IPSec 工作组,研究提出解决上述问题的安全方案。根据IP的安全需求, IPSec工作组制定了相关的IP安全系列规范:认证头(Authentication Header, 简称 AH) 、封装安全有效负荷 (Encapsulatin Security Payload, 简称ESP) 以及密钥交换协议。
AH #
AH 是一种安全协议,又称为认证头协议。其安全目的是保证IP包的完整性和提供数据源认证,为IP数据报文提供无连接的完整性、数据源鉴别和抗重放攻击服务。其基本方法是将 IP 包的部分内容用加密算法和 Hash 算法进行混合计算,生成一个完整性校验值,简称 ICV (Integrity Check Value) ,同时把 ICV 附加在 IP 包中,如下图所示。
在TCP/IP通信过程中,IP包发送之前都事先计算好每个IP包的ICV,按照AH的协议规定重新构造包含ICV的新IP包,然后再发送到接收方。通信接收方在收到用AH方式处理过的IP包后,根据IP包的AH信息验证ICV,从而确认IP包的完整性和来源。IP认证头(AH) 的信息格式如图所示。
ESP #
ESP也是一种安全协议,其用途在于保证IP包的保密性,而AH不能提供IP包的保密性服务。ESP的基本方法是将IP包做加密处理,对整个IP包或IP的数据域进行安全封装, 并生成带有ESP协议信息的IP包,然后将新的IP包发送到通信的接收方。接收方收到后,对 ESP进行解密,去掉ESP头,再将原来的IP包或更高层协议的数据像普通的IP包那样进行处理。RFC1827中对ESP的格式做了规定,AH与ESP体制可以合用,也可以分用。
AH和ESP都有两种工作模式,即透明模式(Transport mode)和隧道模式(Tunnel Mode)。透明模式只保护IP包中的数据域(data payload),而隧道模式则保护IP包的包头和数据域。因此,在隧道模式下,将创建新的IP包头,并把旧的IP包(指需做安全处理的IP包)作为新的IP包数据。
密钥交换协议 #
基于IPSec技术的主要优点是它的透明性,安全服务的提供不需要更改应用程序。但是其带来的问题是增加网络安全管理难度和降低网络传输性能。IPSec还涉及密钥管理协议,即通信双方的安全关联已经事先建立成功,建立安全关联的方法可以是手工的或是自动的。手工配置的方法比较简单,双方事先对AH的安全密钥、ESP的安全密钥等参数达成一致,然后分别写入双方的数据库中。自动的配置方法就是双方的安全关联的各种参数由KDC (Key Distributed Center)和通信双方共同商定,共同商定的过程就必须遵循一个共同的协议,这就是密钥管理协议。目前,IPSec的相关密钥管理协议主要有互联网密钥交换协议IKE、互联网安全关联与密钥管理协议ISAKMP、密钥交换协议Oakley。
SSL VPN #
SSL是Secure Sockets Layer的缩写,是一种应用于传输层的安全协议,用于构建客户端和服务端之间的安全通道。该协议由Netscape 开发,包含握手协议、密码规格变更协议、报警协议和记录层协议。其中,握手协议用于身份鉴别和安全参数协商;密码规格变更协议用于通知安全参数的变更;报警协议用于关闭通知和对错误进行报警;记录层协议用于传输数据的分段、压缩及解压缩、加密及解密、完整性校验等。
SSL 协议是介于应用层和TCP层之间的安全通信协议。其主要目的在于两个应用层之间相互通信时,使被传送的信息具有保密性及可靠性。SSL 的工作原理是将应用层的信息加密或签证处理后经TCP/IP 网络送至对方,收方经验证无误后解密还原信息。
如上图所示, SSL 协议是一个分层协议,最底层协议为 SSL 记录协议 (SSL Record Protocol) ,其位于传输层(如 TCP) 之上, SSL 记录协议的用途是将各种不同的较高层协议 (如 HTTP 或 SSL 握手协议)封装后再传送。另一层协议为 SSL 握手协议 (SSL Handshake Protocol) ,由 3 种协议组合而成,包含握手协议 (Handshake Protocol) 、密码规格变更协议 (Change Cipher Spec) 及报警协议 (Alert protocol) ,其用途是在两个应用程序开始传送或接收数据前,为其提供服务器和客户端间相互认证的服务,并相互协商决定双方通信使用的加密算法及加密密钥。
SSL 协议提供三种安全通信服务。
- 保密性通信。握手协议产生秘密密钥 (secret key) 后才开始加、解密数据。数据的加、 解密使用对称式密码算法,例如DES、 AES 等。
- 点对点之间的身份认证。采用非对称式密码算法,例如RSA、 DSS等。
- 可靠性通信。信息传送时包含信息完整性检查,使用有密钥保护的消息认证码(Message Authentication Code, 简称 MAC) 。MAC 的计算采用安全杂凑函数,例如 SHA、 MD5。
SSL 记录协议 (record protocol) 的数据处理过程如下图所示,其步骤如下:
- SSL 将数据 (data) 分割成可管理的区块长度。
- 选择是否要将已分割的数据压缩。
- 加上消息认证码 (MAC) 。
- 将数据加密,生成即将发送的消息。
- 接收端将收到的消息解密、验证、解压缩,再重组后传送至较高层(例如应用层), 即完成接收。
PPTP和L2TP #
PPTP 是 Point—to—Point Tunneling Protocol 的缩写,它是一个点到点安全隧道协议。该协议的目标是给电话上网的用户提供VPN安全服务。PPTP是PPP协议的一种扩展,它提供了在 IP 网上构建安全通道机制,远程用户通过PPTP可以在客户机和PPTP服务器之间形成一条安全隧道,从而能够保证远程用户安全访问企业的内部网。
L2TP 是 Layer 2 Tunneling Protocol 的缩写,用于保护设置 L2TP-enabled 的客户端和服务器的通信。客户端要求安装L2TP 软件,L2TP采用专用的隧道协议,该协议运行在UDP的 1701 端口。
由于PPTP是比较老的技术,而L2TP又不支持加密。所以这两个VPN技术现在用的比较少了,就不过多细说了。