[發明專利]一種面向WSN中Sybil攻擊的檢測方法有效
| 申請號: | 201610080997.5 | 申請日: | 2016-02-04 |
| 公開(公告)號: | CN105636053B | 公開(公告)日: | 2019-03-29 |
| 發明(設計)人: | 李皓;武卉明;畢建權;劉海燕;薛廷梅;屈強;王璇;常成;蘇彥;蔡紅柳;邢萌 | 申請(專利權)人: | 中國人民解放軍裝甲兵工程學院 |
| 主分類號: | H04W12/12 | 分類號: | H04W12/12;H04W84/18;H04L29/06 |
| 代理公司: | 常州佰業騰飛專利代理事務所(普通合伙) 32231 | 代理人: | 黃杭飛 |
| 地址: | 100072 *** | 國省代碼: | 北京;11 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 面向 wsn sybil 攻擊 檢測 方法 | ||
1.一種面向WSN中Sybil攻擊的檢測方法,任何合法性未知的新增節點s試圖接入WSN時,需要在WSN中廣播其身份,聲明其身份為s_idi,且i=1,2,…,sn,sn≥1,將WSN中新增的所有身份標識記為集合SID,SID的模記為sn;而將在WSN中收到身份廣播信息的所有合法節點記為集合V,V的模記為vn;vj為集合V中元素,j=1,2,…,vm,vm≥1,則vj將主動啟動所述檢測方法,其特征在于,所述檢測方法包括以下步驟:
步驟1,vj先在其內部存儲器中建立一個Sybil檢測記錄表,利用所述Sybil檢測記錄表記錄vj接收到的所有身份信息s_idi及其對應的檢測次數、同步狀態和檢測結果,并將Sybil檢測記錄表發送至基站base,基站base對接收的所有Sybil檢測記錄表進行合并處理,形成全局檢測記錄表;然后vj在其當前工作周期結束后發出廣播消息Msg_HelloBreak;
其中,檢測次數利用內部重發計數器記數count,且檢測次數初始為0即置內部重發計數器count=0;同步狀態為vj與基站base之間是否為同步狀態,0表示未與基站base完成同步,1表示已于基站完成同步;檢測結果為vj對收到的s_idi的檢測結果,0表示s_idi對應的新增節點為合法節點,1表示s_idi對應的新增節點為Sybil惡意節點;
步驟2.將接收到Msg_HelloBreak的節點記為接收節點,所述接收節點包括:新增節點s、N中除vj以外其他的合法節點和基站base;接收節點比較Msg_HelloBreak中s_idi的ID字段值與節點自身的ID字段值是否相等,并根據比較結果進行響應:
①若相等,則接收節點緩存Msg_HelloBreak消息,并在其當前工作周期中產生中斷,然后以最大發生功率廣播消息Msg_JustBreak,之后進入休眠狀態,休眠時長根據Msg_HelloBreak中的BreakTime值設定,BreakTime時長結束后該接收節點自動喚醒,但不向外發送任何數據,需要等待基站喚醒指令Msg_JustWake才能進入工作狀態;
②若不相等,或者接收節點為基站base,則接收節點緩存Msg_HelloBreak消息后,繼續其自身工作狀態,不再執行所述檢測方法;
步驟3.vj和基站base共同監聽是否有Msg_JustBreak響應消息且其源節點ID為s_idi,并根據監聽結果進行相應:
①如果vj在收到Msg_HelloBreak后的三個工作周期內都未監聽到Msg_JustBreak響應消息且vj內count<3,則vj重發Msg_HelloBreak,并置內部重發計數器的計數加一;
如果vj在收到Msg_HelloBreak后的三個工作周期內都未監聽到Msg_JustBreak響應消息且count≥3,則vj認為新增節點為非法節點,并將向基站base發送Msg_SybilAlarm消息,同時vj將Sybil檢測記錄表中該s_idi對應的新增節點標記為Sybil惡意節點,基站base將全局檢測記錄表中該s_idi對應的新增節點標記為Sybil惡意節點,并由基站base向全網廣播該狀態,檢測結束;
②如果vj或基站base收到Msg_JustBreak且其源節點ID為s_IDi,但
Msg_JustBreak消息數>1且各Msg_JustBreak中的隨機數RandNum不相等,說明當前WSN中有多個不同的物理節點均使用s_idi作為其身份標識,則收到Msg_JustBreak的vj將Sybil檢測記錄表中該s_idi對應的新增節點標記為Sybil惡意節點,然后vj和基站base將啟動同步過程,將基站base的全局檢測記錄表中該s_idi對應的新增節點標記為Sybil惡意節點;并由基站base向全網廣播該狀態,檢測結束;
或收到Msg_JustBreak的基站base將全局檢測記錄表中該s_idi對應的新增節點標記為Sybil惡意節點,然后vj和基站base將啟動同步過程,將vj的Sybil檢測記錄表中該s_idi對應的新增節點標記為Sybil惡意節點;并由基站base向全網廣播該狀態,檢測結束;
③如果vj或基站base收到了Msg_JustBreak且其源節點ID為s_idi,但Msg_JustBreak消息數=1,則vj和基站base將啟動同步過程,在Sybil檢測記錄表和全局檢測記錄表中找到s_idi對應記錄并將其同步標記修改為1,并由基站base向全網廣播該狀態,之后執行步驟4;
步驟4.基站base廣播Msg_CheckBreak消息,要求所有收到Msg_HelloBreak消息且處于喚醒狀態的合法節點在接下來的BreakTime時間內執行CheckBreak動作,即監聽是否仍然能夠接收到來自s_idi的任何消息,若存在合法節點接收到s_idi的任何消息,該合法節點則向基站base發送SybilAlarm消息,則vj和基站base將啟動同步過程,在Sybil檢測記錄表和全局檢測記錄表中找到s_idi對應記錄并將其檢測結果標記為Sybil惡意節點,并由基站base向全網廣播該狀態,檢測結束;若不存在合法節點接收到s_idi的任何消息,則說明s_idi對應的新增節點處于休眠中,并繼續執行步驟5;
步驟5.判斷身份為s_idi的集合的模是否大于1,若大于1,說明新增節點s使用了兩個以上的身份ID,屬于Sybil欺騙行為,那么執行CheckBreak的任一合法節點將向基站base發送SybilAlarm消息,基站base將在其全局檢測記錄表中找到s_idi對應記錄并將其檢測結果標記為Sybil惡意節點,同時向全網廣播該狀態,檢測結束;若等于1,則繼續執行步驟6;
步驟6.基站base發出Msg_JustWake廣播消息,喚醒身份為s_idi的新增節點并探測其是否進入工作狀態,若s_idi未按要求進入工作狀態,基站base將在其全局檢測記錄表中找到s_idi對應記錄并將其檢測結果標記為Sybil惡意節點,同時向全網廣播該狀態,檢測結束;若s_idi按要求進入工作狀態,則執行步驟7;
步驟7.基站base將在其全局檢測記錄表中找到s_idi對應記錄并將其檢測結果標記為合法節點,同時向全網廣播該狀態;然后執行步驟8;
步驟8.判斷是否所有的身份信息s_idi均檢測完畢,如果s_idi當前下標i<sn,說明還有未檢測的新增節點身份ID,則令i=i+1,然后執行步驟1至步驟7,如果s_idi當前下標i=sn,則檢測結束。
2.如權利要求1所述的面向WSN中Sybil攻擊的檢測方法,其特征在于,若vn>1,將有不止一個vj發出Msg_HelloBreak,但接收節點或基站均只保存第一個Msg_HelloBreak,拋棄后續到達的ID仍為s_idi的Msg_HelloBreak;而集合V中未發出Msg_HelloBreak消息的合法節點,在收到ID為s_idi的Msg_HelloBreak后,將不再送出針對s_idi的Msg_HelloBreak包。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于中國人民解放軍裝甲兵工程學院,未經中國人民解放軍裝甲兵工程學院許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201610080997.5/1.html,轉載請聲明來源鉆瓜專利網。





