摘 要: 移動(dòng)IP路由技術(shù)及其優(yōu)化是移動(dòng)IP發(fā)展過(guò)程中需要重點(diǎn)解決的問(wèn)題,。簡(jiǎn)要討論了移動(dòng)IP路由技術(shù)的發(fā)展歷程,,重點(diǎn)論述了移動(dòng)IPv6的返回路由可達(dá)過(guò)程和綁定" title="綁定">綁定過(guò)程,提出了今后要解決的問(wèn)題,。
關(guān)鍵詞: 移動(dòng)IP IPv6 路由優(yōu)化
移動(dòng)IPv4“三角路由”問(wèn)題的存在,,不僅嚴(yán)重浪費(fèi)了網(wǎng)絡(luò)資源,造成了網(wǎng)絡(luò)通信效率的極度下降,,并使MN與CN的通信受到HA和家鄉(xiāng)鏈路的巨大影響[1],。隨著移動(dòng)IPv6的提出,“三角路由”問(wèn)題得到了解決,,使得路由效率大大提高,。然而該效率的提高是以更多的安全考慮和引入更多的移動(dòng)信息" title="移動(dòng)信息">移動(dòng)信息為代價(jià)的。針對(duì)移動(dòng)IPv6的問(wèn)題,,提出了一種新的思路與方法——OMIPv6,,在移動(dòng)IPv6的基礎(chǔ)上對(duì)路由優(yōu)化做進(jìn)一步的改進(jìn)。
1 移動(dòng)IPv6路由優(yōu)化模式
1.1現(xiàn)有移動(dòng)IPv6路由的不足
IPv6的引入,,使得IP地址短缺現(xiàn)象得到了解決,因而在移動(dòng)IPv6里無(wú)需FA的存在,,通過(guò)引入綁定機(jī)制,,當(dāng)CN在自己的綁定緩存里找到了MN的位置后,便可將發(fā)往MN的數(shù)據(jù)包無(wú)需經(jīng)過(guò)HA而直接到達(dá)MN,。CN和MN通過(guò)二者之間的直接路徑交換數(shù)據(jù)包,,避開(kāi)了HA,極大地節(jié)約了網(wǎng)絡(luò)資源,,并減少了因HA和家鄉(xiāng)鏈路故障而造成的影響[1],,比移動(dòng)IPv4大大前進(jìn)了一步。其路由優(yōu)化如圖1所示,。
然而,,移動(dòng)IPv6的路由優(yōu)化模式需要通信雙方共同計(jì)算一個(gè)共享密鑰,通過(guò)該共享密鑰對(duì)BU(Binding Update)和BA(Binding Acknowledge)進(jìn)行認(rèn)證,。出于安全考慮,,該共享密鑰有一個(gè)生存期。在生存期快到時(shí),,通信雙方需要重新計(jì)算一個(gè)新的Kbm(binding management Key),。對(duì)MN而言,每次計(jì)算一個(gè)新的Kbm時(shí),,都需要與CN交換4個(gè)移動(dòng)信息(CoTI&CoT,,HoTI&HoT),,以便RRP(Return Routability Procedure)的正常運(yùn)行。4個(gè)信息如果任意丟失一個(gè),,MN都需要與CN交換至少兩個(gè)以上的額外信息,。這么多的移動(dòng)信息的引入,給移動(dòng)IPv6 的通信帶來(lái)了極大的負(fù)擔(dān),。此外,,從冗余度方面考慮,在移動(dòng)IPv6的路由優(yōu)化模式下,,綁定更新認(rèn)證過(guò)程使得MN與CN,、MN與HA通信時(shí)分別需要1.5個(gè)和1個(gè)往返時(shí)延。這對(duì)于那些對(duì)時(shí)間敏感的應(yīng)用是不可行的,。最后,,從安全的角度看,由于每次MN執(zhí)行RR測(cè)試時(shí),,MN與CN通信時(shí)有兩個(gè)信息是以明文方式進(jìn)行傳輸,,CN與HA通信時(shí)也有兩個(gè)信息是以明文方式傳送,這給攻擊者進(jìn)行攻擊提供了可乘之機(jī),。綜上所述,,移動(dòng)IPv6的路由優(yōu)化模式在移動(dòng)信息的數(shù)量、冗余度以及安全方面都付出了高昂的代價(jià),。
1.2 返回路由可達(dá)過(guò)程(return Routability Procedure)
移動(dòng)IPv6定義了兩種不同的模式解決移動(dòng)問(wèn)題:雙向隧道模式與路由優(yōu)化模式,。前者因?yàn)槠渥陨淼木窒扌?如根本沒(méi)有進(jìn)行優(yōu)化)限制了應(yīng)用。而后者因?yàn)閷?duì)路由進(jìn)行了優(yōu)化而得到了極大的發(fā)展,。簡(jiǎn)單來(lái)說(shuō),,路由優(yōu)化模式通過(guò)引入一個(gè)新的移動(dòng)報(bào)頭和依靠MN移動(dòng)時(shí)交換的移動(dòng)信令來(lái)實(shí)現(xiàn)。
在路由優(yōu)化模式下,,移動(dòng)IPv6引入了一個(gè)返回路由可達(dá)過(guò)程(RRP),,通過(guò)它保證MN與CN通信時(shí)的安全,其原理是通過(guò)對(duì)MN與CN之間交換的信令進(jìn)行加密來(lái)對(duì)它們之間的登記進(jìn)行認(rèn)證,。通過(guò)RRP,,CN知道是否能夠使用MN通告的轉(zhuǎn)交地址和家鄉(xiāng)地址訪問(wèn)MN;如果RRP測(cè)試失敗,,CN將既不能接收MN的綁定更新,,也不能直接發(fā)送分組到MN的轉(zhuǎn)交地址。其測(cè)試方法是通過(guò)兩個(gè)消息對(duì)(HoTI和HoT,,CoTI和CoT)分別測(cè)試目的地址是家鄉(xiāng)地址和轉(zhuǎn)交地址的分組是否能夠到達(dá)MN,,并最后決定是否可以據(jù)此接收來(lái)自MN的綁定。
簡(jiǎn)單說(shuō)來(lái),,MN發(fā)送綁定更新BU來(lái)更新CN的綁定緩存表項(xiàng)(Binding Cache Entry),,總共需6條信息,。MN與CN在二者直接相連的路徑上交換CoTI&CoT,通過(guò)MN的HA交換HoTI&HoT,,在這4條信息成功交換后,,MN再發(fā)送BU至CN,CN發(fā)送BA給MN對(duì)BU進(jìn)行確認(rèn),。前4條信息就構(gòu)成了RRP,。具體過(guò)程如圖2所示。
從消息發(fā)出時(shí)序看,,HoTI和CoTI消息同時(shí)發(fā)送,。作為響應(yīng)的HoT和CoT也幾乎同時(shí)返回。HoTI,、CoTI,、HoT以及CoT消息的源地址、目的地址,、傳送途徑,、攜帶參數(shù)如表1所示。
HoTI用于把MN的家鄉(xiāng)地址和Cookie通知CN,,請(qǐng)求CN提供家鄉(xiāng)密鑰生成令牌" title="令牌">令牌,。而CoTI主要是把MN的轉(zhuǎn)交地址和Cookie通知CN,請(qǐng)求CN提供轉(zhuǎn)交密鑰生成令牌,。家鄉(xiāng)密鑰生成令牌與轉(zhuǎn)交密鑰生成令牌的方法相似,,其過(guò)程如下:
home keygen token:=
First(64,HMAC_SHA1(Kcn,,(home address | nonce | 0)))
CN結(jié)合自己的節(jié)點(diǎn)密鑰,也就是Kcn,,以及從MN接收到的發(fā)送給家鄉(xiāng)地址,,再結(jié)合產(chǎn)生的臨時(shí)隨機(jī)數(shù)" title="隨機(jī)數(shù)">隨機(jī)數(shù)Nonce,運(yùn)用HMAC_SHA1算法產(chǎn)生一個(gè)家鄉(xiāng)密鑰生成令牌[1],。HMAC_SHA1是流行的用于創(chuàng)建數(shù)字簽名的單向散列算法[2],。通過(guò)First函數(shù),截取由HMAC_SHA1散列函數(shù)產(chǎn)生的 160位的散列值的前64位,。轉(zhuǎn)交密鑰生成令牌的產(chǎn)生過(guò)程也與此大抵相同,,只是將家鄉(xiāng)地址變成了轉(zhuǎn)交地址,如下所示:
care-of keygen token :=
First (64,,HMAC_SHA1(Kcn,,(care-of address | nonce | 1)))
用該方法產(chǎn)生的家鄉(xiāng)/轉(zhuǎn)交密鑰生成令牌用于驗(yàn)證隨后接收到的由MN發(fā)來(lái)的BU也經(jīng)過(guò)了CN的授權(quán),只要節(jié)點(diǎn)密鑰和Nonce是有效的,,這樣產(chǎn)生的密鑰生成令牌也是有效的,。
HoT則是CN對(duì)HoTI消息的響應(yīng),。HoT由于以MN的家鄉(xiāng)地址為目的地址,需要通過(guò)HA的中轉(zhuǎn)才能到達(dá)MN,。此外,,來(lái)自MN的家鄉(xiāng)測(cè)試初始Cookie也在HoT消息中返還,以確保這些消息通過(guò)了家鄉(xiāng)代理和CN的可達(dá)路徑,。發(fā)往MN的家鄉(xiāng)臨時(shí)隨機(jī)數(shù)索引,,也使CN隨后可以迅速有效地找到它創(chuàng)建家鄉(xiāng)Cookie所使用的臨時(shí)隨機(jī)數(shù),因而是必不可少的,。
CoT消息是CN對(duì)CoTI消息的響應(yīng),,CoT消息被直接發(fā)送到MN的轉(zhuǎn)交地址,并且在其中包括轉(zhuǎn)交測(cè)試初始Cookie,,以便MN確信它們來(lái)自CN的可達(dá)路徑,。CoT消息中提供了轉(zhuǎn)交臨時(shí)隨機(jī)數(shù)索引, 主要是用于標(biāo)示產(chǎn)生轉(zhuǎn)交Cookie的臨時(shí)隨機(jī)數(shù),。轉(zhuǎn)交和家鄉(xiāng)臨時(shí)隨機(jī)數(shù)索引在CoT和HoT消息中通常是相同的,。
當(dāng)MN接收到COT和HOT消息后,RRP過(guò)程就全部結(jié)束了,。
1.3 綁定過(guò)程
·RRP與綁定過(guò)程
只有通過(guò)返回路由可達(dá)過(guò)程測(cè)試,,CN才能接收來(lái)自MN的綁定更新。所以,,RRP對(duì)于MN與CN之間的綁定更新和綁定確認(rèn)具有非常重要的作用,。在RRP過(guò)程結(jié)束之后,MN確信CN既可以通過(guò)家鄉(xiāng)地址,,也可以通過(guò)轉(zhuǎn)交地址訪問(wèn)自己,,并獲得向CN發(fā)送BU所必須的數(shù)據(jù)。MN通過(guò)對(duì)家鄉(xiāng)密鑰生成令牌,、轉(zhuǎn)交密鑰生成令牌進(jìn)行SHA1散列運(yùn)算可以得到一個(gè)綁定管理密鑰Kbm(binding management Key),,其過(guò)程如下:
Kbm=SHA1(home keygen token|care-of keygen token)
通過(guò)該Kbm,MN可以向CN發(fā)送一個(gè)BU,,進(jìn)行CN上的綁定,。
·MN發(fā)送綁定更新信息
攜帶綁定更新消息的分組,除了使用MN的轉(zhuǎn)交地址作為源地址和使用CN作為目的地址外,,還包括家鄉(xiāng)地址,、MAC(message authentication codes)、家鄉(xiāng)和轉(zhuǎn)交臨時(shí)隨機(jī)數(shù)索引,、順序號(hào)等參數(shù),。MN通過(guò)創(chuàng)建Kbm對(duì)消息的發(fā)送進(jìn)行授權(quán),通過(guò)臨時(shí)隨機(jī)數(shù)索引選項(xiàng)通知CN使用哪個(gè)家鄉(xiāng)和轉(zhuǎn)交密鑰生成令牌進(jìn)行Kbm的計(jì)算。計(jì)算MAC時(shí)使用的參數(shù)包括轉(zhuǎn)交地址,、CN地址以及移動(dòng)報(bào)頭數(shù)據(jù),,計(jì)算結(jié)果將用于產(chǎn)生認(rèn)證者字段。順序號(hào)字段用于匹配隨后接收到的綁定確認(rèn),。CN一旦驗(yàn)證了MAC的結(jié)果,,將會(huì)為該綁定創(chuàng)建一個(gè)綁定緩存表項(xiàng)。
·CN響應(yīng)綁定確認(rèn)信息
對(duì)于綁定確認(rèn)信息,,攜帶的參數(shù)主要是順序號(hào)和一個(gè)MAC編碼,。順序號(hào)字段來(lái)自相應(yīng)的綁定更新。MAC編碼的計(jì)算根據(jù)是轉(zhuǎn)交地址,、CN地址以及綁定確認(rèn)消息的部分內(nèi)容,,與綁定更新消息中MAC編碼的計(jì)算類似。
因?yàn)橐苿?dòng)節(jié)點(diǎn)在不斷移動(dòng),,所以轉(zhuǎn)交地址也在不斷變化,,也就造成了轉(zhuǎn)交密鑰生成令牌的變化,最終使得Kbm不斷變化,。對(duì)于Kbm的更新可以與Nonce一同進(jìn)行,,這樣一個(gè)Nonce索引可以同時(shí)標(biāo)示這兩個(gè)值。因此,,老的Kbm也應(yīng)該與老的Nonce一同保留,。
在發(fā)送BU之前,MN必須等待家鄉(xiāng)和轉(zhuǎn)交密鑰生成令牌生成Kbm,。然而,,由于資源的限制、綁定的快速刪除及節(jié)點(diǎn)的重新啟動(dòng),,當(dāng)CN使用這些密鑰生成令牌處理BU時(shí),,密鑰生成令牌不能保證仍然是“新鮮”而且可以接受的。當(dāng)它們變得太舊時(shí),,CN將在BU中使用一個(gè)錯(cuò)誤的編碼通知MN,,使它重新嘗試RRP。移動(dòng)IPv6協(xié)議規(guī)定了臨時(shí)隨機(jī)數(shù)有一個(gè)最大的生存期(MAX_TOKEN_LIFETIME),。在該生存期內(nèi),臨時(shí)隨機(jī)數(shù)都是可用的,,密鑰生成令牌在該段時(shí)間內(nèi)也被認(rèn)為是可用的,,所以,MN可以把它用于多次的RRP,。一個(gè)典型的例子就是節(jié)點(diǎn)快速移動(dòng)時(shí),,在新的位置可以重復(fù)使用最近來(lái)自于CN的家鄉(xiāng)密鑰令牌,并且僅僅獲得一個(gè)轉(zhuǎn)交密鑰生成令牌以表示它在新位置的可達(dá)性。雖然由于轉(zhuǎn)交和家鄉(xiāng)返回路徑可達(dá)測(cè)試本質(zhì)上是可行的,,但通過(guò)HA中轉(zhuǎn)的家鄉(xiāng)測(cè)試通常會(huì)花費(fèi)更長(zhǎng)的時(shí)間,。盡管如此,這種優(yōu)化在很多情況下也是有用的,。對(duì)于有多個(gè)家鄉(xiāng)地址的MN,,也可以為這些地址使用相同的轉(zhuǎn)交密鑰生成令牌。
通過(guò)上述情況分析,,RRP不僅能夠防范有權(quán)訪問(wèn)互聯(lián)網(wǎng)上某一特定路徑的潛在攻擊者,,還能有效地防止重防攻擊[6],因而給MN和CN的通信提供了安全保證,。
盡管移動(dòng)IPv6的RRP機(jī)制能夠使MN與CN的通信基本上安全可靠,。然而,RRP機(jī)制同樣給二者之間的通信帶來(lái)了較大的負(fù)荷,,使得移動(dòng)信息大大增加,。要在移動(dòng)IPv6路由優(yōu)化的基礎(chǔ)上再進(jìn)行優(yōu)化,必須在保證安全的前提下盡可能減少移動(dòng)信息量,。在此基礎(chǔ)上,,人們又提出了OMIPv6的概念。OMIPv6與移動(dòng)IPv6路由優(yōu)化模式相比,,大大減少了移動(dòng)信令并且使之更不易受外部的攻擊,,極大地提高了效率[3]。
2 OMIPv6優(yōu)點(diǎn)及原理
2.1 OMIPv6優(yōu)點(diǎn)
OMIPv6與移動(dòng)IPv6的路由優(yōu)化模式相比,,至少具有以下優(yōu)點(diǎn)[3]:
·大大減少了惡意節(jié)點(diǎn)實(shí)施欺騙的可能性,。通過(guò)將HoT和CoT靈活地結(jié)合在一起,將易受攻擊的漏洞減少到最小,。
·不需要對(duì)密鑰的分發(fā)專門(mén)進(jìn)行管理,,因而減少了可擴(kuò)展性問(wèn)題。
·與傳統(tǒng)移動(dòng)IPv6相比,,OMIPv6使用一個(gè)更長(zhǎng)的共享密鑰,,破解更困難。
·OMIPv6大大減少了移動(dòng)信息,,使得HoTI/CoTI,、HoT/CoT信息的交換較少依賴于網(wǎng)絡(luò)切換過(guò)程。
2.2 OMIPv6原理
從前面的分析可知,,雖然移動(dòng)IPv6的路由優(yōu)化解決了移動(dòng)IPv4的“三角路由”問(wèn)題,,但在移動(dòng)信息的數(shù)量、冗余度以及安全方面都付出了高昂的代價(jià),。OMIPv6[5]正是在這樣的前提下提出來(lái)的,。它使MN與CN之間的綁定更新和綁定確認(rèn)信息的交換更安全、更可靠。同時(shí)大大減少了需要交換的移動(dòng)信息,,并在一定程度上減少了因切換帶來(lái)的冗余,。
首先,OMIPv6引入了一個(gè)更長(zhǎng)的共享安全密鑰,。該共享安全密鑰來(lái)源于Diffie-Hellman[4]算法交換,,當(dāng)MN成功地與CN的地址進(jìn)行家鄉(xiāng)和轉(zhuǎn)交地址測(cè)試后,就會(huì)引發(fā)DH交換,。在MH與CN之間交換的DH信息都會(huì)被最新的RR(Return Routability)測(cè)試所產(chǎn)生的Kbm鑒定,。DH交換允許通信雙方都建立一條雙向的安全關(guān)聯(lián)" title="安全關(guān)聯(lián)">安全關(guān)聯(lián),該安全關(guān)聯(lián)獨(dú)立于通常的公共密鑰體系,,而移動(dòng)IPv6的路由優(yōu)化模式并沒(méi)有建立安全關(guān)聯(lián),。
其次,DH信息交換的路徑必須與RR測(cè)試信息交換路徑相同,。所以,,MN首先使用Kbm對(duì)第一個(gè)DH信息進(jìn)行標(biāo)記,然后發(fā)送給CN,。MN通過(guò)使用家鄉(xiāng)地址選項(xiàng)將家鄉(xiāng)地址隨同DH信息一同發(fā)出,。CN使用同樣的Kbm對(duì)第一個(gè)DH信息進(jìn)行標(biāo)記并復(fù)制一份。CN發(fā)出的第二個(gè)DH信息首先通過(guò)直接路徑發(fā)送,,同時(shí),,CN將第二個(gè)DH信息復(fù)制一份,將該信息經(jīng)過(guò)MN的HA發(fā)送給MN,。兩條信息到達(dá)MN后進(jìn)行比較,,如果相同,MN發(fā)送第三個(gè)DH信息給CN,,CN再在相同的路徑上發(fā)送第四個(gè)DH信息給MN,。該方法能有效防止中間人(MiTM)的攻擊。DH處理使通信雙方計(jì)算一個(gè)稱之為Kabm(authenticated binding anagement key)的長(zhǎng)的共享安全秘鑰,。該Kabm的作用是對(duì)MN與CN之間的綁定更新/綁定確認(rèn)信息進(jìn)行認(rèn)證,。DH交換能夠在通信雙方會(huì)話期間隨時(shí)發(fā)起,例如,,在第一次RR測(cè)試后立刻發(fā)起DH交換,。這樣,極大地減少了通信雙方需要交換的移動(dòng)信息,,大大提高了通信效率,。
目前,OMIPv6仍然有許多需要改進(jìn)的地方,,如對(duì)長(zhǎng)的安全秘鑰的驗(yàn)證要花費(fèi)更多的時(shí)間(與傳統(tǒng)的移動(dòng)IPv6路由優(yōu)化相比),,盡管對(duì)網(wǎng)絡(luò)切換的依賴沒(méi)有傳統(tǒng)的移動(dòng)IPv6的路由優(yōu)化強(qiáng),但仍然有所依賴,。
參考文獻(xiàn)
1 D. Johnson, C. Perkins,, J. Arkko. Mobility Support in IPv6 [J].RFC3775,2004,;(6)
2 D. Eastlake,, P. Jones.US Secure Hash Algorithm 1 (SHA1).RFC 3174,2001
3 Wassim Haddad, Francis Dupont.Optimizing Mobile IPv6 (OMIPv6). work in progress,,2004,;(2)
4 E.Rescorla.Diffie-Hellman Key Agreement Method.RFC2631,1999,;(6)
5 W. Haddad, L. Madour, J. Arkko, F. Dupont. Applying Cryptographically Generated Addresses to Optimize MIPv6 (CGA-OMIPv6),, 2005;(3)
6 Bruce Schneier著, 吳世忠譯.應(yīng)用密碼學(xué)[M].北京:機(jī)械工業(yè)出版社,,2000