抗妥協(xié)加密方案再無線傳感網(wǎng)中的應(yīng)用

現(xiàn)有的應(yīng)用于無線傳感網(wǎng)的密鑰管理方案,幾乎沒有考慮無線網(wǎng)路的不可靠性,網(wǎng)絡(luò)中存在丟包率這一現(xiàn)實(shí)。為此我們提出一種能量有效的抗妥協(xié)的認(rèn)證加密算法STAE,采用分段傳輸、OFB分組加密、認(rèn)證并重構(gòu)信息等方法,增強(qiáng)了數(shù)據(jù)傳輸和重構(gòu)的安全性及效率,保證網(wǎng)絡(luò)中備在一定丟包率和部分妥協(xié)節(jié)點(diǎn)的情況下,仍能有效地抵御偵聽、數(shù)據(jù)篡改和DoS攻擊等行為。

一、抗妥協(xié)加密方案

本文我們了提出一個(gè)高效節(jié)能的分段傳輸認(rèn)證加密( SubsectionTransport Authenticated Encryption,STAE)算法,該算法允許網(wǎng)絡(luò)中存在一定的丟包率和部分妥協(xié)節(jié)點(diǎn),下面作詳細(xì)介紹。

1、STAE算法設(shè)計(jì)原理

STAE算法適用予多跳數(shù)據(jù)傳輸模式,可用于分簇或非分簇網(wǎng)絡(luò)結(jié)構(gòu),算法對于節(jié)點(diǎn)位置、無線設(shè)備都沒有特別的要求q每個(gè)源節(jié)點(diǎn)向聚合節(jié)點(diǎn)發(fā)送檢測數(shù)據(jù),檢測數(shù)據(jù)由定時(shí)更新的網(wǎng)絡(luò)密鑰進(jìn)行加密,聚合節(jié)點(diǎn)將這些檢測數(shù)據(jù)進(jìn)行解密并聚合,聚合數(shù)據(jù)達(dá)到一定量后,被分成若干小段,以分組密碼進(jìn)行加密處理,然后通過不同的路由發(fā)送給Sink節(jié)點(diǎn)。Sink節(jié)點(diǎn)的能量不受限,收集到足夠的分段數(shù)據(jù)后,即可以進(jìn)行數(shù)據(jù)重構(gòu),以獲得完整的信息a STAE算法中重構(gòu)信息所需要的分段數(shù)據(jù)數(shù)量小于被傳輸?shù)姆侄螖?shù)據(jù)的數(shù)量,因此,系統(tǒng)允許存在部分?jǐn)?shù)據(jù)丟失的情況d而中繼節(jié)點(diǎn)由于只獲得一條分段數(shù)據(jù),無法重構(gòu)信息。

STAE算法中各分段數(shù)據(jù)采用分組式對稱密鑰模式進(jìn)行認(rèn)證和加密。加密采用OFB模式有效地提高系統(tǒng)的容錯(cuò)性和保密性。

2、分段傳輸方案

各聚合節(jié)點(diǎn)將聚合處理后的數(shù)據(jù)保存到各自內(nèi)部緩存區(qū),緩存區(qū)裝滿后,將對這些數(shù)據(jù)進(jìn)行分段(如分成,段)并加密后,通過廣條不相交的路由獲得多條路由,以多跳的方式到達(dá)Sink節(jié)點(diǎn)(如圖l所示)。Sink節(jié)點(diǎn)需要至少z條分段數(shù)據(jù)即可進(jìn)行數(shù)據(jù)重組恢復(fù)原始信息。

1

因此,該方案不僅提供了保密性,還能容忍網(wǎng)絡(luò)中存在少數(shù)妥協(xié)節(jié)點(diǎn),具有較強(qiáng)的容錯(cuò)性和抗妥協(xié)性。

3、認(rèn)證加密方案

惡意者可以通過偵聽獲得一些零散消息,還可以對消息內(nèi)容進(jìn)行篡改,或者發(fā)送一些垃圾數(shù)據(jù)以達(dá)到攻擊目的。Sink節(jié)點(diǎn)可以通過采用不同的z個(gè)節(jié)點(diǎn)的數(shù)據(jù)進(jìn)行信息重構(gòu),如果兩次重構(gòu)結(jié)果明顯不同,則說明網(wǎng)絡(luò)中發(fā)生攻擊。這種方式只能判斷攻擊行為是否發(fā)生,無法判斷哪條數(shù)據(jù)是偽數(shù)據(jù)。因此,方案采用OFB模式和CTR模式組合對數(shù)據(jù)的真實(shí)性進(jìn)行認(rèn)證。采用OFB加密模式的原因是該模式?jīng)]有錯(cuò)誤擴(kuò)散,密文中單個(gè)位的錯(cuò)誤只引起恢復(fù)明文的單個(gè)錯(cuò)誤。由于無線傳感網(wǎng)對同一事件產(chǎn)生的數(shù)據(jù)存在較大的冗余性,這種單個(gè)錯(cuò)誤不會影響恢復(fù)明文和信息的重構(gòu)。

