移動IP
出自 MBA智库百科(https://wiki.mbalib.com/)
目錄 |
什麼是移動IP[1]
移動IP是一種在Internet上提供移動功能的解決方案。它使移動主機在切換鏈路時仍保持正在進行的通信。滿足了人們隨時隨地接入Internet的需求。
移動IP的產生背景[2]
傳統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的特點[2]
移動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的優缺點[3]
- 1.移動IP的優點
移動IP技術包含了兩個基本假設:第一個是點到點通信的數據包在路由選擇時與源IP地址無關,路由選擇機制只依據目的地址來選取路由,實際上是只依據目的地址首碼進行路由選擇,這正是IP路由機制的基本特征;第二個假設是支持移動IP的網路是一個連通網路,網路上的任何兩個節點之間都能夠互相通信,要求由路由器和鏈路構成的網路能夠將數據包送到移動節點的家鄉鏈路和任意可能到達的位置。
在滿足上述假設的口網路中,移動P技術的設計目標應該包括以下幾點:
(1)儘量減少路由更新消息的數量和頻率,路由協議要求在網路的各種節點間傳遞路由更新消息,為了使移動IP能夠在多種無線鏈路上工作,應該使這些路由更新消息的數量和頻率儘量減少。
(2)儘量簡化移動節點處理複雜度,這樣可以增加使用移動IP的終端類型,特別是那些記憶體和處理能力受到限制的蜂窩電話、筆記本電腦及其他攜帶型終端。
(3)儘量節省地址占用空間,避免移動IP使用多個地址或要求為MN準備一個大的地址池,造成地址空間的浪費。滿足上述設計目標的移動IP技術有以下幾個優點:移動IP協議與IP協議兼容性好;移動IP協議簡單、擴展性好;移動IP可以和任何鏈路層技術集成提供移動支持等。
- 2.移動口的缺點
根據節點的移動範圍和特征,可以把移動分為兩種類型:巨集移動(macromobility)和微移動(micromobility),巨集移動是指移動節點MN在不同的管理域之間運動,微移動是指移動節點在同一個管理域中運動。移動IP技術是有效的巨集移動解決方案,然而它並不適合於解決微移動問題,原因在於:
(1)難以實現無縫切換,移動IP技術描述了MN在不同子網之間的切換操作,卻對如何降低切換延時、減小丟包等方面缺乏深入考慮。
(2)移動註冊的信令開銷較大,當MN遠離家鄉時,如果MN移動比較頻繁,綁定更新的次數增加,將給核心網增加很大的負擔。
(3)移動IP需要和QoS協議進行交互,採用隧道技術進行數據傳輸屏蔽了包含QoS信息的數據報頭,使得實現QoS保障更加困難。
(4)由於安全性方面的考慮,在移動IPv4中還存在三角路由問題,使得路由效率不高。
移動IP僅定義了一個簡單、可擴展的巨集移動框架,要使它支持需要服務質量保障的實時應用(比如VolP),仍需要解決大量的技術難題,制訂補充協議。
移動lP技術的工作原理[4]
移動IP就是在全球Internet網上提供一種IP路由機制,使MS可以以一個永久的IP地址連接到任何子網中,實現MS作為主叫或被叫的分組數據通信,並可保證MS在切換PPP鏈路時仍保持正在進行的通信。
- (1)幾個基本概念
移動IP技術的網路實體主要由以下幾個部分組成。
①移動節點:可從一條鏈路切換到另一條鏈路上,而仍然保持所有正在進行的通信,並且只使用它的家鄉地址的那些節點。
②家鄉代理:即本地代理,有一個埠與移動節點家鄉鏈路相連的路由器。
③外地代理:在移動節點的外地鏈路上的路由器。
④隧道:當一個數據包被封裝在另一個數據包的凈荷中進行傳送時所經過的路徑。家鄉代理為將數據包傳送給移動節點,需先把數據包通過隧道送往外地代理。
⑤轉交地址:家鄉代理和移動節點的隧道出口。有兩種轉交地址。
- 外地代理轉交地址:即外地代理的IP地址,有一個埠連接移動節點所在的外地鏈路。外地代理轉交地址的網路首碼並不一定與外地鏈路的網路首碼相同。
- 配置轉交地址:即暫時分配給移動節點的某個埠IP地址,其網路首碼必須與移動節點當前所連的外地鏈路的網路首碼相同。
- (2)移動口的工作過程
移動IP的工作過程如下。
①家鄉代理和外地代理周期性發佈代理廣播消息,鏈路上的主機通過接收這個信息判斷自己是處在家鄉鏈路還是外地鏈路上。同時,連在外地鏈路上的移動節點從代理廣播消息中得到轉交地址。
②處於外地鏈路的移動節點向家鄉代理註冊轉交地址。
③家鄉代理和其他路由器廣播對移動節點家鄉地址的可達性,接收發往移動節點家鄉地址包。
④家鄉代理截取發往移動節點家鄉地址的包,並通過隧道送往它的轉交地址,外地代理從隧道中取出原始數據包,並通過外地鏈路送往移動節點。
- (3)移動IP的實現
移動口的實現,主要通過三個步驟來完成:代理搜索、註冊、數據包的選路。
- ①代理搜索
主要完成以下幾個功能:判斷移動節點當前連在家鄉鏈路上還是外地鏈路上;檢測移動節點是否切換了鏈路;當移動節點連在外地鏈路上時,得到一個轉交地址。
- ②註冊
主要完成以下幾個功能:同時註冊多個轉交地址,家鄉代理將送往移動節點家鄉地址的數據包,通過隧道送往每個轉交地址。可以在註銷一個轉交地址的同時保留其他轉交地址;在先前不知家鄉代理的情況下,移動節點可以通過註冊動態地址得到一個可能的家鄉代理的地址。
- ③數據包的選路
對於數據包的選路過程,主要考慮當移動節點在外地鏈路上的情形。因為當移動節點位於家鄉鏈路上時,數據包的選路與固定節點的選路原理相同。只有當移動節點位於外地鏈路上時,才使用移動口機制進行選路。
移動IP面臨的安全威脅及對策[5]
移動IP面臨的安全問題源於多種因素。首先,移動IP是工作在網路層的協議,它所引入的新的控制消息,如代理通告、註冊請求和應答、綁定更新和代理髮現等如果處理不當,容易受到攻擊。此外,移動IP雖然可以工作在任何種類的鏈路上,但是在大多數情況下,移動IP應用於無線網路環境中,也就是通過無線鏈路接入網路,無線網路的特殊性使得同樣的攻擊在無線網路中更容易實施。再者,移動IP中的移動節點常常離開家鄉網路,在不同的外地網路之間漫游,由於無法保證所有的外地網路都是可信的,因此移動節點很容易遭受被動竊聽、會話竊取和各種主動攻擊。
針對移動IP協議自身的特點及移動環境的特殊性,移動IP可能遭受各種安全攻擊,包括拒絕服務攻擊、重放攻擊、中間人攻擊、會話竊取和被動竊聽等。下麵簡要介紹這些攻擊行為及相應的移動IP安全機制。
- 1.拒絕服務攻擊
在移動IP協議中,註冊的一個首要目的是讓移動節點將其轉交地址通知其家鄉代理,家鄉代理將接收那些目的地址為移動節點家鄉地址的IP分組,並通過隧道發送到移動節點的轉交地址。攻擊者可以發出一個偽造的註冊請求消息給家鄉代理,以其IP地址或一個欺騙IP地址代替移動節點的轉交地址。這樣,通信對端發出的所有IP分組都會被移動節點的家鄉代理通過隧道發送至攻擊者指定的IP地址,而不是移動節點的轉交地址。
同樣,攻擊者可以通過假冒外地代理對移動節點發起拒絕服務攻擊。為了防禦這種移動IP的拒絕服務攻擊,可以對移動節點和家鄉代理之間的註冊消息進行認證。為此,移動IP協議提供了一些認證機制:通過認證擴展的方式提供了移動節點和移動代理之間的註冊消息的認證,即移動一家鄉認證擴展,移動一外地認證擴展,外地一家鄉認證擴展。其中,移動一家鄉認證擴展是必選的,其餘兩個是可選的。
移動IP協議使用的預設認證演算法是HMAC—MD5,採用首碼加尾碼的模式。
- 2.中間人攻擊
中間人攻擊是指攻擊者攔截網路中的分組,經過修改之後再送回到網路中。在移動IP的代理髮現機制中,移動節點可能會遭受中間人攻擊。
在移動IP中,移動代理周期性地發送代理通告消息,移動節點根據收到的代理通告消息來判斷自己的位置,判斷是在家鄉鏈路還是在外地鏈路。代理通告消息是作為ICMP路由器發現消息的移動擴展發送的。其中包含一個序列號,移動節點根據該序列號判斷外地代理是否重啟,也就是說外地代理不再知道該移動節點的存在,需要重新註冊。攻擊者可以利用這種機制,偽造一個代理通告消息,使得收到這個消息的移動節點認為需要重新註冊。一般代理通告消息中的TTL欄位的值為1時,移動節點才接受該消息。所以攻擊者通常與移動節點位於同一鏈路上,但是它也可以在其他鏈路上,通過適當的設置TTL欄位的值來使移動節點收到該消息時,使其中的TTL欄位為1。
代理通告消息的發送方式可以是廣播、多播和單播。由於廣播和多播只能在當前鏈路上發送和接收,因此,當攻擊者位於移動節點所在鏈路以外的其他鏈路上時,這種攻擊是無效的。而當移動節點發送代理請求消息時,由移動代理響應的代理通告是以單播形式發送給移動節點的。這時,如果攻擊者偽造一個單播的代理通告地址給移動節點,就有可能成功。因此,移動節點應該拋棄那些單播的代理通告消息,除非它發送了代理請求消息。
- 3.重放攻擊
重放攻擊是指攻擊者截獲數據,等待一段時間後重新發送,一般表現為對認證系統的攻擊。攻擊者記錄下任何保持不變的認證信息,比如密碼,然後重放以前發送過的合法消息,以此來騙過認證系統。
在移動IP的註冊過程中存在遭受重發攻擊的隱患。一個攻擊者可以將一個有效的註冊請求信息保存起來,然後經過一段時間後再重放這個消息,從而註冊一個偽造的轉交地址。為防止這種重放攻擊,移動節點為每一個連續的註冊消息標識(identification)欄位產生一個唯一值。該值使得家鄉代理可以知道下一個值應該是多少。這樣,攻擊者就無能為力了,因為它保存的註冊請求信息會被家鄉代理判定為已經過時了。
移動IP定義了兩種填寫標識欄位的方法:時間戳(必須的)和nonce(可選的)。在移動節點與家鄉代理之間有效的重放保護的形式是移動安全關聯的一部分。一個移動節點與家鄉代理必須就將採用哪種重放保護方式達成一致。對於標識欄位的解釋取決於重放保護的方法。無論採用哪種方法,標識欄位的最低32位必須從註冊請求消息中原封不動地複製到註冊應答消息中。外地代理使用這些位(和移動節點的本地地址)來比較註冊請求與相應的註冊應答。移動節點必須驗證註冊應答消息的標識欄位的低32位與註冊請求消息中的該欄位是否相同。
- (1)基於時間戳的重放保護
時間戳重放保護的基本原理是:節點A產生一個消息插入當前的日期和時間,收到消息的節點B檢查這個時間戳是否和它自己的日期時間足夠接近。除非在節點之間的安全關聯中詳細說明,將使用預設值7s作為時間差別的限度,而且應該至少大於3s。很顯然,兩個節點必須擁有很好的經過同步的時鐘。與其他信息一樣,時間同步信息也可以根據兩個節點間的安全關聯而採用某種認證機制來防止被篡改。
如果採用了時間戳協議,移動節點必須將標識欄位設置為由網路時間協議(network time protocol,NTP)所指定的一個64位的數值。NTP格式的低32位代表秒的小數部分,這些位不能從一個時間源得到,而應該由一個好的隨機源產生。
需要註意的是,當使用時間戳時,在一個註冊請求消息中所使用的64位標識欄位的值必須大於任何先前的註冊請求信息中的標識欄位的值,因為家鄉代理同時要使用這個欄位作為一個序列號。如果沒有這樣的序列號,很可能會將一個早些時候的註冊請求延遲了的副本送給家鄉代理(在家鄉代理所要求的時鐘同步限制之內),造成次序顛倒,從而錯誤地改變了移動節點當前註冊的轉交地址。
一旦收到了帶有可授權擴展的註冊請求後,家鄉節點必須檢驗標識欄位的合法性。標識欄位內包含的時間戳必須足夠接近家鄉代理的時鐘,並且時間戳必須大於所有先前接受過的目前正在請求的移動節點的時間戳。時間公差和重同步的詳細情況取決於某個特定的移動安全關聯。
如果時間戳是合法的,家鄉代理把整個標識欄位複製到返回給移動節點的註冊應答消息中去。如果時間戳不合法,家鄉代理僅僅把低32位複製到註冊應答消息中,並用高32位提供它自己的時鐘。在後一種情況下,家鄉代理必須通過在註冊回覆中返回Codel33來拒絕註冊。
移動節點在使用註冊應答消息中的標識欄位的高32位進行重同步之前,必須證實在註冊應答消息中標識欄位的低32位與那些被拒絕的註冊請求中的相同。
- (2)基於nonce的重放保護
nonce重放保護的基本原理是:節點A在發給節點B的每一個消息中包含一個新的隨機數,並檢查在節點B發給A的下一個消息中返回的數值是否相同。這兩個消息都使用一個認證碼來防止某個攻擊者對其篡改。同時,節點B可以在所有發送給節點A的消息(由節點A來響應)中包含它自己的nonce,因此它也能證實所收到消息的新鮮性。
家鄉代理在每一個註冊應答中插入一個新的nonce作為標識欄位的高32位。家鄉代理把註冊請求消息中標識欄位的低32位複製到註冊應答消息中標識欄位的低32位中。當移動節點從家鄉代理那裡收到一個經過認證的註冊應答消息時,它把標識欄位的高32位保存下來,作為下一個註冊請求信息的高32位。
移動節點負責在每一個註冊請求中產生標識欄位的低32位。理想情況下,它應該產生自己的隨機數nonce。但是它可以使用其他合適的方法,包括複製家鄉代理髮送的隨機數值。所選擇的標識欄位的高32位和低32位都應該與它們先前的值有所不同。在每次的註冊消息中,家鄉代理使用一個新的高位值而移動節點使用一個新的低位值。外地代理使用低位值(以及移動主機的家鄉地址)來正確匹配註冊應答和未決的請求。如果一個註冊請求消息因為一個非法的nonce而被拒絕,註冊應答消息總是為移動節點提供一個新的nonce用作下一次的註冊。
- 4.會話竊取與被動竊聽
會話竊取攻擊是指攻擊者在一個合法節點進行認證並開始會話後,通過假冒合法節點將會話竊取過去。通常,攻擊者必鬚髮送大量的無用數據來防止合法節點發現會話已被竊取了。
移動IP的註冊過程可能遭到攻擊者的會話竊取攻擊。假設攻擊者與移動節點位於同一鏈路上,他首先等待移動節點向家鄉代理進行註冊。然後攻擊者偷聽到移動節點開始了一個他所感興趣的通信會話,便發送大量無用的數據分組給移動節點,占用移動節點的全部CPU資源。攻擊者發送假冒移動節點發出的消息給移動節點的通信對端,並截獲發往移動節點的數據分組,從而成功地竊取會話。這時,移動節點當前的通信被中斷了,但是並不知道它當前的會話已經被攻擊者竊取過去。
為了防止這種攻擊,要求移動節點和外地代理之間存在鏈路層加密,最好是端到端的加密。在外地鏈路是無線的情況下,數據鏈路層加密尤為重要。在無線鏈路上進行會話竊取要比在有線環境下容易,因為攻擊者不需要物理地連接到鏈路上。進行端到端的加密是更好的選擇。端到端加密是指在通信源端對數據進行加密,在目的端對數據進行解密,而不只是在某一段鏈路上對數據進行加解密。這樣的優點在於,在網路中任何一點數據都是加密的,而不只是在外地鏈路上得到保護。數據的加密與物理介質無關,而且加解密只在通信端點進行,而不是在通信路徑中的某些地方,這樣就防止了不必要的時延。
被動竊聽是指攻擊者竊聽並截取網路中傳輸的數據分組,以竊取數據分組中可能包含的機密和私人信息。防範這種攻擊最好的方法就是對數據進行加密。這和前面對付會話竊取攻擊的方法一樣。
移動IP中的移動安全關聯(mobile security association)是一組用於保護消息的安全策略。兩個移動實體進行安全通信前,必須首先協商一個安全關聯,選擇通信雙方都能支持的加密與認證演算法。移動安全關聯由以下幾部分組成:加密演算法(如DES、3DES、Blowfish、CAST和AES等);消息摘要演算法(如MDS、SHA和Tiger等);認證演算法(如預先分配共用密鑰,數字簽名和共用密鑰等);移動安全關聯的生存期。