專利名稱:一種基于數(shù)字水印的抗轉發(fā)攻擊方法
技術領域:
本方法涉及一種基于數(shù)字水印的抗轉發(fā)攻擊方法。主要解決無線傳感器網(wǎng)絡中選擇轉發(fā)攻擊的檢測及對惡意節(jié)點的排除,屬于無線傳感器網(wǎng)絡安全領域。
背景技術:
無線傳感器網(wǎng)絡(Wireless Sensor Networks)是由大量部署在無人看管的區(qū)域并進行數(shù)據(jù)采集和傳輸?shù)膫鞲衅鞴?jié)點構成的網(wǎng)絡,在軍事、環(huán)境、醫(yī)療、家居、工業(yè)等方面都有著廣闊的應用前景。無線傳感器網(wǎng)絡主要以數(shù)據(jù)為中心,節(jié)點采集數(shù)據(jù)后都要通過多跳傳輸?shù)竭_基站。數(shù)據(jù)在傳輸過程中,會遭到各方面的攻擊,選擇轉發(fā)攻擊就是其中一類。所謂選擇轉發(fā)攻擊即攻擊節(jié)點接收到鄰居節(jié)點發(fā)送的數(shù)據(jù),并不是立刻將收到的數(shù)據(jù)包轉發(fā)給下一個節(jié)點,而是故意丟棄或者篡改部分數(shù)據(jù)包,使得通過惡意節(jié)點的數(shù)據(jù)都不能完整的到達基站,影響用戶接受數(shù)據(jù)。選擇轉發(fā)攻擊示意如圖1 數(shù)據(jù)在網(wǎng)絡中傳輸,當節(jié)點1將數(shù)據(jù)傳給惡意節(jié)點Cl,惡意節(jié)點Cl丟棄或者篡改部分數(shù)據(jù)包,使得節(jié)點2無法完全獲得節(jié)點1所轉發(fā)的數(shù)據(jù),從而導致基站無法獲得完整的數(shù)據(jù)信息。在這類攻擊中,惡意節(jié)點在大多數(shù)時間內的表現(xiàn)和正常節(jié)點一樣,但是他們會選擇性的丟棄或篡改一些包含重要信息的數(shù)據(jù)包,很難將它和正常的網(wǎng)絡丟包行為所區(qū)分, 具有很大的迷惑性,特別是當它與其他攻擊相結合后,往往會變得更有破壞力,對無線傳感器網(wǎng)絡的安全運行產生巨大威脅。針對選擇轉發(fā)攻擊的特性,現(xiàn)有的技術主要有以下幾種方案
1)Karlof C, Wagner D. Secure Routing in Wireless Sensor Networks:
Attacks and Countermeasures[J]. IEEE International Workshop on Sensor Network Protocols and Applications, 2003,1(5) : 113-127.提出了一種利用多路徑路由的方法抵御選擇轉發(fā)攻擊,源節(jié)點在發(fā)送數(shù)據(jù)時,同時選取多條路徑來發(fā)送數(shù)據(jù),即使一條路徑遭到惡意節(jié)點的選擇轉發(fā)攻擊,其他路徑也同樣可以到達基站,該方法利用多路徑的冗余性提高惡意節(jié)點控制數(shù)據(jù)流的難度,從而提高數(shù)據(jù)在傳輸過程中的安全性。2)B. Yu, B. Xiao. Detecting selective forwarding attacks in wireless sensor networks. In: Proe. of the 20th International Parallel and Distributed Processing SymPosiumj RhodesIslandj Greeeej 2006,1218-1230.提出了一種基于檢查點的多點確認方案檢測選擇轉發(fā)攻擊。該方案主要思想是隨機選取傳輸路徑上的部分節(jié)點作為檢查點,檢查點每收到一個數(shù)據(jù)包都會發(fā)送一個確認報文給上游的檢查點,上游的檢查點比較自己發(fā)送出去的數(shù)據(jù)包數(shù)量和接收到的確認報文數(shù)量,判斷傳輸路徑中是否存在惡意節(jié)點。上述方法可以有效的檢測出惡意節(jié)點丟棄數(shù)據(jù)包的行為,但是也存在一定的不足,方法(1)是基于多徑傳輸?shù)牡钟呗?,在網(wǎng)絡規(guī)模較大時傳輸?shù)耐ㄐ砰_銷會隨著路徑數(shù)的增加而迅速增加。方法(2)需要檢查節(jié)點持續(xù)發(fā)送確認數(shù)據(jù)包,增加了網(wǎng)絡資源開銷。同時,上述兩種方法都無法檢測出惡意節(jié)點篡改數(shù)據(jù)包的攻擊行為。
發(fā)明內容
技術問題本發(fā)明主要針對選擇轉發(fā)攻擊的特點,針對已有的解決方法無法有效的檢測惡意節(jié)點篡改數(shù)據(jù)內容的不足加以改進,引入數(shù)字水印技術來保護數(shù)據(jù)的完整性。 本發(fā)明的目的是提供一種選擇轉發(fā)攻擊的檢測排除方法,對惡意節(jié)點進行的選擇轉發(fā)攻擊進行判斷以及惡意節(jié)點的檢測。技術方案本發(fā)明的方法是提出了一種基于數(shù)字水印技術的數(shù)據(jù)認證方法,通過在源節(jié)點處對數(shù)據(jù)進行水印嵌入,在基站處對水印信息進行提取,以獲得數(shù)據(jù)在傳輸過程中的被丟棄率和被篡改率,再與安全網(wǎng)絡中數(shù)據(jù)丟包率進行比較,以此判斷傳輸路徑中是否存在選擇轉發(fā)攻擊節(jié)點;在基站判斷傳輸路徑中存在惡意節(jié)點時,則進行惡意節(jié)點檢測。本發(fā)明主要目的在于判斷網(wǎng)絡中是否存在選擇轉發(fā)攻擊以及惡意節(jié)點的檢測排除。本發(fā)明的方法主要通過數(shù)字水印認證模塊和惡意節(jié)點檢測模塊的功能運行來實現(xiàn)。下面具體說明這兩個模塊的運行方式
水印認證模塊運行如圖2所示,分為水印生成、水印嵌入、水印提取三個步驟,為了有效的保證完整性,水印信息的生成需要依靠原始數(shù)據(jù)本身,源節(jié)點采集得到原始數(shù)據(jù),進行數(shù)據(jù)特征值提取,獲得的特征值與密鑰K 一起進入水印生成器獲得水印信息W,在通過水印嵌入器進行水印嵌入,之后進入網(wǎng)絡進行傳輸,到達基站時,通過水印提取,將水印信息提取出來獲得W’,再對收到的數(shù)據(jù)進行特征值提取,與密鑰K 一起進入水印生成器,獲得水印信息W0,比較W’和WO的相似度,獲得數(shù)據(jù)在傳輸過程中的被丟棄率和被篡改率。1)水印生成器主要負責水印信息的生成,具體步驟如下
1.計算密鑰K的哈希值,記作Hash(K);
2.取c個數(shù)據(jù)分組L[i]的最高有效位,記作C[i](i=0, 1……c);
3.MHash(K)的前 c 位,記作 H[i] (i=0, 1……c);
4.計算水印信息W,ff[i]=H[i]十C[i] (i=0, 1……c),十為異或操作·
2)水印嵌入器主要負責水印的嵌入,具體步驟如下
a)獲得分組i的數(shù)據(jù)L[i];
b)若W[i]為0,則不對L[i]進行處理;若W[i]為1,則在L[i]數(shù)據(jù)后增加一位比特
零;
c)封裝分組數(shù)據(jù),添加分組序號等操作;
3)水印提取器主要負責水印的提取,具體步驟如下
a)對接收到的數(shù)據(jù)包進行排序;
b)根據(jù)序列號得到數(shù)據(jù)在傳輸過程中丟失的個數(shù)Q;
c)計算水印信息W’[i],計算L[i]的數(shù)據(jù)長度,如果為m,則W’ [i]為0;如果為m+1 且最后一位為0,則W’ [i]為1 ;否則,判定該數(shù)據(jù)包在傳輸過程中被篡改;
d)獲得與W’[i]對應序列號的數(shù)據(jù)包,利用水印生成算法2的方法獲得水印信息Wtl;e)比較W’ [i]和W0 [i],獲得數(shù)據(jù)分組的被篡改個數(shù)P.
根據(jù)水印提取器獲得的分組丟失的個數(shù)Q和被篡改個數(shù)P,計算分組丟失率Qa=Q/c和被篡改率
惡意節(jié)點檢測模塊的檢測過程如圖3所示,具體檢測過程如下
節(jié)點1為數(shù)據(jù)采集源節(jié)點,節(jié)點3為惡意節(jié)點,節(jié)點2和節(jié)點4為正常轉發(fā)節(jié)點。當基站判斷傳輸路徑中存在選擇轉發(fā)攻擊時,基站通知節(jié)點1進行數(shù)據(jù)重傳,節(jié)點1將數(shù)據(jù)經過水印嵌入等相關操作后傳給節(jié)點2,在節(jié)點2處通過上述水印認證模塊對數(shù)據(jù)完整性進行認證計算1 和Qa,以判斷上一節(jié)點是否為惡意節(jié)點,判斷數(shù)據(jù)正常后,將數(shù)據(jù)轉發(fā)給節(jié)點3,節(jié)點3作為惡意節(jié)點選擇性的丟棄或者篡改了部分數(shù)據(jù)包之后轉發(fā)給節(jié)點4,節(jié)點4 收到數(shù)據(jù)包后,作節(jié)點2相同的操作判斷節(jié)點3是否為惡意節(jié)點,此處節(jié)點4計算出的1 和Qa出現(xiàn)異常,判斷節(jié)點3為惡意節(jié)點。節(jié)點4丟棄收到的被攻擊的數(shù)據(jù),同時通知基站節(jié)點3為惡意節(jié)點,基站獲得惡意節(jié)點3的相關信息之后,廣播通知全網(wǎng)節(jié)點將惡意節(jié)點從轉發(fā)列表中刪除。并通知源節(jié)點繼續(xù)重傳數(shù)據(jù),直至重傳數(shù)據(jù)安全達到基站,則整個惡意節(jié)點檢測模塊結束。
方法流程
基于數(shù)字水印的抗轉發(fā)攻擊方法具體為無線傳感器網(wǎng)絡中,源節(jié)點進行水印信息的生成、水印的嵌入等操作,數(shù)據(jù)經過網(wǎng)絡多跳到達基站,在基站處對收到的數(shù)據(jù)進行分析, 判斷網(wǎng)路傳輸中數(shù)據(jù)是否遭到選擇轉發(fā)攻擊。如果發(fā)現(xiàn)攻擊行為,則實施惡意節(jié)點排除機制。具體的流程如下
(1)對源節(jié)點采集的原始數(shù)據(jù)進行分組,利用水印生成算法獲得水印信息;
(2)在源節(jié)點嵌入水印信息;
(3)分組數(shù)據(jù)經過多跳發(fā)送到基站;
(4)在基站處進行水印信息的提取和比較,計算數(shù)據(jù)在傳輸過程中的數(shù)據(jù)丟棄率Qa和數(shù)據(jù)篡改率1 ;
(5)通過將Qa和1 與正常網(wǎng)絡數(shù)據(jù)丟包率Loss這個閾值進行比較,如果Qa>LoSS或者I^>L0SS則說明網(wǎng)絡中存在選擇轉發(fā)攻擊,進入惡意節(jié)點檢測機制,進入(6);否則,說明數(shù)據(jù)安全傳輸;
(6)通知源節(jié)點重傳數(shù)據(jù)包,并通知所有轉發(fā)節(jié)點采用自檢模式進行數(shù)據(jù)轉發(fā);(所謂自檢模式為轉發(fā)節(jié)點在接收到數(shù)據(jù)包后,進行中的Qa和1 的計算)
(7)轉發(fā)節(jié)點進行自檢模式轉發(fā),如果Qa>LoSS或者Pa>LoSS則判斷上一跳節(jié)點為惡意節(jié)點,通知基站作相應處理,同時丟棄數(shù)據(jù)包,不在進行轉發(fā),進入(6);否則,正常轉發(fā)數(shù)據(jù)包給下一跳節(jié)點,判斷下一跳節(jié)點是否為基站,如果是,則轉到(8);否則繼續(xù)(7);
(8)直至重傳數(shù)據(jù)包到達基站,基站再次進行Qa和1 的計算,如果Qa>LoSS或者 Pa>Loss則判斷上一跳節(jié)點為惡意節(jié)點,做相應處理;否則,基站認為網(wǎng)絡中已不存在進行選擇轉發(fā)攻擊的惡意節(jié)點;
(9)基站通知所有節(jié)點不再使用自檢模式進行數(shù)據(jù)轉發(fā),所有節(jié)點進行正常數(shù)據(jù)傳輸, 基站持續(xù)進行⑷中的Qa和1 計算以及(5)中的判斷,監(jiān)控網(wǎng)絡;
(10)全過程結束。
有益效果
本發(fā)明主要針對無線傳感器網(wǎng)絡中的選擇轉發(fā)攻擊,提出了一種判斷和檢測排除方案。在攻擊情況下,攻擊節(jié)點故意丟棄或篡改一定數(shù)量的數(shù)據(jù)包,使基站無法完全獲得源節(jié)點發(fā)送的數(shù)據(jù)包,影響基站接收數(shù)據(jù)。采用本發(fā)明的檢測方法可以對惡意節(jié)點隨機丟棄和篡改數(shù)據(jù)包的行為做出判斷,同時檢測并排除惡意節(jié)點,提高了網(wǎng)絡的安全性。
圖1是選擇轉發(fā)攻擊示意圖。圖2是數(shù)字水印認證示意圖。圖3是一個惡意節(jié)點檢測過程。圖4是整個檢測排除方法的簡單流程圖。
具體實施方案這里以傳輸路徑中存在一個選擇轉發(fā)攻擊節(jié)點為例,下面是本發(fā)明的具體實施方案
(1)源節(jié)點采集原始數(shù)據(jù),長度為Λ將數(shù)據(jù)分為C組,每組數(shù)據(jù)記作L[i],i=0,l……
C;
(2)生成水印信息
a)計算密鑰f的哈希值,記作/fed(幻;
b)取c個數(shù)據(jù)分組L[i]的最高有效位,記作C[i](i=0, 1……c);
c)MHash(K)的前 c 位,記作 H[i] (i=0, 1……c);
d)計算水印信息W,W[i]=H[i]十C[i] (i=0, 1……c), 為異或操作.
(3)向每個分組中嵌入水印信息
f)獲得分組i的數(shù)據(jù)L[i];
g)若W[i]為0,則不對L[i]進行處理;若W[i]為1,則在L[i]數(shù)據(jù)后增加一位比特
零;
h)封裝分組數(shù)據(jù),添加分組序號等操作;
(4)數(shù)據(jù)經過多跳轉發(fā)到達基站;
(5)基站處對水印信息進行提取,同時計算數(shù)據(jù)丟棄率Qa和數(shù)據(jù)篡改率1 ,具體做
法為
a)對接收到的數(shù)據(jù)包進行排序;
b)根據(jù)序列號得到數(shù)據(jù)在傳輸過程中丟失的個數(shù)Q;
c)計算水印信息W’[i],計算L[i]的數(shù)據(jù)長度,如果為m,則W’ [i]為0;如果為m+1 且最后一位為0,則W’ [i]為1 ;否則,判定該數(shù)據(jù)包在傳輸過程中被篡改;
d)獲得與W’[i]對應序列號的數(shù)據(jù)包,利用水印生成算法2的方法獲得水印信息Wtl;e)比較W’[i]和W0 [i],獲得數(shù)據(jù)分組的被篡改個數(shù)P;
f)計算數(shù)據(jù)丟棄率Qa=Q/c和數(shù)據(jù)篡改率f^=P/c.
(6)基站對Qa和1 進行分析,如果Pa>LoSS或者Qa>LoSS則判斷傳輸路徑中存在選擇轉發(fā)攻擊,啟動惡意節(jié)點檢測機制,進入(7);否則,說明數(shù)據(jù)安全達到,不作處理;
(7)基站啟動惡意節(jié)點檢測機制,通知源節(jié)點進行數(shù)據(jù)重傳,同時通知所有節(jié)點以自檢模式進行數(shù)據(jù)轉發(fā);
(8)轉發(fā)節(jié)點對收到的數(shù)據(jù)進行(5)和(6)的計算和比較,判斷接收到的數(shù)據(jù)是否正
常;
(9)如果正常則說明轉發(fā)節(jié)點的上一跳節(jié)點為正常節(jié)點,則正常轉發(fā)數(shù)據(jù)給下一跳節(jié)占.
(10)如果不正常則說明上一跳節(jié)點為惡意節(jié)點,則丟棄收到的數(shù)據(jù),不再繼續(xù)轉發(fā)數(shù)據(jù)。同時,通知基站惡意節(jié)點相關信息,基站廣播全網(wǎng),將惡意節(jié)點從轉發(fā)表中刪除,并通知源節(jié)點重傳數(shù)據(jù),繼續(xù)(8);
(11)直至數(shù)據(jù)達到基站,基站進行(5)和(6)的計算和比較,判斷收到的數(shù)據(jù)是否正
常;
(12)如果不正常則說明基站的上一跳節(jié)點為惡意節(jié)點,則基站丟棄收到的數(shù)據(jù)包,通知全網(wǎng),將上一跳節(jié)點從轉發(fā)表中刪除,并通知源節(jié)點重傳數(shù)據(jù);
(13)如果正常則說明傳輸路徑中的已無惡意節(jié)點,則結束惡意節(jié)點檢測,基站通知所有轉發(fā)節(jié)點不在進行自檢模式轉發(fā),采用正常模式轉發(fā);
(14)基站持續(xù)檢測收到的數(shù)據(jù),判斷網(wǎng)絡中是否存在選擇轉發(fā)攻擊。
權利要求
1. 一種基于數(shù)字水印的抗轉發(fā)攻擊方法,其特點在于包含如下步驟1)、采用數(shù)字水印認證技術對無線傳感器網(wǎng)絡中傳輸?shù)臄?shù)據(jù)實現(xiàn)了完整性保護,通過在發(fā)送端進行水印信息生成和水印嵌入,最后在接收端進行水印提取以及相關分析,判斷網(wǎng)絡是否遭受選擇轉發(fā)攻擊;2)、由1中計算獲得的數(shù)據(jù)丟棄率Qa和數(shù)據(jù)篡改率Pa,比較Qala和正常網(wǎng)絡丟包率 Loss進行比較,若Qa>LoSS或者I^>L0SS,判斷網(wǎng)絡中存在選擇轉發(fā)攻擊;否則,判斷網(wǎng)絡中無選擇轉發(fā)攻擊;3)、由2中判斷網(wǎng)絡中存在選擇轉發(fā),則啟動惡意節(jié)點檢測機制,即當基站判斷傳輸路徑中存在選擇轉發(fā)攻擊,則通知源節(jié)點進行數(shù)據(jù)重傳,轉發(fā)節(jié)點采用自檢模式進行數(shù)據(jù)轉發(fā),對收到的數(shù)據(jù)包進行水印提取、丟棄率和篡改率計算,判斷上一跳節(jié)點是否為惡意節(jié)點,若為惡意節(jié)點,則丟棄收到的被攻擊的數(shù)據(jù),并通知基站惡意節(jié)點信息,進行惡意節(jié)點刪除處理,然后基站再通知源節(jié)點再次進行數(shù)據(jù)重傳;若為正常節(jié)點,則轉發(fā)給下一跳節(jié)點,直至重傳數(shù)據(jù)安全到達基站,基站則通知轉發(fā)節(jié)點取消自檢模式進行數(shù)據(jù)重傳,網(wǎng)絡回到正常的傳輸模式,基站持續(xù)檢測收到的數(shù)據(jù),監(jiān)控網(wǎng)絡中是否存在選擇轉發(fā)攻擊。
全文摘要
本方法涉及一種基于數(shù)字水印的抗轉發(fā)攻擊方法。通過在源節(jié)點處對數(shù)據(jù)進行水印嵌入,在基站處對水印信息進行提取,以獲得數(shù)據(jù)在傳輸過程中的被丟棄率和被篡改率,再與安全網(wǎng)絡中數(shù)據(jù)丟包率進行比較,以此判斷傳輸路徑中是否存在選擇轉發(fā)攻擊節(jié)點;在基站一旦判斷傳輸路徑中存在惡意節(jié)點時,則進行惡意節(jié)點檢測并排除。采用本發(fā)明的檢測方法可以對惡意節(jié)點隨機丟棄數(shù)據(jù)包的行為做出判斷,同時檢測并排除惡意節(jié)點,提高了網(wǎng)絡的安全性。
文檔編號H04W12/10GK102316456SQ20111022816
公開日2012年1月11日 申請日期2011年8月10日 優(yōu)先權日2011年8月10日
發(fā)明者劉林峰, 張登銀, 程春玲, 許超, 鄒志強 申請人:南京郵電大學