Ttl字段的編制方法及基于ttl的無線傳感網(wǎng)絡(luò)安全路由方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明屬于信息安全、下一代IP通信網(wǎng)絡(luò)與無線傳感器網(wǎng)絡(luò)技術(shù)的交叉領(lǐng)域,具 體設(shè)及生存時(shí)間值燈imeToLive,TTL)字段的編制方法及基于TTL的無線傳感網(wǎng)絡(luò)安全 路由方法。
【背景技術(shù)】
[0002] 無線傳感器網(wǎng)絡(luò)(WirelessSensorNetworks,WSN)是在當(dāng)今社會(huì)上備受關(guān)注的、 多學(xué)科交叉的研究領(lǐng)域,在未來人類生活中的方方面面將起著不可或缺的作用。隨著無線 通信技術(shù)的飛速發(fā)展及無線應(yīng)用領(lǐng)域的擴(kuò)大,基于IP通信的無線傳感器網(wǎng)絡(luò)日漸成為互 聯(lián)網(wǎng)領(lǐng)域研究的熱點(diǎn)之一。IPv6技術(shù)的出現(xiàn)及Zigbee聯(lián)盟的工作,大力推動(dòng)了基于IP通 信的無線傳感器網(wǎng)絡(luò)的發(fā)展。無線傳感器網(wǎng)絡(luò)由于受限于自身的資源和使用的外部環(huán)境, 在傳輸數(shù)據(jù)的可靠性,安全性和工作的持續(xù)性上一直難W取得一個(gè)很好的平衡。由于硬件 條件的限制,無線傳感器節(jié)點(diǎn)無論是能量,還是其處理能力、存儲(chǔ)能力都受到極大的制約。 近年來,考慮到無線傳感器網(wǎng)絡(luò)在軍事,醫(yī)療,交通,礦產(chǎn)開采等方面的廣泛運(yùn)用,一旦數(shù)據(jù) 被截獲并加W惡意利用,將會(huì)嚴(yán)重影響人們的生命財(cái)產(chǎn)安全。因此,基于IP的無線傳感器 網(wǎng)絡(luò)的安全問題和相關(guān)技術(shù)越來越得到研究者們的關(guān)注。但是,受限于無線傳感器網(wǎng)絡(luò)對(duì) 于資源的苛刻要求,采用傳統(tǒng)無線網(wǎng)絡(luò)中的密鑰體制進(jìn)行加解密運(yùn)算或者數(shù)字簽名,將過 快地消耗傳感網(wǎng)節(jié)點(diǎn)的能量。為了保證無線傳感器節(jié)點(diǎn)的工作壽命,不應(yīng)提倡進(jìn)一步增加 除了傳輸數(shù)據(jù)本身W外的傳輸任務(wù)。
[0003] 特別地,在無線移動(dòng)傳感器網(wǎng)絡(luò)中,可移動(dòng)節(jié)點(diǎn)本身具有很大的安全漏桐。攻擊者 可W將合法的移動(dòng)節(jié)點(diǎn)的本地地址與其自身的IP地址綁定,從而使得網(wǎng)絡(luò)中原本應(yīng)該發(fā) 送給某合法節(jié)點(diǎn)的數(shù)據(jù)流向攻擊者期望的節(jié)點(diǎn)。當(dāng)網(wǎng)絡(luò)中新節(jié)點(diǎn)加入時(shí),攻擊者還可W將 自己的IP地址聲明為Sink節(jié)點(diǎn)地址并通知新節(jié)點(diǎn),使得新節(jié)點(diǎn)在傳輸數(shù)據(jù)的過程中都誤 將攻擊者作為通信的中繼節(jié)點(diǎn),從而使得攻擊者能夠成功竊取通信數(shù)據(jù)。此外,攻擊者也可 W事先和一個(gè)流量非常大的服務(wù)器(如圖像服務(wù)器)建立連接,然后將服務(wù)器發(fā)送的數(shù)據(jù) 包中的目的地址修改為需要攻擊的某節(jié)點(diǎn)地址。由于不經(jīng)驗(yàn)證,服務(wù)器會(huì)將大量該節(jié)點(diǎn)無 法承受的數(shù)據(jù)流量發(fā)送至該節(jié)點(diǎn),從而導(dǎo)致被攻擊節(jié)點(diǎn)消耗過多的能量,提前結(jié)束生命周 期。在最壞的情況下,該節(jié)點(diǎn)的退出可能會(huì)引起整個(gè)網(wǎng)絡(luò)的中斷。
[0004] 此外,WSN中的路由協(xié)議是網(wǎng)絡(luò)攻擊的主要目標(biāo),其安全性方面存在很多問題。典 型的路由安全問題主要有3個(gè)方面:1、數(shù)據(jù)在傳輸過程中被非法獲??;2、未經(jīng)授權(quán)的節(jié)點(diǎn) 介入無線網(wǎng);3、無線信道上傳輸?shù)臄?shù)據(jù)被非法修改。解決運(yùn)些問題的方法主要有:1、加密, 保證攻擊者在沒有密鑰的前提下無法還原截獲的信息;2、身份認(rèn)證,保證未授權(quán)的節(jié)點(diǎn)加 入并使用網(wǎng)絡(luò);3、數(shù)據(jù)完整性校驗(yàn),保證接收端可W認(rèn)證無線信道上傳輸?shù)臄?shù)據(jù)是否被非 法修改過,并根據(jù)結(jié)果對(duì)消息進(jìn)行取舍。使用者不可能接受并部署一個(gè)沒有解決好安全和 隱私問題的傳感網(wǎng)絡(luò),因此在進(jìn)行WSN協(xié)議和軟件設(shè)計(jì)時(shí),必須充分考慮WSN可能面臨的安 全問題,同時(shí)也要考慮到其能力受限的特征,權(quán)衡的將安全防范和檢測(cè)機(jī)制集成到路由協(xié) 議設(shè)計(jì)中去。
【發(fā)明內(nèi)容】
陽〇化]為了在有限的資源下進(jìn)行盡可能高效安全的傳輸,在安全性和效能之間尋求很好 的平衡,本發(fā)明公開一種數(shù)據(jù)包中TTL字段的編制方法。
[0006] 一種TTL字段的編制方法,在簇樹網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)中,為每個(gè)節(jié)點(diǎn)分配1字節(jié)的內(nèi)存 空間,用于保存記錄所處網(wǎng)絡(luò)層數(shù)的值即level值,
[0007] 所述level值的高四位Ievelf的范圍為0000~1111,其中Sink節(jié)點(diǎn)的levelf值 為0000,Sink節(jié)點(diǎn)的每層孩子節(jié)點(diǎn)的Ievelf值隨著所處網(wǎng)絡(luò)層數(shù)遞增加1 ;
[000引所述level值的低四位IeveL的范圍為1111~0000,從Sink節(jié)點(diǎn)開始 每層節(jié)點(diǎn)的Ievelf值隨著所處網(wǎng)絡(luò)層數(shù)遞減減1,且使得每層節(jié)點(diǎn)的level值滿足 貨/m.乂二W,其中W為一常數(shù),范圍為0000~1111。
[0009] 所述網(wǎng)絡(luò)為無線傳感網(wǎng)絡(luò)。
[0010] 第二方面,本發(fā)明公開了根據(jù)TTL字段的編制方法建立拓?fù)渚W(wǎng)絡(luò)的方法,包括W 下步驟:
[0011] 步驟1、Sink節(jié)點(diǎn)設(shè)置自己的level值,設(shè)置報(bào)文的TTL值,并廣播hello報(bào)文W 對(duì)周圍節(jié)點(diǎn)進(jìn)行鄰居發(fā)現(xiàn); 陽01引步驟2、如果節(jié)點(diǎn)A接收到Ievelf值為0000的hello報(bào)文,則驗(yàn)證該Sink節(jié)點(diǎn)ITL字段0/lw/, =W是否成立,若成立,則A與Sink節(jié)點(diǎn)建立鄰居關(guān)系,并設(shè)置自己 Ievelf為OOOl;若不成立,則丟棄該hello報(bào)文;levelf值加1 ;
[0013] 步驟3、節(jié)點(diǎn)A對(duì)其接收到hello報(bào)文的所有節(jié)點(diǎn)進(jìn)行遍歷。
[0014] 數(shù)據(jù)包在節(jié)點(diǎn)之間跳轉(zhuǎn)時(shí),目的節(jié)點(diǎn)將源節(jié)點(diǎn)的level值設(shè)置為自己的level值。
[0015] 第S方面,本發(fā)明公開了基于TTL的拓?fù)渚W(wǎng)絡(luò)中節(jié)點(diǎn)退出網(wǎng)絡(luò)的方法,包括W下 步驟:
[0016] 步驟21、節(jié)點(diǎn)A將要退出拓?fù)渚W(wǎng)絡(luò)的消息傳遞給A的所有孩子節(jié)點(diǎn)B=度1、 B2、……);
[0017] 步驟22、孩子節(jié)點(diǎn)Bi收到A想要退出網(wǎng)絡(luò)的消息后,將自己的TTL及ID信息發(fā)送 給A的兄弟節(jié)點(diǎn)C=咕、Cz、......);
[00化]步驟23、A的兄弟節(jié)點(diǎn)Ci收到B1的請(qǐng)求,擬將B1作為自己的孩子節(jié)點(diǎn),則返回一 個(gè)ACK報(bào)文;
[0019]步驟24 :若節(jié)點(diǎn)Ci發(fā)出的ACK是B1收到的第一個(gè)ACK報(bào)文,則節(jié)點(diǎn)B1將自己的父 節(jié)點(diǎn)標(biāo)記為。,建立與Ci的鄰居關(guān)系;如果B1沒有收到任何ACK報(bào)文,則通知自己的子節(jié) 點(diǎn),讓其退出網(wǎng)絡(luò)后重新加入網(wǎng)絡(luò);
[0020]步驟25、Bi解除自己和A的鄰居關(guān)系,并向A返回ACK報(bào)文;
[OOW步驟26、A獲取所有的孩子節(jié)點(diǎn)反饋給自己的ACK報(bào)文后,通知A的父節(jié)點(diǎn),解除 自己與父節(jié)點(diǎn)的鄰居關(guān)系,退出網(wǎng)絡(luò)。
[0022] 第四方面,本發(fā)明公開了基于TTL的拓?fù)渚W(wǎng)絡(luò)防止惡意節(jié)點(diǎn)攻擊的辦法,包括W 下步驟:
[002引步驟31、惡意節(jié)點(diǎn)進(jìn)行鄰居發(fā)現(xiàn),廣播hello報(bào)文,網(wǎng)絡(luò)拓?fù)渲械墓?jié)點(diǎn)D接收到惡 意節(jié)點(diǎn)的hello報(bào)文;
[0024] 步驟32、節(jié)點(diǎn)D對(duì)比鄰居發(fā)現(xiàn)消息中的TTL字段,發(fā)現(xiàn)其心"。/, =W不成 立;
[00巧]步驟33、節(jié)點(diǎn)D忽略運(yùn)個(gè)鄰居發(fā)現(xiàn)消息,惡意節(jié)點(diǎn)攻擊失敗。
[00%] 第五方面,本發(fā)明公開了基于TTL字段的拓?fù)渚W(wǎng)絡(luò)節(jié)點(diǎn)之間傳輸數(shù)據(jù)的輕量級(jí)加 解密方法,包括W下步驟:
[0027] (1)加密過程
[0028] 步驟41、源節(jié)點(diǎn)E將自己的ID值、目的節(jié)點(diǎn)F的ID值、源節(jié)點(diǎn)E的level值、目的 節(jié)點(diǎn)F的level值串聯(lián)成一個(gè)6字節(jié)的數(shù)字P,記為曰47,曰46,….al,曰0,令i= 1,i用于計(jì) 數(shù);
[0029]步驟 42、S=(i-l)mod3 ;
[0030]步驟 43、將as,as+6,as+12,as+18,as巧4,as+30,as+36,as+42 串聯(lián)形成的二進(jìn) 制數(shù)字與消息的第i個(gè)字節(jié)進(jìn)行異或操作;
[0031]步驟 44、將as+42,as+36,as+30,as巧4,as+12,as+6,as從P中提取出來,并附加 到P的最后;
[0032] 步驟45、如果i〉k,k為通信明文長(zhǎng)度,則完成報(bào)文加密,否則令i=i+1,返回步驟 42 ; 陽〇3引似解密過程
[0034] 步驟51、目的節(jié)點(diǎn)F將源節(jié)點(diǎn)E的ID值、F的ID值、E的level值、F的level值 串聯(lián)成6字節(jié)的數(shù)字Q,記為曰47,曰46,….曰1,aO;
[0035]步驟 52、令i=1,S=(i-l)mod6 ;
[0036]步驟 53、將as+42,as+36,as+30,as巧4,as+12,as+6,as的數(shù)字與消息的第i個(gè)字 節(jié)進(jìn)行異或操作;
[0037]步驟 54、將as+42,as+36,as+30,as巧4,as+12,as+6,as從P中提取出來,并附加 到P的最后;
[0038] 步驟55、如果i大于k,則消息還原完成,否則令i=i+1,返回步驟52。
[0039] 本發(fā)明基于TTL值的無線傳感器網(wǎng)絡(luò)安全路由方法,其具有較高的安全性和較低 的能耗:
[0040] 1、現(xiàn)有的無線傳感網(wǎng)路由協(xié)議雖然支持IP數(shù)據(jù)包加密,但是大多數(shù)協(xié)議采用公 鑰加密等方法,需要額外的存儲(chǔ)數(shù)據(jù)及大數(shù)字的計(jì)算,節(jié)點(diǎn)的能量消耗過快。本方法采用IP 數(shù)據(jù)包中本來就有的TTL字段,不增添額外的通信數(shù)據(jù)就可W檢測(cè)并阻止未授權(quán)的惡意節(jié) 點(diǎn)加入網(wǎng)絡(luò),滿足了無線傳感器網(wǎng)絡(luò)對(duì)能耗敏感的特點(diǎn),在能耗與安全方面達(dá)到了較好的 平衡。
[0041] 2、攻擊者即使截獲了消息,由于不知道通信節(jié)點(diǎn)的level值、ID值,無法將消息復(fù) 原至明文,故抵制了竊聽攻擊。同樣地,攻擊者無法篡改信道中的加密數(shù)據(jù),故抵御了篡改 攻擊。當(dāng)節(jié)點(diǎn)接收到消息解密后,可W正確地驗(yàn)證發(fā)送方的ID值,保證了可靠的數(shù)據(jù)來源。
[0042]3、現(xiàn)有的大多數(shù)支持IPV6的路由協(xié)議與傳統(tǒng)路由相似的地方是節(jié)點(diǎn)內(nèi)部需要保 存并維護(hù)一張路由表,包括路由表的創(chuàng)建和更新。當(dāng)網(wǎng)絡(luò)節(jié)點(diǎn)達(dá)到一定規(guī)模,會(huì)導(dǎo)致路由表 數(shù)量巨大,增加存儲(chǔ)開銷。而本發(fā)明專利的level值來確定節(jié)點(diǎn)所在層級(jí),根據(jù)level值可 W簡(jiǎn)單判斷其子孫節(jié)點(diǎn)、父節(jié)點(diǎn)等重要信息,且易于實(shí)現(xiàn),從而能夠更好地節(jié)約存儲(chǔ)空間。
【附圖說明】
[0043]圖1為基于TTL字段的編制方法建立的拓?fù)渚W(wǎng)絡(luò)圖; W44] 圖2為網(wǎng)絡(luò)攻擊示意圖。
【具體實(shí)施方式】 W45] 為了使本發(fā)明的目的、技術(shù)方案及優(yōu)點(diǎn)更加清楚明白,W下結(jié)合附圖及實(shí)施例,對(duì) 本發(fā)明進(jìn)行進(jìn)一步詳細(xì)說明。應(yīng)當(dāng)理解,此處所描述的具體實(shí)施例僅僅用W解釋本發(fā)明,并 不用于限定本發(fā)明。
[0046] 如圖1所示,網(wǎng)絡(luò)中每個(gè)節(jié)點(diǎn)的ID值占2字節(jié),網(wǎng)絡(luò)樹形結(jié)構(gòu)的高度不超過15, 每個(gè)傳感器節(jié)點(diǎn)占用1字節(jié)的內(nèi)存空間保存和自己當(dāng)前所在網(wǎng)絡(luò)中的層數(shù)相關(guān)的值,記為 level。其中l(wèi)evel的高四位Ievelf從Sink節(jié)點(diǎn)開始,一直到葉子節(jié)