IP 层安全之 IPsec

IPsec 的学习会遇到如下问题:

  • IPsec 如何认证数据源?
  • IPsec 如何保证数据的完整性机密性
  • IPsec 如何控制网络访问
  • IPsec 为什么需要提供交换密钥的方法?
  • IPsec 为什么需要提供加密套件

IPsec 是一个集合了许多标准的体系结构。
这些标准工作在网络层, 为 IPv4、IPv6、移动 IPv6 提供数据源认证、完整性、机密性以及访问控制。
IPsec 的操作分为两个阶段:

  • 建立:负责交换密钥材料,并建立安全关联 (Security Association,SA)。
  • 数据交换:使用不同类型的封装架构,称为认证头 (Authentication Header, AH) 与封装安全负载 (Encapsulating Security Payload,ESP)。

IPsec 可用于不同的模式,比如隧道模式(两个通信实体未实现 IPsec 模块,通过安全网关 (Security Gateway,SG) 来保护 IP 数据报流)和传输模式(两个通信实体实现了 IPsec 模块)

IPsec 会有选择的对某些数据包进行操作,如何操作取决于管理员所预设的策略,这些策略保存在安全策略数据库 (Security Policy Database,SPD) 中,SPD 也用于决定建立什么类型的 SA;另外两个数据库也需要用到,包括安全关联数据库 (Security Association Database,SAD) 和端点认证数据库 (Peer Authorization Database,PAD)。

IPsec 通过 Internet 密钥交换协议 (Internet Key Exchange,IKE) 自动完成一对 SA 的建立。IKE 是 IPsec 较为复杂的部分。
IKE 的运行依赖发起者与响应者之间发送的消息对 (也称作交换),多数情况依赖前两次交换就足够了,分别称为 IKE_SA_INIT 与 IKE_AUTH,分别建立了一个 IKE_SA 和 CHILD_SA。这两个交换为后续的交换提供了安全保障,因为它们建立了以下参数:

  • 加密算法
  • 完整性保护算法
  • Diffie-Hellman 组
  • 根据任何输入的比特串随机生成输出的 PRF(用于生成会话密钥)

IKE 消息封装在 UDP 中通过端口 500 或 4500 发送。由于 4500 被保留用于 UDP 封装的 ESP,因此出现在 4500 的 IKE 消息其最初的 4 个字节会被设置未 0,以与 ESP 消息区分开。

如果 IKE 消息丢失,IKE 发起者会采用基于计时器的重传。

猜你喜欢

转载自blog.csdn.net/chuanglan/article/details/80636769