[发明专利]一种面向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.vipzhuanli.com/pat/books/201610080997.5/1.html,转载请声明来源钻瓜专利网。