摘 要:主機標志協(xié)議(Host Identity Protocol,HIP)在網(wǎng)絡(luò)層和傳輸層間引入了新的協(xié)議層和基于不對稱加密的命名空間,打破了身份標志和拓撲位置的綁定。基于對HIP的研究,提出了不同情況下移動的實現(xiàn)辦法,與移動IPv6協(xié)議(MIPv6)進行了比較,分析了移動與多宿的關(guān)系。
關(guān)鍵詞:主機標志;主機標志協(xié)議;移動;移動IPv6;多宿
中圖法分類號:TP393 文獻標識碼:A 文章編號:1001-3695(2006)10-0238-03
Mobile and Multihoming Solution Based on Host Identity Protocol
YU Shicai1,LI Changxing1,SONG Jian2,SUN Wei2
(1.College of Comp. Commu.;2.College of Modern Networking Edu., Lanzhou University of Technology, Lanzhou Gansu 730050, China)
Abstract:The Host Identity Protocol (HIP) introduces a new namespace, asymmetric cryptographic in nature, and protocol layer between internetworking layer and transport layer, breaking the fixed binding between identities and locations. Based on the study of HIP in this paper, the solutions to mobility in different cases are presented and compared with MIPv6 and the relationship between mobility and multihoming is analyzed.
Key words:Host Identity;Host Identity Protocol;Mobility;Mobile IPv6;Multihoming
目前,域名和IP地址是因特網(wǎng)使用的兩種全局命名空間,它們處于不同的網(wǎng)絡(luò)層次,域名是IP地址的另一種表示方式,為方便人們使用而設(shè)計。IP地址有兩種作用,從網(wǎng)絡(luò)的角度來看,它標記了主機接入網(wǎng)絡(luò)的拓撲位置,用來在源節(jié)點與目的節(jié)點間路由數(shù)據(jù)包,只要主機的接入位置發(fā)生改變,其接口地址必定改變;從應(yīng)用程序的角度來看,IP地址用來標志一臺主機,起到主機標識符的作用,不論主機接入位置如何變動,應(yīng)用程序均不需要了解,其地址應(yīng)該保持不變。在因特網(wǎng)發(fā)展之初,幾乎所有主機均是單宿、非移動的,它們可以用拓撲位置標志自己,IP地址同時提供這兩種功能是一種簡潔而有效的做法。然而,隨著Internet的普及和移動通信技術(shù)的發(fā)展,對移動計算、多宿主機(本文不考慮網(wǎng)絡(luò)的移動與多宿)的需求日益增多,一臺主機經(jīng)常改變其接入位置或同時接入多個不同的網(wǎng)絡(luò)(如WLAN和GPRS),作為拓撲定位的IP地址處在不斷的變動中,主機的定位和標志不再具有一致性,IP地址將這雙重功能綁定在一起,使移動與多宿的實現(xiàn)變得困難,限制了Internet體系的靈活性,因此已不適合當(dāng)今網(wǎng)絡(luò)的發(fā)展需求。
在IETF中,人們引入了網(wǎng)絡(luò)層移動來解決主機的移動問題,目前的研究熱點是基于IPv6的移動IP——MIPv6(由于IPv6取代IPv4已是必然,下文所提的移動IP均是指MIPv6,MIPv6與MIPv4在體系本質(zhì)上是相同的),制定了相關(guān)RFC標準[1,2]。在移動IP中,為移動節(jié)點MN引入了兩個不同的地址,即家鄉(xiāng)地址和轉(zhuǎn)交地址。前者是靜態(tài)的,不會發(fā)生改變,因此用來標志主機,建立TCP,UDP連接;后者隨節(jié)點接入網(wǎng)絡(luò)的不同而不同,相當(dāng)于MN的定位符,起到了路由數(shù)據(jù)包的作用。另外,MIPv6又引入了一個家鄉(xiāng)代理(Home Agent),當(dāng)移動節(jié)點不在家鄉(xiāng)網(wǎng)絡(luò)時,由家鄉(xiāng)代理轉(zhuǎn)發(fā)去往家鄉(xiāng)地址的數(shù)據(jù)包到轉(zhuǎn)交地址。MN移動到外網(wǎng)時,必須向其家鄉(xiāng)代理發(fā)送綁定更新報文注冊新轉(zhuǎn)交地址,也可向其通信節(jié)點CN注冊新轉(zhuǎn)交地址。在注冊過程中,必須保證安全,以防止攻擊者冒充MN向家鄉(xiāng)代理和CN發(fā)重綁定更新報文從而將發(fā)往MN的數(shù)據(jù)包重定向到攻擊者指定的地點。然而,實踐證明在當(dāng)前標準下安全的移動是很難實現(xiàn)的[3]。MIPv6用家鄉(xiāng)地址和轉(zhuǎn)交地址分別標志和定位主機,這在一定程度上分離了IP地址的雙重功能,但并不是一種徹底的解決辦法。主機標志協(xié)議HIP通過引入一個新的命名空間(Host Identity Namespace),徹底分離IP地址的雙重功能,是移動、多宿問題很有希望的安全解決方案。
1 HIP體系
1.1 HIP命名空間
HIP引入了新的命名空間來標志主機,使IP地址只具有主機定位、路由數(shù)據(jù)的功能。在HIP中,主機標志(Host Identifier,HI)用來對主機身份(Host Identity)進行標志。主機身份通常與IP協(xié)議棧相關(guān)聯(lián),任何在統(tǒng)計上能做到全局唯一的方法均能用來標志主機。但為了認證HIP通信雙方,防止中間人攻擊,一般采用公鑰加密算法,用主機自己生成的一對公鑰、私鑰來進行自我標志。一臺主機可以有多個公鑰/私鑰對,公鑰作為主機的標志HI對外發(fā)布,私鑰由主機保存,對外保密。
由于主機可以使用不同的公鑰加密算法,密鑰長度也各不相同,因此在HIP協(xié)議分組、網(wǎng)絡(luò)套接字中并不直接使用HI作為主機的標識符,而是使用主機標識符(Host Identity Tag,HIT),它是對HI進行單向散列(Hash)構(gòu)成的128bits位串,與IPv6地址等長,這樣有利于IPv6~IPv6+HIP的過渡。為了在現(xiàn)行IPv4協(xié)議、API上應(yīng)用HIP,定義了32位長的LSI(Local Scope Identity)——HI的另一種形式。具體生成辦法見參考文獻[4]。
1.2 主機標志層
HIP體系在當(dāng)前網(wǎng)絡(luò)的傳輸層與網(wǎng)絡(luò)層之間插入了新的協(xié)議分層——主機標志層(Host Identity Layer)。在傳輸層和應(yīng)用層,所有的IP地址均被HIT(LSI)代替,IP地址不再用來標志通信雙方,而只在網(wǎng)絡(luò)層起到與路由相關(guān)的一些作用。圖1顯示了現(xiàn)有體系和新體系的不同。
在當(dāng)前的網(wǎng)絡(luò)體系中, 不同主機上的應(yīng)用程序使用網(wǎng)絡(luò)套接字通信,套接字由IP地址、端口號來標記。這種體系實際上將應(yīng)用程序和主機的拓撲位置綁定在了一起,使應(yīng)用程序的移動、多宿實現(xiàn)困難。在新的網(wǎng)絡(luò)體系中,網(wǎng)絡(luò)套接字不與IP地址綁定,而與拓撲位置獨立的主機標志符HIT綁定,然后再在主機標志層將HIT轉(zhuǎn)換成相應(yīng)的IP地址。HIT和IP地址的這種綁定是動態(tài)的,可以是一對一的關(guān)系,也可以是一對多的關(guān)系。一個通信過程的建立,需要依靠域名服務(wù)器DNS和集中服務(wù)器(Rendezvous Server)的幫助。應(yīng)用程序首先解析域名得到通信對端的HIT和集中服務(wù)器的IP地址,發(fā)往通信對端的第一個數(shù)據(jù)分組以集中服務(wù)器的IP地址為目的地址,先到達集中服務(wù)器,再由集中服務(wù)器轉(zhuǎn)發(fā)到通信對端,通信對端的應(yīng)答分組則可直接送到通信發(fā)起端,然后雙方的數(shù)據(jù)分組就不再經(jīng)過集中服務(wù)器。為了能相互通信,每臺主機均必須及時更新它在集中服務(wù)器上的位置信息[5,6]。
對從傳輸層接收到的數(shù)據(jù)報文,主機層將HIT用IP地址替換后發(fā)到下面的網(wǎng)絡(luò)層;對從網(wǎng)絡(luò)層接收到的數(shù)據(jù)報文,主機層將IP地址替換成HIT后發(fā)給上面的傳輸層。主機在網(wǎng)絡(luò)層及其以下的變動如動態(tài)重新獲得地址、改變接入位置甚至改變IP協(xié)議對應(yīng)用程序都是不可見的,主機的移動、多宿與應(yīng)用程序無關(guān),這樣整個體系從本質(zhì)上適應(yīng)了移動和多宿的需求,同時主機層的引入,削弱了網(wǎng)絡(luò)層和傳輸層的依賴關(guān)系,也就增加了網(wǎng)絡(luò)的靈活性,有利于從IPv4 到IPv6遷移。
1.3 HIP基本交換
任何支持HIP協(xié)議的主機在通信前必須執(zhí)行HIP基本交換協(xié)議,它是由I1,R1,I2,R2消息構(gòu)成的四次握手協(xié)議。在協(xié)議中,利用DiffieHellman密鑰交換過程,協(xié)商通信雙方共享的密鑰參數(shù),同時利用HI的公鑰加密特性,對DiffieHellman密鑰交換進行簽名認證。在四次握手協(xié)議完成后,通信雙方建立了一對IPSec安全關(guān)聯(lián)SA,以后雙方的通信以IPSec ESP傳輸模式進行。HIP的四次基本交換過程如圖2所示。
(1)通信發(fā)起方Initiator發(fā)送I1分組到接收方Responder請求開始HIP會話,分組中接收方的HIT在未知時可為空(實際上I1要由集中服務(wù)器轉(zhuǎn)發(fā)到接收方,圖中省略了該過程)。
(2)接收方收到I1后,以R1 分組回應(yīng),開始DiffieHellman密鑰交換過程。同時,R1還攜帶發(fā)送方必須解答的一個難題(Puzzle),其解答難度隨雙方的信任度而定,這可以有效地防止DoS攻擊。接收方所支持的ESP加密算法及模式也包含在R1中。
(3)發(fā)起方解答Puzzle,以I2 數(shù)據(jù)包回應(yīng)解答結(jié)果(Solution), 同時包含DiffieHellman密鑰交換參數(shù)、為接收方選定ESP加密算法和SPI、發(fā)起方所支持的ESP加密算法及模式等。
(4)接收方發(fā)送R2數(shù)據(jù)包,為發(fā)送方選定的ESP加密算法和SPI等。
(5)隨后,雙方的通信以ESP傳輸模式進行。
2 HIP協(xié)議下的移動與多宿
在HIP體系中,移動與多宿問題實際就是HIT和IP地址的一對一和一對多的動態(tài)綁定關(guān)系。由于主機標志層的引入,隔離了傳輸層與網(wǎng)絡(luò)層,應(yīng)用程序只看到一對不變的源、目的HIT,移動與多宿對應(yīng)用程序是透明的。
2.1 無會話連接的移動
在HIP中,沒有家鄉(xiāng)網(wǎng)絡(luò)和外地網(wǎng)絡(luò)之分,HIP移動節(jié)點(HMN)在沒有與HIP通信節(jié)點(HCN)存在會話連接時移動到另一個網(wǎng)絡(luò)(得到一個新的IP地址),經(jīng)過同樣的HI(HIT),IP地址更新和解析后雙方就可以建立會話連接,并不需要特別的協(xié)議和服務(wù)支持,與移動前沒有區(qū)別。按照對主機移動的定義,這無會話連接的移動不能稱為移動,但在MIPv6中,這種移動卻必須靠家鄉(xiāng)代理的支持才能實現(xiàn)雙方通信,已經(jīng)使用了移動IP技術(shù),而HIP對此則
并不需要引入額外的機制。
2.2 保持會話連接的移動
在HIP中,安全關(guān)聯(lián)SA只與通信雙方的HIT相關(guān),不再與IP地址綁定,因此主機可以接收來自任何IP地址的用此安全關(guān)聯(lián)SA保護的數(shù)據(jù)包。這樣,HMN就可以在改變接入拓撲位置后在新地址上繼續(xù)發(fā)送數(shù)據(jù)分組給HCN完成新的HIP基本交換,然后通知HCN自己的地址信息,繼續(xù)以前的會話連接。具體過程如圖3所示。
HMN在獲得新地址后,向HCN發(fā)送UPDATE更新消息,消息中包含一個LOCATOR結(jié)構(gòu)[7],用來通知HCN自己的新地址、與新地址相關(guān)的SPI、存活期以及新地址是否為首選地址等;HCN收到更新消息后,用ECHO_REQUEST對新地址進行可達性檢測,防止攻擊者的虛假更新;HMN以ECHO_RESPONSE應(yīng)答,表明此地址可達,隨后雙方的會話在新首選地址上繼續(xù)。在本過程中,沒有進行加密參數(shù)、安全關(guān)聯(lián)的更新,這些更新是可選的,可由HMN,HCN分別發(fā)起[7]。
2.3 IPv4,IPv6網(wǎng)間移動
IPv4到IPv6的過渡注定是一個漫長的過程,主機在不同IP協(xié)議的網(wǎng)絡(luò)間移動也是必須考慮的,HIP協(xié)議對此提供了很好的支持。若HMN,HCN均是雙棧主機,HCN所在網(wǎng)絡(luò)同時支持IPv6,IPv4協(xié)議,這時HCN實際就是一臺雙宿主機。不論HMN移動到什么IP協(xié)議的網(wǎng)絡(luò),它都可以繼續(xù)給HCN發(fā)送數(shù)據(jù)分組。以HMN從一個純IPv6網(wǎng)絡(luò)移動到純IPv4網(wǎng)絡(luò)為例,HMN在檢測到自己獲得一個IPv4 地址后,以HCN的IPv4地址為目的地址,完成HIP基本交換后,發(fā)送地址更新消息,通知HCN以新的IPv4地址為首選地址。HCN收到更新后,對HMN的IPv4地址進行可達性檢測,將HMN的HIT和IPv6地址的綁定更新為與IPv4地址的綁定,HMN移動前由IPv6 協(xié)議承載的會話連接轉(zhuǎn)到由IPv4協(xié)議承載,連接繼續(xù)保持。MIPv6中,MN,CN間的連接均以IPv6數(shù)據(jù)包的形式進行,只是根據(jù)綁定緩存對數(shù)據(jù)包的目的地址、目的地址選項、路由頭選項作相應(yīng)修改,實現(xiàn)數(shù)據(jù)包的正確轉(zhuǎn)發(fā)。要實現(xiàn)上述這種移動,由于MN所在網(wǎng)絡(luò)只支持IPv4,雙方的連接只能以IPv6inIPv4隧道方式進行,分組報頭開銷大、效率較低、實現(xiàn)復(fù)雜。
2.4 HIP下的移動與MIPv6比較
HIP和MIPv6都可以解決移動計算問題,相比之下,MIPv6可以看作IPv6協(xié)議的一個補丁,而HIP則針對當(dāng)前網(wǎng)絡(luò)體系支持移動、多宿的缺陷而提出,兩者有很多不同:
(1)MIPv6存在家鄉(xiāng)網(wǎng)絡(luò)和外部網(wǎng)絡(luò)之分,即便使用路由優(yōu)化,MN與CN之間的通信在開始時仍要通過家鄉(xiāng)代理來完成;HIP則不區(qū)分家鄉(xiāng)網(wǎng)絡(luò)和外部網(wǎng)絡(luò),移動節(jié)點地址的獲得由DNS、集中服務(wù)器來實現(xiàn)。
(2)在MIPv6中,MN,CN的初始通信要由家鄉(xiāng)代理使用隧道技術(shù)來實現(xiàn)。在MN,CN不存在地址綁定時,MN使用反向隧道技術(shù)發(fā)送分組,再考慮到目的地址選項、路由包頭選項等因素,雙方通信數(shù)據(jù)流中的報頭開銷很大;而HIP則不存在這些開銷,通信效率較高,有利于節(jié)約無線鏈路有限的帶寬資源。
(3)MIPv6很容易應(yīng)用到網(wǎng)絡(luò)移動中——路由器及其所接子網(wǎng)的移動;而HIP只專注于單個主機或終端的移動。
(4)HIP集成了公鑰加密、DeffieHellman密鑰交換協(xié)議、IPSec的ESP傳輸模式,協(xié)議的設(shè)計保證了地址更新的安全。而MIPv6中,IPSec并不屬于協(xié)議的一部分,綁定更新也需要其他機制來保證安全。相比之下,MIPv6的安全保證是外掛式的,HIP是內(nèi)部集成式的,安全性更高。
(5)由于沒有合適的機制保證MN,CN間地址綁定的安全性,MIPv6雖然支持路由優(yōu)化,但實際很難實現(xiàn),存在大量的三角路由問題,而HIP不存在此問題。
(6)HIP對兩種IP協(xié)議均支持,對網(wǎng)絡(luò)基礎(chǔ)設(shè)施要求很少,部署難度相對較小,從IP到IP+HIP升級簡單。
2.5 主機多宿與移動的關(guān)系
主機多宿是指一臺主機具有多個網(wǎng)絡(luò)接口,同時位于不同的拓撲位置。在HIP中,多宿主機向通信對端發(fā)送一條UPDATE消息,同時開始DeffieHellman密鑰交換過程。消息中的LOCATOR結(jié)構(gòu)指示了每個接口IP地址及其主機首選地址,然后通信對端用UPDATE消息檢測每個接口的可達性并完成DeffieHellman協(xié)商過程,為多宿主機的每個接口建立不同的安全關(guān)聯(lián),然后使用多宿主機的首選地址與之通信。可見,多宿與移動在HIP下是很相似的,只是告知通信對端本地主機地址個數(shù)的不同。因此,移動可以看成是多宿的一個特例,多宿是同時擁有多個網(wǎng)絡(luò)接口;而移動是先后擁有多個網(wǎng)絡(luò)接口,移動前的接口不再有效,可看成是一個不能作為首選接口的虛接口。 可見,移動與多宿實質(zhì)上都是在為HIT選定網(wǎng)絡(luò)接口進行IP地址綁定的問題。
3 結(jié)束語
HIP協(xié)議從全局的角度審視當(dāng)前網(wǎng)絡(luò)體系的缺陷,引入了主機標志和主機標志層,提出了解決移動、多宿問題的一個新思路,是IETF,IRTF研究的新熱點。HIP同時支持IPv4和IPv6兩種協(xié)議,但IPv6代替IPv4已是必然,因此,它將主要與IPv6結(jié)合,提供一個全新的移動、多宿解決方案。IPv6提出已經(jīng)十多年,但大規(guī)模部署進展緩慢,隨著IPv6被確立為3G多媒體業(yè)務(wù)子系統(tǒng)(IMS)唯一支持的IP協(xié)議版本,移動成了人們普遍看好的一個IPv6殺手級應(yīng)用,但MIPv6的移動解決方案過于復(fù)雜,安全問題有待進一步完善,在大規(guī)模應(yīng)用前必須慎重。HIP協(xié)議相比來說則簡潔明了得多,設(shè)計之初就考慮到了與IP協(xié)議的兼容,是另一個很有希望的解決方案。但對其研究才剛剛起步,還很不成熟。協(xié)議中的一些關(guān)鍵問題如HIT到IP地址的解析、與防火墻的兼容性等仍需進一步研究。實踐表明,任何協(xié)議不論其設(shè)計得多么完美,均可能包含一些嚴重的缺陷甚至錯誤,因此,在3G大規(guī)模部署前夕,對HIP協(xié)議深入研究,與MIPv6綜合比較,選擇合理的移動解決方案,有著非常重要的現(xiàn)實意義。
參考文獻:
[1]D Johnson, C Perkins, J Arkko. Mobility Support in IPv6[EB/OL]. http://www.ietf.org/rfc/rfc3775, 2004.
[2]J Arkko, V Devarapalli, F Dupont. Using IPSec to Protect Mobile IPv6 Signaling between Mobile Nodes and Home Agents [EB/OL]. http://www.ietf.org/rfc/rfc3776,2004.
[3]Petri Jokela, et al.Host Identity Protocol: Achieving IPv4~IPv6 Handovers without Tunneling[EB/OL]. http://www.tml.tkk.fi/~pnr/publications/evolute2003.pdf, 2004.
[4]R Moskowitz, et al. Host Identity Protocol[EB/OL].http://www.ietf.org/internetdrafts/draftietfhipbase03,2005.
[5]R Moskowitz, et al. Host Identity Protocol Architecture[EB/OL]. http://www.ietf.org/internetdrafts/draftietfhiparch02,2004.
[6]P Nikander, J Laganier.Host Identity Protocol (HIP) Domain Name System (DNS) Extensions[EB/OL]. http://www.ietf.org/internetdrafts/draftietfhipdns02,2005.
[7]P Nikander, J Arkko, T Henderson.EndHost Mobility and MultiHoming with the Host Identity Protocol[EB/OL]. http://www.ietf.org/internetdrafts/draftietfhipmm01,2005.
作者簡介:
於時才(1950-),男,甘肅岷縣人,教授,研究生導(dǎo)師,主要研究方向為計算機網(wǎng)絡(luò)、計算機圖像處理等;李常興(1978-),男,陜西楊凌人,碩士研究生,主要研究方向為下一代計算機網(wǎng)絡(luò)協(xié)議與體系結(jié)構(gòu);宋健(1971-),男,江蘇徐州人,高級工程師,研究生導(dǎo)師,主要研究方向為計算機網(wǎng)絡(luò)與現(xiàn)代通信;孫為(1973-),男,甘肅蘭州人,工程師,碩士,主要研究方向為下一代計算機網(wǎng)絡(luò)通信協(xié)議。
注:本文中所涉及到的圖表、注解、公式等內(nèi)容請以PDF格式閱讀原文