苗慧宇,陳 勇,孫知信
(1.南京郵電大學 寬帶無線通信與傳感網技術重點實驗室,江蘇 南京 210003;2.南京龍淵微電子有限公司,江蘇 南京 210000)
一種抗攻擊的6Lowpan地址注冊的算法
苗慧宇1,陳 勇2,孫知信1
(1.南京郵電大學 寬帶無線通信與傳感網技術重點實驗室,江蘇 南京 210003;2.南京龍淵微電子有限公司,江蘇 南京 210000)
針對6Lowpan網絡中日益嚴峻的網絡安全問題,提出了一種抗網絡攻擊的6Lowpan節點地址注冊算法。該算法在RFC 6775的ARO字段內選取2 bits,分別對應SLLAO字段攜帶的4種注冊地址部分,待注冊節點向已發現的鄰居路由發送攜帶了修改后的ARO和SLLAO字段的NS幀后,鄰居路由根據自己的鄰居緩存(NCE)內的條目對該NS幀進行NA回應;待注冊節點收到該NA幀后,與自身的注冊地址相比對并發送相應的NS幀,鄰居路由接收后再次根據NCE條目進行NA幀回應;待注冊節點收到鄰居路由發送的確認性NA幀后,完成注冊過程。理論分析表明,所提出的地址注冊算法針對偽節點發送的NS/NA幀攻擊都能夠進行良好的防御,對比RFC 6775所提供的方式具有更好的抗網絡攻擊性。同時該算法將注冊過程的128位注冊地址縮短為48位/16位,在降低網絡帶寬和延時方面有良好的效果。
6Lowpan;鄰居發現;地址注冊;IPv6;802.15.4
隨著數據通信的不斷發展,物聯網應運而生。物聯網,不僅包含了所有支持IP功能并且可以聯入互聯網的嵌入式設備和網絡,還包含了監測和控制這些設備的互聯網服務。IPv6和IEEE802.15.4的提出為物聯網的發展奠定了基礎,在此基礎上,ZigBee,WirelessHART,MiWi,6LoWPAN等技術蓬勃發展。其中,6LoWPAN以其與IPv6相融合的技術優勢獲得了國內外學者的廣泛關注與研究。
6LoWPAN是一套由因特網工程任務組(IETF)定義的標準。6LoWPAN的技術定義是:6LoWPAN,通過添加一個適配層并對相關的一些協議做優化,實現在低速無線網絡中運行的簡單嵌入式設備上有效地使用IPv6。第一個6LoWPAN規范于2007年發布,其首先發布了RFC4919[1],該文檔指定了6LoWPAN初始標準化的基本要求和目標。然后同年另一個標準RFC4944[2]規定了6LoWPAN的格式和功能。此后關于6LoWPAN的研究日漸火熱,特別是報頭壓縮、路由選擇、鄰居發現等領域更是得到了學者們的廣泛關注。其中,6LoWPAN鄰居發現作為6LoWPAN組網的基礎,基于標準RFC4861[3]、RFC4862[4],ITEF工作組于2012年發布RFC6775[5]。該標準對IPv6的鄰居發現協議進行了簡單優化,使其更加適合于低功耗的局域網絡。
根據RFC6775規定,當節點在鄰居發現過程中進行地址注冊時,鄰居請求幀(NS)攜帶地址注冊選項(ARO)和源鏈路地址選項(SLLAO)字段向已發現的路由節點進行注冊,該路由節點維護一個鄰居緩存條目,用于保存注冊的節點的EUI-64字段以及注冊IPv6地址。在該過程中,SLLAO字段中注冊的地址必須是注冊節點的IPv6源地址,即128位地址段。同時,在注冊過程中,一旦偽節點發送與注冊節點地址相同的IPv6地址,該IPv6地址失效,注冊節點重新生成注冊地址,造成大量的IP地址浪費和網絡帶寬的消耗,形成網絡攻擊。
為此,提出了一種抗網絡攻擊的節點注冊算法。該算法通過修改SLLAO上攜帶的注冊地址內容,并改進節點注冊算法,以達到抗擊網絡攻擊、減小網絡帶寬消耗、縮短網絡時延的目的。
作為6LoWPAN組網的基礎,鄰居發現過程得到了學者們的廣泛關注。Jamal等[6]提出了一個基于傳感/執行器節點的6LoWPAN架構,其使用簡單服務定位協議(SSLP),并回應所有來自于用戶設備的服務相關問題。該文獻還對6LoWPAN鄰居發現協議與架構進行了整合定義;Wang[7]在移動網絡中提出了一種新的鄰居發現架構,在該架構中,一個被網絡前綴標識的設備管理傳感器節點可以提供它們本身的地理信息,所以這些節點不需要被CoA配置,不訪問它們的home代理而直接訪問。通過這種方式,減少了切換延遲和通信延遲;文獻[8]利用有窮機進行在線的被動測試,利用已有的被動測試方法,在其中添加RFC6775中增添的ND的幾項標準進行改進,并利用偽代碼將算法表示出來;文獻[9]為6LoWPAN智能電網的應用提供了一種高效節能的鄰居發現協議。設計了一個新的鄰居發現架構的建設機制,并提供了數學證明的建議概念。
Thomas和Pascal[10]在2015年提出了一種稱為有效鄰居發現或無線鄰居發現(WiND)的方式,其可用做任何IPv6 mesh網絡的抽象,并且可使多個這樣的網格在一個聯合的骨干網上連接,并有效形成IETF稱之為“多鏈路子網”的網絡模型;文獻[11]在Contiki操作系統下給出了基于RFC6775的鄰居發現協議下最顯著的特征實現;Luo等[12]給出了配置6LoWPAN節點地址以及鄰居發現過程中的基本步驟,內容管理和分布式策略也用于6LoWPAN領域,并為RFC6775提供了方法;文獻[13]對6LoWPAN鄰居發現協議進行了一致性測試,規范方法用來對鄰居發現方法進行建模;Julien等[14]優化了IP的通信棧,并提出了在LLN下對SAA的完整評價,并基于LLN下的鄰居發現機制對該評價做了理論分析。
IETF于2016年發布了修改后的草稿文檔Address Protected Neighbor Discovery for Low-power and Lossy Networks(draft-sarikaya-6lo-ap-nd-00)[15],擬在解決節點注冊過程中的安全性問題。該方案擬采用加密技術,利用UID代替原先的EUI-64作為接口標識,實現地址安全注冊的功能。Wang等提出了一種代替DAD機制的方案[16],用于減少網絡帶寬的消耗。
為此,結合文獻[16]中的方法,對6LoWPAN節點注冊過程給出一種抗網絡攻擊的算法,從而解決文獻[15]中提到的注冊安全性問題。該方法并未改變原有6LoWPAN鄰居發現的信息交換方式,與原RFC6775提供的鄰居發現協議兼容,并未利用復雜的加解密方式進行網絡防護,具有良好的推廣利用價值。
2.1網絡架構建立及相關術語
6LoWPAN的架構主要由許多低功耗無線局域網(LoWPAN)組成。在6LoWPAN網絡中,每個LoWPAN通過邊緣路由器(LBR)接入Internet網絡。LBR不僅處理進出于LoWPAN的數據報,還承擔著數據報壓縮與解壓縮、鄰居發現等多種功能。同時,當互聯是IPv4網絡時,LBR還要處理IPv4的互聯,因此,LBR在LoWPAN中起著非常重要的作用。在6LoWPAN中,同一個LoWPAN的IPv6網絡前綴相同,其網絡前綴也由LBR分配。當進行鄰居發現時,所有節點都將在此LoWPAN的LR上進行注冊(具體過程見2.3節)。當節點發生移動時,若在自組織LoWPAN和/或簡單LoWPAN中發生,則其IP地址前綴將發生改變;然而在擴展LoWPAN中,多個LBR共享一個骨干鏈路,并在工作時將大部分鄰居發現消息加載到骨干鏈路進行協同工作,因此節點在擴展LoWPAN中的移動非常簡單,從而簡化了LoWPAN節點的操作。具體內容參見文獻[5]。
下面對用到的6LoWPAN相關術語進行定義和解釋。
定義1:6LoWPAN節點或路由器(6LN/6LR):LoWPAN節點或路由器是在LoWPAN中任意的主機或路由器,具有唯一的IPv6地址,并支持ICMPv6和UDP。
定義2:6LoWPAN邊界路由器(LBR):處在一個LoWPAN的邊界,作為該LoWPAN聯入互聯網或與其他網絡連通的網關。LBR為其服務的LoWPAN網絡廣播其IPv6前綴。
定義3:Neighbor Solicitation (NS):主機節點通過發送單播NS消息進行節點地址注冊。
定義4:Neighbor Advertisement (NA):用于回復收到的NS消息,或為了數據更新而主動發送。
定義5(注冊):一個LoWPAN節點發送一個帶有地址注冊選項的鄰居請求消息到一個路由器,并為該LoWPAN節點創建一個帶有特定超時的鄰居緩存條目(NCE)的過程。
定義6(SLLAO):源地址注冊選項,該選項在節點進行地址注冊時攜帶源節點的IP地址。
定義7(ARO):地址注冊選項,在6LoWPAN節點進行地址注冊時使用。
2.2地址構造
根據RFC6775[5]標準,6LN在注冊開始前生成16位的短地址,該地址可修改,因此在注冊過程中可以避免地址被重復注冊。以此16位短地址生成的128位IPv6地址作為臨時地址,進行節點注冊。利用文獻[16]提及的思想,將這個128位臨時地址按照表1進行劃分,對這3部分進行命名,便于在后續的算法中使用。

