[发明专利]一种面向WSN中Sybil攻击的检测方法有效
申请号: | 201610080997.5 | 申请日: | 2016-02-04 |
公开(公告)号: | CN105636053B | 公开(公告)日: | 2019-03-29 |
发明(设计)人: | 李皓;武卉明;毕建权;刘海燕;薛廷梅;屈强;王璇;常成;苏彦;蔡红柳;邢萌 | 申请(专利权)人: | 中国人民解放军装甲兵工程学院 |
主分类号: | H04W12/12 | 分类号: | H04W12/12;H04W84/18;H04L29/06 |
代理公司: | 常州佰业腾飞专利代理事务所(普通合伙) 32231 | 代理人: | 黄杭飞 |
地址: | 100072 *** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | 当WSN中突然出现新增节点(可能是单一Sybil攻击者伪造的多个虚假节点,也可能是真实的一个或多个WSN合法节点),以不同身份ID为基本凭据请求加入该WSN时,为预防Sybil攻击有必要对新增节点的合法性进行检测。基于此,本发明提供一种面向WSN的Sybil攻击检测方法,属于主动式检测方法。本方法中,邻近新增节点的WSN合法节点,将在接收到这些“新邻居”节点发出的广播请求后,启动BreakSybil检测算法,即将所有新增节点列为嫌疑节点,以其节点身份ID为序,逐一检测节点合法性,防止发生Sybil攻击。本方法能够有效防范“一个节点多个身份”类型的Sybil攻击。 | ||
搜索关键词: | 一种 面向 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
下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中国人民解放军装甲兵工程学院,未经中国人民解放军装甲兵工程学院许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/patent/201610080997.5/,转载请声明来源钻瓜专利网。