王寶亮,代佳增
(天津大學(xué)電氣自動化與信息工程學(xué)院,天津 300072)
物聯(lián)網(wǎng)技術(shù)的發(fā)展促進了無線傳感器網(wǎng)絡(luò)的廣泛應(yīng)用,例如環(huán)境監(jiān)控、工業(yè)自動化和智能醫(yī)療等[1]。這些應(yīng)用通常需要大量的傳感器來覆蓋大面積場景,并長時間無人值守。而小型無線傳感器體積小、功率受限、計算和存儲資源少的特點可以很好地滿足以上需求,并且6LoWPAN技術(shù)可以更方便地將資源有限設(shè)備連接到Internet[2]。
但是,隨著實時訪問網(wǎng)絡(luò)服務(wù)的需求不斷增長,需要無線設(shè)備在不同域之間進行頻繁切換操作[3,4],這可能導(dǎo)致較長的切換延遲、數(shù)據(jù)包丟失等問題。因此,為了在無線設(shè)備與Internet之間提供無縫連接,已經(jīng)提出了許多移動性管理協(xié)議,比如基于主機的移動IPv6(MIPv6)協(xié)議和代理MIPv6協(xié)議等。盡管許多解決方案從各個方面改善了切換性能,但是切換過程中的安全性問題并未得到太多解決。
由于6LoWPAN網(wǎng)絡(luò)的特性,使得它容易受到安全攻擊。惡意節(jié)點可以輕松加入網(wǎng)絡(luò)、竊取和篡改數(shù)據(jù)或進行DOS攻擊[5]。為了解決資源受限設(shè)備移動過程中的安全問題,已經(jīng)提出了幾種安全切換方法。但是,大多數(shù)現(xiàn)有解決方法要求節(jié)點每次加入新域時都需要與服務(wù)器或6LBR執(zhí)行完整的身份驗證過程,信令開銷大,并且大部分方法僅支持單個節(jié)點的移動切換。
基于此,針對網(wǎng)絡(luò)中節(jié)點在切換認證過程中,都需要與6LBR進行身份驗證而帶來的通信延遲高的缺點,本文通過在切換之前為移動集群和目標關(guān)聯(lián)節(jié)點預(yù)分配切換密鑰,設(shè)計了一種邊緣認證切換方法。對比現(xiàn)有方法,該方法支持集群節(jié)點的安全切換,并且在切換時由關(guān)聯(lián)節(jié)點驗證節(jié)點身份,而無需向6LBR發(fā)送認證消息,進而能夠降低通信延遲、減小信令開銷。采用的Hash函數(shù)、對稱密鑰和消息認證碼等輕量級加密算法在保證安全性的同時,降低了計算開銷。
為了解決資源受限的6LoWPAN設(shè)備的安全問題,Oliveira等人[6]提出了一種用于6LoWPAN網(wǎng)絡(luò)的準入控制方法,旨在將未經(jīng)授權(quán)的節(jié)點與合法節(jié)點隔離開。文獻[7]提出了一種安全密碼驗證機制(SPAM),用于PMIPv6中的安全快速切換。Ilsun等人[8]對SPAM方法進行了驗證分析,指出了SPAM方法存在的安全漏洞并給出了相應(yīng)的解決措施。但是,這些方案只能支持一個節(jié)點的安全切換,而6LoWPAN網(wǎng)絡(luò)中移動集群的安全切換問題仍未得到有效解決。
針對集群的安全切換問題,Lai等人[9]提出了一種安全高效的組漫游(SEGR)協(xié)議。該協(xié)議中MME使用聚合簽名技術(shù)與組中多個MTCD進行相互認證。但是,該協(xié)議不符合切換驗證的要求。此外,雙線性配對操作具有高計算開銷。同時,為了克服網(wǎng)絡(luò)開銷和安全漏洞,Cao等人[10]基于多簽名技術(shù)提出了組切換認證(UGHA)協(xié)議。該協(xié)議建立了多個MTCD與目標基站之間的相互認證,但該方法中的模塊冪運算具有高計算成本。在路由交換認證(G2RHA)協(xié)議[11]中,由cMRN代表組內(nèi)的MRN與目標DeNB執(zhí)行相互認證。由于使用對稱加密算法,開銷較小。但此協(xié)議無法保護隱私,不能維護KFS/KBS。盡管這些安全機制旨在改進集群切換身份驗證,但由于系統(tǒng)架構(gòu)和設(shè)備功能不同,不適合將這些解決方案直接遷移到6LoWPAN網(wǎng)絡(luò)。
為了提供6LoWPAN網(wǎng)絡(luò)中集群的安全切換,Qiu等人[12]提出了一種基于PMIPv6的安全組切換方案(SGMS),僅使用輕量級加密算法,具有較小的計算成本。但是,其在切換過程中采用集中認證方式,即所有節(jié)點均需與認證服務(wù)器執(zhí)行相互認證。而通常移動節(jié)點與服務(wù)器相距較遠,需要經(jīng)過多跳傳輸,這將產(chǎn)生較高的通信延遲。
在充分對比以上切換認證技術(shù)的基礎(chǔ)上,本文提出了一種用于6LoWPAN網(wǎng)絡(luò)中移動集群的邊緣認證切換方法,替代集中式認證,節(jié)點只需與目標關(guān)聯(lián)節(jié)點進行認證即可,并且僅使用簡單加密算法,有效降低了計算開銷和通信延遲,同時能夠滿足安全要求。
本文的切換認證方法基于廣泛應(yīng)用的6LoWPAN分層網(wǎng)絡(luò)結(jié)構(gòu)所設(shè)計,主要解決網(wǎng)絡(luò)中集群節(jié)點在安全切換過程中的切換延遲高、信令開銷大的問題。
如圖1所示,6LoWPAN網(wǎng)絡(luò)由身份認證服務(wù)器(AAA)、邊界路由器(6LBR)、固定節(jié)點(SN)、移動集群頭節(jié)點(CH)和移動節(jié)點(MN)組成。
其中,AAA服務(wù)器負責授權(quán)6LoWPAN節(jié)點為合法設(shè)備,其始終可信。6LBR作為6LoWPAN網(wǎng)絡(luò)的網(wǎng)關(guān),對加入網(wǎng)絡(luò)節(jié)點進行身份驗證,本文假定其始終可信。SN一般由FFD設(shè)備實現(xiàn),負責跟蹤MN的移動,具有路由轉(zhuǎn)發(fā)功能,其中CH所連接的SN稱為CH的關(guān)聯(lián)SN。CH一般由移動FFD設(shè)備實現(xiàn),并代表集群成員通過關(guān)聯(lián)SN與其它節(jié)點進行通信。MN可以是FFD設(shè)備或RFD設(shè)備,用于收集感官信息。一個CH和多個相鄰的MN形成一個移動集群,并可以在6LoWPAN域內(nèi)隨意移動。
圖1 6LoWPAN網(wǎng)絡(luò)結(jié)構(gòu)
為實現(xiàn)網(wǎng)絡(luò)中移動集群的快速安全切換,設(shè)計了一種邊緣認證切換方法。該方法使節(jié)點在初始化階段就執(zhí)行完全身份驗證,并為集群節(jié)點提前生成切換密鑰。因此,當集群移動到新的關(guān)聯(lián)域時,可以根據(jù)提前生成的切換密鑰進行快速身份驗證。該方法包括三個階段:1)預(yù)注冊階段,2)初始化階段,3)移動切換階段。
3.2.1 預(yù)注冊階段
在網(wǎng)絡(luò)中部署節(jié)點時,都需通過安全通道向AAA服務(wù)器進行預(yù)注冊,為每個節(jié)點分配唯一的對稱密鑰,以標識節(jié)點合法身份,用于后續(xù)過程中身份認證和安全通信,具體流程如圖2所示:
首先,所有節(jié)點6LNi需將唯一身份標識IDi和隨機數(shù)r1i發(fā)送到認證服務(wù)器;若服務(wù)器檢查到節(jié)點未注冊,則為該節(jié)點生成臨時身份標識TIDi和隨機數(shù)r2i。
然后,雙方存儲節(jié)點信息
3.2.2 初始化階段
當一組新節(jié)點首次加入網(wǎng)絡(luò)時,需要與6LBR進行初始身份驗證,進而注冊地址加入網(wǎng)絡(luò)。除此之外,為了能夠?qū)崿F(xiàn)節(jié)點的邊緣認證,本文在集群節(jié)點注冊成功后,由6LBR為該集群預(yù)分配切換密鑰,具體流程如圖3所示,其中本文假設(shè)網(wǎng)絡(luò)中所有的SN節(jié)點已經(jīng)按照文獻[13]中的方法完成初始化并加入網(wǎng)絡(luò)。
圖3 移動集群節(jié)點的初始化過程
當一組新節(jié)點加入網(wǎng)絡(luò)時,根據(jù)距離遠近形成集群,并選擇能量大的節(jié)點為集群頭節(jié)點CH。然后,集群節(jié)點生成各自的身份認證消息MACi=HAMCki-R(TIDi,Ti,IDi,r2i),i=1,2,…N,其中N為集群內(nèi)節(jié)點數(shù)量。同時,CH執(zhí)行路由發(fā)現(xiàn)過程以配置全局IPv6地址AddrH,并聚合集群內(nèi)所有節(jié)點的認證消息,得到集群的聚合認證消息,如式(1)所示
MACsum=MAC1⊕…⊕MACN⊕MACH
List={TIDi,Ti}
(1)
其中MACH=HAMCkH-R(TIDH,TH,IDH,r2H)。
本文采用分層網(wǎng)絡(luò)結(jié)構(gòu),只需在6LBR上注冊CH地址即可,而將集群內(nèi)節(jié)點注冊到CH上,以減輕6LBR的內(nèi)存消耗。所以,由CH代替集群節(jié)點執(zhí)行身份認證和地址注冊。具體來說,CH使用與6LBR共享的對稱密鑰kH-R加密聚合認證消息,并通過鄰近的SN節(jié)點發(fā)送到6LBR,其中密文和驗證消息如式(2)所示
CTHR=EkH-R(List,AddrH,MACsum)
MACSN=HAMCkSN-R(TIDSN,TSN,TIDH,CTHR)
(2)
然后,6LBR向CH加密發(fā)送認證注冊成功的消息,并為CH-SN、MN-CH分配對稱密鑰kCH-SN和ki-CH,用于節(jié)點之間的安全通信,如式(3)所示
kCH-SN=H(kCH-R,IDH,IDSN,r3)
ki-CH=H(ki-R,IDi,IDCH,r4i)
(3)
為了實現(xiàn)切換過程中的邊緣認證,由6LBR為集群節(jié)點生成切換密鑰HKi=(TIDi,ki-nSN,r5i),并將其分別加密發(fā)送到CH和每個MN。同時,將集群的切換密鑰ListHK={HKi,i=0…N}加密發(fā)送到當前關(guān)聯(lián)SN的所有一跳鄰居節(jié)點nSN,使得該集群移動到目標節(jié)點nSN時,能夠驗證集群身份。6LBR返回消息中的具體參數(shù)如式(4)所示
CTRi=EkR-i(ki-CH,IDR,TR,HKi)
CTRSN=EkSN-R(kCH-SN,IDR,TR,CTnSNj)
CTRCH=EkCH-R(kCH-SN,IDR,ki-CH,TR,HKCH)
MACR=HAMCkSN-R(IDR,TR,CTRSN,CTRCH,CTRi)
(4)
其中CTnSNj=EknSNj-R(ListHK,IDR,TR),j=1,2…m,m為SN一跳范圍內(nèi)nSN節(jié)點的個數(shù)。
CTSN=EkSN-nSN(TIDSN,TSN,CTnSNj)
MACSN=HMACkSN-nSN(TIDSN,TSN,CTSN)
(5)
nSN收到消息后,驗證其合法性并存儲集群切換密鑰,用于切換過程中認證集群節(jié)點。CH收到響應(yīng)后,可從密文中獲得kCH-SN,ki-CH和切換密鑰,若消息合法,則CH完成與6LBR的雙向身份認證和地址注冊。
MN收到消息后,若消息合法,則根據(jù)CH地址生成全局IPv6地址,并使用ki-CH在CH上執(zhí)行地址注冊。CH在驗證MN身份之后,將MN地址添加到關(guān)聯(lián)表中,完成注冊。
3.2.3 移動切換階段
在移動切換過程中,現(xiàn)有方法要求每個MN都要與6LBR/AAA進行身份認證,從而導(dǎo)致更長的通信延遲和更大的計算開銷。本文通過使用初始化階段預(yù)分配的切換密鑰,實現(xiàn)了移動集群與目標關(guān)聯(lián)節(jié)點nSN之間的雙向身份驗證,而無需通過6LBR進行認證,降低了消息傳輸距離和信令開銷,具體流程如圖4所示。
首先,當原關(guān)聯(lián)節(jié)點pSN檢測到域內(nèi)節(jié)點即將離開其通信范圍時,為防止數(shù)據(jù)丟失,它將預(yù)切換消息發(fā)送到6LBR,通知其緩存發(fā)送的數(shù)據(jù),并等待切換完成。而CH在進入nSN通信域之前,需要聚合每個成員的切換消息得到MACsum,其中
MACi=HAMCki-nSN(TIDi,Ti,r5i)
(6)
當集群節(jié)點移動到nSN通信范圍后,CH使用切換密鑰將聚合消息加密發(fā)送到nSN,進行認證切換。
nSN收到CH的切換請求后,使用預(yù)分配的切換密鑰kCH-nSN驗證消息合法性。若消息合法,則將CH地址AddrH添加到關(guān)聯(lián)表中,完成集群地址注冊。然后,nSN生成會話密鑰SKCH-nSN并加密發(fā)送給CH,用于nSN-CH之間的安全通信。同時,向6LBR發(fā)送更新關(guān)聯(lián)表消息,向pSN發(fā)送刪除關(guān)聯(lián)項消息。
當CH收到nSN的響應(yīng)后,計算會話密鑰SKCH-nSN并驗證消息合法性。若消息合法,則CH和nSN完成雙向身份驗證。而pSN收到消息后,刪除關(guān)聯(lián)表中的CH關(guān)聯(lián)項。6LBR收到更新消息后,將CH-pSN的關(guān)聯(lián)關(guān)系改為CH-nSN,同時,為該集群生成新的切換密鑰HK,用于下一次的移動切換,并與緩存數(shù)據(jù)一起通過nSN發(fā)往目的地。
本文的邊緣認證方法是為了實現(xiàn)移動集群與新關(guān)聯(lián)節(jié)點nSN之間的相互認證,并在CH與nSN之間建立新的會話密鑰SKCH-nSN。本小節(jié)使用BAN邏輯和ProVerif驗證工具對上述過程進行了安全性驗證。
4.1.1 BAN邏輯證明
首先將切換階段的認證過程理想化,得到如下所示的交互消息
M1:SN→nSN:CTSN,MACSN
M2:CH→nSN:CTH
M3:nSN→CH:CTnSN,MACnSN
然后,假設(shè)在初始化階段之后,私密信息和密鑰都已成功分配給每個對應(yīng)的主體,如下所示
H1:6LN|≡TID,#(T)
H5:CH|≡SN?r6
H6:SN|≡r6
H8:MN/CHSN007C/≡6LBR?HK
最后,使用BAN邏輯規(guī)則驗證是否實現(xiàn)了安全目標,邏輯推導(dǎo)過程如下所示:
1)nSN|≡6LBR|≡HKi,由M1,H1,H7, Message Meaning Freshness和Nonce-Verification Rule可得。
2)nSN|≡HKi,由1)、H8和Jurisdiction Rule可得。
3)CH|≡HKH,MNi|≡HKi,由1-2)同理可得。
4)nSN|≡CH|≡(TH,AddrH,MACsum),由M2, 2-3),H1, Message Meaning Rule, Freshness Rule和Nonce-Verification Rule可得。
5)nSN|≡SKCH-nSN由2),H6, Belief Rule得。
6)CH|≡nSN|≡r6,由M3, 3),H1, Message Meaning, Freshness和Nonce Verification可得。
7)CH|≡SKCH-nSN,由3), 6),H4,H5, Jurisdiction Rule和Belief Rule可得。
通過使用新生成的密鑰SKCH-nSN驗證nSN發(fā)送的MACnSN,可確保CH認為nSN相信密鑰,并且CH相信密鑰。從5)和7)可以得出,CH和nSN都相信新生成的會話密鑰SKCH-nSN。
4.1.2 ProVerif正式驗證
本文在ProVerif仿真中定義了四個基本角色MN、CH、SN和6LBR,并假定集群中有兩個成員。定義了三個事件:CHAcnSN表示CH成功驗證nSN的合法性;nSNAcCH表示nSN成功驗證CH的合法性;End表示認證過程的結(jié)束。仿真結(jié)果如圖5所示,驗證結(jié)果表明本文方法能夠完成CH-nSN之間的雙向身份驗證,并生成私密的會話密鑰SKCH-nSN。
圖5 邊緣認證的ProVerif驗證結(jié)果
本小節(jié)從計算開銷和通信延遲兩個方面評估了本文方法的性能。為便于比較不同方法,在表1中列出了統(tǒng)一的參數(shù)配置。
表1 算法參數(shù)配置
4.2.1 計算開銷
如表2所示,列出了不同方法的計算成本,其中n表示一個集群內(nèi)MN的數(shù)量;TH,TMAC,TAES,TPM,TBP,TME,TECC分別表示Hash算法、消息認證碼、AES加密、點乘、雙線性配對、模冪和ECC算法的計算時間。根據(jù)文獻[12]中各個算法的計算開銷可以得出,隨著集群中MN數(shù)量的增加,所列方法的計算開銷均呈線性增長。而本文方法的系數(shù)最小,計算開銷小于其它方法。
表2 不同方法切換過程中的計算開銷
為進一步證明本文方法的性能,采用Java編碼仿真實現(xiàn)了SGMS、SPAM和本文方法。分別在集群內(nèi)MN數(shù)量為10和50的情況下對計算時間進行了比較,結(jié)果如圖6所示。由仿真結(jié)果可知,本文方法在切換階段的計算開銷最小。
圖6 切換過程的計算開銷
4.2.2 通信延遲
本文使用NS-3模擬器從網(wǎng)絡(luò)拓撲大小和集群大小兩個方面評估了EAKES、SPAM、SGMS和本文方法在切換過程中的通信延遲。為便于比較,本文統(tǒng)一在無線網(wǎng)絡(luò)環(huán)境下進行了仿真,參數(shù)如表3所示。
表3 NS-3模擬參數(shù)
1) 網(wǎng)絡(luò)拓撲大小
在EAKES和SGMS中,所有節(jié)點均要與6LBR進行驗證。因此,當網(wǎng)絡(luò)拓撲較大且節(jié)點距離6LBR較遠時,需經(jīng)過多跳傳輸,將增大通信延遲。SPAM方法雖然采用邊緣認證方法,但其只支持單個節(jié)點的切換,在切換過程中需發(fā)送大量信令,也將導(dǎo)致較大的通信延遲。而在本文方法中集群節(jié)點無需將認證消息發(fā)送到6LBR,新關(guān)聯(lián)節(jié)點即可驗證集群的合法性。因此,可以減少切換階段的信令開銷,降低通信延遲。仿真結(jié)果如圖7所示,在集群中MN數(shù)量為10的情況下,隨著網(wǎng)絡(luò)拓撲的增大,本文方法的通信延遲最低。
圖7 通信延遲隨網(wǎng)絡(luò)拓撲大小的變化
2) 移動集群大小
EAKES和SPAM方法只支持單個節(jié)點的切換,當多個節(jié)點同時進行切換時,將發(fā)送大量信令,增大通信延遲。SGMS方法雖然支持集群切換,但是其采用集中式認證方法,并需要為每個集群節(jié)點分配地址前綴。而在本文方法中,集群節(jié)點統(tǒng)一執(zhí)行切換認證,并且只需改變CH的關(guān)聯(lián)關(guān)系,集群內(nèi)節(jié)點由CH統(tǒng)一管理。由圖8所示的仿真結(jié)果可知,隨著集群內(nèi)MN數(shù)量的增多,本文方法的通信延遲最低。
圖8 通信延遲隨集群大小的變化
針對6LoWPAN網(wǎng)絡(luò)中移動集群安全切換效率低的問題,提出的邊緣認證切換方法通過預(yù)切換密鑰在關(guān)聯(lián)節(jié)點上執(zhí)行認證切換,減少了數(shù)據(jù)傳輸消耗。BAN邏輯和ProVerif驗證工具證明了該方法能夠為節(jié)點提供安全性;性能評估表明,該方法可以有效降低通信延遲和計算開銷,從而減少了切換延遲,能夠?qū)崿F(xiàn)移動集群的快速安全切換。