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