基于層次移動(dòng)IPv6接入認證設計與實(shí)現
2008/05/21
摘要 在移動(dòng)IPv6和層次移動(dòng)IPv6中,移動(dòng)節點(diǎn)通過(guò)無(wú)線(xiàn)接入點(diǎn)(AP)接入網(wǎng)絡(luò )并且自動(dòng)配置地址,缺乏必要的安全認證和地址管理機制。針對這一問(wèn)題,文章結合IPv6的動(dòng)態(tài)主機配置協(xié)議(DHCPv6)和認證、授權、計費(AAA,Authentication、Authorization、Accounting)協(xié)議設計出一套安全可靠的接入認證機制,并給出了實(shí)驗結果,結果表明該接入認證方案能夠有效實(shí)現對移動(dòng)節點(diǎn)的合法性進(jìn)行驗證,認證成功的同時(shí)也為移動(dòng)節點(diǎn)(MN)配置了合法IP地址,能夠滿(mǎn)足實(shí)際應用的需要。
引言
隨著(zhù)互連網(wǎng)絡(luò )的飛速發(fā)展和便攜式移動(dòng)終端的不斷涌現,用戶(hù)希望通過(guò)個(gè)人終端隨時(shí)隨地的加入到互聯(lián)網(wǎng)中,方便快捷地獲取自己所需的信息,移動(dòng)IPv6[1]應運而生,實(shí)現了無(wú)線(xiàn)局域網(wǎng)中的跨子網(wǎng)漫游和切換等功能。然而無(wú)線(xiàn)局域網(wǎng)的引入也帶來(lái)了相應的安全隱患問(wèn)題,比如對移動(dòng)節點(diǎn)(MN)的接入缺少必要的身份驗證。本文基于此提出了層次移動(dòng)IPv6的接入認證設計方案和實(shí)現過(guò)程,為MN在網(wǎng)絡(luò )間的切換提供可靠的身份驗證。
本文是在基于內核版本為2.6.8.1的Linux平臺上實(shí)現了層次移動(dòng)IPv6[2](HMIPv6)的接入認證機制,采用DHCPv6[3]協(xié)議和AAA協(xié)議[4](認證、授權、計費)相結合完成接入認證過(guò)程,認證成功的同時(shí)為MN分配一個(gè)合法的IP地址。
接入認證方式
在大多數情況下,移動(dòng)IPv6應用于無(wú)線(xiàn)環(huán)境中。與有線(xiàn)網(wǎng)絡(luò )相比,攻擊者可以不受物理空間的限制,在網(wǎng)絡(luò )的任意一個(gè)角落通過(guò)無(wú)線(xiàn)電波發(fā)起諸如重放攻擊和其他主動(dòng)攻擊,而且由于無(wú)線(xiàn)網(wǎng)絡(luò )的特殊性使得攻擊更容易實(shí)施。另外MN切換到外地網(wǎng)絡(luò )時(shí),所在的網(wǎng)絡(luò )不一定是可信的網(wǎng)絡(luò ),更容易受到諸如竊聽(tīng)、主動(dòng)重放等攻擊,因此無(wú)線(xiàn)接入的安全問(wèn)題顯得尤為突出。下面先對目前常用的接入認證機制進(jìn)行比較,然后提出本文的認證機制。
1)PPPoE認證:以太網(wǎng)上點(diǎn)對點(diǎn)協(xié)議(PPP over Ethernet)把最經(jīng)濟的局域網(wǎng)技術(shù)、以太網(wǎng)和點(diǎn)對點(diǎn)協(xié)議的可擴展性及管理控制功能結合在一起。
PPPoE在發(fā)現階段會(huì )產(chǎn)生大量廣播流量,對網(wǎng)絡(luò )性能產(chǎn)生很大的影響,用戶(hù)端需要安裝專(zhuān)門(mén)的軟件。
2)Web認證:Web認證最初是一種業(yè)務(wù)類(lèi)型的認證,通過(guò)啟動(dòng)一個(gè)Web頁(yè)面輸入用戶(hù)名/密碼,實(shí)現用戶(hù)認證。Web認證目前已經(jīng)成為運營(yíng)商網(wǎng)絡(luò )平臺的認證方式,通過(guò)Web頁(yè)面實(shí)現對用戶(hù)是否有使用網(wǎng)絡(luò )權限的認證。缺點(diǎn):用戶(hù)連接性差;易用性不夠好;IP地址的分配在用戶(hù)認證前;會(huì )造成地址的浪費。
3)802.1x認證:IEEE 802.1x稱(chēng)為基于二層端口的訪(fǎng)問(wèn)控制協(xié)議,能夠實(shí)現認證與業(yè)務(wù)的分離。如果簡(jiǎn)單地使用標準協(xié)議,容易造成如中間人攻擊、拒絕服務(wù)攻擊、網(wǎng)絡(luò )接入盜用等安全隱患。用標準802.1x認證在認證通過(guò)后的安全性是個(gè)很大問(wèn)題,而且無(wú)法滿(mǎn)足上述網(wǎng)絡(luò )接入管理控制的需求。
本方案認證機制在比較上述幾種認證機制的優(yōu)缺點(diǎn)的基礎上,根據層次移動(dòng)IPv6的網(wǎng)絡(luò )特性和運行需求,采用IPv6的動(dòng)態(tài)主機配置協(xié)議(DHCPv6)結合AAA協(xié)議來(lái)完成AAA認證和地址分配過(guò)程。該機制工作在網(wǎng)絡(luò )層,不依賴(lài)鏈路層協(xié)議,有利于移動(dòng)節點(diǎn)用多種方式接入網(wǎng)絡(luò ),具有兼容性好、利于向高層協(xié)議擴展、實(shí)現簡(jiǎn)單、容易控制、與移動(dòng)IP結合性好等優(yōu)點(diǎn)。
層次移動(dòng)IP接入認證設計
1.層次移動(dòng)IPv6
層次移動(dòng)IPv6引入移動(dòng)錨點(diǎn)(MAP),作用如同一個(gè)本地家鄉代理,它將代表其所服務(wù)的移動(dòng)節點(diǎn)接收所有數據包,并將這些數據包封裝后直接轉發(fā)至移動(dòng)節點(diǎn)的當前地址。如果移動(dòng)節點(diǎn)在本地MAP域中更改其當前地址(即在線(xiàn)轉交地址(LCOA)),只需在相應的MAP注冊新的LCOA。因此,移動(dòng)節點(diǎn)在對端節點(diǎn)或家鄉代理注冊本地轉交地址(RCOA)后,如果移動(dòng)節點(diǎn)在一個(gè)MAP域中移動(dòng),則LCOA不發(fā)生改變。這使移動(dòng)節點(diǎn)的移動(dòng)對于與其通信的對端節點(diǎn)是透明的。
在無(wú)線(xiàn)鏈路情況下,層次移動(dòng)IPv6可以減少通過(guò)空中接口發(fā)送到通信對端或家鄉代理的消息數目。移動(dòng)錨點(diǎn)的引入有利于移動(dòng)IPv6協(xié)議減少與外部網(wǎng)絡(luò )之間的移動(dòng)信令傳輸。
2.消息格式
本方案采用DHCPv6協(xié)議作為接入認證方式,在DHCPv6 Request消息中添加用戶(hù)名和密碼選項來(lái)傳送認證信息。用戶(hù)名選項格式定義如下:
選項標識定義為OPTION_CLIENT_NAI,類(lèi)型為44,占2個(gè)字節。
密碼選項格式定義如下:
選項標識定義為OPTION_CLIENT_PASS-WORD,類(lèi)型為45,占2個(gè)字節。
如果認證失敗,則在reply消息中添加認證失敗信息選項,格式定義如下:
選項標識定義為OPTION_AUTH_FAIL,類(lèi)型為46,占2個(gè)字節。
圖1 接入認證時(shí)序圖
3.消息流程
接入認證時(shí)序如圖1所示,消息流程如下。
- 當MN加入到一個(gè)網(wǎng)絡(luò )中時(shí),接收當地路由器發(fā)出的路由通告(RA)。
- MN觸發(fā)DHCPv6客戶(hù)端發(fā)送DHCP Solicit消息去發(fā)現DHCPv6服務(wù)器。
- 當服務(wù)器收到請求消息后,構造相應的Advertisement消息發(fā)給DHCPv6客戶(hù)端。
- DHCPv6客戶(hù)端收到響應消息發(fā)出DHCP Request消息,在消息選項中添加新的用戶(hù)名和密碼密文選項。
- DHCPv6服務(wù)器收到消息后,從中提取用戶(hù)名和密文后,對密文進(jìn)行解密,發(fā)送AAA認證請求消息到本地AAA服務(wù)器(AA
AL)。
>
- AAAL,收到認證請求消息后將其轉發(fā)到家鄉AAA服務(wù)器(AAAH)。
- AAAH收到認證請求消息后,驗證用戶(hù)名和密碼。返回認證回復消息。
- AAAL,服務(wù)器將收到的認證回復消息轉發(fā)到AAA客戶(hù)端。
- AAA客戶(hù)端對收到的認證回復進(jìn)行處理,構造Reply消息響應客戶(hù)端請求,
- MN根據收到的Reply消息進(jìn)行判斷,至此整個(gè)認證過(guò)程完成。
軟件實(shí)現過(guò)程
在軟件體系的設計上,在HMIPv6的基礎上修改和添加對DHCPv6配置地址的處理。本文采用MIPL即Mobile IPv6
for Linux,版本為2.0-rc2,層次移動(dòng)IP基于此實(shí)現。DHCPv6采用的是dibbler軟件來(lái)實(shí)現,版本為0.3.1;AAA協(xié)議采用的是FreeRADIUS開(kāi)源軟件,版本為1.0.4,它包含服務(wù)器端和客戶(hù)端兩部分。服務(wù)器端有MYSQL開(kāi)源軟件,版本為4.1.7,包過(guò)濾采用Netfilter機制。
1.DHCPv6消息處理
在層次移動(dòng)IP的啟動(dòng)過(guò)程中,當MN收到路由通告,發(fā)現與自己的路由緩存中維護的路由前綴不一樣時(shí),發(fā)送一個(gè)信號量啟動(dòng)DHCPv6客戶(hù)端子進(jìn)程,開(kāi)始接入認證過(guò)程。在DHCPv6協(xié)議中創(chuàng )建用戶(hù)名、密碼和認證失敗選項,在填充選項內容時(shí),用戶(hù)名和密碼通過(guò)對MN的配置文件進(jìn)行讀取操作,由AAA服務(wù)器預先分配給用戶(hù)。
在獲取密碼后通過(guò)標準的DES加密算法對原始密碼采用雙方協(xié)商好的密鑰進(jìn)行加密。由于DES只能對不大于8字節的字符進(jìn)行加密,所以在加密過(guò)程中先計算原始密碼的長(cháng)度,如果小于或等于8字節則直接進(jìn)行加密;如果大于8字節則截取前8個(gè)字節進(jìn)行加密,再對剩余的字節進(jìn)行相同的加密過(guò)程,把生成的密碼拷貝到密碼選項中。為了簡(jiǎn)化運算,在該文中默認密碼字節不大于16字節,一般能滿(mǎn)足實(shí)際運用。
在客戶(hù)端消息選項中,添加用戶(hù)名和密碼選項的標識OPTION_CLIENT_NAI和OPTION_CLIENT_PASSWORD,通過(guò)標識對相應的選項進(jìn)行處理。當客戶(hù)端在構建Request消息時(shí),把定義好的用戶(hù)名和密碼標識通過(guò)系統函數添加到Request消息中,完成后發(fā)送該消息給服務(wù)器。
DHCPv6服務(wù)器端收到Request消息后,通過(guò)switch語(yǔ)句對OPTION_CLIENT_ NAI和OPTION_CLIENT_PASSWORD標識進(jìn)行處理,獲取選項中的用戶(hù)名和密碼密文字符,其中通過(guò)DES解密算法對收到的密文使用原先加密用的密鑰進(jìn)行解密。假如密文大于8個(gè)字節,則先對前8個(gè)字節進(jìn)行解密,之后在對剩余的字節進(jìn)行解密。把解密好的密碼和用戶(hù)名通過(guò)字符讀取操作存到AAA的配置文件中。
完成后在DHCPv6服務(wù)器創(chuàng )建子進(jìn)程來(lái)啟動(dòng)AAA客戶(hù)端程序,并且構造Reply報文,在其中創(chuàng )建一個(gè)消息隊列來(lái)等待接收AAA客戶(hù)端認證完成后返回的認證結果。如果收到認證成功標識,則從地址池中獲取一個(gè)合法地址添加到該消息選項中完成后發(fā)送Reply消息。并且將MN的MAC地址和IP地址發(fā)送到包過(guò)濾器的訪(fǎng)問(wèn)控制列表(ACL)中;如果收到認證失敗標識,則在構造的Reply消息中添加一個(gè)認證失敗信息選項,該認證選項標識為OPTION_AUTH_FAIL。將認證失敗信息添加到該選項中,并且刪除準備分配給客戶(hù)端的合法地址選項,完成后發(fā)送Reply消息。
MN對收到的Reply報文進(jìn)行判斷,使用switch語(yǔ)句對消息中各選項進(jìn)行處理。如果認證成功則含有地址選項標識,從中獲取合法地址分配給接口使用,MN可以使用當地網(wǎng)絡(luò )提供的服務(wù)或者完成切換綁定認證[5]過(guò)程。如果認證失敗,不含有地址選項,而含有OPTION_AUTH_FAIL選項,MN可以獲取該選項中相應的出錯信息,進(jìn)行再次認證或是退出該網(wǎng)絡(luò )。該過(guò)程的主要消息流程如圖2所示。
圖2 DHCPv6接入認證消息流程圖
2.AAA交互過(guò)程
當DHCPv6服務(wù)器調用子進(jìn)程執行AAA客戶(hù)端程序后,AAA客戶(hù)端將把從MN傳過(guò)來(lái)的密碼和用戶(hù)名添加到認證請求選項中,向AAAL進(jìn)行認證。AAAL將收到的消息轉發(fā)給AAAH服務(wù)器,AAAH收到認證請求后進(jìn)行認證。如用戶(hù)名和密碼正確,則返回Accecpt響應消息,標志認證成功;如用戶(hù)名或者密碼錯誤,則返回Reject響應消息,標志認證失敗。AAAL收到認證回復消息后記錄認證信息,下次認證時(shí)只需詢(xún)問(wèn)AAAL,減少認證步驟。
AAA客戶(hù)端對收到的認證回復消息進(jìn)行判斷,通過(guò)創(chuàng )建消息隊列,將認證回復中的認證結果標志傳遞給DHCPv6服務(wù)器。
3.包過(guò)濾
在接入路由器上安裝包過(guò)濾器軟件,它工作在網(wǎng)絡(luò )層,根據ACL列表對每個(gè)通過(guò)的包進(jìn)行訪(fǎng)問(wèn)控制,列表中維護IP地址和MAC地址綁定選項,防止合法IP地址被偽造。ACL列表的更新由DHCPv6服務(wù)器完成,認證成功后將相應的IP地址和MAC地址添加到ACL列表中,當DHCPv6分配的地址過(guò)期后負責刪除該綁定選項。接入認證開(kāi)始只允許DHCPv6協(xié)議和AAA協(xié)議的消息包通過(guò),認證成功后只允許綁定列表中維護的IP地址消息包通過(guò),有效地控制了假冒攻擊。
測試結果
實(shí)驗拓撲原理圖如3所示:
圖3 實(shí)驗拓撲圖
首先修改層次移動(dòng)IP的地址配置機制,使其采用有狀態(tài)地址配置,在家鄉代理(HA)、接入路由器1(AR1)、AR2和AR3安裝dibbler軟件和包過(guò)濾軟件,在服務(wù)器上安裝RADIUS軟件。
分別在MN上啟動(dòng)HMIPv6程序,在HA上啟動(dòng)HMIPv6程序和DHCPv6服務(wù)器程序,在A(yíng)R1、AR2和AR3上啟動(dòng)DHCPv6服務(wù)器端程序和路由通告協(xié)議。在服務(wù)器上啟動(dòng)AAA服務(wù)器端程序。通過(guò)手動(dòng)修改ESSID在家鄉與不同的MAP域之間進(jìn)行切換,完成在切換過(guò)程的接入認證過(guò)程。
實(shí)驗完成了從家鄉到MAP1中的AR1、AR2和MAP2中的AR3的切換過(guò)程的接入認證,以及從MAP1到MAP2切換的接入認證過(guò)程。在切換的過(guò)程中MN觸發(fā)接入認證過(guò)程,只有使用正確的用戶(hù)名和密碼才能完成接入,獲得合法的IP地址。切換完成后采用該地址作為轉交地址進(jìn)行綁定注冊和認證過(guò)程。如果用戶(hù)采用了錯誤的用戶(hù)名或者密碼,則在切換過(guò)程中不能獲得IP地址,接入認證失敗,不能完成切換過(guò)程,MN被拒絕加入相應的網(wǎng)絡(luò )。
結果證明,完成接入認證過(guò)程僅需要2s左右,這是完成DHCPv6協(xié)議重復地址檢測過(guò)程和AAA協(xié)議信息交互所需的時(shí)間,沒(méi)有增加附加的延時(shí),并且在認證成功的同時(shí)給MN分配了一個(gè)合法的IP地址作為在線(xiàn)轉交地址。
結束語(yǔ)
本文結合HMIPv6、DHCPv6和AAA協(xié)議實(shí)現了對MN在不同的網(wǎng)絡(luò )間切換的接入認證過(guò)程,對用戶(hù)提供了可靠的安全保證,解決了無(wú)線(xiàn)接入存在的安全問(wèn)題;同時(shí)便于運營(yíng)商對接入用戶(hù)的管理和維護;采用DHCPv6作為接入認證方式還可以提供對地址的有效管理和附加參數的配置(如DNS等)。
下一階段主要是考慮如何縮短認證過(guò)程時(shí)間,實(shí)現無(wú)縫切換,并且考慮在雙棧下實(shí)現接入認證過(guò)程,這些也是未來(lái)研究的熱點(diǎn)和重點(diǎn)。
參考文獻
1D Johnson,C Perkins,J Arkko.Mobility Support in IPv6.RFC
3775,June 2004.
2H Soliman,C Castelluccia,K E1 Malki,et a1.Hierarchical
Mobile IPv6 Mobility Management(HMIPv6).RFC 4140,August 2005.
3J Bound,B Volz,T Lemon,et al. Dynamic Host Configuration
Protocol for IPv6(DHCPv6).RFC 3315,July 2003.
4C Rigney,A Rubens,W Simpson,S.Willens.Remote Authentication
Dial In User Service.RFC 2865.June 2000.
5A Patel,K Leung,M Khalil,H Akhtar. Authentication Protocol
for Mobile IPv6.RFC 4285.January 2006.
中國信息產(chǎn)業(yè)網(wǎng)(www.cnii.com.cn)
相關(guān)鏈接:
亚洲精品网站在线观看不卡无广告,国产a不卡片精品免费观看,欧美亚洲一区二区三区在线,国产一区二区三区日韩
德清县|
达日县|
五寨县|
罗源县|
句容市|
浙江省|
青神县|
比如县|
防城港市|
淮滨县|
兴和县|
望城县|
林西县|
东乌珠穆沁旗|
天全县|
宕昌县|
花莲县|
闻喜县|
磴口县|
太谷县|
张掖市|
延安市|
岐山县|
吉木萨尔县|
和平区|
湖南省|
辽源市|
闻喜县|
德阳市|
阳信县|
泰顺县|
永清县|
双柏县|
无棣县|
若羌县|
洱源县|
安泽县|
固镇县|
芒康县|
崇文区|
永泰县|
http://444
http://444
http://444
http://444
http://444
http://444