南京化工職業(yè)技術學院 徐 濤
當移動節(jié)點在外地網絡時,會經歷如下的幾個過程:
(1)移動節(jié)點首先獲得一個轉交地址,然后它把家鄉(xiāng)地址與轉交地址的映射告知家鄉(xiāng)代理,這個過程稱為家鄉(xiāng)注冊;
(2)通信節(jié)點與移動節(jié)點通信仍然使用移動節(jié)點的家鄉(xiāng)地址,數(shù)據包仍然發(fā)往移動節(jié)點的家鄉(xiāng)網段;家鄉(xiāng)代理截獲這些數(shù)據包,并根據已獲得的映射關系通過隧道方式將其轉發(fā)給移動節(jié)點的轉交地址。移動節(jié)點則可以直接和通信節(jié)點進行通信。這個過程也叫做三角路由過程;
(3)為了避免三角路由,移動節(jié)點也會將家鄉(xiāng)地址與轉交地址的映射關系告知通信節(jié)點,這個過程稱為通信節(jié)點注冊;
(4)當通信節(jié)點知道了移動節(jié)點的轉交地址就可以直接將數(shù)據包轉發(fā)到其轉交地址所在的外地網段,這樣通信節(jié)點與移動節(jié)點之間就可以直接進行通信。
對移動IPv6的攻擊研究將集中在家鄉(xiāng)注冊和通信節(jié)點注冊這兩個過程。
常見的幾種攻擊類型如下:
·數(shù)據保密性攻擊:如圖1.1所示,攻擊者發(fā)送虛假的binding update給家鄉(xiāng)代理,讓后者以為攻擊者的地址就是移動節(jié)點的轉交地址,所有通過家鄉(xiāng)代理發(fā)往移動節(jié)點的數(shù)據將發(fā)往惡意節(jié)點。
·阻止通信攻擊:和上面類似,不過攻擊者把移動節(jié)點的轉交地址設置為不存在的地址.這樣發(fā)送給移動節(jié)點的數(shù)據包就無法到達,造成通信被阻止;
·DoS攻擊:攻擊者可以把大量網絡節(jié)點的轉交地址都指向攻擊目標,這樣發(fā)給這些節(jié)點的數(shù)據都被重定向到攻擊目標,達到DoS攻擊的效果;
·假冒家鄉(xiāng)代理:移動IPv6具備動態(tài)家鄉(xiāng)代理發(fā)現(xiàn)的功能,它通過發(fā)送家鄉(xiāng)代理發(fā)現(xiàn)請求到家鄉(xiāng)任意播地址,由某個家鄉(xiāng)代理回應一個帶有家鄉(xiāng)代理列表的應答消息。家鄉(xiāng)鏈路上的惡意節(jié)點有可能收到這個請求并給出虛假應答,如圖1.2所示。
盡管移動IPv6要求利用IPSec保證家鄉(xiāng)注冊的安全,但是IPSec應用本身存在問題。首先IPSec需要在移動節(jié)點和家鄉(xiāng)代理之間建立起安全關聯(lián),如果采用手工配置的方式,n個移動節(jié)點就要配置n條關聯(lián),擴展性不好,不適合大規(guī)模部署。如果采用IKE(Internet KeyExchange)動態(tài)建立,IKE本身又是一個耗時和復雜的過程。其次,IPSec需要公鑰來完成認證和加密,而公鑰的管理一直是個沒有解決好的問題。最后,IPSec不可避免的給主機帶來額外的計算負擔,因為加密/解密運算的復雜性,攻擊者可以構造虛假的IPSec報文,消耗主機的計算資源,造成拒絕服務攻擊。
攻擊者從一開始就就假冒移動節(jié)點,欺騙家鄉(xiāng)代理,加上RRP消息都是明
文的,這樣它通過正常的RRP過程就能夠“合法”的欺騙通信節(jié)點。
攻擊過程如下:
(1)攻擊者發(fā)送HoTI消息,源地址是假冒的移動節(jié)點家鄉(xiāng)地址,目的地址是通信節(jié)點地址,通過家鄉(xiāng)代理轉發(fā)。
(2)攻擊者發(fā)送CoTI消息,源地址是攻擊者的地址,目的地址是通信節(jié)點地址,直接發(fā)送。
(3)攻擊者通過家鄉(xiāng)代理收到HoT消息,源地址是通信節(jié)點地址,目的地址是移動節(jié)點家鄉(xiāng)地址。
(4)攻擊者收到CoT消息,源地址是通信節(jié)點地址,目的地址是攻擊者的地址。
(5)攻擊者發(fā)送binding update,源地址是攻擊者的地址,目的地址是通信節(jié)點地址。由于任何能同時接收到HoT消息和CoT消息的攻擊者都可以給通信節(jié)點發(fā)送能通過認證的binding update,結果就是通信節(jié)點以為攻擊者的地址就是移動節(jié)點的轉交地址。
由上述分析可知,家鄉(xiāng)注冊和通信節(jié)點注冊這兩個過程都存在攻擊可能,并且目前的解決方案都存在不足。從另一個角度看,不論是家鄉(xiāng)注冊,還是通信節(jié)點注冊過程,都是通過綁定更新/確認消息的交互,攻擊能夠奏效很大程度上是由于綁定更新缺乏認證機制,如果能對綁定更新提供一種認證機制,就能較好的解決其安全問題。
為此,我們提出一種結合AAA(認證,計費,授權)過程的改進綁定更新過程。本方案的實現(xiàn)分為兩個部分。一是身份認證以及認證之后AAAH服務器在移動節(jié)點和家鄉(xiāng)代理之間共享密鑰;二是通過修改移動IPv6的實現(xiàn),把該共享密鑰嵌入到移動IPv6的消息之中。目前只實現(xiàn)了第一部分的工作,身份認證采用802.1x+Radius的方案。
圖1.1 移動IPv6保密性攻擊
圖1.2 移動IPv6假冒家鄉(xiāng)代理攻擊
圖2.1 系統(tǒng)結構圖
網絡拓撲如圖2.1所示,工作流程如圖2.2所示。注意的是,為了防止網絡竊聽,不是直接傳輸數(shù)i,而是傳輸數(shù)i和用戶口令的異或。
(1)用戶在客戶端中輸入用戶名和密碼,客戶端向外地網絡的交換機發(fā)起
EAPoL認證請求,其中包含用戶名;
圖2.2 工作流程圖
圖2.3 客戶端流程
圖2.4 服務器端流程1
圖2.5 服務器端流程2
(2)交換機收到用戶請求后,實現(xiàn)從EAPoL報文取出認證消息,并將認證
消息按照Radius協(xié)議的格式進行封裝,然后向FAAA發(fā)出Access-Request認證請求;
(3)FAAA收到認證請求后,根據用戶名做判斷,將Access-Request請求
報文轉發(fā)給家鄉(xiāng)網絡的HAAA;
(4)HAAA判斷用戶的狀態(tài),如果是首次認證請求,則產生一個隨機數(shù)R,
由Access-Challenge報文攜帶返回給FAAA;
(5)FAAA把Access-Challenge報文返回給交換機,后者進行轉換為EAPoL
格式,返回給用戶;
(6)用戶從Challenge報文提取出隨機數(shù)R,計算口令P與R的MD5摘要,把摘要放入響應消息中,再發(fā)給交換機;
(7)交換機進行轉換后發(fā)給FAAA,后者轉發(fā)給HAAA;HAAA從本地數(shù)據庫取出用戶口令P’,計算P’與R的MD5摘要,并與收到的做比較,如果相等
則認證成功,接下來HAAA生成數(shù)i,i=First(16,sha1(time)),把數(shù)i和口
令P異或,得到i’,即i’=i xor P。i’攜帶在Access-Accept報文里發(fā)給FAAA;
(8)FAAA把Access-Accept報文返回給交換機,后者打開相應端口,并且把報文返回給用戶;
(9)用戶提取出數(shù)i’,通過i’xor P恢復出數(shù)i并保存起來。
客戶端是自己開發(fā)的802.1x客戶端,在客戶端和交換機之間報文格式是
EAPoL,工作流程如圖2.3所示:
AAA服務器使用開源軟件FreeRadius,工作流程如圖2.4,2.5所示,認證方法采用EAP-MD5。
本文針對移動IPv6家鄉(xiāng)注冊和通信節(jié)點注冊這兩個過程的安全問題,以及目前的解決方案IPSec和RRP在應用中的一些問題,提出了一種改進的綁定更新方案,利用802.1x和AAA技術實現(xiàn)了該方案的一部分。
[1]孫利民.移動IP技術[M].電子工業(yè)出版社,2003.
[2]Greg O’Shea et al.Child proof authentication for MIPv6(CAM),ACM SIGCOMM Computer Communication Review 2001,Volume 31,Issue 2,Pages:4-8.
[3]劉述.國內外下一代互聯(lián)網試驗網淺析[J].網絡專家.2006,4(13):B5-B6.
[4]P.Congdon et al,IEEE 802.1X Remote Authentication Dial In User Service(RADIUS)Usage Guidelines,RFC 3580,September 2003.