目录 |
移动IP是一种在Internet上提供移动功能的解决方案。它使移动主机在切换链路时仍保持正在进行的通信。满足了人们随时随地接入Internet的需求。
传统IP在提供Internet访问业务时,每个连接由插口(由IP地址和端口号组成)唯一地识别。在通信期间,它们的IP地址和TCP端口号必须保持不变,否则IP主机之间的通信将无法继续。例如:某台主机的IP地址为210.28.130.21,则其网络号为210.28.130,主机号为21。这台主机只能在网络号为210.28.130的局域网中进行互连。若主机移动到其他网段,便无法继续通信。下图表示移动主机由210.28.130网段移动到220.30.168网段时发生通信中断的情况。因此,为了在用户终端移动的条件下,既不改变其IP地址,又能保持通信不中断,就引入了移动IP的概念。
随着Internet的飞速发展和移动计算机的广泛应用,移动计算机用户希望像其他台式机用户一样,接入相同的网络,共享资源和服务,且又不局限于某一固定区域。为适应数据型业务快速增长的需求,现有移动通信网络的交换方式必须进行改造,人们需要的是一个以分组交换为基础的无线网络,这种新型网络结构正是移动IP(Mobile IP)的结构。
移动IP并不是移动通信技术和Internet技术的简单叠加,也不是无线语音和无线数据的简单叠加,它是移动通信和IP的深层融合。其目标是将无线语音和无线数据综合到一个技术平台上传输,这一平台就是由IETF制定的移动IP协议。包括RFC2002(IP移动性支持)、RFC2003(IP内的IP封装)、RFC2004(IP内的最小封装)和RFC2290(用于点对点协议(PPP)IP控制协议(IPCP)的移动IPv4配置选项)。
移动IP是一种在全球Internet上提供移动功能的方案,它具有高度可扩展性、可靠性和安全性,使结点在切换链路时仍可保持正在进行的通信。特别值得注意的是,移动IP提供了一种IP路由机制,使移动结点可以以一个永久的IP地址连接到任何链路上。
当计算机想发一个数据包给一台目的计算机时,它并不关心也不知道目的计算机在什么地方,它只想发出的数据能被送到合适的接收者那里。这是网络层,也就是OSI(Open System Interconnection)模型第3层的功能。网络层负责为数据包动态地选择一条从源到目的结点的路径,在Internet中,网络层协议称为IP(Internet Protocol)。移动IP是在Internet中提供移动功能的网络层方案。也就是说,移动IP通过在合适的结点上设立路由表,将IP包送到那些不在家乡链路上的移动结点。事实上,移动IP可以看做是一个路由协议,与传统的路由协议相比,移动IP具有特殊的功能,它的目的是将数据包路由到那些可能一直在快速地改变位置的移动结点上。
移动IP也允许移动结点从一条链路移动到另一条相同或不同媒介的链路上,同时保持它的所有连接。提供同种媒介的网络间移动功能的技术称为同质移动功能(Homogeneous Mobility);而提供不同媒介间移动又仍然保持现有通信的功能称为移动结点的异质移动功能(Heterogeneous Mobility)。
IEEE 802.11只提供在自己的网络中的移动,而不能在采用不同媒介的网络间提供移动功能。移动IP同时具有同质移动功能和异质移动功能,这是独一无二的。
移动通信的IP化进程将分为三个阶段:第一阶段是移动数据业务的IP化;第二阶段是移动网络的分组化演进;第三阶段是在第3代移动通信系统中实现全IP化。
移动IP技术包含了两个基本假设:第一个是点到点通信的数据包在路由选择时与源IP地址无关,路由选择机制只依据目的地址来选取路由,实际上是只依据目的地址前缀进行路由选择,这正是IP路由机制的基本特征;第二个假设是支持移动IP的网络是一个连通网络,网络上的任何两个节点之间都能够互相通信,要求由路由器和链路构成的网络能够将数据包送到移动节点的家乡链路和任意可能到达的位置。
在满足上述假设的口网络中,移动P技术的设计目标应该包括以下几点:
(1)尽量减少路由更新消息的数量和频率,路由协议要求在网络的各种节点间传递路由更新消息,为了使移动IP能够在多种无线链路上工作,应该使这些路由更新消息的数量和频率尽量减少。
(2)尽量简化移动节点处理复杂度,这样可以增加使用移动IP的终端类型,特别是那些内存和处理能力受到限制的蜂窝电话、笔记本电脑及其他便携式终端。
(3)尽量节省地址占用空间,避免移动IP使用多个地址或要求为MN准备一个大的地址池,造成地址空间的浪费。满足上述设计目标的移动IP技术有以下几个优点:移动IP协议与IP协议兼容性好;移动IP协议简单、扩展性好;移动IP可以和任何链路层技术集成提供移动支持等。
根据节点的移动范围和特征,可以把移动分为两种类型:宏移动(macromobility)和微移动(micromobility),宏移动是指移动节点MN在不同的管理域之间运动,微移动是指移动节点在同一个管理域中运动。移动IP技术是有效的宏移动解决方案,然而它并不适合于解决微移动问题,原因在于:
(1)难以实现无缝切换,移动IP技术描述了MN在不同子网之间的切换操作,却对如何降低切换延时、减小丢包等方面缺乏深入考虑。
(2)移动注册的信令开销较大,当MN远离家乡时,如果MN移动比较频繁,绑定更新的次数增加,将给核心网增加很大的负担。
(3)移动IP需要和QoS协议进行交互,采用隧道技术进行数据传输屏蔽了包含QoS信息的数据报头,使得实现QoS保障更加困难。
(4)由于安全性方面的考虑,在移动IPv4中还存在三角路由问题,使得路由效率不高。
移动IP仅定义了一个简单、可扩展的宏移动框架,要使它支持需要服务质量保障的实时应用(比如VolP),仍需要解决大量的技术难题,制订补充协议。
移动IP就是在全球Internet网上提供一种IP路由机制,使MS可以以一个永久的IP地址连接到任何子网中,实现MS作为主叫或被叫的分组数据通信,并可保证MS在切换PPP链路时仍保持正在进行的通信。
移动IP技术的网络实体主要由以下几个部分组成。
①移动节点:可从一条链路切换到另一条链路上,而仍然保持所有正在进行的通信,并且只使用它的家乡地址的那些节点。
②家乡代理:即本地代理,有一个端口与移动节点家乡链路相连的路由器。
③外地代理:在移动节点的外地链路上的路由器。
④隧道:当一个数据包被封装在另一个数据包的净荷中进行传送时所经过的路径。家乡代理为将数据包传送给移动节点,需先把数据包通过隧道送往外地代理。
⑤转交地址:家乡代理和移动节点的隧道出口。有两种转交地址。
移动IP的工作过程如下。
①家乡代理和外地代理周期性发布代理广播消息,链路上的主机通过接收这个信息判断自己是处在家乡链路还是外地链路上。同时,连在外地链路上的移动节点从代理广播消息中得到转交地址。
②处于外地链路的移动节点向家乡代理注册转交地址。
③家乡代理和其他路由器广播对移动节点家乡地址的可达性,接收发往移动节点家乡地址包。
④家乡代理截取发往移动节点家乡地址的包,并通过隧道送往它的转交地址,外地代理从隧道中取出原始数据包,并通过外地链路送往移动节点。
移动口的实现,主要通过三个步骤来完成:代理搜索、注册、数据包的选路。
主要完成以下几个功能:判断移动节点当前连在家乡链路上还是外地链路上;检测移动节点是否切换了链路;当移动节点连在外地链路上时,得到一个转交地址。
主要完成以下几个功能:同时注册多个转交地址,家乡代理将送往移动节点家乡地址的数据包,通过隧道送往每个转交地址。可以在注销一个转交地址的同时保留其他转交地址;在先前不知家乡代理的情况下,移动节点可以通过注册动态地址得到一个可能的家乡代理的地址。
对于数据包的选路过程,主要考虑当移动节点在外地链路上的情形。因为当移动节点位于家乡链路上时,数据包的选路与固定节点的选路原理相同。只有当移动节点位于外地链路上时,才使用移动口机制进行选路。
移动IP面临的安全问题源于多种因素。首先,移动IP是工作在网络层的协议,它所引入的新的控制消息,如代理通告、注册请求和应答、绑定更新和代理发现等如果处理不当,容易受到攻击。此外,移动IP虽然可以工作在任何种类的链路上,但是在大多数情况下,移动IP应用于无线网络环境中,也就是通过无线链路接入网络,无线网络的特殊性使得同样的攻击在无线网络中更容易实施。再者,移动IP中的移动节点常常离开家乡网络,在不同的外地网络之间漫游,由于无法保证所有的外地网络都是可信的,因此移动节点很容易遭受被动窃听、会话窃取和各种主动攻击。
针对移动IP协议自身的特点及移动环境的特殊性,移动IP可能遭受各种安全攻击,包括拒绝服务攻击、重放攻击、中间人攻击、会话窃取和被动窃听等。下面简要介绍这些攻击行为及相应的移动IP安全机制。
在移动IP协议中,注册的一个首要目的是让移动节点将其转交地址通知其家乡代理,家乡代理将接收那些目的地址为移动节点家乡地址的IP分组,并通过隧道发送到移动节点的转交地址。攻击者可以发出一个伪造的注册请求消息给家乡代理,以其IP地址或一个欺骗IP地址代替移动节点的转交地址。这样,通信对端发出的所有IP分组都会被移动节点的家乡代理通过隧道发送至攻击者指定的IP地址,而不是移动节点的转交地址。
同样,攻击者可以通过假冒外地代理对移动节点发起拒绝服务攻击。为了防御这种移动IP的拒绝服务攻击,可以对移动节点和家乡代理之间的注册消息进行认证。为此,移动IP协议提供了一些认证机制:通过认证扩展的方式提供了移动节点和移动代理之间的注册消息的认证,即移动一家乡认证扩展,移动一外地认证扩展,外地一家乡认证扩展。其中,移动一家乡认证扩展是必选的,其余两个是可选的。
移动IP协议使用的默认认证算法是HMAC—MD5,采用前缀加后缀的模式。
中间人攻击是指攻击者拦截网络中的分组,经过修改之后再送回到网络中。在移动IP的代理发现机制中,移动节点可能会遭受中间人攻击。
在移动IP中,移动代理周期性地发送代理通告消息,移动节点根据收到的代理通告消息来判断自己的位置,判断是在家乡链路还是在外地链路。代理通告消息是作为ICMP路由器发现消息的移动扩展发送的。其中包含一个序列号,移动节点根据该序列号判断外地代理是否重启,也就是说外地代理不再知道该移动节点的存在,需要重新注册。攻击者可以利用这种机制,伪造一个代理通告消息,使得收到这个消息的移动节点认为需要重新注册。一般代理通告消息中的TTL字段的值为1时,移动节点才接受该消息。所以攻击者通常与移动节点位于同一链路上,但是它也可以在其他链路上,通过适当的设置TTL字段的值来使移动节点收到该消息时,使其中的TTL字段为1。
代理通告消息的发送方式可以是广播、多播和单播。由于广播和多播只能在当前链路上发送和接收,因此,当攻击者位于移动节点所在链路以外的其他链路上时,这种攻击是无效的。而当移动节点发送代理请求消息时,由移动代理响应的代理通告是以单播形式发送给移动节点的。这时,如果攻击者伪造一个单播的代理通告地址给移动节点,就有可能成功。因此,移动节点应该抛弃那些单播的代理通告消息,除非它发送了代理请求消息。
重放攻击是指攻击者截获数据,等待一段时间后重新发送,一般表现为对认证系统的攻击。攻击者记录下任何保持不变的认证信息,比如密码,然后重放以前发送过的合法消息,以此来骗过认证系统。
在移动IP的注册过程中存在遭受重发攻击的隐患。一个攻击者可以将一个有效的注册请求信息保存起来,然后经过一段时间后再重放这个消息,从而注册一个伪造的转交地址。为防止这种重放攻击,移动节点为每一个连续的注册消息标识(identification)字段产生一个唯一值。该值使得家乡代理可以知道下一个值应该是多少。这样,攻击者就无能为力了,因为它保存的注册请求信息会被家乡代理判定为已经过时了。
移动IP定义了两种填写标识字段的方法:时间戳(必须的)和nonce(可选的)。在移动节点与家乡代理之间有效的重放保护的形式是移动安全关联的一部分。一个移动节点与家乡代理必须就将采用哪种重放保护方式达成一致。对于标识字段的解释取决于重放保护的方法。无论采用哪种方法,标识字段的最低32位必须从注册请求消息中原封不动地复制到注册应答消息中。外地代理使用这些位(和移动节点的本地地址)来比较注册请求与相应的注册应答。移动节点必须验证注册应答消息的标识字段的低32位与注册请求消息中的该字段是否相同。
时间戳重放保护的基本原理是:节点A产生一个消息插入当前的日期和时间,收到消息的节点B检查这个时间戳是否和它自己的日期时间足够接近。除非在节点之间的安全关联中详细说明,将使用默认值7s作为时间差别的限度,而且应该至少大于3s。很显然,两个节点必须拥有很好的经过同步的时钟。与其他信息一样,时间同步信息也可以根据两个节点间的安全关联而采用某种认证机制来防止被篡改。
如果采用了时间戳协议,移动节点必须将标识字段设置为由网络时间协议(network time protocol,NTP)所指定的一个64位的数值。NTP格式的低32位代表秒的小数部分,这些位不能从一个时间源得到,而应该由一个好的随机源产生。
需要注意的是,当使用时间戳时,在一个注册请求消息中所使用的64位标识字段的值必须大于任何先前的注册请求信息中的标识字段的值,因为家乡代理同时要使用这个字段作为一个序列号。如果没有这样的序列号,很可能会将一个早些时候的注册请求延迟了的副本送给家乡代理(在家乡代理所要求的时钟同步限制之内),造成次序颠倒,从而错误地改变了移动节点当前注册的转交地址。
一旦收到了带有可授权扩展的注册请求后,家乡节点必须检验标识字段的合法性。标识字段内包含的时间戳必须足够接近家乡代理的时钟,并且时间戳必须大于所有先前接受过的目前正在请求的移动节点的时间戳。时间公差和重同步的详细情况取决于某个特定的移动安全关联。
如果时间戳是合法的,家乡代理把整个标识字段复制到返回给移动节点的注册应答消息中去。如果时间戳不合法,家乡代理仅仅把低32位复制到注册应答消息中,并用高32位提供它自己的时钟。在后一种情况下,家乡代理必须通过在注册回复中返回Codel33来拒绝注册。
移动节点在使用注册应答消息中的标识字段的高32位进行重同步之前,必须证实在注册应答消息中标识字段的低32位与那些被拒绝的注册请求中的相同。
nonce重放保护的基本原理是:节点A在发给节点B的每一个消息中包含一个新的随机数,并检查在节点B发给A的下一个消息中返回的数值是否相同。这两个消息都使用一个认证码来防止某个攻击者对其篡改。同时,节点B可以在所有发送给节点A的消息(由节点A来响应)中包含它自己的nonce,因此它也能证实所收到消息的新鲜性。
家乡代理在每一个注册应答中插入一个新的nonce作为标识字段的高32位。家乡代理把注册请求消息中标识字段的低32位复制到注册应答消息中标识字段的低32位中。当移动节点从家乡代理那里收到一个经过认证的注册应答消息时,它把标识字段的高32位保存下来,作为下一个注册请求信息的高32位。
移动节点负责在每一个注册请求中产生标识字段的低32位。理想情况下,它应该产生自己的随机数nonce。但是它可以使用其他合适的方法,包括复制家乡代理发送的随机数值。所选择的标识字段的高32位和低32位都应该与它们先前的值有所不同。在每次的注册消息中,家乡代理使用一个新的高位值而移动节点使用一个新的低位值。外地代理使用低位值(以及移动主机的家乡地址)来正确匹配注册应答和未决的请求。如果一个注册请求消息因为一个非法的nonce而被拒绝,注册应答消息总是为移动节点提供一个新的nonce用作下一次的注册。
会话窃取攻击是指攻击者在一个合法节点进行认证并开始会话后,通过假冒合法节点将会话窃取过去。通常,攻击者必须发送大量的无用数据来防止合法节点发现会话已被窃取了。
移动IP的注册过程可能遭到攻击者的会话窃取攻击。假设攻击者与移动节点位于同一链路上,他首先等待移动节点向家乡代理进行注册。然后攻击者偷听到移动节点开始了一个他所感兴趣的通信会话,便发送大量无用的数据分组给移动节点,占用移动节点的全部CPU资源。攻击者发送假冒移动节点发出的消息给移动节点的通信对端,并截获发往移动节点的数据分组,从而成功地窃取会话。这时,移动节点当前的通信被中断了,但是并不知道它当前的会话已经被攻击者窃取过去。
为了防止这种攻击,要求移动节点和外地代理之间存在链路层加密,最好是端到端的加密。在外地链路是无线的情况下,数据链路层加密尤为重要。在无线链路上进行会话窃取要比在有线环境下容易,因为攻击者不需要物理地连接到链路上。进行端到端的加密是更好的选择。端到端加密是指在通信源端对数据进行加密,在目的端对数据进行解密,而不只是在某一段链路上对数据进行加解密。这样的优点在于,在网络中任何一点数据都是加密的,而不只是在外地链路上得到保护。数据的加密与物理介质无关,而且加解密只在通信端点进行,而不是在通信路径中的某些地方,这样就防止了不必要的时延。
被动窃听是指攻击者窃听并截取网络中传输的数据分组,以窃取数据分组中可能包含的机密和私人信息。防范这种攻击最好的方法就是对数据进行加密。这和前面对付会话窃取攻击的方法一样。
移动IP中的移动安全关联(mobile security association)是一组用于保护消息的安全策略。两个移动实体进行安全通信前,必须首先协商一个安全关联,选择通信双方都能支持的加密与认证算法。移动安全关联由以下几部分组成:加密算法(如DES、3DES、Blowfish、CAST和AES等);消息摘要算法(如MDS、SHA和Tiger等);认证算法(如预先分配共享密钥,数字签名和共享密钥等);移动安全关联的生存期。