随着GRE和L2TP的广泛应用,大大降低了异地组织间互联互通成本,但是因为以上两种技术先天不足,信息的截取和泄漏比例大幅提升,成为了互联互通的主要问题。究其原因,无论是GRE还是L2TP,建立的隧道都没有任何安全加密措施,组织分部之间的消息在GRE隧道或L2TP隧道中都是明文传输,机密信息很容易被截获。办法总比问题多,随着问题的浮现新的技术也随之而来:IPSec(IP Security)。作为新一代的VPN技术,IPSec可以在Internet上建立安全稳定的专用线路。与GRE和L2TP相比,IPSec更加安全,能够保证消息的安全传输。
简单说IPSec是一套组合拳,通过 AH(Authentication Header,验证头)和ESP(Encapsulating Security Payload,封装安全载荷)既可以加密又可以验证。即便消息被截获了也没人能看懂,被篡改了也能及时发现。
加密:IPSec的巧妙之处,一方传递消息之前,先使用加密算法和加密密钥,将消息改头换面,该过程称为加密。另一方收到消息后,使用相同的加密算法和加密密钥,逆向将消息恢复为真实面貌,该过程称为解密。而消息在传递过程中绝不以真容示人,令窃密者一无所获。
当组织机构之间互通消息时,双方事先商议好相同的加密算法和加密密钥,假设总部要向分部发布命令“今晚八点,楼下撸串”,总部先使用加密算法,将文字颠倒位置,然后再将加密密钥“别带老婆”插入其中,加密后的命令最终变成“楼下别八点老今晚带串撸婆”这样的一段消息,然后传递出去。即使该消息在路上被相关老婆截获,也会让老婆们看的一头雾水,不会发现任何蛛丝马迹。而分部收到消息后,使用相同的算法和解密密钥“别带老婆”,便可将消息恢复成原始的命令“今晚八点,楼下撸串”。
总部和分部使用相同的密钥来加密和解密,这种方式也叫对称加密算法,主要包括DES、3DES和AES。
验证:一方传递消息之前,先使用验证算法和验证密钥对消息进行处理,得到签字画押的文书,即签名。然后将签名随消息一同发出去。另一方收到消息后,也使用相同的验证算法和验证密钥对消息进行处理,同样得到签名,然后比对报文中携带的签名,如果签名一致则证明该消息没有被篡改。除了对消息的完整性进行验证,IPSec还可以对消息的来源进行验证,即验明消息的正身,保证消息来自真实的发送者。通常情况下,验证和加密配合使用,加密后的报文经过验证算法处理生成签名。常用的验证算法有MD5和SHA系列。
IPSec的两大法宝中,AH只能用来验证,没有加密的功能,而ESP同时具有加密和验证的功能,AH和ESP可以单独使用也可以配合使用。
为了更好的保护信息传送,IPSec还设计了两种封装模式,如下:
明修栈道暗度陈仓——隧道模式
在隧道模式下,AH头或ESP头被插到原始IP头之前,另外生成一个新的报文头放到AH头或ESP头之前,隧道模式使用新的报文头来封装消息,新IP头中的源/目的地址为隧道两端的公网IP地址,所以隧道模式适用于两个网关之间建立IPSec隧道,可以保护两个网关后面的两个网络之间的通信,是目前比较常用的封装模式。总部和分部内部私网之间的信息经过加密和封装处理后,在外看来只是总部和分部公开身份(公网IP地址),的通信,不会被人怀疑。
开门见山直来直往——传输模式
在传输模式中,AH头或ESP头被插入到IP头与传输层协议头之间传输模式不改变报文头,隧道的源和目的地址就是最终通信双方的源和目的地址,通信双方只能保护自己发出的消息,不能保护一个网络的消息。所以该模式只适用于两台主机之间通信,不适用总部与分部之间的通信。
IPSec中通信双方建立的连接叫作安全联盟SA(Security Association),顾名思义,通信双方结成盟友,使用相同的封装模式、加密算法、加密密钥、验证算法、验证密钥,相互信任亲密无间。
安全联盟是单向的逻辑连接,为了使每个方向都得到保护,总部和分部的每个方向上都要建立安全联盟。总部入方向上的安全联盟对应分部出方向上的安全联盟,总部出方向上的安全联盟对应分部入方向上的安全联盟。为了区分这些不同方向的安全联盟,IPSec为每一个安全联盟都打上了唯一的标识符,这个标识符叫作SPI(Security ParameterIndex)。
标题提到的讲透有点说大话了,主要是通过本文的讲解可以使大家对IPSEC VPN中的一些术语获得深入浅出的认识,仅此而已,真正做到讲透,这不到2000字的文章是很难做到的,如果对IPSEC VPN解决方案有更深入的了解需求,请联系蓝盟IT外包获取咨询。