羅宇杰,張 健,唐彰國,李煥洲
(四川師范大學 物理與電子工程學院,成都 610066)(*通信作者電子郵箱dctscu07@163.com)
近年來物聯(lián)網(wǎng)安全研究已經(jīng)成為信息科學研究的重點之一,隨著物聯(lián)網(wǎng)與IPv6網(wǎng)絡應用的不斷增加,各種物聯(lián)網(wǎng)技術(shù)和產(chǎn)品不斷更新?lián)Q代,物聯(lián)網(wǎng)終端與網(wǎng)絡互聯(lián)互通已經(jīng)成為未來發(fā)展的必然趨勢。低功耗有損網(wǎng)絡(Low Power and Lossy Network, LLN)在醫(yī)療服務、智能家居、智能交通、智慧城市[1-2]以及高級計量架構(gòu)(Advanced Metering Infrastructure, AMI)智能抄表[3]等領(lǐng)域均有廣泛的應用。但由于節(jié)點自身內(nèi)存、處理能力、能量等資源受限,每個節(jié)點所能提供的能力有限,很難滿足IPv6網(wǎng)絡的需要,因此,互聯(lián)網(wǎng)工程任務組(the Internet Engineering Task Force, IETF)工作組提出的6LoWPAN(IPv6 over LoW-Power wireless personAl Network)[4-5]正好解決了這個問題。6LoWPAN使得IPv6能夠用于LLN,對原有數(shù)據(jù)包進行分片壓縮處理[6],在鏈路層和網(wǎng)絡層之間加入一層適配層。6LoWPAN網(wǎng)絡層使用低功耗路由工作組(Routing Over Lower-power and Lossy network, ROLL)提出的低功耗有損網(wǎng)絡路由協(xié)議(Routing Protocol for Low-power and lossy network, RPL)[7],雖然在RPL中已經(jīng)采取了一些安全方法和機制,但是其中仍然存在很多安全問題和威脅,無法滿足RPL與日俱增的安全需要。通過大量調(diào)查研究,本文研究總結(jié)了目前RPL協(xié)議的主要安全威脅以及相關(guān)應對方法。
6LoWPAN協(xié)議棧如圖1所示:第一層媒體訪問控制層(Medium Access Control, MAC)與第二層物理層(PHysical Layers, PHY)使用IEEE 802.15.4[6]原有標準,第三層為6LoWPAN適配層(6LoWPAN Adaption Layer)[6],第四層主要由IPv6、RPL、6LoWPAN-ND (Neighbor Discover of 6LoWPAN)等組成的網(wǎng)絡層,第五層為用戶數(shù)據(jù)報協(xié)議(User Datagram Protocol, UDP)、用戶控制報文協(xié)議(Internet Control Message Protocol, ICMP)等組成的傳輸層,第六層為由COAP(COnstrained Application Protocol)、消息隊列遙測傳輸(Message Queuing Telemetry Transport, MQTT)協(xié)議等組成的應用層。第三層適配層主要是提供頭部壓縮、數(shù)據(jù)包分片,以及部分路由算法[8]。
圖1 6LoWPAN協(xié)議棧Fig. 1 6LoWPAN protocol stack
6LoWPAN中采用了多跳轉(zhuǎn)發(fā)的數(shù)據(jù)傳輸機制以及自組織的鄰居發(fā)現(xiàn)協(xié)議,根據(jù)路由策略和工作層次的不同,可以分為Route-Over路由[9]和Mesh-Under路由[10]兩種路由機制,前者工作在網(wǎng)絡層,后者是在6LoWPAN適配層。Mesh-Under路由機制代表包括按需距離矢量路由LOAD(6LoWPAN Ad Hoc on-demand Distance vector routing)[11]、E-Hilow(Extended-HiLow)[12]等算法。Router-Over路由機制主要是使用RPL以及在此基礎(chǔ)上衍生出來的基于時間信任的安全RPL協(xié)議(Secure Trust-aware RPL, SecTrust-RPL)[13]、S-RPL(Secure-RPL)[14]等。6LoWPAN具有以下特性:1)支持16位或者64位擴展媒體訪問控制地址;2)250/40/20 Kb/s帶寬;3)設(shè)備能量、存儲有限。
RPL是低功耗有損網(wǎng)絡設(shè)計的一種距離矢量路由協(xié)議,而原有的開放式最短路徑優(yōu)先協(xié)議(Open Shortest Path First, OSPF)、路由信息協(xié)議(Routing Information Protocol, RIP)、AODV(Ad Hoc On-demend Distance Vector routing)[15]等都不再完全適用于LLN。RPL可以支持點到點(Point-to-Point)、點到多點(Point-to-Mutipoint)、多點到點(Mutipoint-to-Point)的通信,通過ICMPv6(Internet Control Management Protocol version 6)控制消息來實現(xiàn)節(jié)點間的交互。RPL過程[6]主要是包含路由的發(fā)現(xiàn)、建立、維護等方面。利用鄰居發(fā)現(xiàn)協(xié)議,采用以目的地為導向的有向無環(huán)圖(Destination Oriented Directed Acyclic Graph, DODAG)的網(wǎng)絡結(jié)構(gòu),其中向上是靠近根(Root)節(jié)點,向下是遠離根節(jié)點。在一個RPL實例[16]中,節(jié)點可以加入多個目的地通告消息DAO(DODAG Destination Advertisement Object)。其中信息對象消息DIO(DODAG Information Object)是由根節(jié)點來進行廣播,允許其他節(jié)點發(fā)現(xiàn)并加入它,其中包含了實例ID、DODAG的版本號、目標函數(shù)(Objective Function, OF)[17]等路由度量標準[18]參數(shù)。DAO是節(jié)點根據(jù)自身情況是否加入路由并計算自身的到根節(jié)點的Rank值并回復給根節(jié)點的確認消息。請求消息DIS(DODAG Information Solicitation)主要是滿足本地組播的請求,用于鄰居發(fā)現(xiàn),如圖2所示。整個路由網(wǎng)絡可以抽象結(jié)構(gòu)組成一棵DODAG樹,并為了減少控制包數(shù)量,RPL使用Trickle定時器算法來維護和修復整個拓撲。DODAG的這種樹狀結(jié)構(gòu)可以有效避免環(huán)路問題,根節(jié)點可以通過廣播來實現(xiàn)與其他節(jié)點交互信息,并在交互過程中通過目標函數(shù)將多個度量約束轉(zhuǎn)換成Rank值,然后根據(jù)Rank值來確定路由選擇。
RPL協(xié)議除了網(wǎng)絡路由中的一般安全威脅[19]外還存在許多安全問題,比如選擇轉(zhuǎn)發(fā)攻擊、水槽攻擊、女巫和克隆攻擊、拒絕服務攻擊、Rank攻擊、版本攻擊、局部修復攻擊、鄰居攻擊等。這些攻擊會在不同程度上對正常的路由造成影響,輕則增加網(wǎng)絡負載、擾亂破壞拓撲結(jié)構(gòu),重則導致網(wǎng)絡癱瘓并且拒絕服務,甚至被控成為攻擊其他網(wǎng)絡的“工具”。
圖2 RPL信息控制過程Fig. 2 RPL routig information control process
RPL在設(shè)計之初就考慮了一些安全機制[6]來保障路由安全,主要分為以下三種模式:
1)無安全模式:在這種模式下,RPL使用基本不含安全的控制信息,主要是通過其他層(鏈路層和適配層)安全機制來實現(xiàn)整體安全。
2)預裝密鑰模式:在控制消息加入了RPL instance,節(jié)點中預置了密鑰,從而使用預裝密鑰來實現(xiàn)整個路由過程的保密性和安全性。
3)驗證模式:同預裝密鑰模式基本相同,但是預裝的密鑰的節(jié)點只能作為葉子節(jié)點,如果需要作為路由加入時,則需要另外的密鑰通過認證請求來實現(xiàn)驗證加入。
IETF在RPL的安全威脅分析[20]中結(jié)合ISO 7498-2安全參考體系提出了幾種安全機制:
1)認證:涉及在交換路由信息(對等認證)并確保路由數(shù)據(jù)的來源來自對等體(數(shù)據(jù)源認證)之前對路由對等體的相互認證。要求對新加入的開放和不可信端信道具有可用性,而且需要自動的身份驗證,以便網(wǎng)絡可以自動接受或拒絕新的加入者。
2)訪問控制:能夠提供防止未經(jīng)授權(quán)使用并處理節(jié)點授權(quán)的保護。
3)機密性:機密性涉及路由信息的保護以及路由鄰居維護交換機制,以便只有授權(quán)和預期的網(wǎng)絡實體才能查看或訪問它。
4)完整性:完整性需要保護路由信息和路由鄰居維護交換機制,以及在數(shù)據(jù)庫中維護的派生信息,以防未經(jīng)授權(quán)的修改、插入、刪除或重播而超出路由協(xié)議。
5)可用性:可用性確保路由信息交換和轉(zhuǎn)發(fā)服務在網(wǎng)絡運行所需時可用,能夠保持路由和鄰居發(fā)現(xiàn)交換(包括所需信息)和轉(zhuǎn)發(fā)服務的高效性。
上述工作雖然提出了一些安全方法和原則,但是需要結(jié)合適當?shù)陌踩呗院蛨?zhí)行機制來保證RPL安全。RPL在安全方面仍然存在很多的威脅和問題[21],例如在無線傳輸?shù)拇嗳跣浴⒐?jié)點資源受限性、計算能力不足性、無人看管帶來易破壞性、存儲受限等,因此并太不適合直接采用高開銷、高負載的方式來保障其路由安全,而是應該考慮其輕量化的設(shè)計[22]。同時,國內(nèi)外眾多研究人員對RPL安全問題進行研究,針對不同的攻擊方面提出了不同的應對策略。
由于LLN中的RPL在設(shè)計之初,更多是為實現(xiàn)更方便、更快速的功能考慮,再加上無線網(wǎng)絡的開放性、脆弱性、不穩(wěn)定性、易破壞性等,導致RPL很容易遭到各種攻擊。因此針對RPL的攻擊方式[23]以及安全威脅[24],主要可以分為以下幾種:
1)Rank攻擊。RPL中Rank值是從Root根節(jié)點逐漸增加到子節(jié)點的。攻擊者通過篡改節(jié)點Rank值,攻擊者可以通過對子節(jié)點的吸引來實現(xiàn)父節(jié)點更新或者改變原有拓撲,并且能夠吸引大量的流量流向根節(jié)點。Rank攻擊不僅會造成未經(jīng)過驗證的沒有優(yōu)化的路徑,而且還會造成惡意節(jié)點周圍拓撲變化,從而影響數(shù)據(jù)包傳遞,增加網(wǎng)絡傳輸延遲,增加網(wǎng)絡控制開銷。
2)版本攻擊。這種攻擊是通過廣播發(fā)布新DODAG樹的更高版本號來實現(xiàn),當節(jié)點收到更高節(jié)點的版本號時,它們就會開始形成新的DODAG樹,同樣也會導致非優(yōu)化的拓撲,容易造成拓撲改變,網(wǎng)絡信息被竊取。
3)本地修復攻擊。這種攻擊是攻擊者周期性地發(fā)布正常的修復信息,當其他周圍節(jié)點收到本地修復信息后就導致開始本地修復。這種攻擊產(chǎn)生的影響比其他的更大,會導致整個網(wǎng)絡中產(chǎn)生更多的控制數(shù)據(jù)包以及增加網(wǎng)絡延遲及負載。
4)鄰居攻擊。惡意節(jié)點通過廣播不包含自己信息的DIO信息,從而導致其他收到該DIO信息的節(jié)點誤認為這是一個新的節(jié)點發(fā)送的,并且會更改部分路由拓撲。這種攻擊類似于蟲洞攻擊,會極大地影響網(wǎng)絡服務質(zhì)量,增加網(wǎng)絡延遲。
5)DIS攻擊。DIS信息是在加入拓撲之前,用于新的節(jié)點獲取路由拓撲信息。惡意節(jié)點定期向它周圍鄰居發(fā)送DIS信息,當其他節(jié)點收到DIS信息時,會重置DIO定時器,可能會導致周圍拓撲發(fā)生改變,并增加延遲。
6)選擇轉(zhuǎn)發(fā)攻擊。這種攻擊主要是通過有選擇地轉(zhuǎn)發(fā)數(shù)據(jù)包實施,攻擊的目的主要是破壞路由拓撲和過濾任何協(xié)議。攻擊者可以轉(zhuǎn)發(fā)所有的ICMP控制消息,降低其余流量,并且影響網(wǎng)絡可用性,縮短網(wǎng)絡生存時間,更容易實現(xiàn)拒絕服務(Denial of Service, DoS)攻擊。
7)污水池攻擊。攻擊者聲稱自己有充足的能力、更好的路徑,從而吸引周圍節(jié)點改變傳輸,將發(fā)給其他節(jié)點的包轉(zhuǎn)發(fā)給污水池攻擊者,再由它傳送出去,從而可以把收到的信息隨意處理,甚至丟棄。
8)女巫和克隆攻擊。類似于克隆ID攻擊,惡意節(jié)點通過克隆或者在即在同一物理節(jié)點使用多個標識,使得受害節(jié)點會將數(shù)據(jù)包發(fā)送給攻擊者,造成拓撲改變,網(wǎng)絡負載增加,網(wǎng)絡流量被竊取。
9)HELLO洪泛攻擊。初始進行路由建立時,攻擊者用HEELLO來廣播自己,收到數(shù)據(jù)包的節(jié)點會認為發(fā)送者在自己通信范圍內(nèi),并接受攻擊節(jié)點,但在后續(xù)傳輸過程中會導致部分節(jié)點因為實際距離太遠而無法傳達,導致網(wǎng)絡混亂。
10)蟲洞攻擊。如圖3所示,在RPL過程中,惡意節(jié)點在兩個攻擊點間建立隧道,傳送全部的流量數(shù)據(jù)包,能夠吸引較大的網(wǎng)絡流量,從而改變原有網(wǎng)絡拓撲。
11)黑洞攻擊。攻擊節(jié)點能夠把通過自身的所有數(shù)據(jù)以及流量延遲發(fā)送或者不發(fā)送,造成高丟包率、高控制流量以及路由流量開銷。
12)拒絕服務攻擊。可以借助之前所提到的攻擊方式如洪泛攻擊,進而讓用戶節(jié)點無法獲得信息或資源,造成網(wǎng)絡癱瘓。
13)拜占庭式攻擊。如果某個節(jié)點被捕獲或受到攻擊,但仍持續(xù)運行一段具有有效網(wǎng)絡安全證書的時間段,則可能存在路由信息被操縱的可能性。
圖3 蟲洞攻擊示意圖Fig. 3 Schematic diagram of wormhole attack
針對路由的不同過程或階段可能發(fā)動不同的攻擊,通過不同攻擊方式的組合和疊加,可能會對整個網(wǎng)絡造成毀滅性的打擊,并且導致與其相連的其他網(wǎng)絡的淪陷,造成巨大的損失。因此基于對各種攻擊的了解和分析[25],通過對RPL中已存在的攻擊類型、危害影響、應對方法、存在不足歸納如表1所示,并針對不同的攻擊方式,提出不同的解決思路。
為了應對LLN中RPL協(xié)議的安全問題,國內(nèi)外的研究人員已經(jīng)提出了不同的應對方法,根據(jù)防御檢測策略的不同,可以作以下分類:
1)應對機密性攻擊的防范方法。路由拓撲泄露攻擊、流量被動竊聽攻擊、流量分析攻擊,以及遠程訪問攻擊等,都是因為破壞了RPL的機密性,因此可以在路由發(fā)起節(jié)點和響應節(jié)點之間建立加強會話密鑰以應對洪泛攻擊。其次,只有經(jīng)過驗證和認證的節(jié)點關(guān)聯(lián)完成后,才允許路由交換。加密整個原始數(shù)據(jù)包源/目的地址的全部。
2)應對完整性攻擊的防范方法。為了應對未授權(quán)的攻擊、欺騙攻擊、女巫攻擊、信息重放攻擊、拜占庭路由信息攻擊等,應實施對存儲的訪問控制和與歷史路由/拓撲數(shù)據(jù)進行比較,提供特定的基于公共密鑰的認證,提供授權(quán)。使用鏈路層安全認證,通常與某種計數(shù)器算法一起計算時間可靠性來確保消息的新鮮度,防止重放攻擊。
3)應對可用性攻擊的防范方法。應對洪泛攻擊可以采用雙向認證的方法,使用驗證簽名和發(fā)送加密消息的節(jié)點,在驗證簽名和加密消息時需要謹慎使用加密處理。應對選擇性轉(zhuǎn)發(fā)攻擊可以通過不相交路徑對相同消息進行多路徑路由,或者從一組候選者中動態(tài)選擇下一跳。
通過對主要RPL攻擊的總結(jié)比較,對每種攻擊有了充分的認識,然后針對幾種典型的應對攻擊方法,從類型、典型方法、可防御攻擊類型、缺陷等方面進行了簡單的分析和比較,如表2所示。
針對RPL中的安全問題,最早在RPL提出之時就考慮到了一些安全機制[26],例如RPL instance,可以在節(jié)點中預先加入密鑰的方式來實現(xiàn)身份認證。將基礎(chǔ)的AES(Advanced Encryption Standard)-128作為底層的密碼算法,并在第二層中預留有安全報頭部分以供后續(xù)改進,同時也可以通過全局修復和本地修復的策略來實現(xiàn)RPL的正常工作。但是這些都還不足以滿足日益增長的安全需求。因此,經(jīng)過近年研究人員的努力,基本形成了以信任、密碼算法、層次結(jié)構(gòu)、特定攻擊等核心安全策略為基礎(chǔ)的改進RPL協(xié)議,在不同方面上提高了協(xié)議的安全性,這些協(xié)議可以分為以下幾類。
表1 攻擊威脅總結(jié)Tab. 1 Summary of attack threat
文獻[53-54]中提出了一種基于信任度量的Trust-based-RPL安全協(xié)議,通過在RPL節(jié)點建立和維護路由,能夠排除被惡意節(jié)點感染的節(jié)點,主要提出了基于度量的安全可靠的RPL方案(Metric-based RPL Trustworthiness Scheme, MRTS)來提高路由的安全性,MRTS在構(gòu)建和維護每個點到邊界路由器(Border Router)的路由過程中解決信任問題。為了解決這個問題,引入一個新的基于信任的度量標準即擴展RPL節(jié)點可信度(Extended RPL Node Trustworthiness, ERNT)和一個新的信任目標函數(shù)(Trust Objective Function, TOF)。事實上,ERNT代表網(wǎng)絡中每個節(jié)點的信任值,其中包含直接可信度量和間接可信度量,直接可信度量是依據(jù)誠實、能量、無私等三個信任相關(guān)的權(quán)重來計算,而間接可信度量是根據(jù)相鄰節(jié)點的協(xié)作來計算的。TOF就是把信任值映射到路徑選擇上,在MRTS中所有節(jié)點都考慮節(jié)點行為來計算ERNT,最后通過擴展分布式的Bellman-Ford算法來實現(xiàn)信任模型的;而且MRST只考慮可信節(jié)點,能夠允許處于信任狀態(tài)的節(jié)點自組織網(wǎng)絡。但是只是通過擴展DIO來增加額外的計算和通信開銷,并沒有解決像黑洞攻擊、Rank攻擊、女巫攻擊等已知攻擊。
文獻[55]中提出了一種基于RPL建立的可信平臺的和密鑰交換方法,該模塊在經(jīng)認證的節(jié)點間提供密鑰以安全模式來實現(xiàn)網(wǎng)絡可用性和完整性,防止篡改數(shù)據(jù)包來抵御攻擊。通過使用可信平臺模塊(Trusted Platform Module, TPM)來實現(xiàn)在不安全的環(huán)境中提供精確的數(shù)據(jù),同時保證接收到消息的完整性和真實性,能夠減少處理器上的負載。但是該方案在很大程度上取決于TPM,并不能完全通用,而且還在受限的節(jié)點上額外增加了加密處理,造成了更多的損耗。
文獻[56]中提出一種基于跨層信任的鄰居不可達檢測(Neighbor Unreachable Detection, NUD)機制,該方案通過使用信任管理系統(tǒng)指定來自鄰居的請求,能在一定程度上提高可靠性和可用性。針對RPL中不可達的鄰居檢測,需要一種非常低通信開銷的外部機制,這就排除了保持活動消息的主動機制。相反,在RPL中使用的IPv6的NUD,這是一種維護觸發(fā)控制消息的定時器反應機制。但是,當使用固定的超時間隔時,NUD會遭受頻繁的超時,并且開銷很大。通過利用鏈路層上的監(jiān)聽機制,使用分組統(tǒng)計,然后基于已經(jīng)存在的網(wǎng)絡流量調(diào)整其超時間隔,而且不需要節(jié)點間過多協(xié)調(diào)。但是也存在沒有針對特定的攻擊進行檢測,及網(wǎng)絡動態(tài)變化而信任參數(shù)不能適應性調(diào)整等問題。
表2 幾種典型應對方法比較Tab. 2 Comparison of several typical coping methods
文獻[57]中提出了一個基于信任的節(jié)點評估閾值機制的安全路由協(xié)議,能夠通過選擇安全的父節(jié)點來應對Rank攻擊。RPL是基于樹的拓撲結(jié)構(gòu),因此攻擊節(jié)點可能錯誤地申明對周圍鄰居節(jié)點的排名,以便被它們選為父節(jié)點,從而攻擊目標。在基于信任節(jié)點評估閾值中,若每個節(jié)點存在多個父節(jié)點候選項時,依據(jù)攻擊點錯誤聲稱比合法節(jié)點Rank低的情況,能夠計算周圍節(jié)點最大的和平均的Rank值來判斷它的鄰居節(jié)點是否是惡意節(jié)點。閾值是通過Rave(鄰居節(jié)點Rank值)減去周圍鄰居Rank值的最大值(Rmax)的K倍,以此來作為信任評價的閾值。該方法能夠應對Rank攻擊,但是無法解決女巫攻擊和黑洞攻擊。
文獻[58]中提出了基于鏈接可靠和信任的路由協(xié)議(Link reliable and Trustaware RPL, LT-RPL),主要包含信息收集、信任合成、信任數(shù)據(jù)庫、信任應用等四個階段,如圖4所示。通過該四個階段來實現(xiàn):1)能夠有效為維護網(wǎng)絡路由拓撲提供服務質(zhì)量保證;2)同時能夠有效防止惡意節(jié)點的黑洞攻擊。
文獻[59]中總結(jié)了基于信任的路由框架。文獻[60]提出了一個受信任的RPL協(xié)議實現(xiàn)。文獻[13,61]提出了基于時間信任的安全RPL協(xié)議(SecTrust-RPL),該安全協(xié)議主要是將安全信任系統(tǒng)嵌入到RPL協(xié)議中,能夠有效地檢測和隔離攻擊。節(jié)點的可依賴性是基于節(jié)點在網(wǎng)絡中對其鄰居的行為或服務來評價,因此可以從可靠性、可信度、完整性和可信任性等方面來進行量化,并且累計起來作為一個節(jié)點在網(wǎng)絡中的信任等級。該安全協(xié)議是由信任值計算、信任監(jiān)控和更新、檢測惡意節(jié)點、信任值備份和恢復、信任評級等過程來實現(xiàn)一個完整的基于信任的安全RPL協(xié)議,最后利用SecTrust引擎來實現(xiàn)安全路由和一致性維護;同現(xiàn)有的RPL協(xié)議相比,SecTrust-RPL對Rank攻擊和女巫攻擊有較好的防御效果,同時也考慮了低電量的節(jié)點可以降低安全損耗,從而獲得更大的效益。
圖4 信任模型[58]Fig. 4 Trust model[58]
文獻[62]中提出了基于認證和加密的身份驗證機制,主要通過使用基于標識的密碼體系(Identity-Based Cryptography, IBC)生成密鑰并在節(jié)點間利用AES-128和SHA(Secure Hash Algorithm)-256對控制消息加密,同時密鑰是配對管理的,可以確保節(jié)點能進行身份驗證,而且所有節(jié)點預先就設(shè)置有密鑰,從而攻擊者無法竊取,以此來實現(xiàn)完整性和真實性,能夠降低污水池攻擊、蟲洞攻擊、防止欺騙攻擊等造成的影響;但是會造成一定的開銷,而且必須預先設(shè)置密鑰,缺乏通用性。
文獻[63]在基于RPL協(xié)議的適配層安全機制的研究中提出通過控制報文實現(xiàn)身份認證與密鑰管理,通過調(diào)用AES-128和SHA-1來進行加密,實現(xiàn)基礎(chǔ)是在全網(wǎng)完成所有節(jié)點的初始身份認證之前網(wǎng)絡處于一個相對安全環(huán)境,進行全網(wǎng)初始化公共密鑰,以此來進行身份認證和密鑰管理。通過初始分配標識和密鑰、組網(wǎng)階段、密鑰分配與輪換解讀,最后形成完整的安全機制。但是該機制對于初始化階段不存在惡意節(jié)點要求比較苛刻,適用面較窄。
文獻[30]中提出的VeRA主要是通過認證的方式來實現(xiàn)抵御節(jié)點版本攻擊和Rank攻擊。VeRA主要是在初始階段中通過DODAG根中使用隨機數(shù)來生成版本號哈希列,然后基于該隨機數(shù)生成Rank哈希鏈,通過生成的這兩者在每次版本號變動時進行認證,從而實現(xiàn)了解決版本攻擊,但是同時也增加了開銷問題。
文獻[64]中提出了一種基于分層多簇的安全路由協(xié)議(Multi-RPL),采用了多路徑路由策略,保證了網(wǎng)絡數(shù)據(jù)的傳輸。該協(xié)議主要是通過將路由分層:最高層為網(wǎng)關(guān)節(jié)點可實現(xiàn)異構(gòu)網(wǎng)絡通信;第二層為簇頭節(jié)點能夠?qū)崿F(xiàn)簇內(nèi)組網(wǎng)、信息轉(zhuǎn)發(fā);而最下層為普通節(jié)點。在每個普通節(jié)點建立路由被分配到某一簇時,同時建立一條到另一個簇的備份路徑,在節(jié)點發(fā)送數(shù)據(jù)時,能夠提供數(shù)據(jù)轉(zhuǎn)發(fā)的多跳路徑,通過增加冗余來提高數(shù)據(jù)傳輸?shù)目蛇_性,增加了額外開銷,在應對黑洞攻擊、蟲洞攻擊方面有一定的效果。
文獻[65]中提出了一種基于分層DODAG的RPL(Hierarchical DODAG based RPL, H-RPL),其中每個節(jié)點的網(wǎng)絡地址對應于在分層網(wǎng)絡內(nèi)的位置。整個網(wǎng)絡按層次進行初始化,候選的子節(jié)點使用臨時地址對選定的候選父節(jié)點作出響應,而候選父節(jié)點確認選擇并在傳輸過程中將子節(jié)點的分層地址傳送到臨時地址,子節(jié)點將自身地址改為來自父節(jié)點的分層地址。當發(fā)生改變父節(jié)點的時候,先向原父節(jié)點解除,后用臨時地址向新父節(jié)點發(fā)送申請。
文獻[32]中提出了一種基于分簇的IDS檢測方法,主要是應對Rank攻擊、鄰居攻擊等。通過將合法的協(xié)議狀態(tài)、傳輸過程和統(tǒng)計安全信息轉(zhuǎn)換為一組入侵檢測的規(guī)則,在整個網(wǎng)絡中以簇頭的方式來傳播,各個簇成員只能將自己和鄰居信息發(fā)送給簇頭,而不是通過廣播的方式讓所有的簇頭都知道。然后,某個成員的信息將由簇頭進行交叉檢查,以此來實現(xiàn)在每個監(jiān)控的節(jié)點中進行惡意檢測,對路由操作進行檢測,建立一套入侵檢測系統(tǒng),只消耗了合理的開銷;但是存在檢測節(jié)點容易發(fā)生虛假警報的誤報行為,簇頭頭可能受到惡意攻擊危害。通過仿真發(fā)現(xiàn)該方法雖然增加了負載,但是具有一定的有效性。
文獻[14]中提出一種新的安全路由協(xié)議(Secure-RPL, SRPL),主要目的是防止非正常的斷點和惡意節(jié)點通過更改控制消息來創(chuàng)建一個虛假拓撲來擾亂網(wǎng)絡。引入了Rank閾值和哈希散列鏈認證技術(shù)來解決內(nèi)部的攻擊問題,該方案并不能阻止節(jié)點通過DODAG移動,但是抑制惡意節(jié)點利用該機制來進行Rank攻擊。當節(jié)點移動時,SRPL需要在通過DODAG時進行基于散列值的身份驗證,對部分超過閾值的進行干預,從而丟棄過多的Rank變更請求。該方案能在一定程度上能夠應對天坑、黑洞等攻擊,但是如果丟失的流量過大,或者節(jié)點數(shù)過少時,則干預可能會出現(xiàn)過多或者較小的情況,因此SRPL在較密集的情況下更為適用。
文獻[43]中提出了一種安全監(jiān)控策略來應對RPL中的版本攻擊,主要通過分布式的監(jiān)控節(jié)點收集檢測信息,然后匯總到根節(jié)點執(zhí)行檢測。該策略主要是用來應對RPL中廣播版本號帶來的版本攻擊,這種攻擊可能會導致拓撲重構(gòu),對節(jié)點的能源、數(shù)據(jù)包丟失、以及通信開銷帶來影響,而且很難在本地檢測出來。該分布式的監(jiān)控方法中包含正常執(zhí)行路由的被監(jiān)控節(jié)點和更高級一些的監(jiān)控節(jié)點,由監(jiān)控節(jié)點來執(zhí)行檢測功能,而且不會影響它們在網(wǎng)絡中的路由信息能力,但是可以攔截和分析被監(jiān)控節(jié)點發(fā)出的數(shù)據(jù)包,并記錄相關(guān)信息。監(jiān)控節(jié)點只能檢測其鄰域內(nèi)的節(jié)點,這些監(jiān)控節(jié)點定期把監(jiān)控數(shù)據(jù)發(fā)送給接收器或者服務器,由這些監(jiān)控節(jié)點組成的網(wǎng)絡稱為監(jiān)控網(wǎng)絡。但是該方法會增加系統(tǒng)的額外開銷,增加延遲。
TRAIL[29]主要是一種拓撲路徑認證解決方案,完全依賴于兩種RPL基礎(chǔ),首先是利用根節(jié)點是充當可信錨,然后每個節(jié)點都是層次化結(jié)構(gòu)的一部分并且連接到根節(jié)點。TRAIL中主要是利用往返消息來驗證到DODAG的上行鏈路,節(jié)點可以利用遞歸來計算Rank值,并幾乎沒有使用加密,主要加密工作是由根節(jié)點來完成,而不需要像在VeRA中是利用節(jié)點哈希列來認證。雖然增加了根節(jié)點的工作強度,但是降低了其他節(jié)點的消耗。通過仿真測試能夠?qū)Π姹竟粲斜容^好的效果。
文獻[66]基于攻擊圖的漏洞檢測思路,可以檢測到Rank的弱點,通過模擬不同的攻擊如Rank攻擊、選擇轉(zhuǎn)發(fā)攻擊等來對研究攻擊網(wǎng)絡性能、網(wǎng)絡拓撲和網(wǎng)絡資源,在研究中發(fā)現(xiàn)在攻擊進行中會消耗很多不必要的資源。
通過前面內(nèi)容對現(xiàn)有主流的安全RPL協(xié)議進行了分類介紹和簡單分析,在此基礎(chǔ)上,對以上的各類協(xié)議進行比較分析,從而更加具體地了解不同的差異,如表3所示,按照協(xié)議類別、典型協(xié)議、可抵御攻擊,以及主要缺陷等進行了綜合比較。
隨著IPv6網(wǎng)絡基礎(chǔ)設(shè)施建設(shè)的不斷推進,相關(guān)研究迅猛增長;同時,路由安全需求也在逐漸增長,研究與設(shè)計安全路由協(xié)議越來越重要,除了協(xié)議基本標準和要求之外,還需要考慮機密性、完整性、可用性等安全策略。因此,根據(jù)所研究內(nèi)容,提出以下一些問題與發(fā)展趨勢。
1)RPL原有的路由存在各種安全威脅,因此需要不斷的改進與研究才能增強路由安全。比如文獻[67]中提出的改進Trickle算法,能夠提高公平性和服務質(zhì)量。文獻[68]中提出了一種基于輕量級信任的RPL安全算法,稱為TmRPL++,并且實現(xiàn)了TmRPL++路由協(xié)議,并將其集成到6LoWPAN/RPL協(xié)議棧中,通過大量的仿真驗證了它的功能。RPL安全路由協(xié)議改進需要保證在安全前提下輕量化設(shè)計,而且能夠?qū)崿F(xiàn)低開銷的安全措施,更安全的鄰居發(fā)現(xiàn)算法、更輕量化端到端、點到點的加密與認證等。只有提高從節(jié)點傳輸?shù)浇K點完整過程的可信與抗欺騙能力,才能更好地應對安全威脅。
2)RPL的安全研究也需要同低能耗、高可用性、以及低復雜性結(jié)合,同時將能量約束[69]以及提高服務質(zhì)量等情況綜合考慮,形成更加完備的路由安全體系,健全安全路由機制。也可以考慮結(jié)合一些新技術(shù)和新方法來增強RPL安全,例如,結(jié)合模糊邏輯原理[70]的改進算法來實現(xiàn)降低延遲和低丟包率來提高服務質(zhì)量。通過同新技術(shù)的融合與突破,不斷促進原有路由協(xié)議發(fā)展進化。
3)目前RPL安全研究都是基于某一種同構(gòu)的網(wǎng)絡形態(tài),并沒有考慮異構(gòu)的情況。同一個終端節(jié)點需要跟不同的異構(gòu)網(wǎng)絡進行安全通信,而在自身能力受限的情況下,難以滿足通信質(zhì)量、細粒度控制需求,需要有保障多種類型的異構(gòu)網(wǎng)轉(zhuǎn)換安全的新路由機制,文獻[71]中提出了一種C-RPL(Cooperative-RPL)能在不同節(jié)點之間有一定的合作策略。
4)對于安全路由協(xié)議大部分都是基于仿真模擬實驗來驗證該協(xié)議的可用性與有效性,具有一定的特異性,例如針對DAG攻擊[38]、蟲洞[50]等,在實用性和兼容性方面稍顯不足。因此,需要考慮各種安全路由機制在應用性、通用性、兼容性等有機結(jié)合,形成相對完整、適用范圍較為廣泛的安全路由協(xié)議。
5)針對RPL的自組織操作安全性、通信通道和節(jié)點資源的可用性和有限的物理安全性等問題都需要不斷創(chuàng)新的研究來滿足日益增長的安全需要。
表3 RPL安全協(xié)議比較Tab. 3 Comparison of RPL security protocols
隨著物聯(lián)網(wǎng)技術(shù)的不斷發(fā)展,越來越多的智能節(jié)點接入網(wǎng)絡,各種路由安全問題層出不窮,通過控制僵尸網(wǎng)絡來實現(xiàn)大范圍分布式拒接服務攻擊的例子也越來越多,路由安全威脅已成為亟待解決的重要問題之一。LLN中RPL更重要在于安全機制的完備性和整體性。因此,本文總結(jié)了RPL協(xié)議可能受到的攻擊和應對方法,分析和比較了現(xiàn)有RPL安全協(xié)議,提出了一些問題和發(fā)展趨勢。隨著技術(shù)的不斷發(fā)展,RPL安全性也會不斷增強,該領(lǐng)域的研究也將不斷地深入下去。