王寶亮,代佳增
(天津大學電氣自動化與信息工程學院,天津 300072)
物聯網技術的發展促進了無線傳感器網絡的廣泛應用,例如環境監控、工業自動化和智能醫療等[1]。這些應用通常需要大量的傳感器來覆蓋大面積場景,并長時間無人值守。而小型無線傳感器體積小、功率受限、計算和存儲資源少的特點可以很好地滿足以上需求,并且6LoWPAN技術可以更方便地將資源有限設備連接到Internet[2]。
但是,隨著實時訪問網絡服務的需求不斷增長,需要無線設備在不同域之間進行頻繁切換操作[3,4],這可能導致較長的切換延遲、數據包丟失等問題。因此,為了在無線設備與Internet之間提供無縫連接,已經提出了許多移動性管理協議,比如基于主機的移動IPv6(MIPv6)協議和代理MIPv6協議等。盡管許多解決方案從各個方面改善了切換性能,但是切換過程中的安全性問題并未得到太多解決。
由于6LoWPAN網絡的特性,使得它容易受到安全攻擊。惡意節點可以輕松加入網絡、竊取和篡改數據或進行DOS攻擊[5]。為了解決資源受限設備移動過程中的安全問題,已經提出了幾種安全切換方法。但是,大多數現有解決方法要求節點每次加入新域時都需要與服務器或6LBR執行完整的身份驗證過程,信令開銷大,并且大部分方法僅支持單個節點的移動切換。
基于此,針對網絡中節點在切換認證過程中,都需要與6LBR進行身份驗證而帶來的通信延遲高的缺點,本文通過在切換之前為移動集群和目標關聯節點預分配切換密鑰,設計了一種邊緣認證切換方法。對比現有方法,該方法支持集群節點的安全切換,并且在切換時由關聯節點驗證節點身份,而無需向6LBR發送認證消息,進而能夠降低通信延遲、減小信令開銷。采用的Hash函數、對稱密鑰和消息認證碼等輕量級加密算法在保證安全性的同時,降低了計算開銷。
為了解決資源受限的6LoWPAN設備的安全問題,Oliveira等人[6]提出了一種用于6LoWPAN網絡的準入控制方法,旨在將未經授權的節點與合法節點隔離開。文獻[7]提出了一種安全密碼驗證機制(SPAM),用于PMIPv6中的安全快速切換。Ilsun等人[8]對SPAM方法進行了驗證分析,指出了SPAM方法存在的安全漏洞并給出了相應的解決措施。但是,這些方案只能支持一個節點的安全切換,而6LoWPAN網絡中移動集群的安全切換問題仍未得到有效解決。
針對集群的安全切換問題,Lai等人[9]提出了一種安全高效的組漫游(SEGR)協議。該協議中MME使用聚合簽名技術與組中多個MTCD進行相互認證。但是,該協議不符合切換驗證的要求。此外,雙線性配對操作具有高計算開銷。同時,為了克服網絡開銷和安全漏洞,Cao等人[10]基于多簽名技術提出了組切換認證(UGHA)協議。該協議建立了多個MTCD與目標基站之間的相互認證,但該方法中的模塊冪運算具有高計算成本。在路由交換認證(G2RHA)協議[11]中,由cMRN代表組內的MRN與目標DeNB執行相互認證。由于使用對稱加密算法,開銷較小。但此協議無法保護隱私,不能維護KFS/KBS。盡管這些安全機制旨在改進集群切換身份驗證,但由于系統架構和設備功能不同,不適合將這些解決方案直接遷移到6LoWPAN網絡。
為了提供6LoWPAN網絡中集群的安全切換,Qiu等人[12]提出了一種基于PMIPv6的安全組切換方案(SGMS),僅使用輕量級加密算法,具有較小的計算成本。但是,其在切換過程中采用集中認證方式,即所有節點均需與認證服務器執行相互認證。而通常移動節點與服務器相距較遠,需要經過多跳傳輸,這將產生較高的通信延遲。
在充分對比以上切換認證技術的基礎上,本文提出了一種用于6LoWPAN網絡中移動集群的邊緣認證切換方法,替代集中式認證,節點只需與目標關聯節點進行認證即可,并且僅使用簡單加密算法,有效降低了計算開銷和通信延遲,同時能夠滿足安全要求。
本文的切換認證方法基于廣泛應用的6LoWPAN分層網絡結構所設計,主要解決網絡中集群節點在安全切換過程中的切換延遲高、信令開銷大的問題。
如圖1所示,6LoWPAN網絡由身份認證服務器(AAA)、邊界路由器(6LBR)、固定節點(SN)、移動集群頭節點(CH)和移動節點(MN)組成。
其中,AAA服務器負責授權6LoWPAN節點為合法設備,其始終可信。6LBR作為6LoWPAN網絡的網關,對加入網絡節點進行身份驗證,本文假定其始終可信。SN一般由FFD設備實現,負責跟蹤MN的移動,具有路由轉發功能,其中CH所連接的SN稱為CH的關聯SN。CH一般由移動FFD設備實現,并代表集群成員通過關聯SN與其它節點進行通信。MN可以是FFD設備或RFD設備,用于收集感官信息。一個CH和多個相鄰的MN形成一個移動集群,并可以在6LoWPAN域內隨意移動。

