摘要 文章分析了在IPv6网络中引入移动IP协议可能给网络带来的安全隐患,并讨论了移动IPv6所采用的安全技术,包括如何用IPsec协议和往返可路由过程未保护移动IPv6信令安全的机制。
1、前言
随着网络从IPv4到IPv6的演进,移动IP技术自身发生了革命性的变化。而且,IPv6的许多新特性也为节点移动性提供了更好的支持,如“无状态地址自动配置”和“邻居发现”等。此外,IPv6组网技术大大简化了网络重组的步骤,可以更有效的促进因特网移动性。
在移动IPv6中,归属地址作为移动节点的唯一标识为高层协议所感知。当移动节点移动到外部网络时,会在外部网络获得一个转交地址(CoA,Care-of Address),转交地址和归属地址的映射关系称为一个“绑定”。移动节点通过绑定注册过程把转交地址通知给位于归属网络的归属代理(HA,Home Agent)。随后,对端通信节点(CN,Correspondent Node)发往移动节点的数据包首先被路由到归属代理,然后归属代理根据移动节点的绑定关系,将数据包封装后发送给移动节点。为了优化迂回路由的转发效率,移动IPv6也允许移动节点直接将绑定消息发送到对端通信节点,实现移动节点和对端通信主机的直接通信,而无需经过归属代理的转发。
移动IPv6的基本工作流程只针对于理想状态的互联网,并未考虑现实网络的安全问题。此外,移动性的引入必然也会为网络带来新的安全威胁,例如对报文的窃听、篡改以及拒绝服务攻击等。所以,在移动IPv6的具体实施中必须谨慎地对待这些安全威胁,以避免网络的安全级别下降。
2、移动IPv6面临的安全问题
移动IP多应用于无线环境,除了要面对所有无线网络所固有的安全威胁外,还需要处理由移动性引入的新的安全问题,这必然导致移动IP相对于有线因特网显得更加脆弱。此外,移动IPv6协议通过定义移动节点、归属代理和通信节点之间的信令机制,巧妙的解决了移动IPv4的三角路由问题,但在优化的同时也引入了新的安全问题。
从移动IP工作过程来看,如果攻击者在移动节点、归属代理和通讯节点之间的通信链路上截获并篡改相关的信令报文,那么它就能够轻易地发起攻击。目前,移动IPv6可能遭受的攻击主要包括拒绝服务攻击、重放攻击以及信息窃取攻击。
(1)拒绝服务攻击
拒绝服务攻击是指攻击者为阻止合法用户获得正常服务而采用的攻击手段。这种攻击主要包括两种方式:一种是通过网络向服务器或主机发送大量数据包,使得服务器忙于处理这些无用的数据包而无法响应有用的信息;另一种是直接干扰服务器与主机之间的正常通信。在移动IPv6中,攻击者能够通过如下手段达到上述目的:
◆攻击者发送大量地址绑定更新消息来消耗归属代理和通信节点的资源,从而导致绑定缓存表溢出或者是无法及时处理合法用户的绑定更新报文;
◆如果恶意主机把因特网上服务器的IPv6地址作为大量移动节点的转交地址,发送伪装的绑定更新消息给对端通信节点,那么将会引发大量的攻击流量发往受害服务器,导致分布式拒绝服务攻击;
◆和上述情况类似,攻击者可以冒充移动节点,使用移动节点的归属地址发送绑定更新消息(例如把自己的地址作为移动节点的新的转交地址),伪装移动节点的移动状况,最终截获移动节点的数据包,阻断合法用户的正常通信;
◆在移动节点和归属代理通信路径上的攻击者可以通过篡改归属地址选项域值,将通信节点的流量重新定向到第三方节点上,从而阻断合法用户的正常通信;
◆在移动节点和通信节点通信路径上的攻击者可以通过篡改路由来扩展头域值,将通信节点的流量重新定向到第三方节点,从而阻断合法用户的正常通信。
(2)重放攻击
重放攻击是指攻击者将一个合法的、有效的注册请求消息录取并保存起来,等待一段时间后再重新发送这个消息,为伪造的转交地址进行注册,从而达到攻击的目的。在移动节点和通信节点通信路径上的攻击者能够通过这种方式将数据流重定向到第三方实体。
(3)信息窃取
信息窃取可以分为被动监听和主动会话截取。
◆被动的监听:移动IPv6虽然可以使用于多种传输介质,但主要应用于无线链路。由于无线链路的信道特性,攻击者可以轻易的实施被动监听。即便是有线链路,或是未经授权的用户也可能通过某些手段接入网络进行监听;
◆会话窃取:会话窃取攻击是指攻击者等待合法的用户认证完成并且正常会话后,通过假扮合法节点来窃取会话的攻击。在移动IPv6中,移动节点向归属代理注册后,攻击者可以截获发往移动节点或通信节点的数据包,或者假冒身份向移动节点或通信节点发送无用或欺骗数据包。
除上述主要安全威胁之外,移动IPv6还可能遭受到其它安全攻击,比如攻击者可以冒充通信节点给移动节点发送绑定错误消息,从而导致移动节点通过隧道经由归属代理向通信节点三角路由发送报文,造成路由迂回,导致网络带宽浪费及时延增加。当归属网络重编号时,归属代理可以通过设置归属网络前缀的生存时间来实现位于外部网络的移动节点归属地址的更新。通常情况下,移动节点应该选择生存时间最长的IPv6前缀来形成自己的归属地址。如果恶意主机修改归属网络IPv6前缀的生存时间、或者干脆修改前缀的内容,那么可能引起归属代理服务的所有的移动节点无法到达,或者使移动节点到归属代理的流量被窃取,或者引发拒绝服务攻击。
3、移动IPv6的安全机制
互联网协议设计的原则之一是新协议的引入不会带来新的安全威胁,如果存在安全隐患,那么协议本身必须规定相应的安全机制。移动IPv6协议也不例外,对于前文描述的各种安全威胁,协议定义了相应的安全机制。
针对重放攻击,移动IPv6协议在注册消息中添加了序列号,并且在协议报文中引入了时间随机数(Nonce)。归属代理和通信节点可以通过比较前后两个注册消息序列号,并结合Nonce的散列值,来判定注册消息是否为重放攻击。若消息序列号不匹配,或Nonce散列值不正确,则可视之为过期注册消息,不予处理。
对<移动节点,通信节点>、<移动节点,归属代理>之间的信令消息传递的有效保护,能够防御其它形式的攻击。移动节点和归属代理之间可以建立IPsec安全联盟来保护信令消息和业务流量。由于移动节点归属地址和归属代理都是已知的,所以可以预先为移动节点和归属代理配置安全联盟,然后使用IPsec AH和ESP建立安全隧道,提供数据源认证、完整性检查、数据加密和重放攻击防护。
由于移动节点的转交地址是随着移动节点网络接入点的变化而不断变化的,且与之通信的节点也是变化的,因此无法预先配置建立二者之间的安全联盟,而且在全球互联网范围内很难实现公有密钥架构(PKI,Public Key Infrastructure),不同的认证管理域也很难建立信任关系,所以无法通过公共密钥加密机制保护移动节点与通信节点之间的信令消息。鉴于此,移动IPv6协议定义了往返可路由过程(RRP,Return Routability Procedure),通过产生绑定管理密钥,来实现对移动节点和通信节点之间控制信令的保护。
(1)移动节点和归属代理间的安全
归属代理通常由运营商部署及运维管理,而且移动节点通常也是运营商的可控用户(可通过EMSI或CA证书等手段对身份进行验证控制),因此,完全可以假设二者处于同一可信任域,可预先为移动节点和归属代理配置建立安全联盟。
在RFC3776中,移动IPv6建议使用IPsec技术来实现移动节点和归属代理之间的信令信息保护,被保护的消息包括:
◆移动节点和归属代理之间交换的绑定更新(BU,Binding Update)和绑定确认(BA,Binding Acknowledgment)消息;
◆RRP过程中,移动节点和归属代理之间的Home Test Init与Home Test消息;
◆前缀发现过程中,移动节点和归属代理之间的ICMPv6消息;
◆可选的,使用IPsec协议来保护移动节点和归属代理之间的净荷。
移动IPv6协议规定利用IPsec的ESP传输模式来保护从移动节点到归属代理之间的信令消息。使用ESP协议可以提供对数据源验证、数据完整性、数据内容的机密性、抗重播保护以及数据流机密性保证。
最新发布的RFC4285中,3GPP2也提出了一种移动节点和归属代理的可选认证机制,该方案定义了移动IPv6专用的认证选项,用来实现移动节点和归属代理之间的认证。
(2)移动节点和通信节点间的安全
往返可路由过程的目的在于使通信节点确认移动节点所宣称的归属地址和转交地址是可达的。只有在得到确认后,对端通信节点才会接受来自移动节点的绑定更新消息,并建立相应绑定关系,然后将随后的流量转发到移动节点新的转交地址。
RRP过程开始于移动节点同时发送归属测试初始化(HoTI,Home Test Initial)和转交测试初始化(CoTI,Care of Test Initial)消息,HoTI消息由移动节点的归属代理中转发送到对端通信节点的,包含一个归属初始Cookie。对端通信节点收到该消息后,回应一个归属测试(HoT,Home Test)消息,包含下列参数:
◆归属初始Cookie,该参数的值必须和HoTI消息的值相同;
◆归属Keygen令牌的值为First(64,HMAC-SHA1(K对端通信节点,(home address|nonce|0))),其中K对端通信节点和nonce都是由对端通信节点产生的随机数,用于产生归属Keygen令牌;
◆归属nonce索引,是对端通信节点在上述公式中产生nonce值的索引,用以避免在消息中直接传送nonce的值。
CoTI消息是由移动节点直接发送给对端通信节点的,包含一个转交测试Cookie。对端通信节点收到该消息后,回应一个转交测试(CoT,Care-of Test)消息,包含下列参数:
◆转交Cookie,该参数必须和CoTI消息相同;
◆转交Keygen令牌的值为First(64,HMAC-SHA1(K对端通信节点,(care-of address|nonce|1)));
◆转交nonce索引和nonce值的索引,避免在消息中直接传送nonce值。
移动节点收到Home Test消息和Care-of Test消息后,就完成了往返可路由过程,其过程如图1所示。移动节点将收到的归属Cookie和转交Cookie作为哈希函数的输入产生会话密钥,并用此密钥来认证绑定消息:
Kbm=SHA1(home kengen token|care-of kengen token)。
接下来,移动节点向对端通信节点发送的绑定更新请求消息中就具备了足够的认证信息。绑定更新消息包含的参数为:
◆移动节点的归属地址;
◆序列号;
◆转交nonce索引;
◆First(96,HMAC-SHA1(Kbm,(care-of address|对端通信节点|BU)))。
如果对端通信节点验证绑定更新消息确实为合法移动节点发送的,则对端通信节点就会创建新的绑定列表选项,确认这个绑定更新。
图1 往返可路由过程(RRP)示意图
4、结语
尽管移动IPv6中规定了以IPSec来进行MN与HA之间协议消息和数据消息的保护,但在IPv6实际部署中真正启用IPSec的情况很少,所以在移动IPv6中IPSec的应用就更少。一方面由于网络及终端设备对IPSec支持还不到位,另一方面IPSec主要以IPSec VPN的形式为企业客户所采用,而对于个人用户,IPSec的配置相对来说比较繁琐。如何能使IPSec易于配置并得到广泛应用,这也是移动IPv6还要解决的一个问题。此外,对于如何提高移动节点与家乡代理之间的信令消息验证的效率,简化认证算法的复杂度(尤其是移动终端上的实现),都是值得进一步研究的问题。
作者:田辉 何宝宏 来源:泰尔网