田洪亮,王佳玥,李晨曦
(東北電力大學電氣工程學院,吉林吉林 132012)
無線傳感器網絡(Wireless Sensor Network,WSN)[1]中的傳感器節點價格低、體積小,在特定區域內分布并相互連接,通過無線介質實現感測、計算和通信等多種功能,實現采集信息的監測、傳感、廣播和處理[2],廣泛應用于軍事、工業、智能家居、醫療保健、監控、環境監測和農業等領域[3-4]。然而,傳感器節點是資源受限設備,在能量、計算能力、存儲和通信帶寬等方面存在限制。隨著物聯網(Internet of Things,IoT)[5]中對WSN 要求的逐漸增加,保護網絡免受非法信息訪問并高效利用存儲是一項艱巨的任務。
大數據時代需要高效存儲IoT 設備生成的大量數據,以便在實時應用中按需檢索數據。如文獻[6]提出了基于云-IoT 的分布式解決方案,以優化邊緣設備中霧節點/迷你云之間的數據,利用了流量聚合處理,在延遲和能耗方面實現了較好性能;文獻[7]提出了利用密鑰衍生加密和數據分析(Key Derivation Encryption and Data Analysis,KDE-DA)管理方案處理IoT 設備的個人數據。利用衍生密鑰算法對敏感用戶的信息進行加密,確保了數據隱私性,并減小了傳輸開銷;文獻[8]提出了不使用智能卡的高效身份驗證方案,能抵御WSN 中的內部攻擊、盜竊攻擊和會話恢復攻擊。此外,文獻[8]還提出了基于三因子的身份驗證方案,能實現特定WSN中更高的隱私性。文獻[9]提出了去中心化的區塊鏈信息管理(Blockchain Information Management,BIM)方案實現醫療數據的安全存儲,采用了改進的實用拜占庭容錯(Practical Byzantine Fault Tolerance,PBFT)共識算法和優化Hash 加密算法,將數據安全有效地存儲于分布式數據庫中,但對于大量傳感設備環境的適用性存在疑問;文獻[10]提出了基于信任和分布式區塊鏈評估的安全定位(Decentralized Blockchain Evaluation,DBE)算法,在生成區塊鏈并建立共識后,基于信任值設定信標節點的優先級。
區塊鏈技術具有去中心化、不可變性、透明性和分布式共識等優點,能夠提高系統安全性[11]。因此,本文在基于區塊鏈的解決方案中結合身份驗證方案和云數據存儲,以實現WSN 中的安全通信。本文主要工作:
1)提出了基于高級加密標準(Advanced Encryption Standard,AES)和橢圓曲線加密(Elliptic Curve Cryptography,ECC)的混合算法區塊鏈方案,結合身份驗證方案,解決了云數據的安全性存儲問題;
2)利用防篡改密鑰機制保存所有節點的認證密鑰,在身份驗證過程中結合認證和撤銷程序確保抵御各種攻擊。
傳感器節點加入網絡前,先由基站驗證其合法性;然后,從基站得到身份驗證信息和其他參數;接著,傳感器節點將感測信息傳遞至簇頭,簇頭通過無線介質將信息傳遞至基站。本文方案主要包括初始化階段、注冊階段、傳感器節點身份認證階段、消息簽名和驗證階段、密鑰更新階段、撤銷階段。首先,通過基站計算出所有階段使用的所有參數。然后,所有普通傳感器節點將其信息(例如位置、速度、身份標識、剩余能量和傳感信息)提供給簇頭,以進行初始化;接著,簇頭將自身所有信息傳至基站;采集到來自簇頭的信息后,基站用其構建防篡改密鑰機制(Untamperable Key Mechanism,UKM)[12],并將UKM 分配至所有簇頭;其后,簇頭保存UKM,并將密鑰分發至普通傳感器節點。方案中主要參數說明如表1 所示。

表1 主要參數及其說明Tab.1 Main parameters and their description




該階段中,BTA更新密鑰,以提高網絡安全性:

2)接收到(sign,k)后,先通過解密k以驗證時間戳的新鮮性。若是新鮮的,則將UKM中保存的參數更新為新參數。
該階段中,BTA執行撤銷程序,以免受到來自惡意傳感器節點的欺詐或惡意消息的影響。BTA檢測到故障傳感器節點后,將屏蔽該節點的ID。所有合法傳感器節點均能夠成功計算,但撤銷傳感器節點則無法發現和。因此,惡意傳感器節點不能再次廣播合法消息。
基站通過身份驗證程序驗證所有傳感器節點的合法性,然后將密鑰參數信息與鄰近基站共享。然而,保存在集中式數據庫中的密鑰參數可能會受到攻擊,難以保證安全性,攻擊者可通過在中央數據存儲器上執行惡意行為獲取所有保存的信息。為了避免非法訪問,本文利用了基于混合算法的區塊鏈進行分布式信息存儲,將所有傳感器節點相關的密鑰信息保存在區塊鏈中,以提高攻擊者入侵難度。本文方案整體框架如圖1 所示。

圖1 本文方案整體框架Fig.1 Overall framework of the proposed scheme
區塊鏈的一般結構如圖2 所示,且區塊鏈上的數據具有以下特性:1)自治性,指運行不受任何中央控制,任何節點在通過網絡中其余節點的驗證后,均可發布事務;2)分布式,指在點對點網絡上以分布式的方式運行每個簽名的事務均在網絡上廣播,避免出現單點故障問題;3)不可變更性,有效區塊的鏈記錄在全局賬本上,需要由網絡中其他節點進行驗證,因此具有不可變更性;4)契約性,指共識機制取決于考慮中問題的信息狀態,通過實施沒有中央控制的規則組來實現共識程序。[13]

圖2 區塊鏈結構Fig.2 Blockchain structure
區塊鏈的第一個區塊用于初始化,被稱之為“創世”區塊,每個區塊包含散列碼、時間戳、事務集和工作量證明等,各個塊通過散列碼鏈接,且散列碼是不可更改的。在取得大部分節點的共識后,數據才可被插入到區塊鏈,且在得到所有方的接收后數據不可被刪除或更改[14]。
本文方案使用的散列算法是SHA256 算法,生成一個私鑰密碼的散列值;然后,通過用戶憑證,將生成的散列值作為隨機數發生器(Random Numeral Generator,RNG)的種子。通過對稱算法和RNG 生成的密鑰加密發送到云端。其中,AES 的作用是數據加密,本文采用了128 位密鑰,進行了10次AES 的數據迭代加密,包括字體替換、混合列、輪密鑰異或和行移位等。
通過用戶憑證和RNG 獲得一個隨機數R1,R1作為發送方的私鑰。ECC 的具體步驟總結如下:
步驟1 對RNG 進行初始化操作。
步驟2 發送方生成公鑰,具體公式為:

步驟3 接收方生成公鑰,其中,R2為接收方的私鑰,具體公式為:

步驟4 發送方和接收方為了數據的安全性,分別生成對應的安全密鑰:

其中:本文ECC 生成160 位密鑰,ECC 的加密和解密過程可以參考文獻[15]。
區塊鏈利用時間戳、傳感器節點標識ID 和散列碼對數據進行散列操作,從而生成事務數字簽名。在本文區塊鏈方案中,合并ECC 的160 位密鑰與AES 的128 密鑰,通過在云存儲層之間的密鑰對交換,從而獲得較高的安全等級。ECC 中的RNG 通過用戶憑證,大幅增強了隱私性曲線中生成密鑰對安全性,使其難以被云供應商或其他攻擊者破解和讀取。
本文區塊鏈方案中的各組件解釋如下。
1)基站,是基于WSN 的IoT 區塊鏈系統中的重要組件。它生成新消息,并執行區塊生成的挖掘過程;其后,將通過驗證的區塊添加到區塊鏈,并在網絡上廣播。當任何傳感器節點的認證被基站撤銷時,在區塊鏈內更新密鑰參數。基站確保了傳感器節點之間的身份驗證,并在其通信范圍內提供節點認證。
2)簇頭,也是區塊鏈中的主要組件。在認證過程中,基站向簇頭提供保存在區塊鏈中的密鑰參數,而簇頭將所有這些參數保存到UKM 內。簇頭節點負責將采集到的信息傳遞至基站。
3)消息,在基于WSN 的IoT 中主要包括注冊消息、認證消息和撤銷消息三種。
4)區塊(體),是區塊鏈中的主要組件,包含塊頭和塊體。塊頭通常包含時間戳、事務列表、上一個區塊和當前區塊的散列值。基站處的信息被分為傳感信息和密鑰參數信息兩類。傳感信息為傳感器節點從物理環境中采集到的信息,需要占用較大存儲空間,因此有必要將數據保存在云端而非基站中,以降低延遲,提高數據可用性和存儲效率。利用云網絡,可以在任何時間、任何地點輕易地訪問信息。
通過區塊鏈技術管理密鑰參數信息,生成的區塊鏈作為所有參與方的分布式賬本,保存完整的密鑰參數歷史和事件數據包。當簇頭需要將新采集到的信息廣播至基站時,基站首先驗證簇頭的身份標識和密鑰參數。基站驗證每個簇頭的獨立性,以防止受到惡意攻擊,即基站僅接收來自認證簇頭的信息。
實驗在配置了Intel i5 CPU @2.80 GHz,8 GB RAM 的64位操作系統上進行性能評估,仿真系統采用Solicdity OOP(Object Oriented Programming),JavaSCript ES4 和超文本預處理器PHP 5.6.31,并在虛擬機中創建區塊集合。實驗仿真參數如表2 所示,驗證結果經過多次實驗獲得。此外,散列算法采用SHA-256,基站的位置具有隨機性但不能移動,節點隨機移動。