圖1 6LoWPAN網絡結構
為實現網絡中移動集群的快速安全切換,設計了一種邊緣認證切換方法。該方法使節點在初始化階段就執行完全身份驗證,并為集群節點提前生成切換密鑰。因此,當集群移動到新的關聯域時,可以根據提前生成的切換密鑰進行快速身份驗證。該方法包括三個階段:1)預注冊階段,2)初始化階段,3)移動切換階段。
3.2.1 預注冊階段
在網絡中部署節點時,都需通過安全通道向AAA服務器進行預注冊,為每個節點分配唯一的對稱密鑰,以標識節點合法身份,用于后續過程中身份認證和安全通信,具體流程如圖2所示:
首先,所有節點6LNi需將唯一身份標識IDi和隨機數r1i發送到認證服務器;若服務器檢查到節點未注冊,則為該節點生成臨時身份標識TIDi和隨機數r2i。
然后,雙方存儲節點信息
3.2.2 初始化階段
當一組新節點首次加入網絡時,需要與6LBR進行初始身份驗證,進而注冊地址加入網絡。除此之外,為了能夠實現節點的邊緣認證,本文在集群節點注冊成功后,由6LBR為該集群預分配切換密鑰,具體流程如圖3所示,其中本文假設網絡中所有的SN節點已經按照文獻[13]中的方法完成初始化并加入網絡。

圖3 移動集群節點的初始化過程
當一組新節點加入網絡時,根據距離遠近形成集群,并選擇能量大的節點為集群頭節點CH。然后,集群節點生成各自的身份認證消息MACi=HAMCki-R(TIDi,Ti,IDi,r2i),i=1,2,…N,其中N為集群內節點數量。同時,CH執行路由發現過程以配置全局IPv6地址AddrH,并聚合集群內所有節點的認證消息,得到集群的聚合認證消息,如式(1)所示
MACsum=MAC1⊕…⊕MACN⊕MACH
List={TIDi,Ti}
(1)
其中MACH=HAMCkH-R(TIDH,TH,IDH,r2H)。
本文采用分層網絡結構,只需在6LBR上注冊CH地址即可,而將集群內節點注冊到CH上,以減輕6LBR的內存消耗。所以,由CH代替集群節點執行身份認證和地址注冊。具體來說,CH使用與6LBR共享的對稱密鑰kH-R加密聚合認證消息,并通過鄰近的SN節點發送到6LBR,其中密文和驗證消息如式(2)所示
CTHR=EkH-R(List,AddrH,MACsum)
MACSN=HAMCkSN-R(TIDSN,TSN,TIDH,CTHR)
(2)

