- 1 -
中国科技论文在线
IKEv2 协议中间人攻击的实现
谢彬1,朱洪亮2,田斌2**
作者简介:谢彬,(1984-),男,北京邮电大学硕士研究生,研究方向:信息安全。
通信联系人:朱洪亮,(1982-),男,北京邮电大学讲师,研究方向:信息安全
(1. 北京邮电大学信息与通信工程学院,北京 100876;
2. 北京邮电大学计算机学院,北京 100876) 5
摘要:本文介绍了目前 IPv6 网络中广泛应用的密钥交换协议 IKEv2 的体系架构并分析了其
存在的安全漏洞,重点根据协议中基于 Diffie-Hellman(DH)交换和数字证书实行身份认
证的安全缺陷,模拟实现了对 IKEv2协议的中间人攻击,并且最后提出了防范中间人攻击的
方法。
关键词:IPSec VPN;IKEv2 协议;DH 交换;数字证书 10
中图分类号:
Realization Measures of Man-in-the-middle Attack on
IKEv2 Protocol
XIE Bin1, ZHU Hongliang2, TIAN Bin2 15
(1. School of Information and Communication Engineering,Beijing University of Post and
Telecommunications, Beijing 100876;
2. School of Computer Science,Beijing University of Post and Telecommunications,
Beijing 100876)
Abstract: This paper introduce the system frame of IKEv2 key exchange protocol which is 20
popular in the IPv6 network and analyse the securiy vulnerability. Model a man-in-the-middle
attack for IKEv2 by the vulnerability of Diffie-Hellman (DH) exchange and Identity
Authentication base on digital certificate. Finally, give some effective methods on how to prevent
the man-in-the-middle attack.
Keywords: IPSec VPN; IKEv2 protocol; DH exchange; Digital certificate 25
0 引言
Internet 密钥交换协议(IKE)是 IPSec VPN 实现中的首选密钥交换协议,为 VPN 中通
信双方协商 IPSec 通信所需的相关消息,其高强度与可靠性是 IPSec VPN 安全传输的先决
条件和保证。鉴于 IKEv1 的复杂性,IETF 自 2002 年 2 月开始组织 IKE 第 2 版即 IKEv2 的30
起草工作,于 2005 年 10 月发布了 IKEv2 的正式版本。但由于协议设计的不完善和实际应
用的不规范,导致 IKEv2 存在许多不安全因素。本文主要根据 IKEv2 协议的安全缺陷,实
现中间人攻击并找出对抗攻击的实际解决方案。
1 IKEv2 协议分析
IPSec 在实施安全保护时需要通信的双方协商出双方的保护措施和参数,比如加密算法、35
认证算法、保护模式以及相关算法的密钥材料。IETF 把这些协商后的参数组合起来,称为安
全关联SA ( security association) 。IPSec 安全服务协议ESP 和AH都要使用安全关联, IKEv2
协议与 IKEv1 一样,其主要功能是安全关联 SA 的建立和维护。当一个 SA 的协商完成时,两
个对等方都在它们的安全关联数据库 SADB 中存储该 SA 参数。
IKEv2 使用 UDP 的 500 端口或 4500 端口,交换的消息以载荷的形式传输,表 1 为一些40
常用的载荷说明。
- 2 -
中国科技论文在线
表 1 协商中载荷说明
载荷 说明
HDR
SA
KE
AUTH
ID
NONCE
CERT
CERTREQ
TS
i,r
SK{…}
IKE 头,用来标识一次协商过程,记录本次协商的一些基本信息
安全联盟载荷
密钥交换载荷,包含 DH 交换中的公开信息
认证载荷
身份标识载荷
nonce 载荷,包括 Ni 和 Nr
证书载荷
证书请求载荷
流量选择符载荷
下标 i 表示为发起方的载荷,r 表示为响应方的载荷
加密载荷,在加密形式中包含其他载荷
IKEv2 协议消息协商一般分为两个阶段,IKE_SA_INIT 交换和 IKE_AUTH 交换阶段[1]。45
IKE_SA_INIT交换用来交换阶段协商加密算法,交换 nonce值和做一次DH交换。IKE_AUTH
交换用来认证之前的消息,交换身份标志符和证书,从而建立起第一个 CHILD_SA。图 1
描述了该协议的包含证书认证的协商过程。
图 1 IKEv2 协议包含证书认证的消息协商过程 50
1)发起方 Alice 向响应方 Bob 发送第一条消息,消息中 HDR 载荷包括发起者的 SPI,这
是发起者选择用来区分一个唯一的 IKE 安全连接,响应者的暂时为 0;IKE 的版本号 ;
交互类型 IKE_SA_INIT,这个指明了当前所进行交换的类型,从而限定了发送的此次消息
中的载荷和此次交换的消息顺序; messageID 为 0,用来控制丢失数据包的重发和请求与响55
应的匹配,它可以用来抵御消息的重放攻击。HDR 载荷紧跟着的 SAi1 载荷规定了 Alice 为
建立 IKE_SA 所支持的各种提案建议,提案中包括加密算法、PRF 算法、完整性检验算法、
DH 组内容。 KE(密钥交换)载荷传送 Alice 的 DH 交换的公开值。DH 组表明是在哪个
DH 组里计算的 DH 交换的公开值。Ni 载荷表示由发送方产生的随机数据,用来保证在一次
交换过程中保证活跃度和抵抗重放攻击。 60
2)在第 2 条消息中,Bob 从 Alice 提供的提案建议中选择一套算法并且在 SAr1 载荷中表
示出来。通过 KEr 载荷发送自己的 DH 交换的公开值,并在 Nr 载荷中发送它自己的 nonce
值。CERTREQ 为证书请求载荷,包含请求的证书类型和请求的上述类型的一个可以接受的证
书权威 CA。此时 Bob 会根据双方的 nonce 值、DH 交换得到的密钥和 PRF 函数得到一个密
钥种子 SKEYSEED,并以此得到 IKE_AUTH 交换时使用到的各种密钥,其中 SK_d 用于建65
立在该 IKE_SA 基础上的各个 CHILD_SA 的密钥材料,SK_ai 和 SK_ar 分别应用于 Alice 和
- 3 -
中国科技论文在线
Bob方向的认证,SK_ei和 SK_er 分别用于Alice和Bob方向后继消息的加密,SK_pi和 SK_pr
分别用于 Alice 和 Bob 方向认证载荷的计算。
3)Alice 收到 Bob 发来的消息,根据 Bob 同样的步骤得到 IKE_AUTH 交换时使用到的
各种密钥。接下来的所有报文全部(除了头部)都会被加密并受到完整性保护。在第 3 条消70
息中,Alice 在 IDi 载荷中声称自己的身份。IDr 载荷使 Alice 能够指定它想与之通信的对方
的众多身份中的一个。这对 Bob 在同一个 IP 地址上具有多个主机身份的情况下很有用。根
据 SK_pi、IDi、PRF 函数和第一条消息生成待签名数据,并用协商好的身份认证 HASH 算
法和取得数字证书对应的私钥进行签名计算,最后得到 AUTH 载荷。Alice 在 CERT 载荷中发
送自身的证书,在 CERTREQ 载荷中发送证书请求。Alice 使用 SAi2 载荷开始协商一个75
CHILD_SA。在 TS 载荷里是 Alice 提议的 IP 地址和端口的范围。
4)Bob 对发来的加密消息进行解密,并对 AUTH 载荷和数字证书进行验证。并根据协
商好的算法和 Ni、Nr、SK_d 生成 CHILD_SA 的密钥材料,从而得到加解密密钥。在第 4
条消息中,Bob 在 IDr 载荷中声称自己的身份,发送自己的数字证书,选择的一套提案算法
和 IP 地址端口的范围。 80
5)Alice 收到第 4 条消息后,根据以和 Bob 同样的步骤生成 CHILD_SA 的加解密密钥。
6)开始传输加密应用数据。
2 IKEv2 协议漏洞
DH 交换的安全缺陷
因为三四条消息的安全性保障主要依靠的是 DH 算法,也就是协议中的 KE 载荷交换。85
但是由于 DH 密钥交换本身并没有提供通讯双方的身份验证服务,因此它很容易受到中间人
攻击[2]。一个中间人在信道的中央进行两次 DH 密钥交换,一次和 Alice 另一次和 Bob,就
能够成功的向 Alice 假装自己是 Bob,反之亦然。而攻击者可以解密(读取和存储)任何一
个人的信息并重新加密信息,然后传递给另一个人。
证书认证安全缺陷 90
数字证书验证是整个 IKEv2 中身份认证的关键。可是证书本身存在一定的安全问题。
首先,公共 CA 机构并不一定很可靠,对于用户证书,公共 CA 机构可能不会向对网站数
字证书一样重视其申请人请求证书的身份标识是否准确。其次黑客可能利用木马等攻击手段
获得有效证书及私钥,这种方法可使身份认证形同虚设。
3 IKEv2 中间人攻击实现 95
中间人攻击
中间人攻击(Man-in-the-Middle-Attack,简称 MITM 攻击)在网络安全领域是一个比较典
型的主动攻击方式,是一种会话劫持的攻击方式。这种攻击模式是通过各种技术手段将受入
侵者控制的一台计算机虚拟放置在网络连接中的两台通信计算机之间,这台计算机称为“中
间人”。它相当于会话双方之间的一个透明代理,能改变正常的通信流,任意读取或篡改传100
递的信息,然而两个原始计算机用户却认为他们是在互相通信。ARP 欺骗、DNS 欺骗等技
术都是典型的 MITM 攻击实现手段。如今,在黑客技术越来越多的运用于以获取经济利益
为目标的情况下时,MITM 攻击成为对网银、网游、网上交易等最有威胁并且最具破坏性的
- 4 -
中国科技论文在线
一种攻击方式。
IKEv2 中间人攻击 105
虽然实现了将攻击者控制的计算机放置在网络连接中的两台通信计算机之间。可是由于
IKEv2 协议下通信信息是被加密保护的。因此在维持 Alice 和 Bob 双方通信的基础上还需要
利用协议漏洞获得加解密密钥。
实现中间人攻击步骤如下:
110
图 2 IKEv2 中间人攻击过程
Step1、中间人实现对通信双方通信流的控制,并启动对 IKE 端口的监听。
Step2、当监听到 Alice 连接 Bob 的 IKE_INIT 请求信息时,中间人向 Bob 发出连接请求,
其中包括自己的 DH 公开值和 nonce 值,并且依据 Alice 以明文方式发送的随机数 nonce 值、115
Alice 的 DH 公开值和中间人的 nonce 值、DH 公开值得到中间人与 Alice 之间这条隧道上的
IKE_AUTH 交换使用到的加解密密钥,并且保存 Alice 发来的消息和中间人发给 Bob 的消息
以用来计算 IKE_AUTH 交换时的验证数据。
Step3、中间人截获 Bob 发送的响应包。获取 Bob 选定的加密套件组、DH 公开值和 nonce
值,从而计算出中间人与 Bob 之间这条隧道上 IKE_AUTH 交换用到的加解密密钥。并且中120
间人向 Alice 发出响应,其中包括中间人的 DH 公开值和 nonce 值,以及证书请求。保存中
间人发给 Alice 的消息和 Bob 发来的响应消息以用来生成验证数据。
Step4、中间人截获 Alice 发出的 IKE_AUTH 交换的请求消息,并利用 Step2 中得到的
解密密钥进行解密,得到 Alice 的身份标志 ID,选定 SA 中的一套加密套件,从而得到 Alice
与中间人之间 CHILD_SA 的加解密密钥。然后再向 Bob 发出 IKE_AUTH 交换的请求消息,125
其中包括证书替换成中间人签发的已知私钥的伪造的 Alice 证书,并使用私钥对使用 Step2
中保存的中间人发给 Bob 的消息生成的待签名数据进行签名运算从而得到 AUTH 载荷。
由于 IKE 协议需要双方都进行认证,对通信双方的信任需要依靠双方对彼此的认证完
成。IKEv2 完成对证书的认证必须具三个条件[3]:1)是由权威机构发放的证书;2)证书在
有效期内;3)证书属于被认证的一方。如果不满足条件,则会无法完成证书的认证。因为130
当前的 PKI 基础设施还不够完善,我们只要得到正规签发证书的权限,根据伪造一方的 ID
- 5 -
中国科技论文在线
签发一个证书,从而就能使对方完成身份认证。
Step5、中间人截获 Bob 发出的响应包。利用 Step3 中的解密密钥进行解密,得到 Bob
的身份标志 ID。并根据 Bob 选定的加密套件,得到中间人与 Bob 之间的 CHILD_SA 的加解
密密钥。然后再向 Alice 发出 IKE_AUTH 交换的响应消息,其中包括证书替换成中间人签135
发的已知私钥的伪造的 Bob 证书,并使用私钥对使用 Step3 中保存的中间人发给 Alice 的消
息生成的待签名数据进行签名运算从而得到 AUTH 载荷。
Step6、中间人截获通信双方加密应用数据,用密钥解密获取双方通信内容。也可以篡
改消息然后进行加密传给接收方。中间人已经完全控制了双方的通信,攻击成功。
4 防范 IKEv2 中间人攻击的措施 140
1、首先要防止中间人的存在,可采用一定措施比如设置静态 ARP、绑定 IP 和 MAC 地
址或如果不是很有必要,停用 ARP 等来避免 ARP 欺骗。对于代理服务器,如无必要尽量不
要使用。如果一定要用也要确定此服务器绝对可信,否则尽量不要在使用代理服务器时进行
保密操作。
2、对于服务器证书的认证,需要保护好通信双方的身份信息。当在安全网关与安全网145
关之间建立一个 IPSec 隧道,主机可以得到安全网关的身份保护,会泄漏的只是安全网关的
身份信息,而不是真正通信双方的身份信息[4]。
3、安全性要求较高的通信双方为保证证书私钥的安全性可采用将证书和私钥存放在
USB key 上的形式。USB key 可保证私钥不出 key,且证书具有唯一性的特征。使黑客无法
替换证书或获得证书私钥。至今还未听说有客户因为 USBkey 造成资金损失。不过 USBkey 150
的使用相当不方便,需要安装 USBkey 的驱动程序还需要随身携带不同银行的多个 USB
key。
4、相对于 USBkey 的不便性,可以采用带外认证的方式确认用户身份。带外认证可以
提供多种不同的认证方式及渠道,比如短信发送二次 PIN 码,电话确认等。带外认证不通
过互联网,中间人无法获得任何信息,可以保证使用方便性的同时获得较高的安全性。 155
5 结论
尽管 IKE 存在很多不安全因素,综合实现成本、技术、安全、市场份额等因素,IKE
仍不失为一套经得住时间考验的比较优秀的网络安全协议。然而仅用 IKE 保护信息安全传
输是远远不够的,IKE 必须与其他网络安全方案相结合,才能构造出安全、完善的网络安全
方案。 160
参考文献
[1] Charlie Kaufman. Internet Key Exchange (IKEv2) Protocol RFC4306[OL]. [2005-11].
[2] 徐恒. 密钥交换中中间人攻击的防范[J]. 信息安全与通信保密,2009 年 02 期:90-92. 165
[3] 关振胜. 数字证书及其认证过程[J]. 中国金融电脑,2001,9:52-56.
[4] 赵华峰. 中间人攻击下增强身份保护的 IKEv2 改进[J]. 科学技术与工程, 2008,8(10):2714-2718.