IPSec协议簇(含Cisco实验配置)
什么是IPSec
早期的网络并不像现在这样,使用者大部分都是科学家并且一般是组织内部成员进行通信,所以在设计之初并没有考虑其安全性。但对于现在的网络,保障通信安全是非常重要的,而IPSec协议簇可以保障网络层的安全性。
**IPSec是一组基于网络层的应用密码学的安全通信协议簇。**它是VPN中常用的一种技术。
设计目标:为IPv4和IPv6提供客户操作的、高质量的、基于密码学的安全保护。
功能:工作在网络层,提供身份认证、机密性、完整性三个安全服务,并防止重放攻击和提供有限通信流机密性保护。
IP协议是唯一一个由所有高层协议共享的协议。在IP层实现安全可以为上层应用提供安全保障,各种应用程序可共享IP层提供的安全服务和密钥管理,不必设计自己的安全机制,减少密钥协商的开销,有利于降低安全漏洞产生的可能。
IPSec有四种典型应用:
- 端到端安全
- 基本的VPN支持
- 保护移动用户访问内部网
- 嵌套式隧道
IPSec架构
IPSec VPN体系结构如下图:
- DOI:将IPSec与RFC文档联系一起,批准加密和认证算法标识、运行参数等。
- 密钥管理:IPSec密钥管理主要由IKE完成。定义了通信实体间进行身份认证、协商加密算法以及生成共享的会话密钥的方法。IKE将密钥协商的结果保留在安全关联(SA)中,供AH和ESP以后通信使用。
- AH协议:使用认证报文包格式和一般性问题。
- ESP协议:使用ESP进行包加密的报文包格式和一般性问题,以及可选的认证。
IPSec工作模式
IPSec工作模式分为两种:
- 传输模式
- 隧道模式
传输模式
传输模式将IPSec协议头插入到原IP头部与传输层头部之间,只对有效载荷进行加密或认证。
即使在子网内部中的其他用户也不能理解上面拓扑中两台主机之间的通信内容。
由于每个需要实验传输模式的 主机都必须安装并实现IPsec协议,因此不能实现对端用户的透明服务。用户为了获得IPsec提供的安全服务,必须消耗内存、花费处理时间。
由于传输模式仅对有效载荷进行保护,而对于原IP包头部不会进行修改(缺乏保护),所以会暴露内网拓扑结构。
隧道模式
隧道模式会创建新的IP包头部,并把原来的部分都当作有效载荷封装。
如此,子网内部所有用户都可以享受网关提供的安全保护,不会暴露内网拓扑结构,而且主机可以使用私有IP地址。
但子网内部以明文方式进行,无法控制内部发生的安全性问题。而且,由于IPSec主要集中在网关上(解封装更换IP头部等),增加了网关的负担,容易造成通信瓶颈。
注意
上图不讨论所使用的协议,示意图是抽象的。
实际来讲,对于ESP协议,上图的数据包还包含一个ESP尾部,这个请看下文。
AH协议
工作原理
工作原理是在每个数据包上添加一个身份验证报头。此报头包含一个带密钥的hash散列,此hash散列在整个数据包中计算,因此对数据的任何更改将致使散列无效,这样就提供了完整性保护。
AH协议对整个数据包进行验证,但本身不提供任何形式加密。
在计算认证数据时,AH会把前面的IP首部中的部分字段也包含在内。必须保证计算认证数据时,输入在传输中不变,或者变化但可以预测。变化的字段不考虑,不变的字段加入,变化但可预测的的字段则使用预测到的、到达目的端后变化的值。
AH协议下的IPSec头部为AH头部,其结构如下图。
- 认证数据:变长字段,是AH使用消息认证码(MAC)对IP数据包进行认证,生成认证数据即完整性校验值ICV。(顺带提一点,原IP协议的校验和对于数据完整性能力有限)
- 序列号:对于一个包,外出情况,则外出SA计数器增加1;接收的话,则进入SA计数器增加1。用于抗重放攻击。
处理过程
处理过程主要讨论设备在拿到一个包的时候,对于外出和进入时的数据包的处理。
外出处理
- 检索SPD,查找应用于该数据包的策略:以选择符为索引
- 查找对应的SA:SPD通过SPI指向SAD中的一个相应SA,从SA中得到相关安全参数;若SA尚未建立,则调用IKE协商一个SA,并将其连接到该SPD条目上。
- 构造AH载荷:按照SA中给出的处理模式填充AH载荷的各个字段(复制IP头、计算载荷长度、填入SPI值、产生或增加序列号值、计算ICV并填入)
- 为AH载荷添加IP头:传输模式添加原IP头;隧道模式构造新的IP头
- 其他处理:重新计算外部IP头校验和;若分组长度大于MTU(Maximum Transmission Unit)则进行IP分段。
处理完的数据包交给数据链路层(传输模式)发送或IP层(隧道模式)重新路由。
进入处理
- 分段重组,检查M