程 遠,李燕修,張 正,柳亞男
(金陵科技學(xué)院 網(wǎng)絡(luò)安全學(xué)院,江蘇 南京 211169)
無線傳感器網(wǎng)絡(luò)(簡稱“傳感器網(wǎng)絡(luò)”)在多個領(lǐng)域中被廣泛應(yīng)用。然而,傳感器的資源有限性對傳統(tǒng)安全技術(shù)的應(yīng)用提出了諸多限制。傳感器網(wǎng)絡(luò)與傳統(tǒng)網(wǎng)絡(luò)關(guān)心的安全問題相同。但由于傳感器網(wǎng)絡(luò)的特性,時常會發(fā)生一些特殊攻擊,例如,傳統(tǒng)網(wǎng)絡(luò)中不存在的蟲洞攻擊、節(jié)點復(fù)制攻擊和女巫攻擊。本文將重點討論傳感器網(wǎng)絡(luò)中的保密性。
傳感器網(wǎng)絡(luò)在應(yīng)用中的一個重要問題就是如何保證在節(jié)點之間交換的感知數(shù)據(jù)和控制消息的機密性[1-4]。從以往的研究中可知,使用加密功能可以提高保密性,而加密的關(guān)鍵問題就是如何合理地分配密鑰。值得一提的是,雖然非對稱密鑰加密已被證明在傳感器網(wǎng)絡(luò)中可用,但由于非對稱密鑰加密操作所需的時間過長,因此,對稱密鑰加密即使會帶來管理問題,也仍然是傳感器網(wǎng)絡(luò)中的首選。
本文首先描述了無線傳感器網(wǎng)絡(luò)的特性和局限性,第2節(jié)中介紹了各種評價指標,第3節(jié)中對現(xiàn)有密鑰分配方案進行了簡單分類,最后在第4節(jié)中進行了總結(jié)。
傳感器節(jié)點是廉價的設(shè)備,與日常使用的筆記本電腦相比,其計算能力、通信能力、存儲空間都非常有限[5-6]。在傳感器網(wǎng)絡(luò)中,節(jié)點和整個網(wǎng)絡(luò)都具有以下特征[7]。
(1)廉價。傳感器網(wǎng)絡(luò)會在監(jiān)測區(qū)域部署許多不可回收的傳感器節(jié)點,雖然無法降低單個傳感器節(jié)點的成本,但總成本仍然不高。
(2)電池供電。傳感器網(wǎng)絡(luò)通常被部署在戶外環(huán)境中,所以無法由線路供電。每個傳感器節(jié)點中都裝有一個小電池,當電池耗盡時,可以認為它已經(jīng)損壞。
(3)預(yù)配置范圍有限。大多數(shù)時候,傳感器網(wǎng)絡(luò)在地形危險或處于敵對環(huán)境中進行監(jiān)測。因此,無法在部署前預(yù)知網(wǎng)絡(luò)拓撲并對設(shè)備進行完全配置。
(4)內(nèi)存資源有限。單個傳感器節(jié)點儲存最多只有幾十兆字節(jié)。
(5)帶寬有限。通常,傳感器節(jié)點的數(shù)據(jù)傳輸速率很低。例如,Mica2 Berkeley Motes的傳輸速率只有10 kb/s,其數(shù)據(jù)包大小約為30 B。
(6)節(jié)點易受物理捕獲。傳感器節(jié)點通常不耐篡改,很容易在物理上被對手破壞。該傳感器節(jié)點中的所有儲存信息都將在節(jié)點被破壞之后暴露給對手。
(7)計算能力有限。大多數(shù)傳感器節(jié)點都只嵌入了一個8 bit/4 MHz的微控制器。
(8)增量部署。傳感器網(wǎng)絡(luò)應(yīng)該允許傳感器節(jié)點數(shù)量的變化,即使某些傳感器節(jié)點被損壞,傳感器網(wǎng)絡(luò)也要繼續(xù)工作,并且與新增加的傳感器節(jié)點一起工作。
為了評價傳感器網(wǎng)絡(luò)中密鑰分配方案的效率和效果,以下指標在傳感器網(wǎng)絡(luò)的研究中被廣泛應(yīng)用。
(1)抗毀性。由于傳感器節(jié)點不耐篡改,攻擊者可以在物理上破壞傳感器節(jié)點,檢索存儲在受損節(jié)點中的數(shù)據(jù),然后發(fā)動進一步的內(nèi)部攻擊。攻擊者可能會通過密鑰分配推斷出未被破壞的傳感器節(jié)點之間的共享密鑰。因此,傳感器的抗毀性被定義為在未被破壞的傳感器節(jié)點之間生成和交換數(shù)據(jù)的保密性能力。
(2)資源效率。傳感器節(jié)點的資源是有限的,所以合理的密鑰分配方案不應(yīng)該消耗大量的資源。這里的資源可以是計算能力、通信能力和存儲空間。例如,非對稱密鑰密碼由于其計算量大而不被考慮;通信在傳感器節(jié)點的能量消耗中占主導(dǎo)地位,因此建立密鑰所需交換的消息數(shù)量應(yīng)盡可能少;傳感器節(jié)點中的內(nèi)存有限,所以密鑰分配的方案不能在節(jié)點中存儲太多的密鑰材料。
(3)連通性。指一對傳感器節(jié)點找到共享密鑰的概率。正如在后文將展示的,大量的密鑰分配方案利用概率密鑰共享技術(shù)使傳感器節(jié)點能計算它們的共享密鑰。然而,不是每對傳感器節(jié)點都能有一個共享密鑰,所以合理的密鑰分配方案連通性應(yīng)該盡可能大。
(4)適應(yīng)性。在被提出的各種密鑰分配方案中,不同的密鑰分配方案有不同的假設(shè)。例如,有些方案使用移動機器人來增強連通性,有些方案則使用安全引導(dǎo)時間來增強抗毀性。另一方面,網(wǎng)絡(luò)設(shè)置也可以不同。例如,一些網(wǎng)絡(luò)由移動傳感器節(jié)點組成,一些傳感器節(jié)點能知道互相的位置。這里的適應(yīng)性是評估密鑰分配方案是否能適應(yīng)不同的網(wǎng)絡(luò)設(shè)置。
本文將傳感器網(wǎng)絡(luò)中的密鑰分配方案分為兩類:與位置無關(guān)的密鑰分配方案和與位置相關(guān)的密鑰分配方案。如果密鑰分配方案要求傳感器節(jié)點不知道其位置,該方案可被分類為與位置無關(guān)的密鑰分配方案;否則,被分類為位置相關(guān)的密鑰分配方案。
與位置無關(guān)的密鑰分配方案在下文中按時間順序進行了介紹。不同方案的比較如表1所示,符號n表示由傳感器節(jié)點{s1,s2…sn}組成的傳感器網(wǎng)絡(luò)中節(jié)點的總數(shù)。
3.1.1 直接方法
主密鑰方案和對密鑰方案是解決密鑰分配問題的兩種直接方法。在主密鑰方案中,每個傳感器節(jié)點在部署前預(yù)裝一個密鑰K,使用密鑰來確保它們的通信安全。這種方案的資源效率非常高,但抗毀性極低。一旦某個傳感器節(jié)點信息泄露,整個傳感器網(wǎng)絡(luò)的通信安全都將崩潰。
在對密鑰方案中,每個傳感器節(jié)點在部署前預(yù)加載n~1個密鑰,每個密鑰對應(yīng)著另一個傳感器節(jié)點共享的密鑰。該方案的抗毀性很高,即使被破壞的傳感器節(jié)點密鑰泄露,也不會降低其他未被破壞的節(jié)點之間的通信安全。然而,這種方案的存儲開銷與傳感器節(jié)點的數(shù)量呈線性關(guān)系,隨著網(wǎng)絡(luò)規(guī)模的擴大,節(jié)點的存儲開銷將超載。
3.1.2 Blom方案
基于對稱矩陣的Blom方案不是針對傳感器網(wǎng)絡(luò)中的密鑰分配而開發(fā)的[8],但由于許多密鑰分配方案都是建立在使用Blom方案的基礎(chǔ)上,所以本文為了完整性起見,也對其進行了描述。
設(shè)D是維數(shù)為(λ+1) × (λ+1)的對稱矩陣,G是維數(shù)為任意矩陣(λ+1) ×n的對稱矩陣。矩陣D是一個應(yīng)該保密的秘密密鑰,而矩陣G是一個可以公開的矩陣。設(shè)A=(D·G)T,K=A×G,其中“·”為矩陣乘法,(D·G)T是(D·G)的轉(zhuǎn)置,K是一個對稱矩陣,如下所示。
A·G= (D·G)T·G=GT·D·G=(A·G)T
(1)
上述操作均在有限域Fq中進行,也就是說,該算法是對q求模的。Blom等[8]對于每個節(jié)點si,A的第i行向量和G的第i列向量都存儲在節(jié)點si中。因此,當兩個節(jié)點si和sj想要建立共享密鑰時,以明文交換G列,然后用其私有行A分別計算Ki, j和Kj, i。Blom方案實現(xiàn)了所謂的λ-安全[8],確保只要不超過λ個節(jié)點就不會被破壞,安全性就能得到完美的保護。
Blom方案的一個例子如圖1所示,其中Ai,_和A_,i表示A的第i行和第i列,Blom方案的安全性來自矩陣D的隱私,而矩陣G則是一個公開信息。當矩陣D被對手完全知道后,Blom方案就不安全了。Blom方案不能直接應(yīng)用于無線傳感器網(wǎng)絡(luò),因為在一個大規(guī)模網(wǎng)絡(luò)中要保證安全性時,存儲開銷將會超載。
3.1.3 Blundo方案
表1 與位置無關(guān)的密鑰分配方案
BIBD, 均衡不完全區(qū)組設(shè)計;PIKE,密鑰建立對等中介服務(wù)機構(gòu)。
圖1 Blom方案示例
傳感器部署完成后,只要傳感器節(jié)點si想要與傳感器節(jié)點sj擁有共享密鑰,傳感器節(jié)點si就可以通過計算f(i,j)得到密鑰。傳感器節(jié)點sj也可以進行類似的操作,計算f(j,i)。由于f(x,y) =f(y,x)在基礎(chǔ)對稱多項式中的性質(zhì),它們計算出的密鑰相同,這也是它們的共享密鑰。
3.1.4 Eschenauer-Gligor方案
Eschenauer-Gligor方案(簡稱“E-G方案”)是第一個專門為傳感器網(wǎng)絡(luò)設(shè)計的密鑰分配方案[10]。E-G方案構(gòu)成了傳感器網(wǎng)絡(luò)密鑰分配方案的基礎(chǔ),后來的研究很大一部分是基于它的框架進行的。
在部署傳感器之前,隨機生成一個包含p個不同密鑰的密鑰池P。每個傳感器節(jié)點si從P中隨機選取r個具有密鑰標識符的子集Ri,子集Ri被稱為傳感器節(jié)點si的密鑰環(huán)。
部署傳感器后,如果兩個傳感器節(jié)點的密鑰環(huán)中有一個公共密鑰,該公共密鑰就作為兩個節(jié)點之間的共享密鑰。在研究中,這種兩個密鑰環(huán)中的公共密鑰被發(fā)現(xiàn)的過程通常被稱為共享密鑰的發(fā)現(xiàn)。其中如圖2所示,展示了E-G方案的一個示例,一個包含20個密鑰和若干密鑰環(huán)的密鑰池,每個密鑰環(huán)包含3個密鑰。從圖2可以看出,密鑰共享方面的網(wǎng)絡(luò)并沒有實現(xiàn)完全連通,但它們已經(jīng)有了足夠的連接。下面描述了在沒有直接共享密鑰的情況下找到共享密鑰的操作。
圖2 Eschenauer-Gligor方案示例
發(fā)現(xiàn)共享密鑰后,如果兩個傳感器節(jié)點在各自的密鑰環(huán)中沒有公共密鑰,則采用一個被稱為路徑密鑰建立過程的方法找到安全鏈路序列,安全鏈路序列是指兩端找到自己共享密鑰的安全通信鏈路。一旦兩個傳感器節(jié)點之間已經(jīng)建立了一系列安全鏈路,這兩個節(jié)點可以在沒有直接共享密鑰的情況下,通過將共享密鑰從一端發(fā)送到另一端等方式建立它們的共享密鑰。在傳輸過程中的每條鏈路都是安全鏈路,因此可以保證兩端共享密鑰的保密性。
需要注意的是,在共享密鑰發(fā)現(xiàn)中,查找兩個密鑰環(huán)之間的公共密鑰的直接方法是直接交換密鑰標識符??蛇@種方法的安全性不高,因為攻擊者可能在這一段時間內(nèi)竊聽消息交換,通過破壞少量傳感器節(jié)點而攻陷整個網(wǎng)絡(luò)。針對這一缺點,可以利用Merkle謎題解決[11]。特別是在傳感器節(jié)點si和sj正在經(jīng)歷共享密鑰的發(fā)現(xiàn)這一步驟。傳感器節(jié)點si發(fā)送〈α,Ki 1〉,〈α,Ki 2〉…〈α,Ki Ri〉;Kiυ為傳感器節(jié)點si到傳感器節(jié)點sj的密鑰環(huán)中的第v個密鑰。傳感器節(jié)點sj接收到〈α,Ki 1〉,〈α,Ki 2〉…〈α,Ki ∣Ri∣〉后,則嘗試解密每一個密鑰,解密成功的密鑰可以作為傳感器節(jié)點si和sj之間的共享密鑰。
3.1.5q-Composite隨機密鑰預(yù)分配方案
q-Composite密鑰預(yù)分配方案被認為是E-G方案的擴展[12]。它不同于E-G方案中使用的單一密鑰,q-Composite密鑰預(yù)分配方案使用了多個密鑰,這使得它的安全性增強。在E-G方案中,每個傳感器節(jié)點si在傳感器部署之前從密鑰池中隨機加載一個密鑰環(huán)Ri。如圖3所示的q-Composite方案的一個示例,可以看出,圖3與圖2非常相似,但是,q-Composite方案一旦兩個節(jié)點在各自的密鑰環(huán)中找不到q=2個普通密鑰,就不進行連接。
部署傳感器后,共享密鑰的發(fā)現(xiàn)和路徑密鑰的建立與E-G方案相同。唯一不同的是,在q-Composite方案中,兩個節(jié)點的密鑰環(huán)之間至少有q個公共密鑰才能構(gòu)建共享密鑰,而不是單個公共密鑰。例如,在q-Composite方案中q個公共密鑰可以由XORing來構(gòu)造。
圖3 q-Composite密鑰預(yù)分配方案示例
Chan等[12]提出了一種多路徑密鑰強化的技術(shù)來增強安全性。具體地說,在路徑密鑰建立的過程中,尋找多個不相交的安全鏈路序列。路徑密鑰被劃分到不同的部分,然后通過找到的相應(yīng)的路徑發(fā)送。多路徑密鑰強化的概念如圖4所示。這可以降低通過位于中間的一個被破壞的傳感器節(jié)點從而竊聽路徑密鑰的可能性。Deng等[13]提出了一種糾錯碼方法,用來提高多徑密鑰強化的資源效率。然而,這種多路徑密鑰強化的通信開銷和安全性之間也呈明顯的線性關(guān)系。
圖4 多路徑密鑰強化示例
3.1.6 多空間密鑰預(yù)分配方案
為了增加傳感器的抗毀性,多空間密鑰預(yù)分配方案結(jié)合了E-G方案和Blom方案[14]。方案中,權(quán)威機構(gòu)隨機生成一個矩陣G,矩陣G使用Blom方案。然后,隨機生成ω對稱矩陣D1…Dω。對于每個矩陣Di, 1≤i≤ω,計算出矩陣Ai= (Di·G)T。這個構(gòu)造至今都可以被認為是Blom方案的ω實例,Blom方案中每個實例被稱為一個空間。τ空間被隨機選擇,并存儲在每個傳感器節(jié)點si中。這里,在傳感器節(jié)點si中存儲空間是指將A在所選空間中的第i行和G的第i列存儲在傳感器節(jié)點si中。
在傳感器部署后,共享密鑰發(fā)現(xiàn)和路徑密鑰建立過程與E-G方案相同,只是在多空間密鑰預(yù)分配方案中需要找到公共空間而不是公共密鑰。只要在傳感器節(jié)點si和sj之間找到了公共空間,它們就可以利用Blom方案中的操作來獲得它們的共享密鑰。
3.1.7 基于多項式的密鑰預(yù)分配方案
基于多項式的密鑰預(yù)分配方案與多空間密鑰預(yù)分配方案類似,為了增加傳感器的抗毀性,該方案結(jié)合了E-G方案和Blundo方案[15]。
在傳感器部署前,由權(quán)威機構(gòu)構(gòu)造二元t次對稱多項式的集合F。為傳感器節(jié)點si隨機選取二元t次對稱多項式的子集Fi?F。對于每個多項式f∈Fi,計算f(i,y)并將f(i,y)存儲在傳感器節(jié)點si中。這也可以被認為是由Blundo等人實現(xiàn)的方案中的多個實例。
在傳感器部署后,當兩個傳感器節(jié)點之間至少有一個公共二元t次對稱多項式的共享多項式就可以建立共享密鑰,利用了Blundo等人在該方法中定義的操作來計算它們的共享密鑰。但如果它們沒有任何公共二元t次對稱多項式的多項式共享,就需要利用E-G方法中定義的路徑密鑰建立來計算它們的共享密鑰。這里的不同之處在于,兩個傳感器節(jié)點應(yīng)該首先從同一個二元t次對稱多項式中找到共享多項式,而不是直接找到公共密鑰。
3.1.8 基于組合設(shè)計的密鑰預(yù)分配方案
雖然使用由密鑰池的隨機子集組成的密鑰環(huán)可以使傳感器節(jié)點在概率意義上實現(xiàn)密鑰共享,但如果利用一些具有特殊連通性的基礎(chǔ)結(jié)構(gòu)來構(gòu)建密鑰環(huán),則可以進一步增強密鑰分配方案的連通性?;诮M合設(shè)計的密鑰預(yù)分配就是利用組合設(shè)計理論來增強連通性的[16-17]。
基于組合設(shè)計的密鑰預(yù)分配方案可以被認為是E-G方案的確定性變體,因為該方案中的每個傳感器節(jié)點的密鑰環(huán)都是確定性設(shè)計的。尤其Camtepe等[16]使用一種稱為均衡不完全區(qū)組設(shè)計(BIBD)的數(shù)學(xué)結(jié)構(gòu)來構(gòu)造密鑰環(huán)。BIBD是一個集合系統(tǒng),是一個5元組(υ,b,r,k,λ)。合理的BIBD設(shè)計可以保證密鑰分配方案的連通性,例如:{1,2,3},{1,4,5},{1,6,7},{2,4,6},{2,5,7},{3,4,7},和{3,5,6}是一個帶有(7,7,3,7)的BIBD,這意味著有υ=7個對象和b=7塊,每個區(qū)塊包含r=3個對象,每個對象出現(xiàn)在k=3個區(qū)塊中,每一對塊具有λ=1的公共對象。從密鑰分配的角度來看,按照上述的方法給7個傳感器節(jié)點分配它們的密鑰環(huán),則可以實現(xiàn)完美的連通性。然而,BIBD也有其自身的局限性;傳感器節(jié)點的數(shù)量必須是素數(shù)功率。這極大地限制了該方案的使用。因此,提出了一種混合設(shè)計方案作為補充?;旌显O(shè)計的思想是,如果傳感器節(jié)點數(shù)不是素數(shù)功率,則根據(jù)與傳感器節(jié)點數(shù)最接近的素數(shù)功率構(gòu)造BIBD。傳感器節(jié)點的其余部分以類似于E-G方案的概率方式建立它們的共享。
3.1.9 PIKE密鑰預(yù)分配方案
PIKE(Peer Intermediaries for Key Establishment)是傳感器網(wǎng)絡(luò)中密鑰建立的對等中介。它利用數(shù)學(xué)結(jié)構(gòu)來增強密鑰分配方案的連通性,同時也能解決路徑密鑰建立的問題,保證在只有一個中間傳感器節(jié)點的情況下,兩個沒有共享密鑰的傳感器節(jié)點可以通過建立路徑密鑰建立各自的共享密鑰[18]。
由權(quán)威機構(gòu)建立一個二維的網(wǎng),網(wǎng)格中頂點的數(shù)量v2是使v2≥n出現(xiàn)的最小值。每個傳感器節(jié)點根據(jù)其在網(wǎng)格中的位置被賦予一個二維標識。每個頂點最多有v個相鄰頂點,v來自網(wǎng)格中同一行的頂點,也是網(wǎng)格中同一列的頂點。構(gòu)造完成后,根據(jù)網(wǎng)格中的邊緣將密鑰分配給傳感器節(jié)點;對于每條邊,分配一個密鑰到這條邊的兩端。PIKE密鑰預(yù)分配方案的示例如圖5所示。
圖5 PIKE密鑰預(yù)分配方案示例
通過部署傳感器,兩個傳感器節(jié)點可以根據(jù)各自的身份很容易地知道自己是否擁有共享密鑰。當兩個傳感器節(jié)點(i1,j1)和(i2,j2),其中i1≠i2且j1≠j2想要擁有它們的共享密鑰時,可以使用路徑(i1,j1)→(i1,j2)和(i1,j2)→(i2,j2),或者路徑(i1,j1)→(i2,j1)和(i2,j1)→(i2,j2)。注意,任意一條路徑都可以用確定性的方式確定。
3.1.10 隨機分配集選擇密鑰預(yù)分配方案
在E-G方案中,每個傳感器節(jié)點選擇一個有p個密鑰的密鑰池,和一個r個密鑰的密鑰環(huán)。由于其概率性質(zhì),傳感器節(jié)點之間的不同連接可能具有相同的共享密鑰。而當有一個密鑰用作大部分連接的共享密鑰時,該密鑰的泄露會導(dǎo)致這些連接的不安全性。針對這一問題,Tagu等[19]提出了隨機分配集選擇密鑰預(yù)分配方案,用來解決密鑰分配的局限性。
設(shè)立一個V對(x,yx)首先被選中,其中x表示密鑰標識符,yx是分配密鑰x允許出現(xiàn)的次數(shù)。例如(4,5)∈V,表示密鑰4只能分配給傳感器節(jié)點5次。假設(shè)選擇了V,對于V中的每一個(x,yx),yx傳感器節(jié)點是隨機選取的。每個選定的傳感器節(jié)點都預(yù)加載了密鑰x。
部署傳感器后,共享密鑰發(fā)現(xiàn)和路徑密鑰建立的所有步驟與E-G方案相同。但是,這一次限制了密鑰池中的密鑰作為不同連接中的共享密鑰的出現(xiàn)。
3.1.11 基于偽隨機函數(shù)的密鑰預(yù)分配方案
在E-G方案中,必須通過密鑰環(huán)信息的交換,兩個傳感器節(jié)點才能知道它們的密鑰環(huán)中是否有共同的密鑰,可這將會帶來通信開銷。此外,Merkle謎題的使用也會引起更多的消息交換,增加通信開銷。針對這一問題,基于偽隨機函數(shù)的密鑰預(yù)分配方案利用偽隨機函數(shù)來決定哪些密鑰存儲在哪些傳感器節(jié)點中,極大程度地減少了通信開銷[20]。
權(quán)威機構(gòu)隨機選擇一組集合P包含p個不同的密鑰。假設(shè)每個傳感器節(jié)點的密鑰環(huán)大小為r,對于每個傳感器節(jié)點si,對于每個密鑰kj∈P,計算如下。
z=h(i‖kj)
(2)
其中h(·)為偽隨機哈希函數(shù),‖表示字符串連接。密鑰kj存儲在傳感器節(jié)點si中。
(3)
3.1.12 BABEL密鑰預(yù)分配方案
在采用概率密鑰分配方案時,始終存在兩個傳感器節(jié)點不能直接建立共享密鑰的可能性。通常使用路徑密鑰的建立來解決這個問題。當si想通過建立路徑密鑰與x個傳感器節(jié)點建立共享密鑰,就需要發(fā)現(xiàn)x個不同的安全鏈路序列,這意味著巨大的通信開銷。BABEL密鑰預(yù)分配方案是一種可以減少此類通信開銷的方法[21]。傳感器部署前的密鑰分配和共享密鑰的發(fā)現(xiàn)都與E-G方案相同。然而,當si想通過建立路徑密鑰與x個傳感器節(jié)點建立共享密鑰時,si和x個傳感器節(jié)點首先將Merkle謎題廣播到整個網(wǎng)絡(luò)中。本次廣播的目的是找出與si的密匙環(huán)重疊的傳感器節(jié)點和x個待連接的傳感器節(jié)點的密匙環(huán)。一旦找到這樣的傳感器節(jié)點sj,就可以作為si和x個待連接傳感器節(jié)點之間的公共橋梁。其中,傳感器節(jié)點si可以將用si和sj共享的密鑰加密的路徑密鑰傳輸給sj。然后,傳感器節(jié)點sj將路徑密鑰解密并轉(zhuǎn)發(fā)給將要連接的x個傳感器節(jié)點。BABEL密鑰預(yù)分配方案的一個示例如圖6所示。
圖6 BABEL密鑰預(yù)分配方案示例
3.1.13 基于隨機干擾的密鑰建立方案
Blundo方案可以保證完全的連通性,但是抗毀性非常低,因為當一定數(shù)量的傳感器節(jié)點被破壞,整個傳感器網(wǎng)絡(luò)的安全將突然崩潰。為了解決這個問題,同時不破壞傳感器網(wǎng)絡(luò)的連通性,Zhang等[22]提出了一種基于隨機干擾的密鑰建立方案。本質(zhì)上是在Blundo方案中引入了一定的隨機干擾。由于添加了隨機干擾,原來的共享密鑰消失了。然而,一些被銷毀的密鑰可以被傳感器節(jié)點提取出來,并用作共享密鑰。
在傳感器部署之前,按照Blundo方案,隨機生成一個二元t次對稱多項式。與Blundo方案不同,該方法進一步生成了每個傳感器節(jié)點的干擾多項式。干擾多項式的生成不是完全隨機的,必須遵循將干擾加到二元t次對稱多項式生成的一元多項式中并且不會導(dǎo)致系數(shù)波動的規(guī)則。假設(shè)選擇一個二元t次對稱多項式f(x,y)并為傳感器節(jié)點si選擇一個干擾多項式φi(y)。那么,將f(i,y)+φ(y)一起存儲在傳感器節(jié)點si中,而不是f(i,y)。然而,由于加入了φi(y),采用Blundo方法進行操作的傳感器節(jié)點不會獲得相同的密鑰。只要選取合適的干擾多項式φ(y),可以保證多項式求值得到的密鑰雖然不相同,但它們彼此接近。因此,一旦提取出公共部分,就可以將公共部分用作共享密鑰。因為基于隨機干擾的密鑰建立方案是基于Blundo方法,所以連通性仍然很好。
與位置相關(guān)的密鑰分配方案在下文中按時間順序進行了介紹。不同方案的比較如表2所示,其中的n表示由傳感器節(jié)點{s1,s2…sn}組成的傳感器網(wǎng)絡(luò)中的節(jié)點數(shù)。
表2 與位置相關(guān)的密鑰分配方案
LKE,位置感知密鑰建立。
3.2.1 LEAP密鑰分配方案
LEAP (Localized-encryption and Authentication Protocol)密鑰分配方案可以同時保證密鑰分發(fā)和節(jié)點的真實性[23],本文只討論它的密鑰分發(fā)功能。
假設(shè)在傳感器部署之后有一個安全的啟動時間。在此安全引導(dǎo)時間內(nèi),對手不能干預(yù)傳感器節(jié)點執(zhí)行的操作。LEAP方案的主要思路是:一旦傳感器節(jié)點穩(wěn)定下來,它們就會與直接相鄰的傳感器節(jié)點協(xié)商共享密鑰。當安全引導(dǎo)時間很短時,具有多跳的傳感器節(jié)點的通信時間可能會超過安全引導(dǎo)時間。在現(xiàn)實的傳感器網(wǎng)絡(luò)中,一個傳感器節(jié)點通常不會有太多的直接鄰居,即使每個節(jié)點必須使用單播與每個鄰居通信,所消耗的時間也應(yīng)該不會超過安全引導(dǎo)時間。因此,如果在安全啟動時間結(jié)束前完成密鑰交換,每個傳感器節(jié)點都可以至少與其直接鄰居實現(xiàn)密鑰共享。
3.2.2 基于分組的密鑰分配方案
基于分組的密鑰分配方案被認為是考慮了各個傳感器節(jié)點位置信息的E-G方案的變體[24]。該方案以傳感器節(jié)點作為一個組部署。傳感器節(jié)點被直升機分散,直升機攜帶許多傳感器節(jié)點,一旦直升機停留在一個固定的位置,就被稱為部署點,傳感器節(jié)點的子集就會分散。直升機在感知區(qū)域上有一個行程,分散所有攜帶的傳感器節(jié)點。盡管進行了這種部署,仍然無法知道每個節(jié)點的確切位置。但是傳感器節(jié)點分散在不同的部署點上,而分散在同一部署點上的傳感器節(jié)點之間的距離不會很遠。在該方案中,分散在同一部署點上的傳感器節(jié)點的位置分布假設(shè)為二維高斯分布。該方案假設(shè)每個節(jié)點與相鄰傳感器節(jié)點通信最頻繁,可以理解為每個傳感器節(jié)點有時與鄰近的傳感器節(jié)點通信,而很少與遠處的傳感器節(jié)點通信。例如,如圖7所示,中央細胞內(nèi)的節(jié)點會經(jīng)常與白細胞內(nèi)的節(jié)點進行通信,與深藍細胞內(nèi)的節(jié)點進行通信的機會較少,很少與其他細胞內(nèi)的節(jié)點進行通信。
基于上述假設(shè),很容易設(shè)計出一個密鑰分配方案,它可以對存儲在傳感器節(jié)點中的密鑰的使用進行優(yōu)化。本質(zhì)上,在傳感器部署之前,內(nèi)存給相鄰的傳感器節(jié)點分配了更多的公共密鑰。而其他遙遠的傳感器節(jié)點被分配的公共密鑰較少。此方案中共享密鑰發(fā)現(xiàn)和路徑密鑰建立與E-G方案相同。有學(xué)者基于先前的研究,假設(shè)傳感器節(jié)點的部署位置、感知區(qū)域的形狀和傳感器之間的流量模型,提出了不同的基于節(jié)點的分組密鑰分配方案[25-30]。
圖7 基于分組密鑰預(yù)分配方案示例
圖8 基于攻擊概率的密鑰預(yù)分配方案示例
3.2.3 基于攻擊概率的密鑰分配方案
基于攻擊概率的密鑰分配方案在基于分組密鑰分配方案的基礎(chǔ)上進一步考慮了不同群體受到攻擊的概率[31]。在考慮攻擊概率的情況下,在更頻繁受到攻擊的傳感器節(jié)點安排更多的保護。與基于分組的密鑰分配方案一樣,密鑰被選擇并存儲在每個傳感器節(jié)點中。一旦傳感器節(jié)點屬于更容易被攻擊的組,就會向傳感器節(jié)點分配更多的密鑰。
這種設(shè)置的基本原理是更多的密鑰可以提供更強的安全性。如圖8所示,給出了一個基于攻擊概率的密鑰預(yù)分配方案的示例,網(wǎng)絡(luò)規(guī)劃器提前知道每個節(jié)點被攻擊的概率。
3.2.4 位置感知密鑰建立密鑰分配方案
Blundo方案具有閾值行為,傳感器的抗毀性很低,但當人們選擇的程度t盡可能大時,受損的傳感器節(jié)點的數(shù)量不會超過所選的t,然而這樣卻會產(chǎn)生巨大的存儲開銷。因此,位置感知密鑰建立(LKE)密鑰分配方案利用位置信息來實現(xiàn)Blundo方案,同時也不會產(chǎn)生太多的存儲開銷[32]。
在傳感器部署后,由于每個傳感器節(jié)點都知道自己的位置,所以在邏輯上將感知區(qū)域劃分為幾個子區(qū)域。在每個子區(qū)域中,從位于該子區(qū)域的傳感器節(jié)點中通過某些安全的投票算法選擇一個服務(wù)傳感器節(jié)點作為次區(qū)域,然后隨機構(gòu)造一個二元t次對稱多項式和兩個素數(shù)p和q。
這兩個素數(shù)用于Rabin的非對稱密鑰密碼系統(tǒng),其中n=p·q是公鑰。之后,服務(wù)傳感器節(jié)點將公鑰廣播給子區(qū)域內(nèi)的所有傳感器節(jié)點。每個接收公鑰的傳感器節(jié)點si都會向服務(wù)傳感器節(jié)點發(fā)送一個隨機生成的密鑰Ki及其坐標(xi,yi)。然后,服務(wù)傳感器節(jié)點對同一子區(qū)域內(nèi)的每個傳感器節(jié)點發(fā)送包含坐標信息(xi,yi)給si的一元多項式,這個發(fā)送是通過使用密鑰Ki來保護的。由于一個傳感器節(jié)點可以由多個業(yè)務(wù)傳感器節(jié)點提供服務(wù),因此不同業(yè)務(wù)傳感器節(jié)點的單變量多項式不同。兩個傳感器節(jié)點可以通過找到各自的公共服務(wù)傳感器節(jié)點找到共享密鑰,然后對Blundo方法中對應(yīng)的一元多項式進行操作,得到共享密鑰。
隨著物聯(lián)網(wǎng)應(yīng)用需求的不斷增長,無線傳感器網(wǎng)絡(luò)以其部署便捷、成本低、可靠性高、便于管理等優(yōu)點,在物聯(lián)網(wǎng)尤其是工業(yè)互聯(lián)網(wǎng)中得到了日益廣泛的應(yīng)用。由于無線傳感網(wǎng)受到節(jié)點自身硬件條件的限制,許多傳統(tǒng)網(wǎng)絡(luò)安全協(xié)議無法直接使用。因此,許多學(xué)者根據(jù)物聯(lián)網(wǎng)數(shù)據(jù)采集節(jié)點的分布特征、系統(tǒng)資源的可用性、網(wǎng)絡(luò)通信負荷、存儲負荷等因素,提出了一系列適用于不同場景的密鑰分配協(xié)議。密鑰分配協(xié)議的性能不僅對無線傳感網(wǎng)系統(tǒng)的硬件成本有著重要影響,同時也決定了整個網(wǎng)絡(luò)的數(shù)據(jù)傳輸安全水平。在設(shè)計無線傳感網(wǎng)安全架構(gòu)時,需要根據(jù)實際應(yīng)用的安全指標要求,結(jié)合節(jié)點的硬件能力,合理的選擇輕量級的密鑰分配機制,最大程度降低網(wǎng)絡(luò)的建設(shè)成本和系統(tǒng)復(fù)雜度。未來,隨著軟件定義網(wǎng)絡(luò)技術(shù)的成熟和推廣,基于軟件定義安全的新一代無線傳感網(wǎng)技術(shù)體系必將對現(xiàn)有網(wǎng)絡(luò)體系產(chǎn)生巨大沖擊,這也是未來非常值得研究的方向之一。