1)加密算法

STAE加密算法如圖2所示,通過將緩存區(qū)中的數(shù)據(jù)進(jìn)行分段,經(jīng)過一系列計(jì)算,將得到各段認(rèn)證標(biāo)記TagJ及加密數(shù)據(jù)G Tagi的長度取決于底層分組加密算法的分組長度。在此以—個(gè)64位分組加密算法為例,詳細(xì)步驟描述如下:

1

(1)數(shù)據(jù)分段:首先,采用分段傳輸方案中的方法,將S拆分成長度相等的段,根據(jù)多項(xiàng)式只(x)構(gòu)成,條分段數(shù)據(jù):E(1)—(r)。

(2)初始賦值:使用密鑰髟對隨機(jī)初始向量IV進(jìn)行加密。得到初始加密向量Civ。

(3)邏輯運(yùn)算:對于第1段數(shù)據(jù)E(1),將cwraJ左移刀位后,其低位用移出的高,l位補(bǔ)位,得到C1,然后以密鑰K對C:采用底層分組加密算法進(jìn)行加密。將加密得到的密文與第一個(gè)數(shù)據(jù)段Fi(1)進(jìn)行邏輯異或運(yùn)算,得到第1段數(shù)據(jù)密文G。

(4)最終結(jié)果:按照上述步驟(3)的方法,如圖2所示,將前1階段經(jīng)密鑰足加密得到的密文取出高以位,對移位后的Gv的低位進(jìn)行補(bǔ)位,參與第2段運(yùn)算,依次得到每一段數(shù)據(jù)密文C2,C311,..t,C各段認(rèn)證標(biāo)記Tag1,Tag2一iTagt由C與各段密文進(jìn)行或運(yùn)算后,經(jīng)密鑰K加密得到。

2、解密算法

解密算法與加密算法類似,由Sink節(jié)點(diǎn)完成。首先對密文狀態(tài)下的數(shù)據(jù)進(jìn)行認(rèn)證,如果Tag'#Tag則拒絕該段無效數(shù)據(jù);否則繼續(xù)解密。只要獲得z條有效數(shù)據(jù),即可使用多項(xiàng)式內(nèi)插法解出Fi,由Si=fi(0)得到原始數(shù)據(jù)。

二、抗妥協(xié)加密方案再無線傳感網(wǎng)中的應(yīng)用

1、安全性分析

STAE算法允許網(wǎng)絡(luò)中存在一定的丟包率和少數(shù)妥協(xié)節(jié)點(diǎn),在此情況下作算法的安全性分析。

1)通過偵聽獲取信息的可能性

STAE算法中,重構(gòu)信息的前提是至少獲得z條分段數(shù)據(jù),且這些數(shù)據(jù)來自相同的節(jié)點(diǎn)。

分段數(shù)據(jù)通過r條不同的路由傳送,每條路由只包含1部分?jǐn)?shù)據(jù)。攻擊者需要至少獲取2條路由上的數(shù)據(jù),且這些數(shù)據(jù)晗巧來自相同的節(jié)點(diǎn),才能夠重構(gòu)信息,得到有用資料。由于攻擊者不可能完全掌握網(wǎng)絡(luò)的拓?fù)浣Y(jié)構(gòu),無法得知哪些路由上的的數(shù)據(jù)來自相同的節(jié)點(diǎn),因此通過偵聽獲取信息很難成功。

2)虛假信息注入攻擊