然后,6LBR向CH加密發送認證注冊成功的消息,并為CH-SN、MN-CH分配對稱密鑰kCH-SN和ki-CH,用于節點之間的安全通信,如式(3)所示
kCH-SN=H(kCH-R,IDH,IDSN,r3)
ki-CH=H(ki-R,IDi,IDCH,r4i)
(3)
為了實現切換過程中的邊緣認證,由6LBR為集群節點生成切換密鑰HKi=(TIDi,ki-nSN,r5i),并將其分別加密發送到CH和每個MN。同時,將集群的切換密鑰ListHK={HKi,i=0…N}加密發送到當前關聯SN的所有一跳鄰居節點nSN,使得該集群移動到目標節點nSN時,能夠驗證集群身份。6LBR返回消息中的具體參數如式(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一跳范圍內nSN節點的個數。

CTSN=EkSN-nSN(TIDSN,TSN,CTnSNj)
MACSN=HMACkSN-nSN(TIDSN,TSN,CTSN)
(5)
nSN收到消息后,驗證其合法性并存儲集群切換密鑰,用于切換過程中認證集群節點。CH收到響應后,可從密文中獲得kCH-SN,ki-CH和切換密鑰,若消息合法,則CH完成與6LBR的雙向身份認證和地址注冊。

MN收到消息后,若消息合法,則根據CH地址生成全局IPv6地址,并使用ki-CH在CH上執行地址注冊。CH在驗證MN身份之后,將MN地址添加到關聯表中,完成注冊。
3.2.3 移動切換階段
在移動切換過程中,現有方法要求每個MN都要與6LBR/AAA進行身份認證,從而導致更長的通信延遲和更大的計算開銷。本文通過使用初始化階段預分配的切換密鑰,實現了移動集群與目標關聯節點nSN之間的雙向身份驗證,而無需通過6LBR進行認證,降低了消息傳輸距離和信令開銷,具體流程如圖4所示。
首先,當原關聯節點pSN檢測到域內節點即將離開其通信范圍時,為防止數據丟失,它將預切換消息發送到6LBR,通知其緩存發送的數據,并等待切換完成。而CH在進入nSN通信域之前,需要聚合每個成員的切換消息得到MACsum,其中
MACi=HAMCki-nSN(TIDi,Ti,r5i)
(6)
當集群節點移動到nSN通信范圍后,CH使用切換密鑰將聚合消息加密發送到nSN,進行認證切換。
nSN收到CH的切換請求后,使用預分配的切換密鑰kCH-nSN驗證消息合法性。若消息合法,則將CH地址AddrH添加到關聯表中,完成集群地址注冊。然后,nSN生成會話密鑰SKCH-nSN并加密發送給CH,用于nSN-CH之間的安全通信。同時,向6LBR發送更新關聯表消息,向pSN發送刪除關聯項消息。
當CH收到nSN的響應后,計算會話密鑰SKCH-nSN并驗證消息合法性。若消息合法,則CH和nSN完成雙向身份驗證。而pSN收到消息后,刪除關聯表中的CH關聯項。6LBR收到更新消息后,將CH-pSN的關聯關系改為CH-nSN,同時,為該集群生成新的切換密鑰HK,用于下一次的移動切換,并與緩存數據一起通過nSN發往目的地。
本文的邊緣認證方法是為了實現移動集群與新關聯節點nSN之間的相互認證,并在CH與nSN之間建立新的會話密鑰SKCH-nSN。本小節使用BAN邏輯和ProVerif驗證工具對上述過程進行了安全性驗證。
4.1.1 BAN邏輯證明
首先將切換階段的認證過程理想化,得到如下所示的交互消息
M1:SN→nSN:CTSN,MACSN
M2:CH→nSN:CTH
M3:nSN→CH:CTnSN,MACnSN
然后,假設在初始化階段之后,私密信息和密鑰都已成功分配給每個對應的主體,如下所示
H1:6LN|≡TID,#(T)



H5:CH|≡SN?r6
H6:SN|≡r6

H8:MN/CHSN007C/≡6LBR?HK

最后,使用BAN邏輯規則驗證是否實現了安全目標,邏輯推導過程如下所示:
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發送的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表示認證過程的結束。仿真結果如圖5所示,驗證結果表明本文方法能夠完成CH-nSN之間的雙向身份驗證,并生成私密的會話密鑰SKCH-nSN。

圖5 邊緣認證的ProVerif驗證結果
本小節從計算開銷和通信延遲兩個方面評估了本文方法的性能。為便于比較不同方法,在表1中列出了統一的參數配置。

表1 算法參數配置
4.2.1 計算開銷
如表2所示,列出了不同方法的計算成本,其中n表示一個集群內MN的數量;TH,TMAC,TAES,TPM,TBP,TME,TECC分別表示Hash算法、消息認證碼、AES加密、點乘、雙線性配對、模冪和ECC算法的計算時間。根據文獻[12]中各個算法的計算開銷可以得出,隨著集群中MN數量的增加,所列方法的計算開銷均呈線性增長。而本文方法的系數最小,計算開銷小于其它方法。

表2 不同方法切換過程中的計算開銷
為進一步證明本文方法的性能,采用Java編碼仿真實現了SGMS、SPAM和本文方法。分別在集群內MN數量為10和50的情況下對計算時間進行了比較,結果如圖6所示。由仿真結果可知,本文方法在切換階段的計算開銷最小。

圖6 切換過程的計算開銷
4.2.2 通信延遲
本文使用NS-3模擬器從網絡拓撲大小和集群大小兩個方面評估了EAKES、SPAM、SGMS和本文方法在切換過程中的通信延遲。為便于比較,本文統一在無線網絡環境下進行了仿真,參數如表3所示。

表3 NS-3模擬參數
1) 網絡拓撲大小
在EAKES和SGMS中,所有節點均要與6LBR進行驗證。因此,當網絡拓撲較大且節點距離6LBR較遠時,需經過多跳傳輸,將增大通信延遲。SPAM方法雖然采用邊緣認證方法,但其只支持單個節點的切換,在切換過程中需發送大量信令,也將導致較大的通信延遲。而在本文方法中集群節點無需將認證消息發送到6LBR,新關聯節點即可驗證集群的合法性。因此,可以減少切換階段的信令開銷,降低通信延遲。仿真結果如圖7所示,在集群中MN數量為10的情況下,隨著網絡拓撲的增大,本文方法的通信延遲最低。

圖7 通信延遲隨網絡拓撲大小的變化
2) 移動集群大小
EAKES和SPAM方法只支持單個節點的切換,當多個節點同時進行切換時,將發送大量信令,增大通信延遲。SGMS方法雖然支持集群切換,但是其采用集中式認證方法,并需要為每個集群節點分配地址前綴。而在本文方法中,集群節點統一執行切換認證,并且只需改變CH的關聯關系,集群內節點由CH統一管理。由圖8所示的仿真結果可知,隨著集群內MN數量的增多,本文方法的通信延遲最低。

圖8 通信延遲隨集群大小的變化
針對6LoWPAN網絡中移動集群安全切換效率低的問題,提出的邊緣認證切換方法通過預切換密鑰在關聯節點上執行認證切換,減少了數據傳輸消耗。BAN邏輯和ProVerif驗證工具證明了該方法能夠為節點提供安全性;性能評估表明,該方法可以有效降低通信延遲和計算開銷,從而減少了切換延遲,能夠實現移動集群的快速安全切換。