表1 臨時注冊地址劃分
其中,在同一個LoWPAN中,IPv6地址的前64 bits,即前綴地址都相同。后64位可以使用EUI-64或16位短地址生成。采用16位短地址,并且將其稱為SA,并將隨機地址剩下的部分稱為預檢查地址,每部分的作用將在2.3節說明。
2.3算法描述
當6LN完成路由發現過程后,將在對應的6LR上進行節點的地址注冊。更改了RFC6775中提出的ARO,將其提供的ARO選項格式中保留部分取出2 bits作為節點安全注冊過程中的檢驗標識符位(Detected ID,DID)。更改后的ARO選項如圖1所示。

圖1 更改后的ARO選項
其中,各字段意義如下所示:
Type:類型,33。
Length:長度。選項的長度以8字節為單位計算,總為2。
State:狀態。指出NA消息響應中注冊表的狀態。在NS消息中設置為0。
Registration Lifetime:注冊時間,時間量以60 s為單位計算,路由器應當為包括此選項的NS消息的發送者保留于鄰居緩存條目中。
EUI-64:該字段通過不可變的EUI-64標識符,唯一地標識注冊地址的接口。
DID:該字段為添加字段,用于關聯具體的注冊地址。DID與注冊地址的關系及意義見表2。

表2 DID意義及用法
同時,擴展定義了6LR內鄰居緩存的內容,具體內容見表3。表3給出了3個已經成功注冊節點的例子。其中,橫向的省略號表示還有更多的節點地址,縱向的省略號表示每個節點地址還可以包含更多的信息。

