一种面向WSN中Sybil攻击的检测方法
【技术领域】
[0001] 本发明设及信息安全技术领域,尤其是一种面向WSN中Sybil攻击的检测方法。
【背景技术】
[0002] 无线传感器网络(Wireless Sensor化twork,WSN)是由大量的无线传感器节点组 成的自组网络,具有可快速部署、自组织、隐蔽性强和可靠性高的特点,能在地表、地下、水 下等各种恶劣环境下收集和传递信息。WSN是构成物联网的关键技术之一,可广泛应用于农 业、工业、服务业、W及军事领域,借助传感器实时、准确和有针对性的感知环境状态与变 化,并通过无线自组织网络传输数据,实现数据的汇聚和处理,最终达成物理世界与信息网 络的连接。
[0003] 具体地,WSN借助网络节点中内置的形式多样的传感器,可W测量周边环境中的 热、红外、声纳、雷达和地震波等信号,进而感知溫度、湿度、噪声、光强度、压力、±壤成分、 移动物体的大小、速度和方向等众多物理现象,有效实现环境实时态势的多维度感知,为未 来"智慧农业"、"工业4.0"、"智慧地球"等人类梦想的实现,提供基础支撑。
[0004] 虽然WSN应用前景广阔美好,但WSN作为一种网络应用形态,与其他网络应用一样 都存在被恶意攻击的风险,而且由于WSN中节点资源(能量、计算力、存储空间等)十分有限, 使用无线通信、自组织网络和节点部署的环境恶劣(常为敌占区或被污染区),使其较之传 统网络更容易被攻击和破坏。其中,Sybil攻击,又称女巫攻击,是WSN中较为常见的一种攻 击形式。运种攻击具体表现为某一受恶意代码控制的节点仿冒出大量虚假节点标识(ID), 或通过控制信号发射功率等手段伪造该节点处于多个不同地理位置,即产生"一个节点多 个ID或多个位置"的假象,迷惑其友邻节点或中屯、基站节点,从而影响节点定位、网络路由、 信誉投票等算法的有效运行,最终破坏WSN的数据采集的效率和可靠性,大幅降低WSN的生 命周期和实际应用水平。
[0005] 近年来,WSN中的Sybi 1攻击受到了研究人员的广泛关注。国内外相关研究提出的 Sybil检测方法主要有5类:①基于地理定位的检测方法,运种方法通过准确的地理定位或 对节点间相对位置的计算和对比,防止一个节点仿冒多个ID或一个节点仿冒多个地理位 置,运类检测算法有的需要WSN全局节点地理坐标,有的要求节点不能频繁移动且节点部署 密度不能过大,否则会因定位精度影响Sybil检测效果。②基于密钥系统进行身份验证的方 法,如Boneh等提出基于身份的加密方法,Zhang等提出的节点对间的互相认证协议等,运类 算法的计算量都较大,不太适合能量有限的无线传感器网络。③通过检测节点各种资源来 检测攻击的方法,如化wsome等提出的分配信道射频测试,如果攻击者资源更强时方法将失 效。类似化wsome的方法仅适于检测外部Sybil攻击,不适于合法节点被恶意代码注入后所 产生的内部Sybil攻击,因为内部妥协节点具备合法节点所拥有的各种资源,具有较大的欺 骗性。④基于可靠的验证中屯、对节点身份进行验证,但如果验证中屯、被攻破,整个网络将失 去防护。⑤基于接收信号强度指标(RSSI)的检测方法,基本思路是通过接收信号的功率的 分析计算节点间相对距离,W判断是否在同一位置出现了多个ID,若有运种情况则发生了 sybil攻击,但运种方法只能用于各节点能量基本一致,不发生变化的场景,但WSN节点的能 量是随时间变化的且各节点的能量变化不可能是均匀一致的,运使基于RSSI的检测算法实 用效果不佳。
[0006] W上各类方法都需要在WSN合法节点中执行某些处理,同时消耗大量节点资源,尤 其是供应节点能量的电池电量,而运些资源消耗正是Sybil攻击者在破坏网络路由、信誉投 票、节点定位等功能的同时,非常希望看到的,所W W上各类方法的实际效用并不理想。
【发明内容】
[0007] 为解决上述技术问题,本发明提供一种面向WSN中Sybil攻击的检测方法,其不同 于现有技术中,是检测无线传感器网络是否遭受Sybil攻击的一种新方法,该方法采用主动 质询方式,实现WSN中Sybi 1攻击的检测和防御。
[0008] 本发明解决其技术问题所采用的技术方案是:
[0009] 一种面向WSN中Sybil攻击的检测方法,任何合法性未知的新增节点S试图接入WSN 时,需要在WSN中广播其身份,声明其身份为3_1山,且i = 1,2,…,Sn,Sn M,将WSN中新增的 所有身份标识记为集合SID,SID的模记为Sn;而将在WSN中收到身份广播信息的所有合法节 点记为集合V,V EN',.V的模记为vn; Vj为集合V中元素 ,j = 1,2,…,vm,vm > 1,则Vj将主动启 动所述检测方法,其创新之处在于,所述检测方法包括W下步骤:
[0010] 步骤1,Vj先在其内部存储器中建立一个Sybi 1检测记录表,利用所述Sybi 1检测记 录表记录Vd妾收到的所有身份信息3_1山及其对应的检测次数、同步状态和检测结果,并将 Sybil检测记录表发送至基站base,基站base对接收的所有Sybil检测记录表进行合并处 理,形成全局检测记录表;然后Vj在其当前工作周期结束后发出广播消息MsgJfello^eak;
[0011] 其中,检测次数利用内部重发计数器记数count,且检测次数初始为0即置内部重 发计数器COimt = O;同步状态为Vj与基站base之间是否为同步状态,0表示未与基站base完 成同步,1表示已于基站完成同步;检测结果为V苗刖欠到的s_idi的检测结果,0表示s_idi对 应的新增节点为合法节点,1表示s_idi对应的新增节点为Sybil恶意节点;
[0012] 步骤2.将接收到MsgJtelloBreak的节点记为接收节点,所述接收节点包括:新增 节点S、N中除¥拟外其他的合法节点和基站6曰36;接收节点比较13邑_胎11〇8'6曰4中3_1山的 ID字段值与节点自身的ID字段值是否相等,并根据比较结果进行响应:
[0013] ①若相等,则接收节点缓存MsgJtelloBreak消息,并在其当前工作周期中产生中 断,然后W最大发生功率广播消息Msg_JustBreak,之后进入休眠状态,休眠时长根据Msg_ Hel IoBreak中的RreakTime值设定,BreakTime时长结束后该接收节点自动唤醒,但不向外 发送任何数据,需要等待基站唤醒指令Msg_JustWake才能进入工作状态;
[0014]②若不相等,或者接收节点为基站base,则接收节点缓存MsgJfel IoBreak消息后, 继续其自身工作状态,不再执行所述检测方法;
[0015] 步骤3. Vj和基站base共同监听是否有Msg_JustBreak响应消息且其源节点10为3_ idi,并根据监听结果进行相应:
[0016] ①如果Vj在收到Msg_HelloBreak后的S个工作周期内都未监听到Msg_Jus1:Break 响应消息且Vj内count<3,则Vj重发MsgJfel Io化eak,并置内部重发计数器的计数加一; [0017] 如果Vj在收到Msg_Hello&reak后的S个工作周期内都未监听到Msg_Just&reak响 应消息且count含3,则Vj认为新增节点为非法节点,并将向基站base发送Msg_SybiIAlarm 消息,同时Vj将Sybil检测记录表中该3_1山对应的新增节点标记为Sybil恶意节点,基站 base将全局检测记录表中该3_1山对应的新增节点标记为Sybil恶意节点,并由基站base向 全网广播该状态,检测结束;
[0018] ②如果 Vj 或基站 base 收到 Msg_Jus1:Break 且其源节点 10为5_1〇1,但 Msg_JustBreak 消息数〉1且各MsgJust化eak中的随机数RandNum不相等,说明当前WSN中有多个不同的物 理节点均使用s_idi作为其身份标识,则收到Msg_Jus巧reak的Vj将Sybil检测记录表中该3_ id拥应的新增节点标记为Sybil恶意节点,然后Vj和基站base将启动同步过程,将基站base 的全局检测记录表中该3_1山对应的新增节点标记为Sybil恶意节点;并由基站base向全网 广播该状态,检测结束;
[0019] 或收到MsgJust化eak的基站base将全局检测记录表中该3_1山对应的新增节点 标记为Sybil恶意节点,然后Vj和基站base将启动同步过程,将Vj的Sybil检测记录表中该3_ idi对应的新增节点标记为Sybil恶意节点;并由基站base向全网广播该状态,检测结束;
[0020] ③如果Vj或基站base收到了MsgJustI^reak且其源节点10为3_1(11,但Msg_ JustBreak消息数=1,则Vj和基站base将启动同步过程,在