1
第四章 IPSec: IKE
除了前一章介绍的两个核心的 AH 和 ESP 协议之外,IPSec 另外一个重要的方面是密钥
管理。而AH和 E vSP的工作过程是建立在相应的密钥,操作规范以及相应的安全关联(SA)
已经成功协商和建立的基础之上的。上一章我们也提到在发送端,当安全策略要求使用 IPSec
处理,但没有合适的 SA 时,需要通过调用 IKE 来创建一个。本章将主要描述 IKE(Internet
Key Exchange,Internet 密钥交换)协议,IKE 的目的是通过某种长期密钥(共享密钥、签
名密钥对中的公钥、加密密钥对中的公钥)进行双向认证并建立共享的会话密钥,并生成相
应的 IPSec SA,并构建与之相适应的安全策略。
4.1 什么是 IKE?
从前面的章节中我们知道:一个典型的同时使用 AH 和 ESP 的通信双方之间的通信需
要四个密钥:分别用于两端发送的完整性密钥和加密密钥,这些密钥都必须在实际的需要保
护的数据传输之前协商好。因此从功能上来讲,密钥管理(Key management)是 IPsec 运行
的重要基础和保证。IPsec 的体系结构文档中要求支持两种形式的密钥管理:手动类型
(manual)和自动类型(automated)。 手动方式不仅繁琐而且不可靠容易出错,IKE 的优势
和区别即在与此,可 以 使用某种长期密钥(共享密钥、只用于签名的密钥、用于加密的密钥)
进行双向认证并建立会话密钥,并基于受保护的方式动态协商相关密钥以及构建 IPSec 安全
关联。除了使用的密钥类型可能多种多样之外,在 IKE 中用户需要的安全特性也可能不同,
例如,是否能够协商密钥算法等。在设计协议时,需要在这些安全特性与需要额外增加的消
息数量之间进行折中考虑。IKE 的基本内容大致包括:(1)协商:通信参数,安全特性;(2)
认证通信对端;(3)保护实体;(4)用安全的方法产生、交换和建立密钥;(5)管理、删除
安全关联(SA)。
目前存在两个版本的 IKE 协议(IKEv1 和 IKEv2)。 IKEv1 实际上是一个混合的协议,
包括:(1)Internet 安全关联和密钥交换协议(Internet Security Association and Key Management
Protocol, ISAKMP,RC2408);(2)Internet 密钥交换协议(Internet Key Exchange, IKE,
RFC2409);(3)IPSec 解释域(IPSec Domain of Interpretation, DOI,RFC2407)。其 中 ,ISAKMP
是一个为互联网密钥管理建立的安全框架,IKE 协议一定程度上是 ISAKMP 的细化,例如
进一步定义各个域、选择某些选项的等,在 ISAKMP 框架下采用 Oakley 密钥确定协议。DOI
是 ISAKMP 中的一个重要概念,代表了了 ISAKMP 中的特定用法,对于每个 DOI 域,有一
个与之相对应的规范,以定义所有与该值有关的参数。因此要如何实现 IKEv1,必须至少理
解 RFC 2407、RFC 2408、RFC2409。作为一个混合协议,复杂性一直是其争论较多的问题
之一。后来随着安全需要的不断增强,又有 NAT 穿越(Negotiation of NAT-Traversal in the
IKE,RFC3947)、EAP 中使用的 Legacy Authentication、移动场景下的远程地址获取(MOBIKE
协议)等又被陆续考虑进 IKE 混合协议体系当中,使得整个协议越来越庞杂,为理解和工