表3 鄰居緩存條目(NCE)
利用以上添加的DID字段,提出了抗網絡攻擊的節點安全注冊算法,消息交互過程如圖2所示。

圖2 6LN與6LR消息交互圖
該抗網絡攻擊算法如下所述:
步驟1:6LN根據其獲得的RA幀,發送NS請求。具體為:
1)IP頭部。
(1)源路徑設置為非鏈路本地地址;
(2)目的地址為6LR的非鏈路本地地址。
2)ICMPv6部分。
(1)類型設置為157;
(2)DID設置為00;
(3)EUI-64為唯一的接口標識;
(4)隨機生成preCA和SA,注冊地址攜帶preCA。
步驟2:目的6LR收到NS幀后,解析NS幀,若第4個字節最后一位為0,讀取EUI-64和preCA信息,若最后一位為1,轉至步驟4。
步驟2.1:將EUI-64信息放入EUI-64緩存棧中;
步驟2.2:將preCA信息放入preCA緩存棧中;
步驟2.3:對preCA緩存棧進行檢索:
步驟2.3.1:沒有發現相同的preCA,則對EUI-64進行檢索。
(1)沒有發現相同的EUI-64,則返回NA幀,其DID設置為11,注冊地址為空;
(2)發現相同的EUI-64,則修改此EUI-64所對應的preCA,并返回DAD幀,其DID為11,注冊地址為空。
步驟2.3.2:發現相同的preCA,則對EUI-64進行檢索。
(1)沒有發現相同的EUI-64,則返回NA幀,其DID設置為10,注冊地址為所有preCA相同的注冊條目的SA值;
(2)發現相同的EUI-64,則返回NA幀,其DID設置為11,注冊地址為對應的SA。
步驟3:6LN收到NA幀,并對NA幀進行解析。
步驟3.1:若第4個字節最后一位為0,則6LN按照48 bits每組將得到的注冊地址分段后,對得到的n個SA計數。
步驟3.1.1:若n≥247,返回步驟1,節點重新生成preCA;
步驟3.1.2:否則,隨機生成一個與這n個節點都不相同的SA,并返回NS幀,其DID為01,注冊地址為SA。
步驟3.2:若第4個字節最后一位為1,則解析注冊地址部分。
步驟3.2.1:若注冊地址為空,說明preCA注冊成功,此時返回NS幀,其DID為01,注冊地址為SA;
步驟3.2.2:若注冊地址非空,而是1個SA值,則將此SA值與6LN自身的SA值進行對比。
(1)若兩者相同,則說明節點注冊成功,無返回幀,轉至步驟5;
(2)若兩者不同,則返回NS幀,其DID為01,注冊地址為SA。
步驟4:6LR收到NS后,解析NS,將其注冊地址部分取出,放入對應EUI-64的SA棧中存儲。存儲完畢后,返回NA幀,其DID設置為11,注冊地址為SA,進入步驟3。
步驟5:6LN注冊結束,利用其RandA和前綴地址共同構成6LN的全球IP地址。
步驟6:6LN周期性地發送NS和接收NA,以保證注冊信息的更新和容錯。
流程如圖3所示。根據該流程圖,偽節點進行的NS/NA幀的網絡攻擊都會被6LN在注冊的過程中避免,從而實現節點的安全注冊。
3.1基礎網絡構建
以自組織LoWPAN為例(簡單LoWPAN和擴展LoWPAN的注冊過程和攻擊處理方式相同,故不再贅述),構建了一個狀態如下的LoWPAN網絡。
(1)當新節點X試圖在一個含有K個網絡節點條目的LBR上注冊時,網絡攻擊者P試圖干擾X的注冊過程。
(2)新節點X的EUI-64為xIID,其preCA為xp,SA為xS(若在注冊過程中更改,則變為x2S、x3S等)。
(3)網絡攻擊者節點的EUI-64為pIID,其偽造的NS幀中preCA稱為pp。DID=01時,對應SA稱為pS;DID=10時,對應SA稱為p2S;DID=11時,對應SA稱為p3S。
3.2NS幀偽造
1)p偽造了DID為00,注冊地址為pp。
(1)pIID==xIID,進入步驟2.3.2,pIID對應的,即X對應的preCA更改為pp。因為EUI-64占據64位,pIID==xIID的情況概率為1/264,幾乎為0。
(2)pIID!=xIID,則會在6LR鄰居緩存中另開辟一條EUI-64為pIID,并不會影響節點X的注冊。
2)p偽造了DID為01,注冊地址為pS。
(1)pIID==xIID,進入步驟4,6LR返回一個DID為11,注冊地址為pS的NA幀。節點X收到后,檢查pS與自身SA是否相同。若相同,則沒有達到攻擊效果;若不相同,返回DID=11,注冊地址為xNID的NA幀,從而糾正pNID的注冊錯誤。
(2)pIID!=xIID,則不會影響節點X的注冊。