如果攻擊者攻陷了至少z個(gè)節(jié)點(diǎn),那么其能否向網(wǎng)絡(luò)注入虛假信息?即使攻擊者操縱了z個(gè)妥協(xié)節(jié)點(diǎn),但不能保證Sink節(jié)點(diǎn)將使用由這z個(gè)節(jié)點(diǎn)提供的分段數(shù)據(jù)來重構(gòu)信息(Sink節(jié)點(diǎn)可能使用那些沒有遭到攻擊的路由的數(shù)據(jù))。另外,由于STAE算法提供了OFB加密模式對數(shù)據(jù)的真實(shí)性進(jìn)行認(rèn)證,Sink節(jié)點(diǎn)可以拒絕無效的數(shù)據(jù),而選擇其他真實(shí)性得到證實(shí)的數(shù)據(jù)來重構(gòu)信息。通過數(shù)據(jù)篡改欺騙Sink節(jié)點(diǎn)幾乎不存在可能:攻擊者不知道預(yù)期的消息認(rèn)證碼;對于攻擊者來說,注入一段假數(shù)據(jù)來修改原有數(shù)據(jù)是非常困難的。

3)拒絕服務(wù)攻擊

實(shí)施拒絕服務(wù)(Denial of Senrice,DoS)攻擊可分為兩種情況:第一種情況是不轉(zhuǎn)發(fā)數(shù)據(jù),第二種情況是發(fā)送垃圾數(shù)據(jù)。對于不轉(zhuǎn)發(fā)數(shù)據(jù),可以看作該傳感器節(jié)點(diǎn)因能量耗盡而完全失效;要處理垃圾數(shù)據(jù)則較困難,如果沒有消息認(rèn)證碼,攻擊者僅僅需要攻陷一條路由并不斷地發(fā)送垃圾數(shù)據(jù)即可達(dá)到目的。在這種情況下,Sink節(jié)點(diǎn)為了重構(gòu)信息可能有數(shù)倍的輸出量,卻難以判斷哪些信息是真實(shí)的。而本文方案采用消息認(rèn)證碼,垃圾數(shù)據(jù)及時(shí)被拒絕,如同錯(cuò)誤的分段數(shù)據(jù)被丟失。

通過實(shí)施DoS攻擊達(dá)到阻止Sink節(jié)點(diǎn)收集z個(gè)有效分段數(shù)據(jù)的目的,攻擊者需要攻陷至少r - z+1條不同的路由(即攻陷,r- z+1個(gè)不同路由上的節(jié)點(diǎn))。由于攻擊者不可能知道具體的路由拓?fù)?,他只能隨機(jī)地攻擊節(jié)點(diǎn),進(jìn)行DoS攻擊幾乎不可能成功。因此,攻擊者不得不攻陷比r- z+1更多的節(jié)點(diǎn),這對于攻擊者來說,其難度和代價(jià)都太大了,基本無法實(shí)現(xiàn)。

4)加密算法的安全性

STAE算法提供雙因子的消息認(rèn)證碼,由Highn值生成所需的消息認(rèn)證碼標(biāo)記。使用雙因子消息認(rèn)證比使用單因子消息認(rèn)證具有更高的可信度m。

通常加密認(rèn)證算法較難解決的—個(gè)問題就是可能存在重復(fù)的隨機(jī)數(shù)和加密密鑰吼,此時(shí),如果在相同的位置產(chǎn)生相同的消息,那么其生成的密文則相同。而STAE算法由不同的密鑰流產(chǎn)生不同的Highn值,從而避免了這種情況發(fā)生。

STAE算法網(wǎng)絡(luò)中所有節(jié)點(diǎn)共享一個(gè)通用的定期更新的網(wǎng)絡(luò)密鑰,如果兩個(gè)節(jié)點(diǎn)共享一個(gè)Highn值,它們將會建立一條虛擬私有連接,其他節(jié)點(diǎn)即使擁有相關(guān)的密鑰也無法加入到該連接中,除非它們擁有這個(gè)Highn值。STAE算法通過建立虛擬私有連接,進(jìn)一步提高了通信的安全性,有效地抵御了惡意節(jié)點(diǎn)的攻擊。該機(jī)制可以擴(kuò)展到建立安全多路組播。

從保證系統(tǒng)安全性角度考慮,建議使用64位分組密碼的STAE算法。

小知識之無線傳感器網(wǎng)絡(luò)

無線傳感器網(wǎng)絡(luò)(Wireless Sensor Networks, WSN)是一種分布式傳感網(wǎng)絡(luò),它的末梢是可以感知和檢查外部世界的傳感器。WSN中的傳感器通過無線方式通信,因此網(wǎng)絡(luò)設(shè)置靈活,設(shè)備位置可以隨時(shí)更改,還可以跟互聯(lián)網(wǎng)進(jìn)行有線或無線方式的連接。通過無線通信方式形成的一個(gè)多跳自組織網(wǎng)絡(luò)。