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