王天明 李麗蓉
海南經貿職業(yè)技術學院網絡信息中心 海南 571127
在2010年以后,我國將由IPv4的協議平滑過渡到IPv6,此前各大企事業(yè)單位購買的IPv4設備并不需要徹底更換,根據使用情況不同,可以做出調整,并且可以使用軟件升級來實現過渡。目前IPv6與3G移動應用結合,安全性方面仍然存在一定瓶頸。十年前設計IPv6協議的時候,網絡的安全性問題和現在的很多問題都沒有出現,因此在實際部署IPv6網絡的時候也發(fā)現了一些問題,我們也做了一些解決方案。
移動IP必須面對所有無線網絡所固有的安全威脅,移動性的引入必然使得移動IP比有線的Internet更加脆弱。此外,移動IPv6協議通過定義移動節(jié)點、家鄉(xiāng)代理和通信節(jié)點之間的信令機制,在實現了三角路由的優(yōu)化的同時,也引入了新的安全威脅。如果攻擊者在移動節(jié)點、家鄉(xiāng)代理和通訊節(jié)點之間的通信鏈路上截獲并篡改相關的信令報文,那么它就能夠輕易的發(fā)起攻擊。目前移動IPv6可能遭受的攻擊主要包括拒絕服務攻擊、重放攻擊以及信息竊取攻擊。
拒絕服務攻擊是指攻擊者為阻止合法用戶獲得正常服務而采用的攻擊手段。這種攻擊主要包括兩種手段:一種是通過網絡向服務器或主機發(fā)送大量數據包,使得服務器忙于處理這些無用的數據包而無法響應有用的信息。另一種是直接干擾服務器與主機之間的正常通信。在移動IPv6中,攻擊者可以通過如下手段達到上述目的:
① 攻擊者發(fā)送大量地址綁定更新消息來消耗家鄉(xiāng)代理和通信節(jié)點的資源,從而導致綁定緩存表溢出或者是無法及時處理合法用戶的綁定更新報文;
② 惡意主機把Internet上服務器的IPv6地址作為大量移動節(jié)點的轉交地址,發(fā)送偽裝的綁定更新消息給對端通信節(jié)點,會引發(fā)大量的流量發(fā)往受害服務器,導致分布式拒絕服務攻擊;
③ 和上述情況類似,攻擊者可以冒充移動節(jié)點,使用移動節(jié)點的家鄉(xiāng)地址發(fā)送綁定更新消息(例如把自己的地址作為移動節(jié)點的新的轉交地址),偽裝節(jié)點的移動狀況。從而截獲移動節(jié)點的數據包,阻斷合法用戶的正常通信;
④ 在移動節(jié)點和家鄉(xiāng)代理通信路徑上的攻擊者可以通過篡改家鄉(xiāng)地址選項域值,將通信節(jié)點的流量重定向到第三方節(jié)點,阻斷合法用戶的正常通信;
⑤ 在移動節(jié)點和通信節(jié)點通信路徑上的攻擊者可以通過篡改路由擴展頭域值,將通信節(jié)點的流量重定向到第三方節(jié)點,阻斷合法用戶的正常通信。
重放攻擊是指攻擊者將一個有效的注冊請求消息錄取并保存起來,等待一段時間之后再重新發(fā)送這個消息來注冊一個偽造的轉交地址,從而達到攻擊的目的。在移動節(jié)點和通信節(jié)點通信路徑上的攻擊者可以通過這種方式將數據流重定向到第三方實體。
信息竊取可以分為被動監(jiān)聽和主動會話竊取。
① 被動監(jiān)聽:移動IPv6可以使用于多種傳輸介質,尤其是無線鏈路,由于無線鏈路的信道特性,攻擊者可以輕易的實施被動監(jiān)聽。即便是有線鏈路,未經授權的用戶也可能通過某些手段設法接入網絡進行監(jiān)聽;
② 會話竊取:會話竊取攻擊是指攻擊者等待合法的用戶認證完成并且正常會話后,通過假扮合法節(jié)點來竊取會話的攻擊。在移動IPv6中,當移動節(jié)點向它的家鄉(xiāng)代理注冊后,攻擊者可以截獲發(fā)往移動節(jié)點或通信節(jié)點的數據包,也可以假冒身份向移動節(jié)點或通信節(jié)點發(fā)送無用或欺騙數據包。
除了上述主要的安全威脅之外,移動IPv6還可能遭受到其它威脅,如攻擊者可以冒充通信節(jié)點給移動節(jié)點發(fā)送綁定錯誤消息,從而導致移動節(jié)點通過隧道經由家鄉(xiāng)代理向通信節(jié)點三角路由發(fā)送報文,造成路由迂回,導致網絡帶寬浪費及時延增加。當家鄉(xiāng)網絡重編號時,家鄉(xiāng)代理可以通過設置家鄉(xiāng)網絡前綴的生存時間來實現位于外部網絡的移動節(jié)點更新自己的家鄉(xiāng)地址。通常狀況下,移動節(jié)點應該選擇生存時間最長的IPv6前綴來形成自己的家鄉(xiāng)地址。如果惡意主機修改家鄉(xiāng)網絡IPv6前綴的生存時間、或者干脆修改前綴的內容,可能引起家鄉(xiāng)代理服務的所有的移動節(jié)點無法到達,或者竊取移動節(jié)點到家鄉(xiāng)代理的流量,或者引起拒絕服務攻擊。
互聯網協議設計的一條原則是新協議的引入不為網絡帶來新的安全威脅,如果存在安全隱患,那么協議本身必須要設計相應的安全機制來克服。移動IPv6協議也不例外,對于前文所描述的各種安全威脅,協議制定了相應的安全機制。
對于重放攻擊,移動IPv6協議在注冊消息中添加了序列號,并且在協議報文中引入了時間隨機數(Nonce)。家鄉(xiāng)代理和通信節(jié)點通過比較前后兩個注冊消息序列號,并結合Nonce的散列值,判定出攻擊者保存下來的過期注冊消息而不予理睬。
有效的保護(移動節(jié)點,通信節(jié)點)、(移動節(jié)點,家鄉(xiāng)代理)之間的信令消息傳遞,可以防御其它形式的攻擊。移動節(jié)點和家鄉(xiāng)代理之間可以建立IPsec安全聯盟來保護信令消息和業(yè)務流量。由于移動節(jié)點家鄉(xiāng)地址和家鄉(xiāng)代理都是已知的,所以可以預先為移動節(jié)點和家鄉(xiāng)代理配置安全聯盟,然后使用IPsec AH和ESP機制建立安全隧道,提供數據源認證、完整性檢查、數據加密和防重放攻擊保護。
由于移動節(jié)點的轉交地址是隨著移動節(jié)點網絡接入點不斷變化,且與之通信的對端通信節(jié)點也是變化的,因此無法預先配置建立二者之間的安全聯盟,而且在全球互聯網范圍內很難實現公有密鑰架構(Public Key Infrastructure,PKI),不同的認證管理域也很難建立信任關系,所以無法通過公共密鑰加密機制保護移動節(jié)點與通信節(jié)點之間的信令消息。鑒于此,移動IPv6協議定義了往返可路由過程(Return Routability Procedure,RRP),通過產生綁定管理密鑰來實現對移動節(jié)點和通信節(jié)點之間控制信令的保護。
家鄉(xiāng)代理通常由運營商部署及運維管理,而移動節(jié)點通常也是運營商的可控用戶(可通過EMSI或CA證書等手段對身份進行驗證控制),可以假設二者處于同一可信任域。移動IPv6使用IPsec技術來實現移動節(jié)點和家鄉(xiāng)代理之間的信令信息保護。這些信息包括:
① 注冊過程中,移動節(jié)點和家鄉(xiāng)代理之間的Binding Update與Binding Acknowledgment消息;
② RRP過程中,移動節(jié)點和家鄉(xiāng)代理之間的Home Test Init與Home Test消息;
③ 前綴發(fā)現過程中,移動節(jié)點和家鄉(xiāng)代理之間的ICMPv6消息;
④ 可選的,使用IPsec協議來保護移動節(jié)點和家鄉(xiāng)代理之間交換的凈荷信息。
使用IPsec協議可以提供對數據源驗證、數據完整性、數據內容的機密性、抗重播保護以及有限的數據流機密性保證。移動IPv6協議利用IPsec的傳輸模式的ESP協議來保護從移動節(jié)點到家鄉(xiāng)代理之間的信令消息。
往返可路由過程的目的在于通信節(jié)點必須確認移動節(jié)點對于它宣稱的家鄉(xiāng)地址和轉交地址是可達的。只有得到這個確認之后,對端通信節(jié)點才會接受來自移動節(jié)點的綁定更新消息,而把以后的流量轉發(fā)到移動節(jié)點新的轉交地址。
RRP過程的開始是由移動節(jié)點同時發(fā)送HoTI和CoTI消息,HoTI消息是經過移動節(jié)點的家鄉(xiāng)代理發(fā)送到對端通信節(jié)點的,包含了一個Home Init Cookie,對端通信節(jié)點收到這個消息后,回應一個Home Test消息,這個消息包含了下列的參數:
① Home Init Cookie,這個參數的值必須和HoTI消息的值相同;
② Home Keygen Token的值為First(64,HMAC_SHA1(K對端通信節(jié)點,(home address | nonce | 0))),其中K對端通信節(jié)點和nonce都是由對端通信節(jié)點產生的隨機數,用于產生Home Keygen Token;
③ Home nonce Index,是對端通信節(jié)點在上述公式中產生nonce值的索引,避免了在消息中直接傳送nonce的值。
CoTI消息是由移動節(jié)點直接發(fā)送給對端通信節(jié)點的,包含了一個Care-of Test Cookie。對端通信節(jié)點收到這個消息后,回應一個Care-of Test消息,這個消息包含了下列的參數:
① Care-of Cookie,這個參數必須和CoTI消息相同;
② Care-of Keygen Token,care-of keygen token的值為First(64,HMAC_SHA1(K對端通信節(jié)點,(care-of address |nonce | 1)));
③ Care-of nonce index,nonce值的索引,避免在消息中直接傳送nonce值。
移動節(jié)點收到了Home Test消息和Care-of Test消息后,往返可路由過程就已經完成了。移動節(jié)點將收到的Home Cookie和Care-of Cookie作為哈希函數的輸入產生會話密鑰,并用此密鑰來認證綁定消息:
Kbm=SHA1(home kengen token | care-of kengen token)。
接下來移動節(jié)點就擁有了足夠的信息來認證自己可以向對端通信節(jié)點發(fā)送綁定更新請求消息。綁定更新消息包含的參數為:
① 移動節(jié)點的家鄉(xiāng)地址;
② 序列號;
③ Care-of nonce index;
④ First(96,HMAC_SHA1(Kbm,(care-of address | 對端通信節(jié)點| BU)))。
如果對端通信節(jié)點驗證了綁定更新消息確實為合法移動節(jié)點發(fā)送,對端通信節(jié)點就會創(chuàng)建新的綁定列表選項,確認這個綁定更新。
移動IPv6的發(fā)展還處在初級階段,專門針對移動IPv6協議的攻擊工具還不是很多,目前提出來的還只是移動IPv6解決方案的基礎理論。要根本解決安全移動IPv6系統(tǒng),需要從3個方面入手,對綁定更新的保護;對鏈路資源利用的管理,包括家鄉(xiāng)鏈路和外地鏈路;保護通信過程中的數據安全。移動IPv6在不斷完善之中,所以還要對移動IPv6的安全問題進行更深入的研究和探索。
[1]RFC3775,Mobility Support in IPv6 [S].
[2]RFC3776,Using IPsec Protect Mobile IPv6 Signaling Between Mobile Nodes and Home Agents [S].
[3]RRC 2460,Internet Protocol,Version 6(IPv6)Specifications[S].
[4]Hesham Soliman.Mobile IPv6: Mobility in a Wireless Internet[M].Addison-Wesley Professions/ SApril 2004.Chapters.