表2 仿真參數說明Tab.2 Description of simulation parameters
從計算開銷、認證延遲、檢測準確度和吞吐量方面評估了本文方案并與KDE-DA、BIM 和DBE 方案進行比較分析。
表3 給出了不同方案的計算開銷比較。其中:Thash表示散列函數的處理時間;TMAC表示認證碼的計算開銷;TENC表示加密計算開銷;TPAR表示乘法的計算開銷;TUML表示配對處理開銷。總的計算開銷是指一個數據包的發送到接收所耗費的時長。在本文方案中,考慮平均時長Thash=6.7 μs,TMAC=17.8 μs,TENC=41.7 μs,TPAR=5.9 μs,TMUL=41.2 μs,以評估通信和計算成本。實驗通過計算注冊階段和認證或密鑰參數分發過程中的總開銷來評估各方案的性能。如表3 所示,按照平均時長,KDE-DA 的總耗時長為160.4 μs;BIM 的總耗時長為136.8 μs;DBE 的總耗時長為232.3 μs;本文方案的總耗時長為150.4 μs。其中:BIM 只采用簡單區塊鏈技術保證隱私性,總耗時較短;本文方案時間效率位列第二,其混合算法消耗了更多的計算資源,但提供了更高的安全等級。

表3 不同方案的計算開銷Tab.3 Computational overhead of different schemes
圖3 給出了各方案在延遲方面的仿真結果比較。從中可觀察到,網絡規模會影響方案的性能,隨著網絡規模的增加,所有方案的認證延遲都會變大;但本文方案的認證延遲依然小于其他方案,主要是因為本文方案中,請求從軟件層到基站等基礎設施層的傳輸速度較快。此外,對于區塊鏈方案,區塊的大小也是影響延遲的重要因素,本文方案的區塊體大小為100 KB 到500 KB,大小較為適中。

圖3 不同網絡規模下不同方案的延遲比較Fig.3 Delay comparison ofdifferent schemes under different size of network
圖4 給出了本文方案與其他對比方案在檢測準確度方面的結果比較。由圖4 可以看出:仿真時間會顯著影響到檢測準確度,隨著仿真時間的增加,所有方案的檢測準確度均會上升;與其他方案相比,本文方案能夠利用最少的仿真輪數,成功完成惡意攻擊檢測。這主要得益于本文方案可以利用混合算法區塊鏈保存密鑰參數,避免出現單點故障的風險;且混合算法的區塊鏈在安全性上高于一般區塊鏈方案,從而可以利用云計算存儲大量信息。BIM 是一種集中式的輕量級解決方案,但單點故障可能會導致很多信息的丟失;DBE 也是一種集中式的解決方案,但未考慮數據的透明性和多介質存儲;KDE-DA 利用衍生密鑰算法對敏感用戶的信息進行加密,可以處理IoT 的個人數據,但沒有采用區塊鏈技術,對于數據分布性存儲并不好。

圖4 不同仿真時間下不同方案的檢測準確度比較Fig.4 Detection accuracy comparison of different schemes under different simulation time
此外,本文還比較了吞吐量方面的仿真結果,因為吞吐量是數據存儲方案性能的重要指標之一。吞吐量定義如下:

