基于可重構(gòu)的可信SOPC平臺的WSN安全系統(tǒng)
1 引言
1.1 選題背景
WSN是由大量具有感知能力,計算能力和通信能力的微型傳感器節(jié)點構(gòu)成的自組織、分布式網(wǎng)絡系統(tǒng),在軍事國防,環(huán)境監(jiān)測等領(lǐng)域有著巨大的實用價值,被認為是將對二十一世紀產(chǎn)生巨大影響力的技術(shù)之一;但由于節(jié)點多分布在非受控區(qū)域,無線信道的廣播特性和自組織網(wǎng)絡的組網(wǎng)特性,使得網(wǎng)絡的拓撲結(jié)構(gòu)易變,傳感器節(jié)點易受攻擊,WSN網(wǎng)絡中的安全問題也日益突出。
1.2 系統(tǒng)概述
針對無線傳感器網(wǎng)絡存在的上述安全問題,本系統(tǒng)在Xilinx的開發(fā)板上,首先利用無線模塊組成一個無線傳感器網(wǎng)絡,并基于SPINS協(xié)議框架實現(xiàn)了網(wǎng)絡內(nèi)的密鑰管理,在系統(tǒng)內(nèi)部的安全模塊內(nèi)實現(xiàn)了RC5,MD5等算法,保證網(wǎng)絡的通信安全;其次為了保證傳感器網(wǎng)絡中節(jié)點本身的安全可信,增加了防篡改檢測電路,從硬件級保證節(jié)點的安全性和完整性;最后針對于WSN網(wǎng)絡的拓撲結(jié)構(gòu)易變的特點,利用基于FPGA的可重構(gòu)計算技術(shù),使得網(wǎng)絡內(nèi)的某些節(jié)點在需要時可以發(fā)生重構(gòu),代替失效的基站繼續(xù)工作,從而保證整個網(wǎng)絡安全可靠地運行。
整個系統(tǒng)以WSN中單個節(jié)點的安全可信為基礎,并采用SPINS協(xié)議提高了密鑰拓撲連通率,節(jié)點的可重構(gòu)機制也大大增強了網(wǎng)絡的安全性和健壯性,由點到面地實現(xiàn)了WSN網(wǎng)絡的安全。
2 系統(tǒng)方案
2.1 WSN網(wǎng)絡拓撲結(jié)構(gòu)
本系統(tǒng)采用的網(wǎng)絡結(jié)構(gòu)(圖1)為分布式單跳簇網(wǎng)絡結(jié)構(gòu), 基站為單跳簇子網(wǎng)的中心,各個基站之間形成分布式網(wǎng)絡。
圖1:WSN網(wǎng)絡拓撲結(jié)構(gòu)
2.2 WSN密鑰管理協(xié)議
SPINS密鑰管理協(xié)議是在無線傳感器網(wǎng)絡中應用廣泛的一種密鑰管理協(xié)議,適用于規(guī)模比較小的傳感器網(wǎng)絡。本系統(tǒng)基于SPINS協(xié)議的框架,實現(xiàn)了一個簡單的密鑰分發(fā)協(xié)議。
2.3 可重構(gòu)體系結(jié)構(gòu)
在以基站為中心的網(wǎng)絡結(jié)構(gòu)中,基站往往是整個網(wǎng)絡的瓶頸,一旦基站失效則會導致其整個網(wǎng)絡的癱瘓。本系統(tǒng)為了解決基站的瓶頸問題,提出了一種可重構(gòu)機制,在子網(wǎng)內(nèi),一旦節(jié)點發(fā)現(xiàn)基站失效,則節(jié)點之間會通過爭奪或是協(xié)商的方式來確定讓哪個節(jié)點發(fā)生重構(gòu),以代替原來的基站繼續(xù)維持網(wǎng)絡的正常運轉(zhuǎn)。整個過程如圖2,3,4所示。
圖2:子網(wǎng)正常工作
圖3:基站失效
圖4:節(jié)點重構(gòu)
2.4 可信平臺體系結(jié)構(gòu) [!--empirenews.page--]
TCPA/TCG組織大大推動的了可信計算平臺的發(fā)展,本系統(tǒng)的安全模塊在設計時從下面兩個角度考慮可信性:
1:能夠保護指定數(shù)據(jù)存儲區(qū)域,防止敵手進行特定類型的物理訪問。
2:賦予計算平臺上的程序證明自身運行在一個未被篡改的環(huán)境中的能力。
3 系統(tǒng)功能
3.1 實現(xiàn)基于SPINS框架的密鑰管理協(xié)議
本系統(tǒng)用硬件實現(xiàn)了RC5加密算法,MD5算法和隨機數(shù)產(chǎn)生器,實現(xiàn)了基于SPINS框架的密鑰管理協(xié)議,保證WSN網(wǎng)絡中密鑰的安全分發(fā)和節(jié)點之間的安全通信。
3.2 實現(xiàn)網(wǎng)絡中節(jié)點的重構(gòu)功能
以基站為中心的單跳簇網(wǎng)絡中,基站是子網(wǎng)安全的瓶頸,一旦基站失效則會導致子網(wǎng)癱瘓。為了保證網(wǎng)絡的穩(wěn)定性和健壯性,本系統(tǒng)實現(xiàn)了節(jié)點的可重構(gòu)機制,當子網(wǎng)基站失效后,某些節(jié)點會發(fā)生重構(gòu),代替原來的基站以保證網(wǎng)絡穩(wěn)定運行。
3.3 增強WSN網(wǎng)絡內(nèi)節(jié)點的抗篡改能力
傳感器節(jié)點大都布置在非受控區(qū)域(如布置在敵方控制區(qū)域內(nèi)等),一旦節(jié)點被捕獲后,內(nèi)部存儲的數(shù)據(jù)尤其是通信密鑰泄露出去的話,會威脅整個網(wǎng)絡的安全。本系統(tǒng)在保證通信安全的基礎上增加了防篡改檢測電路,一旦檢測到敵方欲竊取里面存儲的密鑰等重要信息時,則立即將數(shù)據(jù)清零,從而增強了網(wǎng)絡的安全。
4 系統(tǒng)原理與實現(xiàn)
4.1 WSN網(wǎng)絡的原理與實現(xiàn)
本系統(tǒng)采用的通信協(xié)議如圖5所示,DDL層以下采用IEEE802.15.4協(xié)議,網(wǎng)絡層以上根據(jù)系統(tǒng)自定義通信協(xié)議。
圖5 WSN網(wǎng)絡通信協(xié)議
系統(tǒng)網(wǎng)絡層協(xié)議的實現(xiàn)是基于XILINX公司的8位CPU軟核PicoBlaze,用匯編語言編寫模塊控制部分,幀協(xié)議的分析用硬件實現(xiàn)。
4.2 網(wǎng)絡節(jié)點的原理與實現(xiàn)
系統(tǒng)的總體設計如圖7所示。系統(tǒng)主要由4部分構(gòu)成:中心控制器,數(shù)據(jù)傳輸控制器,安全模塊(TPM), 外圍模塊。
圖6 網(wǎng)絡節(jié)點的總體設計圖
4.3 中心控制器
4.3.1 中心控制器總體結(jié)構(gòu)
中心控制器是整個系統(tǒng)的控制中心,接受無線收發(fā)模塊,數(shù)據(jù)采集模塊,TPM模塊和數(shù)據(jù)傳輸控制器的命令,并根據(jù)命令的內(nèi)容控制各個模塊之間的協(xié)調(diào)工作。
圖7 中心控制器框圖
[!--empirenews.page--]4.3.2 中心控制器具體實現(xiàn)
傳感器節(jié)點在不同時刻扮演不同的角色,如系統(tǒng)初始化過程中傳感器節(jié)點需要等待四個密鑰的輸入,在基站工作模式下需要分發(fā)密鑰協(xié)議相關(guān)包,在終端節(jié)點工作模式下需要接受密鑰協(xié)議包和采集數(shù)據(jù)并且發(fā)送給基站,因此中心控制器根據(jù)節(jié)點的工作狀態(tài)選擇信號,重構(gòu)為不同的工作模式。中心控制器的工作模式有:初始化工作模式,基站工作模式和終端節(jié)點工作模式。
4.4 TPM模塊
4.4.1 TPM模塊總體設計
TPM模塊總體設計圖如圖10:主要包含模式選擇控制器,RC5加密模塊,MD5模塊,比較器模塊,隨機數(shù)產(chǎn)生器模塊,篡改響應模塊,密鑰存儲區(qū)。
圖8 TPM結(jié)構(gòu)圖
4.4.2 模式選擇控制器
模式選擇控制器根據(jù)中心控制器的模式選擇命令,配置TPM成相應的工作模式后進入正常工作狀態(tài)。
4.4.3 RC5加密模塊
本系統(tǒng)用硬件實現(xiàn)了RC5-16/1/4,該模塊的為了提高加解密速率采用了流水線的設計方法,如圖11所示,首先輸入32位密鑰,22個周期之后擴展密鑰計算完成,輸入32位的明文,經(jīng)過運算得到32位的密文。
圖9 RC5加密模塊
4.4.4 MD5模塊
MD5模塊(圖12)主要由三部分構(gòu)成:數(shù)據(jù)讀入模塊,數(shù)據(jù)讀出模塊和數(shù)據(jù)處理模塊。
圖10 MD5模塊 [!--empirenews.page--]
4.5 外圍模塊
外圍硬件電路的設計使用了三個Xilinx提供的Picoblaze核,系統(tǒng)總體結(jié)構(gòu)圖如圖13所示。
圖11 外圍電路設計圖
5 測試方案
5.1 密鑰管理協(xié)議測試方案
為了驗證系統(tǒng)的密鑰管理協(xié)議中在測試密鑰管理協(xié)議時,我們從以下幾個方面驗證:
a) 四個密鑰和ID基的注入正確
四個密鑰和ID基是后面密鑰協(xié)議相關(guān)包運算的原始數(shù)據(jù),故如果可證明后面的結(jié)果正確則可得證前面的結(jié)果正確
b) 驗證K子的正確性
因為初始包的數(shù)據(jù)是經(jīng)過K子加密后的結(jié)果,為了驗證 K子的正確性,我們查看下一步的初始包的數(shù)據(jù)正確與否即可得知。
c) 驗證初始包的正確性
為了驗證初始包的正確性,在電腦上接上一個無線收發(fā)模塊,用來接受節(jié)點和基站發(fā)送出來的消息。然后用已知的KT0和K0來算出相應的初始包的內(nèi)容,和接受到的數(shù)據(jù)進行比對即可得知初始包的內(nèi)容正確與否。
d) 驗證TESLA 密鑰包的正確性
接受到兩次的TESLA包,算出Ki,然后用算出相應的TESLA 密鑰包,和接受到的密鑰包進行比對,即可知道密鑰包分發(fā)正確與否。
e) 驗證通信密鑰Ki正確更新
為了驗證通信密鑰的正確更新,可以在不同時段使終端節(jié)點發(fā)送相同的數(shù)據(jù),如果接受到的數(shù)據(jù)不同則說明密鑰發(fā)生了更新,為了驗證密鑰的正確更新則算出兩個時段發(fā)送的數(shù)據(jù)的正確內(nèi)容,和接受到的內(nèi)容進行比較即可知道通信密鑰是否正常更新。
5.2 可重構(gòu)功能的測試方案
為了測試可重構(gòu)功能,可以將原來網(wǎng)絡中的基站關(guān)閉,等待一段時間之后看網(wǎng)絡內(nèi)是否有節(jié)點重構(gòu)為基站,重構(gòu)為基站后正常工作的驗證辦法同密鑰管理協(xié)議的測試方案。
5.3 可信平臺的測試方案
當發(fā)現(xiàn)敵手入侵時,clear信號為高,所有密鑰清零,為了驗證其正確性,以后發(fā)送的密鑰協(xié)議相關(guān)包用到的各種密鑰均為零,將計算結(jié)果和接受到的數(shù)據(jù)進行比對即可知道其正確與否
6 結(jié)束語
本系統(tǒng)創(chuàng)新性的將可信平臺理論和可重構(gòu)機制引入WSN系統(tǒng)安全中,依托WSN通信協(xié)議和SPINS網(wǎng)絡密鑰管理協(xié)議,實現(xiàn)一種從點到面,點面結(jié)合的安全機制。系統(tǒng)方案不強調(diào)加解密算法的復雜性,著重于方案的靈活性,健壯性。
展望未來技術(shù)的發(fā)展,基于FPGA的動態(tài)可重構(gòu)技術(shù)以及可重構(gòu)密碼芯片理論,本系統(tǒng)還可以實現(xiàn)加解密算法的動態(tài)調(diào)整,工作模式的切換更加快捷,以適合不同情景下的安全需求。