AH概述
IPSec的子协议头认证协议AH,为IP报文提供数据完整性验证和数据源身份认证,使用的是HMAC算法,HMAC算法和非常相似,一般是由Hash算法演变而来,也就是将输入报文和双方事先已经共享的对称密钥结合然后应用Hash算法。采用相同的HMAC算法并共享密钥的双方才能产生相同的验证数据。所有的IPSec必须实现两个算法:HMAC-MD5和HMAC-SHA1.
ESP概述
ESP协议提供数据完整性验证和数据源身份认证的原理和AH一样,只是和AH比ESP的验证范围要小些。ESP协议规定了所有IPSec系统必须实现的验证算法:HMAC-MD5,HMAC-SHA1,NULL。和L2TP,GRE,AH等其他轨道技术相比,ESP具有特有的安全机制——加密,而且可以和其他隧道协议结合使用,为用户的远程通信提供更强大的安全支持。ESP加密采用的则是对称加密算法,它规定了所有IPSec系统必须实现的加密算法是DES-CBC和NULL,使用NULL是指实际上不进行加密或验证。
AH和ESP的最大区别有两个:
一个是AH不提供加密服务,另一个是它们验证的范围不同,ESP不验证IP报头,而AH同时验证部分报头,所以需要结合使用AH和ESP才能保证IP报头的机密性和完整性。AH为IP报头提供尽可能多的验证保护,验证失败的包将被丢弃,不交给上层协议解密,这种操作模式可以减少拒绝服务攻击成功的机会。
隧道模式(Tunnel )和传输模式(Transport)在 IP 数据包的 ESP 负载部分上的不同:
在隧道模式中,整个 IP 数据包都在 ESP 负载中进行封装和加密。当这完成以后,真正的源 IP 地址和目的 IP 地址都可以被隐藏。这种模式的一种典型用法就是在防火墙与防火墙之间通过虚拟专用网的连接时进行的主机或拓扑隐藏。
在传输模式中,只有更Payload( TCP、UDP、ICMP 等)被加密并置于ESP 负载部分。在这种模式中,源 IP 地址和目的 IP 地址以及所有的 IP 报头都是不加密发送的。
加密点不等于通信点的时候就是隧道模式,如果加密点等于通信点的话就是传输模式。但是要注意,默认情况下都是隧道模式,这个你在 show crypto ipsec sa 中可以看到。因为传输模式比隧道模式少了一个头部,这样提供了更大的负载空间,所以尽量使用传输模式。
传输模式是两台电脑直接通过 IPSec VPN 连接的时候用的,隧道模式是只要一端采用网关的话就需要用隧道模式。因为如果采用传输模式连接且一端是网关的时候,因为网关有 NAT 功能,会将地址变换,而传输模式是只识别原 IP 的,所以这样就会被直接丢弃掉。而隧道模式则是用 IPSec peer 地址直接建立隧道用于两端的通讯,不会出现被抛弃的情况。