丁慧潔,蔣建峰
(1.廣東開放大學(xué) 人工智能學(xué)院,廣東 廣州 510091;2.南京郵電大學(xué) 計(jì)算機(jī)學(xué)院,江蘇 南京 210023;3.蘇州工業(yè)園區(qū)服務(wù)外包職業(yè)學(xué)院,江蘇 蘇州 215123)
無(wú)線傳感網(wǎng)(Wireless Sensor Network,WSN)是目前極為廣泛并主流的網(wǎng)絡(luò)形式。由于無(wú)線傳感網(wǎng)由大量的節(jié)點(diǎn)組成,這些節(jié)點(diǎn)又會(huì)限制計(jì)算機(jī)的資源,當(dāng)無(wú)線傳感網(wǎng)部署在一個(gè)意想不到或是敵對(duì)的環(huán)境中時(shí),會(huì)遭到不同類型的惡意攻擊,所以其網(wǎng)絡(luò)安全問題成為了一個(gè)重要的關(guān)注點(diǎn)[1-3]。目前無(wú)線傳感網(wǎng)的安全問題多聚焦于傳統(tǒng)的網(wǎng)絡(luò)安全層面,包括應(yīng)用系統(tǒng)、信息審計(jì)、通信加密、災(zāi)難恢復(fù)和安全掃描等多個(gè)安全組件問題;或是注重在組網(wǎng)技術(shù)、路由算法等安全機(jī)制方面。本文依托無(wú)線傳感網(wǎng)在數(shù)據(jù)傳輸過程中涉及的節(jié)點(diǎn)、族等環(huán)節(jié)在節(jié)點(diǎn)管理模塊、發(fā)送方處理模塊、數(shù)據(jù)傳輸模塊、接收方數(shù)據(jù)處理模塊中對(duì)節(jié)點(diǎn)信息的生成、密鑰的產(chǎn)生和密鑰中加入水印技術(shù)的使用展開研究,通過對(duì)實(shí)際工業(yè)區(qū)無(wú)線傳感網(wǎng)的相關(guān)數(shù)據(jù)采集,利用系統(tǒng)在IAR7.30環(huán)境中開發(fā)編譯完成,而后在Chipcon公司的無(wú)線單片機(jī)CC2430/CC2431上進(jìn)行仿真測(cè)試。
通過對(duì)無(wú)線傳感網(wǎng)的結(jié)構(gòu)及其安全模塊的研究,分析出本系統(tǒng)的設(shè)計(jì)原理,利用水印技術(shù)與傳感網(wǎng)數(shù)據(jù)互相符合為中心,且以很低的運(yùn)算開銷實(shí)現(xiàn)并適合傳感網(wǎng)動(dòng)態(tài)性的特點(diǎn),還能容忍網(wǎng)內(nèi)處理對(duì)數(shù)據(jù)內(nèi)容的改動(dòng)。采用基于時(shí)間戳的水印技術(shù),能克服密碼技術(shù)中加密的內(nèi)容在解密之后缺乏有效的手段以保證其不被非法拷貝、惡意篡改等,從而實(shí)現(xiàn)對(duì)無(wú)線傳感網(wǎng)傳輸數(shù)據(jù)的加密與解密,保障了傳感網(wǎng)的安全。
由于無(wú)線傳感網(wǎng)多數(shù)部署在有限、受控的環(huán)境中,很容易受到外界的攻擊和破壞,加之目前無(wú)線傳感網(wǎng)技術(shù)在網(wǎng)絡(luò)的機(jī)密性、完整性及防攻擊的措施上仍存在提升空間,所以無(wú)線傳感網(wǎng)的安全同時(shí)對(duì)無(wú)線傳感網(wǎng)的安全模塊提出了更高的要求,本文在能力受限的傳感網(wǎng)上,聚焦密鑰預(yù)分配的主要問題:密鑰的創(chuàng)建、分配的方式和節(jié)點(diǎn)存儲(chǔ)對(duì)密鑰的存儲(chǔ)。在著名EG方案的基礎(chǔ)上,提出了一種新的密鑰管理和更新方案,此方案基于節(jié)點(diǎn)標(biāo)識(shí)的無(wú)線傳感網(wǎng)密鑰預(yù)分配方案(Based on Identification-Node Key Pre-distribution Security System,BIKPS),即利用節(jié)點(diǎn)標(biāo)識(shí)密鑰預(yù)分配設(shè)計(jì)一個(gè)高安全又低開銷的安全機(jī)制。
無(wú)線傳感網(wǎng)的網(wǎng)絡(luò)結(jié)構(gòu)有3種重要節(jié)點(diǎn)類型:傳感器節(jié)點(diǎn)、中繼節(jié)點(diǎn)和匯節(jié)點(diǎn)。傳感器節(jié)點(diǎn)分布在一定的監(jiān)控區(qū)域內(nèi),利用傳感器將實(shí)時(shí)數(shù)據(jù)以數(shù)據(jù)包形式發(fā)送到中繼節(jié)點(diǎn);中繼節(jié)點(diǎn)接收到數(shù)據(jù)包后形成數(shù)據(jù)流,繼而以數(shù)據(jù)流形式發(fā)送至匯節(jié)點(diǎn);最后由匯節(jié)點(diǎn)將整個(gè)實(shí)時(shí)數(shù)據(jù)融合并通過無(wú)線傳感網(wǎng)傳輸。
本系統(tǒng)以此3種類型中的不同節(jié)點(diǎn)為研究對(duì)象,通過分配并管理密鑰,再根據(jù)不同的節(jié)點(diǎn)類型,采用不同的加密策略,從而提高傳感數(shù)據(jù)的真實(shí)性和可靠性。系統(tǒng)模塊構(gòu)成如圖1所示。
圖1 系統(tǒng)模塊構(gòu)成Fig.1 System module structure
因?yàn)閭鞲衅鞴?jié)點(diǎn)資源有限,計(jì)算能力差[4],當(dāng)傳感器節(jié)點(diǎn)發(fā)出監(jiān)控?cái)?shù)據(jù)時(shí),節(jié)點(diǎn)會(huì)與數(shù)據(jù)形成一個(gè)感知數(shù)據(jù)流區(qū)域。由于無(wú)線傳感器節(jié)點(diǎn)的脆弱特性,導(dǎo)致傳輸過程中,性能較差的節(jié)點(diǎn)會(huì)很快丟失數(shù)據(jù)或傳輸中斷,所以傳統(tǒng)網(wǎng)絡(luò)的加密認(rèn)證方法不適用于無(wú)線傳感網(wǎng)。無(wú)線傳感網(wǎng)對(duì)自身網(wǎng)絡(luò)安全性能的特點(diǎn)要求是數(shù)據(jù)流本身不應(yīng)該在傳輸過程中改變,此系統(tǒng)將可逆水印技術(shù)嵌入至節(jié)點(diǎn)中,利用接收端完成水印提取和數(shù)據(jù)恢復(fù),當(dāng)數(shù)據(jù)丟失或被黑客篡改時(shí),接收器可以快速檢測(cè)到被篡改的位置并在接收數(shù)據(jù)和驗(yàn)證數(shù)據(jù)時(shí)進(jìn)行正確數(shù)據(jù)處理[5-6]。
實(shí)時(shí)傳感數(shù)據(jù)流是連續(xù)的并且數(shù)量龐大,例如,在測(cè)量溫度時(shí),每個(gè)傳感器節(jié)點(diǎn)可以獲取和傳輸2個(gè)或以1 min為單位的數(shù)據(jù)。基于“水印誕生”的理念將水印數(shù)據(jù)嵌入到數(shù)據(jù)中。當(dāng)面對(duì)傳感數(shù)據(jù)流,通過利用2個(gè)相鄰的組[7-10]形成一個(gè)驗(yàn)證組,第1組是發(fā)電機(jī)組,負(fù)責(zé)生成水印序列,然后,水印序列被嵌入第2組——載體組中[8]。無(wú)論是生成水印還是嵌入水印,當(dāng)實(shí)時(shí)傳感數(shù)據(jù)被篡改時(shí),接收端可以通過解碼操作檢測(cè)到惡意篡改[11-15]。另外,為了避免追蹤器尋找出分組方式,本文采用了動(dòng)態(tài)分組方法,由決定了同步的位置點(diǎn),通過判斷數(shù)據(jù)Si的哈希值來(lái)動(dòng)態(tài)分組。在實(shí)施動(dòng)態(tài)分組過程中,DAHDE使用MD5函數(shù)計(jì)算哈希值,同時(shí)利用任意形式數(shù)據(jù)的MD5值,其中長(zhǎng)度十六進(jìn)制時(shí)是32 bit,二進(jìn)制時(shí)是128 bit。
① 在節(jié)點(diǎn)管理模塊中,在節(jié)點(diǎn)部署之前,預(yù)先產(chǎn)生一個(gè)密鑰池,節(jié)點(diǎn)分配的密鑰就從這個(gè)密鑰池中提??;
② 基于LEACH的分簇,確保簇首的能量和位置信息,然后設(shè)定節(jié)點(diǎn)標(biāo)識(shí)等信息;
③ 根據(jù)節(jié)點(diǎn)信息,用不同的方式給簇內(nèi)節(jié)點(diǎn)和簇頭節(jié)點(diǎn)分配密鑰,即為密鑰的預(yù)分配,并根據(jù)分配到的密鑰,建立安全的通信鏈路;
④ 在發(fā)送方采集傳感數(shù)據(jù),進(jìn)行產(chǎn)生數(shù)據(jù)包、加密、嵌入水印等一系列操作;
⑤ 在接收方接收傳感數(shù)據(jù),檢測(cè)數(shù)據(jù)是否遭到惡意攻擊,解密、提取水印等一系列操作;
⑥ 對(duì)節(jié)點(diǎn)存儲(chǔ)區(qū)中的數(shù)據(jù)進(jìn)行融合等處理,通過選擇不同的路由算法進(jìn)行數(shù)據(jù)的傳輸與轉(zhuǎn)發(fā),選擇路由的同時(shí)更新網(wǎng)絡(luò)及節(jié)點(diǎn)的狀態(tài)等。
當(dāng)生成器組生成水印時(shí),對(duì)組內(nèi)所有數(shù)據(jù)的MD5值取相同的固定長(zhǎng)度進(jìn)行異或運(yùn)算;然后得到長(zhǎng)度為d的水印序列,如w1,w2,…,wd。注意,這里選擇的d值和起止位置也是預(yù)設(shè)的,和m的值一樣,只有傳感器節(jié)點(diǎn)和接收器知道,而跟蹤器無(wú)法判斷水印是怎么產(chǎn)生的,它是什么規(guī)則[12,16-17]。同時(shí),將生成組中所有數(shù)據(jù)的平均值作為對(duì)應(yīng)載波組的初始預(yù)測(cè)值s。
pe由載波組的第一個(gè)數(shù)據(jù)與s的差得到,然后將pe左移一位,并在其LSB上加水印w1。此時(shí),嵌入水印后的pe′和s之和即為更新后的嵌入組的第一個(gè)數(shù)據(jù)。此外,s需要隨著操作的進(jìn)行而更新,并與當(dāng)前數(shù)據(jù)平均得到一個(gè)新的s,這個(gè)新的設(shè)置是為了讓預(yù)測(cè)值更接近真實(shí)數(shù)據(jù)[18]。
所有節(jié)點(diǎn)按LEACH協(xié)議分簇,LEACH是一種自組織自適應(yīng)的分簇協(xié)議,如圖2所示能夠通過分簇的方式有效地節(jié)約能量損耗,延長(zhǎng)網(wǎng)絡(luò)生存周期。
圖2 節(jié)點(diǎn)分布圖Fig.2 Node distribution map
無(wú)線傳感網(wǎng)主要用于近距離的節(jié)點(diǎn)間對(duì)等通信。在通信之前,對(duì)所有節(jié)點(diǎn)做密鑰預(yù)處理,構(gòu)建安全通信鏈路。
密鑰管理被定義為在通信各方之間分發(fā)、維護(hù)和建立私鑰的一組程序和技術(shù),包括刷新或更新受感染節(jié)點(diǎn)的密鑰,必須保持前向和后向保密。密鑰管理方案應(yīng)滿足以下3個(gè)要求:安全性、效率和靈活性。密鑰管理包括將多個(gè)密鑰分發(fā)給節(jié)點(diǎn),2個(gè)節(jié)點(diǎn)之間的密鑰協(xié)議共享相同的秘密密鑰,或者在某些節(jié)點(diǎn)妥協(xié)時(shí)生成密鑰和密鑰撤銷。它還包括刷新密鑰,在根據(jù)應(yīng)用程序要求的特定時(shí)間間隔之后,網(wǎng)絡(luò)的安全性至關(guān)重要,安全的網(wǎng)絡(luò)密鑰起著至關(guān)重要的作用。為了生成密鑰,使用了許多數(shù)學(xué)模型,其中質(zhì)數(shù)起著重要作用。對(duì)于無(wú)線傳感網(wǎng)絡(luò),提出了許多概率密鑰方案,以及對(duì)于大、中、小規(guī)模的網(wǎng)絡(luò),多少個(gè)密鑰就足夠了。
由于節(jié)點(diǎn)的特殊性,密鑰預(yù)分配的主要問題是密鑰的創(chuàng)建、分配的方式和節(jié)點(diǎn)存儲(chǔ)對(duì)密鑰的存儲(chǔ)。在著名EG方案的基礎(chǔ)上,提出了一種新的密鑰管理和更新方案——BIKPS。
無(wú)線傳感網(wǎng)無(wú)處不在,設(shè)計(jì)為可從多個(gè)位置訪問,允許任何用戶或計(jì)算機(jī)連接。因此,其很容易受到未經(jīng)授權(quán)的進(jìn)入,保護(hù)和隱私成為任何新技術(shù)進(jìn)步的主要問題和障礙。當(dāng)大量互連設(shè)備構(gòu)成網(wǎng)絡(luò)時(shí),這一點(diǎn)變得更加重要。拒絕服務(wù)、未經(jīng)授權(quán)的進(jìn)入和修改內(nèi)容只是設(shè)備受到攻擊和破壞的一些方式,使用當(dāng)前可用的技術(shù),無(wú)法強(qiáng)制執(zhí)行適當(dāng)?shù)碾[私保護(hù)機(jī)制。
傳感器網(wǎng)絡(luò)部署在一個(gè)大領(lǐng)域,可擴(kuò)展性可能會(huì)根據(jù)應(yīng)用和要求而有所不同。隨著網(wǎng)絡(luò)規(guī)模的擴(kuò)大,分發(fā)和管理密鑰并不容易,產(chǎn)生高密鑰和安全分發(fā)需要新的改進(jìn)和算法。對(duì)于數(shù)據(jù)分析,建議使用另一種稱為無(wú)線傳感器網(wǎng)絡(luò)的方法,這些網(wǎng)絡(luò)在將傳感數(shù)據(jù)發(fā)送到分散的計(jì)算機(jī)進(jìn)行分析之前交換有關(guān)傳感器節(jié)點(diǎn)的信息。
從吞吐量和帶寬組成的主要元素來(lái)衡量無(wú)線傳感網(wǎng)程序的服務(wù)質(zhì)量(QoS)。從連接到接口組件或環(huán)境傳感器,或者對(duì)智能揚(yáng)聲器大喊大叫時(shí),無(wú)線傳感網(wǎng)產(chǎn)生了大量的統(tǒng)計(jì)數(shù)據(jù)。因此,提供 QoS 變得困難。共享 Wi-Fi 媒體中有用的資源分配和管理能力限制,確保了無(wú)線傳感網(wǎng)絡(luò)的安全。云計(jì)算中的QoS是一個(gè)不同的主要研究領(lǐng)域,隨著物聯(lián)網(wǎng)所需的事實(shí)和工具在云上變得可用,人們也會(huì)越來(lái)越關(guān)注無(wú)線傳感網(wǎng)的QoS。
如果任何節(jié)點(diǎn)離開系統(tǒng),它必須沒有任何關(guān)于網(wǎng)絡(luò)的信息可以透露,并且可以添加新節(jié)點(diǎn)而不提供有關(guān)先前網(wǎng)絡(luò)狀態(tài)的信息。新添加的節(jié)點(diǎn)必須在沒有網(wǎng)絡(luò)知識(shí)的情況下正常工作。
許多對(duì)象在物聯(lián)網(wǎng)傳感器網(wǎng)絡(luò)中相互連接。在這種網(wǎng)絡(luò)中,連接的保護(hù)和人工制品的安全都至關(guān)重要。避免所有相關(guān)對(duì)象未經(jīng)授權(quán)訪問網(wǎng)絡(luò)至關(guān)重要。任何未經(jīng)授權(quán)的數(shù)據(jù)訪問都會(huì)導(dǎo)致數(shù)據(jù)損壞和系統(tǒng)停止正常工作。與基站相連的傳感器網(wǎng)絡(luò)中有許多相互連接的傳感器,在這種網(wǎng)絡(luò)中,需要保護(hù)所有連接和人工制品。密鑰必須在間隔后或按要求刷新。
考慮到節(jié)點(diǎn)能量的限制及CC2430芯片的特點(diǎn),采用基于RC4的加解密方案。RC4是加密密鑰長(zhǎng)度可變的流加密算法簇,算法簡(jiǎn)單,速度約是DES加密的10倍,且具有很高級(jí)別的非線性。
水印技術(shù)與傳感網(wǎng)以數(shù)據(jù)為中心的特點(diǎn)相符合,且能以很低的運(yùn)算開銷實(shí)現(xiàn)并適合于傳感器網(wǎng)絡(luò)動(dòng)態(tài)性的特點(diǎn),還能容忍網(wǎng)內(nèi)處理對(duì)數(shù)據(jù)內(nèi)容的改動(dòng)。采用基于時(shí)間戳的水印技術(shù),能克服密碼技術(shù)中加密的內(nèi)容在解密之后缺乏有效的手段,保證其不被非法拷貝、惡意篡改。
本系統(tǒng)采用基于時(shí)間戳的單水印技術(shù),原理如下:發(fā)送方先用時(shí)間戳做密鑰,加密方法采用類RC4’,再按照一定規(guī)則嵌入時(shí)間戳;接收方先按照一定規(guī)則提取時(shí)間戳,與發(fā)包時(shí)間對(duì)比,若相同,則還原數(shù)據(jù)包的內(nèi)容,并準(zhǔn)備下一次傳送;否則直接丟包。
整個(gè)系統(tǒng)在IAR7.30環(huán)境中開發(fā)編譯完成,而后在Chipcon公司的無(wú)線單片機(jī)CC2430/CC2431上進(jìn)行仿真測(cè)試。
通過研究無(wú)線傳感網(wǎng)的結(jié)構(gòu)及其安全模塊,分析出本系統(tǒng)的設(shè)計(jì)原理,從而實(shí)現(xiàn)對(duì)無(wú)線傳感網(wǎng)傳感數(shù)據(jù)的加密與解密,保障了傳感網(wǎng)的安全。
系統(tǒng)總體設(shè)計(jì)流程如圖3所示。
圖3 系統(tǒng)流程Fig.3 System flow
在節(jié)點(diǎn)部署之前,先構(gòu)造一個(gè)密鑰池,根據(jù)分簇信息進(jìn)行密鑰預(yù)分配[5],建立密鑰管理樹實(shí)現(xiàn)對(duì)網(wǎng)絡(luò)安全通信的密鑰管理。按照網(wǎng)絡(luò)層次進(jìn)行分組,簇首為根節(jié)點(diǎn),簇內(nèi)成員為葉子節(jié)點(diǎn),生成密鑰池S為根節(jié)點(diǎn)的密鑰管理樹。
密鑰池按照密鑰組分配,簇首和簇內(nèi)成員的密鑰不同,這樣每個(gè)節(jié)點(diǎn)可以選取密鑰存入存儲(chǔ)器負(fù)責(zé)數(shù)據(jù)加解密,簇內(nèi)成員的數(shù)據(jù)通道由簇內(nèi)密鑰負(fù)責(zé),簇首負(fù)責(zé)簇之間的數(shù)據(jù)通道。
簇內(nèi)安全數(shù)據(jù)通道的建立以預(yù)分配共享密鑰為基礎(chǔ)進(jìn)行數(shù)據(jù)的加解密[6],表示為:
(M)key->C,(C)key->M,
式中,M表示原文;C表示密文。
如果簇內(nèi)成員之間沒有找到共享密鑰,則安全數(shù)據(jù)通道都必須經(jīng)過簇首,其加解密過程為:
(M)key->C,(C)key->M,
(C)key->M,(M)key->C。
簇間節(jié)點(diǎn)的通信必須經(jīng)由簇首完成,首先簇內(nèi)節(jié)點(diǎn)與簇首建立安全數(shù)據(jù)通道將數(shù)據(jù)傳送給簇首,簇頭先對(duì)傳來(lái)的信息解密,用時(shí)間戳作為密鑰加密,再將密文與時(shí)間戳打亂,記錄在CRC中后,把整個(gè)數(shù)據(jù)包傳送給簇間節(jié)點(diǎn)所在簇的簇頭,簇頭提取時(shí)間戳并檢測(cè),若檢測(cè)合格則將數(shù)據(jù)包解密,通過與節(jié)點(diǎn)的共享密鑰加密后安全傳送給節(jié)點(diǎn),節(jié)點(diǎn)解密得到傳送數(shù)據(jù),整個(gè)傳送過程都是安全的。其中簇頭與簇頭間的傳送過程如下:
(M)Em->C,(C)Ex->M,
式中,Em表示時(shí)間戳嵌入算法;Ex表示時(shí)間戳提取算法。
新加入的節(jié)點(diǎn)首先在密鑰組內(nèi)抽取預(yù)共享密鑰存入存儲(chǔ)器,新節(jié)點(diǎn)發(fā)送共享密鑰ID到簇首,并且經(jīng)由簇首廣播到其他簇內(nèi)成員,這樣其他節(jié)點(diǎn)就能夠與新節(jié)點(diǎn)建立安全數(shù)據(jù)通道。如果沒有找到共享密鑰,那么所有的安全數(shù)據(jù)通道都經(jīng)由簇首完成建立。
節(jié)點(diǎn)退出時(shí)也由簇首廣播其退出信息,簇首和其他簇內(nèi)節(jié)點(diǎn)同時(shí)刪除與新節(jié)點(diǎn)的共享密鑰信息。
在初始化過程中,密鑰的主要功能是利用密鑰將sBox攪亂,并保證sBox的每個(gè)元素都得到處理,且sBox的攪亂是隨機(jī)的。sBox經(jīng)過算法處理得到隨機(jī)子密鑰序列,并且經(jīng)過子密鑰運(yùn)算得到密文。加密算法流程圖如圖4所示。
圖4 加密流程Fig.4 Encryption flowchart
解密過程就是通過共享密鑰將密文還原得到原文。由于算法加密采用的是異或運(yùn)算,一旦子密鑰序列出現(xiàn)了重復(fù),密文就有可能被破解,其不足主要體現(xiàn)在無(wú)線網(wǎng)絡(luò)中初始化向量不變性漏洞,所以在簇間通信時(shí),采用嵌入水印的方案保證其安全性能。
嵌入時(shí)間戳的方法與數(shù)字水印的嵌入方法基本相同。時(shí)間戳嵌入過程包括:原始信息處理、選擇數(shù)據(jù)內(nèi)容、嵌入水印算法等,如圖5所示。
圖5 時(shí)間戳嵌入流程Fig.5 Timestamp embedding process
首先將時(shí)間戳轉(zhuǎn)化為一個(gè)十六進(jìn)制流,命名為輸入時(shí)間流;將傳感數(shù)據(jù)也轉(zhuǎn)化為一個(gè)十六進(jìn)制流,命名為輸入數(shù)據(jù)流;將輸出的含有敏感數(shù)據(jù)的數(shù)據(jù)流命名為輸出數(shù)據(jù)流,則時(shí)間戳嵌入過程描述如下:若輸入時(shí)間流當(dāng)前位置的最低有效位是奇數(shù),則將輸入數(shù)據(jù)流的偶位與輸入時(shí)間流交換,并依次添加到輸出數(shù)據(jù)流中;若輸入時(shí)間流當(dāng)前位置的最低有效位是偶數(shù),則將輸入數(shù)據(jù)流的奇位與輸入時(shí)間流交換,并依次添加到輸出數(shù)據(jù)流中。
時(shí)間戳的提取過程與嵌入過程相反,分如下幾個(gè)步驟進(jìn)行水印的提?。哼x擇數(shù)據(jù)、水印提取算法和水印驗(yàn)證等。將接收到的含有水印的數(shù)據(jù)流命名為輸入數(shù)據(jù)流,將提取出的十六進(jìn)制時(shí)間流命名為輸出時(shí)間流,將輸出的傳感數(shù)據(jù)流命名為輸出數(shù)據(jù)流。則時(shí)間戳提取過程描述如下:首先從數(shù)據(jù)包中取出時(shí)間戳,經(jīng)十六進(jìn)制數(shù)轉(zhuǎn)換后,存入閾值。根據(jù)閾值的最低有效位的奇偶性,從輸入數(shù)據(jù)流中提取時(shí)間戳,同時(shí)添加到輸出時(shí)間流中。如果輸出時(shí)間流與閾值相等則解密,并添加到輸出數(shù)據(jù)流中;否則,說(shuō)明數(shù)據(jù)包已被篡改,直接丟棄該包。最后,將輸出數(shù)據(jù)流轉(zhuǎn)換為傳感數(shù)據(jù)。時(shí)間戳提取流程如圖6所示。
圖6 時(shí)間戳提取流程Fig.6 Timestamp extraction process
系統(tǒng)的開發(fā)編譯是基于IAR 7.30平臺(tái)實(shí)現(xiàn)的。根據(jù)節(jié)點(diǎn)是簇內(nèi)節(jié)點(diǎn)還是簇頭節(jié)點(diǎn),編寫不同的發(fā)送接收模塊。各個(gè)模塊成功編譯后,經(jīng)過物理地址燒寫,將代碼下載到CC2430/CC2431芯片中。
程序成功下載后,便可開始仿真測(cè)試。作為簡(jiǎn)單演示,只設(shè)置了3個(gè)節(jié)點(diǎn),分別與傳輸模塊TX、接收模塊RX和簇間傳輸模塊RX_TX相對(duì)應(yīng),系統(tǒng)演示如圖7。
圖7 系統(tǒng)演示圖Fig.7 System demo diagram
從左到右依次為傳輸TX節(jié)點(diǎn)11,簇頭RX節(jié)點(diǎn)10,簇頭RX_TX節(jié)點(diǎn)20。左邊2個(gè)的通信屬于簇內(nèi)節(jié)點(diǎn)間的通信,右邊2個(gè)的通信屬于簇頭節(jié)點(diǎn)間的通信。
傳輸過程:節(jié)點(diǎn)11將采集到的數(shù)據(jù),經(jīng)類RC4加密后傳輸給節(jié)點(diǎn)10,節(jié)點(diǎn)10對(duì)收到的傳感信息做CRC校驗(yàn),若不正確,則丟包;否則解密,并準(zhǔn)備簇頭間的傳輸。根據(jù)簇頭間的通信原理,節(jié)點(diǎn)10將傳感信息加密后嵌入水印,然后發(fā)送給節(jié)點(diǎn)20;節(jié)點(diǎn)20從收到的傳感信息中提取水印,若水印正確,則準(zhǔn)備下一下傳輸;否則丟包。
簇內(nèi)節(jié)點(diǎn)的通信如圖7中左邊2個(gè)節(jié)點(diǎn)所示,第1個(gè)與第2個(gè)節(jié)點(diǎn)間的數(shù)據(jù)傳輸,而第3個(gè)節(jié)點(diǎn)等待第2個(gè)節(jié)點(diǎn)的數(shù)據(jù),處于等待狀態(tài)。在第2個(gè)節(jié)點(diǎn)的液晶屏上,第1行顯示接收,標(biāo)志節(jié)點(diǎn)處于接收狀態(tài),第2行顯示經(jīng)發(fā)送節(jié)點(diǎn)加密后的密文,第3行是根據(jù)簇內(nèi)節(jié)點(diǎn)間的加密原理,對(duì)密文進(jìn)行解密并顯示,第4行顯示的是加密/解密密鑰。
簇頭節(jié)點(diǎn)間的通信中,第2個(gè)節(jié)點(diǎn)與第3個(gè)節(jié)點(diǎn)間進(jìn)行數(shù)據(jù)傳輸。從演示過程中可以看到,2塊液晶屏的第1行都顯示為Cluster Trams,標(biāo)志著這2個(gè)節(jié)點(diǎn)屬于簇頭間通信。第2塊液晶屏上顯示的是采集到的數(shù)據(jù)、密文和嵌入的時(shí)間戳等。第3塊液晶屏上顯示的是密文、原文和提取的時(shí)間戳等。
從演示結(jié)果可以看出,無(wú)論是簇內(nèi)節(jié)點(diǎn)還是簇間節(jié)點(diǎn)的通信,加密解密的策略都是正確的,而且因時(shí)間戳的動(dòng)態(tài)變化,簇間的安全策略在一定程度上比簇內(nèi)的高,開銷也不會(huì)很大,符合傳感器網(wǎng)絡(luò)設(shè)計(jì)的要求。
收集并統(tǒng)計(jì)模擬仿真過程中的相關(guān)數(shù)據(jù),如表1所示。第1列是采集到的白天的光照強(qiáng)度,此參數(shù)可預(yù)設(shè)為能量供給數(shù)值,第2列是原來(lái)的RC4算法,第3列是改進(jìn)后的RC4’算法,第4列是時(shí)間戳嵌入,最后一列是當(dāng)時(shí)的時(shí)間戳。
表1 仿真數(shù)據(jù)截圖Tab.1 Screenshot of simulation data
基于IAR 7.30平臺(tái),通過采集白天的光照強(qiáng)度作為能量供給,單位是J,收集并統(tǒng)計(jì)模擬仿真過程中的相關(guān)數(shù)據(jù)加密后,無(wú)論是簇頭或簇內(nèi),經(jīng)過預(yù)處理,都變?yōu)槭M(jìn)制,提高傳感節(jié)點(diǎn)的通信量和節(jié)點(diǎn)的利用率。在場(chǎng)景中,初始能量都是2 J的前提下,在能量影響因子和距離影響因子不同的參數(shù)的情況下,總共運(yùn)行10次結(jié)果取平均值,吞吐量數(shù)據(jù)如圖8所示。
圖8 網(wǎng)絡(luò)吞吐量Fig.8 Network throughput
從仿真數(shù)據(jù)圖中,看到原RC4算法加密后的數(shù)據(jù)有一定的規(guī)律,而改進(jìn)后的RC4算法的安全性明顯比原來(lái)的高。每次測(cè)試隨機(jī)選取10 000個(gè)傳感器節(jié)點(diǎn)感知數(shù)據(jù),以篡改率為10%的方式篡改原始數(shù)據(jù),即共有1 000個(gè)原始數(shù)據(jù)被篡改。當(dāng)嵌入水印的感知數(shù)據(jù)被傳送到簇首節(jié)點(diǎn)之后,簇首節(jié)點(diǎn)根據(jù)算法提取水印并且驗(yàn)證,若數(shù)據(jù)被篡改,簇首節(jié)點(diǎn)判定數(shù)據(jù)被惡意破壞且丟棄數(shù)據(jù)包,圖9是重復(fù)10次實(shí)驗(yàn)的仿真結(jié)果。
圖9 數(shù)據(jù)丟包率Fig.9 Data packet loss rate
單水印技術(shù)能防止數(shù)據(jù)被篡改,但是數(shù)據(jù)內(nèi)容對(duì)外是可見的,所以在簇間通信的方案中,采用時(shí)間戳以減少信息外泄的機(jī)率,提高傳感信息的機(jī)密性和安全性。節(jié)點(diǎn)生存時(shí)間如圖10所示,采用時(shí)間戳執(zhí)行到300 s后才開始有節(jié)點(diǎn)死亡,并且在網(wǎng)絡(luò)運(yùn)行900 s時(shí)還有生存的節(jié)點(diǎn),而未改進(jìn)的LEACH協(xié)議在200 s時(shí)就出現(xiàn)了節(jié)點(diǎn)死亡的現(xiàn)象,由于分簇不均衡的原因?qū)е戮W(wǎng)絡(luò)在400 s后就消亡了,證明時(shí)間戳能夠有效地延長(zhǎng)網(wǎng)絡(luò)地生存時(shí)間。
圖10 節(jié)點(diǎn)生存時(shí)間Fig.10 Node lifetime
雖然無(wú)線傳感網(wǎng)的應(yīng)用領(lǐng)域較為廣泛,但是目前仍然面臨很多安全問題,通過本次相關(guān)仿真數(shù)據(jù)測(cè)試,比如當(dāng)傳感器節(jié)點(diǎn)能量無(wú)法充足供給時(shí),無(wú)線通信信號(hào)極易受到干擾,無(wú)法體現(xiàn)其他網(wǎng)絡(luò)形式的健壯性,為此展開研究力爭(zhēng)采取有效的應(yīng)對(duì)措施。同時(shí)密鑰管理也是無(wú)線傳感網(wǎng)應(yīng)對(duì)安全問題時(shí)常用的一種安全機(jī)制,其技術(shù)核心在加密技術(shù)也有所涉及,目前也一直是本領(lǐng)域的一個(gè)研究熱點(diǎn)。本文主要實(shí)現(xiàn)了無(wú)線傳感網(wǎng)的安全控制模塊的設(shè)計(jì),重點(diǎn)旨在提高節(jié)點(diǎn)的利用率,降低網(wǎng)絡(luò)開銷的基礎(chǔ)上設(shè)計(jì)出安全性較高的傳輸系統(tǒng)。
本文采用的是基于時(shí)間戳的單水印技術(shù),根據(jù)最新的文獻(xiàn)研究,針對(duì)無(wú)線傳感網(wǎng)的數(shù)據(jù)安全問題,提出了一種適用于無(wú)線傳感網(wǎng)的數(shù)字水印技術(shù),將水印信息嵌入到節(jié)點(diǎn)采集的數(shù)據(jù)中進(jìn)行發(fā)送,并在數(shù)據(jù)融合的過程中保留這種信息,接收方節(jié)點(diǎn)通過驗(yàn)證水印信息來(lái)判斷數(shù)據(jù)的可靠性,一旦檢測(cè)到了水印信息則進(jìn)行存儲(chǔ)和轉(zhuǎn)發(fā),使水印信息的數(shù)據(jù)不被丟棄。基于節(jié)點(diǎn)標(biāo)識(shí)的無(wú)線傳感網(wǎng)系統(tǒng)的設(shè)計(jì)及程序模擬仿真測(cè)試,正是為后續(xù)水印信息在數(shù)據(jù)抽樣和匯總中不被破壞的可行性提供有效的實(shí)驗(yàn)數(shù)據(jù)。