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