圖3 抗網絡攻擊的地址注冊算法流程
3.3NA幀偽造
1)p偽造了DID為10,注冊地址為p2S的幀。
(1)進入步驟3.1.1,此時節點重新生成SA,重啟注冊過程;
(2)進入步驟3.1.2,產生一個新的稱為x2S的NID值后,節點發送DID=01,注冊地址為x2S的NS幀給6LR。
2)p偽造了DID為11的幀。
(1)注冊部分為p3S,節點收到后進入步驟3。若p3S!=xS,則進入步驟3.2.2(1),此時發送DID為01,注冊地址為SA的NS幀;若p3S==xS,則進入步驟3.2.2(2),此時節點默認自己已在6LR上成功注冊。因為xS的字節數為16,故出現此情況概率為1/216。
(2)注冊部分為空,節點收到后,按照上面i(A)情況的處理方式處理。
根據上述情況,基本可以判斷,無論攻擊者偽造何種數據幀都無法干擾6LN進行節點注冊,避免了IPv6地址浪費的情況。
為了解決6LoWPAN網絡在鄰居發現階段存在的惡意鏈接等攻擊的情況,提出了一種抗網絡攻擊的6LoWPAN地址注冊算法。在ARO選項字段增加2 bits作為檢驗ID(DID),并利用DID與SLLAO攜帶的注冊地址關系,在提出算法中根據不同的情況變換注冊地址部分內容。根據理論分析,證明該算法具有良好的抗網絡攻擊性能,即不論偽節點發送何種消息攻擊,該算法都能在極大概率下正常工作,同時由原先攜帶的128 bits變為48/16 bits,大大縮減了網絡帶寬的消耗,減少了網絡時延,具有良好的實用性。
盡管該算法在一定程度上抵抗了網絡攻擊,但在NA幀中若攜帶過多的SAs時,網絡負載會增加,并且多輪回的詢問機制在大量偽節點攻擊時反而會增加網絡的負載以及帶寬消耗,因此下一步將進一步優化注冊方法,同時對網絡延時的變化、網絡能量消耗等問題做進一步研究。
[1] Kushalnagar N,Montenegro G,Schumacher C.IPv6 over low-power wireless personal area networks (6LoWPANs):overview,assumptions,problem statement,and goals[S].Fremont,CA,USA:Internet Engineering Task Force,2007.
[2] Montenegro G,Kushalnagar N,Culler D.Transmission of IPv6 packets over IEEE 802.15.4 networks[S].Fremont,CA,USA:Internet Engineering Task Force,2007.
[3] Narten T,Nordmark E,Simpson W,et al.Neighbor discovery for IP version 6(IPv6)[S].Fremont,CA,USA:Internet Engineering Task Force,2007.
[4] Thomson S,Narthen T,Jinmei T.IPv6 stateless address autoconfiguration[S].Fremont,CA,USA:Internet Engineering Task Force,2007.
[5] Shelby Z,Chakrabarti E S,Nordmark E,et al.Neighbor discovery optimization for IPv6 over low-power wireless personal area networks (6LoWPANs)[S].Fremont,CA,USA:Internet Engineering Task Force,2012.
[6] Mohiuddin J,Bhadram V,Palli S,et al.6LoWPAN based service discovery and RESTful web accessibility for internet of things[C]//International conference on advances in computing,communications and informatics.[s.l.]:IEEE,2014:24-30.
[7] Wang X.A mobility frame for 6LoWPAN WSN[J].IEEE Sensors Journal,2016,16(8):2755-2762.
[8] Chai H,Huang X,Qian J,et al.A passive conformance testing method for 6LoWPAN network[C]//IEEE international conference on green computing & communications & IEEE internet of things & IEEE cyber.[s.l.]:IEEE,2013:585-590.
[9] Choi S,Lee W,Youn J H,et al.An energy-efficient neighbor discovery protocol for 6LoWPAN smart grid applications[C]//Wireless communications and networking conference workshops.[s.l.]:IEEE,2015:52-57.
[10] Watteyne T,Thubert P.Efficient 6LoWPAN neighbor discovery applied to multilink IoT subnets[C]//2015 IEEE international conference on communications.[s.l.]:IEEE,2015:642-647.
[11] Seliem M A M,Elsayed K M F,Khattab A.Performance evaluation and optimization of neighbor discovery implementation over Contiki OS[C]//2014 IEEE world forum on internet of things.[s.l.]:IEEE,2014:119-123.
[12] Luo B,Tang S,Sun Z.Research of neighbor discovery for IPv6 over low-power wireless personal area networks[C]//11th international conference on heterogeneous networking for quality,reliability,security and robustness.[s.l.]:IEEE,2015:233-238.
[13] Xu M,Huang X.Research on conformance testing method for 6LoWPAN neighbor discovery protocol and system implementation[C]//2014 IEEE 3rd international conference on cloud computing and intelligence systems.[s.l.]:IEEE,2014:738-743.
[14] Montavont J,Cobarzan C,Noel T.Theoretical analysis of IPv6 stateless address autoconfiguration in low-power and lossy wireless networks[C]//IEEE international conference on computing & communication technologies-research,innovation,and vision for the future.[s.l.]:IEEE,2015:198-203.
[15] Sarikaya B,Thubert E.Address protected neighbor discovery for low-power and lossy networks[S].Fremont,CA,USA:Internet Engineering Task Force,2016.
[16] Wang X,Cheng H,Yao Y.Addressing with an improved DAD for 6LoWPAN[J].IEEE Communications Letters,2016,20(1):73-76.
An Anti-attack Algorithm for6Lowpan Address Registration
MIAO Hui-yu1,CHEN Yong2,SUN Zhi-xin1
(1.Key Laboratory of Broadband Wireless Communication and Sensor Network Technology,Nanjing University of Posts and Telecommunications,Nanjing 210003,China;2.Nanjing Longyuan Microelectronic Company Limited,Nanjing 210000,China)
In view of the increasingly serious network security problem in 6Lowpan network,an 6Lowpan node address registration algorithm against network attack is proposed.Two bits in ARO of RFC 6775 are selected to respectively corresponding to the 4 registered addresses,which are attached in SLLAO.The registering node sends NS with fixed ARO and SLLAO to its known neighbor router.And then the neighbor router responds to this NS and sends NA to the source depending on its own Neighbor Cache Entry (NCE).Moreover,registering node gets the NA and matches with its own registering address,and then responds to the router with NS.At the last time,router acknowledges this NS and sends NA again to node depending on NCE.The address registration is ended when the registering node gets this NA.The algorithm keeps working under pseudo-nodes’ NS/NA attacking by theoretical analysis,and it has better anti-attack performance than counterpart in RFC 6775.At the same time,shortened 128 bits to 48/16 bits during registering process brings lower bandwidth and latency under this algorithm.
6Lowpan;neighbor discovery;address registration;IPv6;802.15.4
2016-05-07
:2016-08-11 < class="emphasis_bold">網絡出版時間
時間:2017-07-05
國家自然科學基金資助項目(61373135);江蘇省高校自然科學研究重大項目(12KJA520003);江蘇省經信委項目
苗慧宇(1993-),女,碩士研究生,研究方向為信息網絡應用技術;孫知信,教授,博士生導師,研究方向為計算機網絡與安全、多媒體通信。
http://kns.cnki.net/kcms/detail/61.1450.TP.20170705.1648.002.html
TP301.6
:A
:1673-629X(2017)09-0110-06
10.3969/j.issn.1673-629X.2017.09.024