IKE IPsec X.509 的关系

307 阅读5分钟

IKE(v1|2)是 IPsec 协议族的一部分,用于建立 SA。

IKE 基于 Oakley 协议以及 ISAKMP 协议 之上构建实现。

IKE 使用 X.509 证书来认证,--预先共享或使用 DNS 分发(最好是使用DNSSEC)--并使用 Diffie-Hellman 密钥交换来建立 共享会话秘钥,并从中获得加密密钥。

X.509 是一种证书标准

SSL/TLS X.509 证书是用于安全套接字层(SSL)或传输层安全(TLS)的数字文件。SSL/TLS 证书是最常用的 X.509 证书类型之一,或者说是一种使用 X.509 标准的公钥证书。

X.509 证书包含一个公共密钥和一个主机名、组织或个人的身份。

SSL/TLS 证书作为机器身份实现了两种功能:认证和数据加密。

绝大多数 IPsec 的实现都会包括一个 IKE daemon 以及 一个 IPsec 协议栈。

  • 用户态 IKE daemon
  • 内核态 IPsec 协议栈,处理 IP 包

用户空间的 IKE daemon 可以方便地访问包含配置信息的大容量存储器,如 IPsec 终端地址、密钥和证书等,如有需要。另一方面,内核模块可以有效地处理数据包,并将开销降到最低--这对性能非常重要。

IKE 协议固定使用 UDP 500 端口,需要经历 2-3 轮,每轮需要 4-6 个包,才能在两端来创建一个 ISAMKP security association (SA)。

然后将协商好的密钥交给 IPsec 协议栈。例如,这可能是一个 AES 密钥、识别要保护的 IP 端点和端口的信息,以及已经创建的 IPsec 隧道的类型。反过来,IPsec 协议栈在适当的时候拦截相关的IP数据包,并根据需要进行加密/解密。拦截数据包的实现方式各不相同--例如,有些使用虚拟设备,有些则从防火墙中抽出一块,等等。

IKEv1 包括两个阶段:

IKE第一阶段的目的是通过使用 Diffie-Hellman 密钥交换算法来建立一个安全的认证通信通道,以生成一个共享的秘密密钥来加密进一步的 IKE 通信。这个协商的结果是一个单一的双向 ISAKMP SA (安全关联)。认证可以使用预共享密钥(共享秘密)、签名或公钥加密。第一阶段在主模式或积极模式下运行。主模式通过加密来保护对等体的身份和共享密钥的哈希值;积极模式则不然。

在 IKE 第二阶段,IKE 对等体使用第一阶段建立的安全通道,代表 IPsec 等其他服务协商安全关联。协商的结果是至少有两个单向的安全关联(一个入站和一个出站)。第二阶段只在快速模式下运行。

IKEv1 的问题

最初,IKE 有许多配置选项,但缺乏一个自动协商众所周知的默认情况的一般设施,该设施是普遍实施的。因此,IKE 的双方必须完全同意他们想要创建的安全关联的类型--逐个选项--否则就无法建立连接。更加复杂的是,在许多实现中,调试输出很难解释,如果有任何设施可以产生诊断输出的话。

IKE 规范在很大程度上是开放的,接近于设计错误(死对头检测就是一个例子),导致不同的 IKE 实现在许多选项组合中根本无法创建一个商定的安全关联,无论它们在任何一端的配置多么正确。

IKEv2的提升

IKEv2协议于2005年在RFC 4306的附录A中描述。解决了以下问题:

  • 更少的征求意见稿(RFC):
  • 标准移动性支持:支持移动性和多址,以及封装安全载荷(ESP)。通过使用这个扩展,移动和多宿用户可以使用 IKEv2 和 IPsec。
  • 穿越 NAT:IKE 和 ESP 在用户数据报协议(UDP 4500 端口)中的封装使这些协议能够穿过执行NAT的设备或防火墙 。
  • 流控制传输协议(SCTP)支持:IKEv2 允许使用互联网电话协议、IP语音(VoIP)中使用的 SCTP 协议。
  • 简单的消息交换:IKEv2 有一个 4个 消息的初始交换机制,而 IKE(v1)提供了 8 个明显不同的初始交换机制,每个机制都有轻微的优点和缺点。
  • 更少的加密机制:IKEv2 使用加密机制来保护其数据包,这与 IPsec ESP 用于保护 IPsec 数据包的机制非常相似。
  • 可靠性和状态管理:IKEv2 使用序列号和确认来提供可靠性,并规定了一些错误处理物流和共享状态管理。由于缺乏这样的可靠性措施,IKE(v1)可能最终处于死机状态,双方都在期待对方启动一个行动--这从未实现。工作方法(如死对头检测)被开发出来,但没有标准化。这意味着不同的解决方法的实施并不总是兼容。
  • 拒绝服务(DoS)攻击的适应性:IKEv2 在确定请求者是否实际存在之前不会进行太多的处理。这解决了 IKE 遭受的一些 DoS 问题,它将从被欺骗的地点执行大量昂贵的加密处理。

参考:

venafi.com/blog/what-s…

en.wikipedia.org/wiki/Intern…