1,什么是ipsec
ipsec(Internet Protocol Security)是一直种实现vpn的技术之一,为IP网络提供安全和加密。
(由于IP报文本身没有集成任何的安全特性,IP数据包在公用的Internet网络中可能面临被[伪造]、[窃取]、[篡改]的风险)
通信双方通过IPsec建立 一条IPsec隧道,IP数据包通过IPsec隧道进行加密传输,有效保证了数据在不安全的网络环境如Internet中传输的安全性。
常见的VPN种类有:IPsec、SSL、GRE、PPTP和L2TP等。其中IPsec是通用性较强的一种VPN技术,适用于多种网络互访的场景。
图:IPsec Site to Site(站点到站点)的组网
ipsec保护的是点对点的通信,主机与主机、主机和网关之间,其工作在ip层(网络层),对ip层的数据包进行加密和验证。
2,ipsec如何工作的
大致分为四个阶段:
- 识别感兴趣流(匹配ipsec规则)
网络设备收到报文后,会将报文中的五元组信息与ipsec规则进行比较,进而判断该报文是否通过Ipsec隧道进行传输。(五源组:Source IP、Dest IP 、Source Port、Dest Port、传输层协议类型)
- 安全协议协商-Security Association,以下简称SA
SA:通信双方对某些协议要素的约定。
包括:双方使用的安全协议、数据传输的封装模式、协议采用的加密和验证算法、数据传输的密钥,这些在双方协商过程中进行交换。只有SA协商成功,才能进行安全的数据传输。
通信双方通过IKEv1/IKEv2协议,先协商建立IKE SA(用于身份验证和交换密钥信息),然后在此基础上协商建立 IPSEC SA(用于安全的数据传输),数据传输的过程中会所有到Ike SA 中协商的密钥。
- 数据传输
IPsec SA建立成功后,就可以使用Ipsec隧道进行数据的安全传输了,这一阶段会用到AH、ESP协议或AH+ESP协议对数据进行加密和验证。双方通过相同的加密算法和密钥,将数据进行加密或解密,同时得到数据的完整性校验值ICV,两端的ICV值相同代表数据完整,未被改变,可正常接收。
- 隧道解除
通常情况下,通信双方之间的会话老化(连接断开)即代表通信双方数据交换已经完成,因此为了节省系统资源,通信双方之间的隧道在空闲时间达到一定值后会自动删除。
3、IPsec 使用的3个重要的协议(基础)
/********************************************************************************/
IKE (Internet Key Exchange,因特网密钥交换)
基于UDP的应用层协议,用于SA协商,目前主要有两个版本v1/v2,v2在v1的基础上提高了安全性,简化了协商过程,提高了协商效率。
IKE SA 的建立主要通过ISAKMP协议进行协商(IKE协议综合了多种协议:ISAKMP协议 Oakley协议 SKEME协议),
其提供了DH算法,用于在Internet上安全地分发密钥、验证身份,以保证数据传输的安全性。
IKE SA和IPSec SA需要的加密密钥和验证密钥都是通过DH算法生成的,它还支持密钥动态刷新。
/********************************************************************************/
AH (Authentication Header,认证头)
AH协议用来对IP报文进行数据源认证和完整性校验,即用来保证传输的IP报文的来源可信和数据不被篡改,但它并不提供加密功能。
AH协议在每个数据包的标准IP报文头后面添加一个AH报文头,AH协议对报文的完整性校验的范围是整个IP报文。
/********************************************************************************/
ESP(Encapsulating Security Payload,封装安全载荷)
ESP协议除了对IP报文进行数据源认证和完整性校验以外,还能对数据进行加密。
ESP协议在每一个数据包的标准IP报头后方添加一个ESP报文头,并在数据包后方追加一个ESP尾(ESP Trailer和ESP Auth data)。
ESP协议在传输模式下的数据完整性校验范围不包括IP头,因此它不能保证IP报文头不被篡改。
AH和ESP可以单独使用,也可以同时使用。
AH和ESP同时使用时,报文会先进行ESP封装,再进行AH封装;IPsec解封装时,先进行AH解封装,再进行ESP解封装。
协议总结:
IKE协议用于SA的建立(IKE/IPsec)SA,IkE协议有两个版本,V2版本提供了更好的安全性和协商效率,后面将介绍IKE协商的几个阶段和模式。
AH 验证头,不对数据进行加密,在对IP报文的封装中,在IP报文头前加入一个AH头,验证范围是整个ip报文。
ESP 对数据进行加密,在IP报文头后加入一个ESP头,在数据包后方添加ESP尾。(后面介绍ESP报文封装格式)
IPsec 使用的端口:
IPsec 的建立主要进行IKE的协商,为使IKE协商报文顺利通过,应放开500端口,在nat穿越模式下,还需要放开4500端口。
由于AH和ESP是网络层协议不涉及端口,为了使IPsec隧道能正常建立,通常还要在网关设备上配置安全策略放开AH(IP协议号是51)和ESP(IP协议号是50)服务。