其中:packet表示基站、傳感器等成功發送的數據包數總數;ap表示所有數據包的平均長度;t表示發送時間。吞吐量也可以理解為給定時間內完成的總任務數量。圖5 給出了文件大小對整體吞吐量的影響,可以看出本文方案在吞吐量方面的性能優于其他方案。KDE-DA 吞吐量低于其他區塊鏈方案是因為沒有采用去中心化的結構,而區塊鏈方案可以創建多個節點以利用事物序號,通過身份驗證和加密數據的匹配獲得審核報告;BIM 需要第三方仲裁機構,因此效率也較為低下;本文方案的吞吐量最高,則主要得益于去中心化的結構,以及準確高效的檢測。

圖5 不同文件大小對吞吐量的影響Fig.5 The impact of different file sizes on throughput
表4 給出了所有方案的特征。可以看出,綜合特征更具有優勢。此外,本文方案僅采用了較少數量的傳感器節點(100~200),但具有較好的可擴展性,在使用大量傳感器節點時依然能夠提供高效性能。大量節點可能會造成計算和通信成本的成比例增加,但并不會降低安全性能。

表4 不同方案的特征比較Tab.4 Comparison of characteristics of different schemes
為檢驗方案的隱私性能以及抵御各種攻擊的能力,將本文方案的安全屬性與KDE-DA[7]、BIM[9]和DBE[10]方案進行比較。
1)抵御重放攻擊。
在本文中,重放攻擊[16]是指攻擊者重復發送基站已經接收的數據包來欺騙系統。該攻擊中,惡意/欺詐節點故意重復或延遲信息傳輸。為防御物聯網中的重放攻擊,本文方案利用時間戳確保了數據包的新鮮性,利用TSKG和TSI檢查數據包的新鮮性。
2)數據包欺騙或修改攻擊。
本文方案涉及各種不同類型的數據包,包括簇頭至簇頭的數據包,簇頭至基站的數據包,基站至基站的數據包,以及密鑰更新數據包。若攻擊者希望對數據包進行更改,其需要得到但攻擊者無法獲得這些密鑰信息,因此,本文方案能夠抵御數據包欺騙或修改攻擊。
3)抵賴攻擊。
抵賴攻擊[17]表示拒絕或否認某些事情。所有傳感器節點所傳播的數據包均結合其偽身份標識,計算為BTA計算每個數據包的初始偽身份標識{,并利用保存的表對其標識進行交叉驗證,因此,任何節點均不能否認其傳播過的數據包和時間戳。這說明本文方案能夠抵御抵賴攻擊。
4)冒名攻擊。
在本文中,冒名攻擊[18]是指攻擊者在通信過程中偽造身份標識的攻擊。本文方案在通信過程中使用了偽身份標識,而非實際身份標識,并通過UKM 保護實際身份標識,因此,本文方案能夠抵御冒名攻擊。
5)位置跟蹤攻擊。
位置跟蹤攻擊[19]是指通信過程中攻擊者利用虛假身份信息對傳感器節點進行定位攻擊。由于本文方案中傳感器節點的偽身份標識被保存在消息中,使用時間戳TSI計算得出因此,利用時間戳對傳感器節點的進行了散列操作,確保了位置的安全性,證明本文方案能夠防止位置跟蹤。
各方案的安全性比較如表5 所示。KDE-DA 不能抵御抵賴攻擊和冒名攻擊,以集中式的方式完成身份驗證過程;BIM 不能抵御冒名攻擊、消息篡改和生成攻擊,且BIM 方案需要第三方仲裁;DBE 不能防止私人數據泄露,且在安全性方面與混合算法的區塊鏈方案具有一定差距,DBE 和BIM 難以在大量傳感器節點環境中使用。

表5 不同方案的安全性比較Tab.5 Security comparison of different schemes
本文提出了用于WSN-IoT 環境下的基于區塊鏈和云數據存儲的隱私保護身份驗證方案。首先通過基站完成所有傳感器節點的注冊和認證過程;然后,將所有密鑰參數保存在簇頭控制的防篡改密鑰機制(UKM)中;此外,簇頭將采集信息傳播至基站,包含密鑰參數和感測信息,并利用區塊鏈技術記錄密鑰參數,以實現數據的不可變更性和透明性。仿真結果表明,與KDE-DA、BIM 和DBE 方案相比,本文方案在延遲、吞吐量和檢測準確度方面實現了明顯的性能改進。未來,將對數據管理和框架資源作進一步優化,以實現更好性能。