一种基于信号强度的女巫攻击检测和隔离方法转让专利

申请号 : CN202310107313.6

文献号 : CN115866605B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 童飞张祯丞

申请人 : 东南大学

摘要 :

本发明公开了一种基于信号强度的女巫攻击检测和隔离方法,包括以下步骤:S1.分析计算发射功率、节点距离和信号强度之间的关系;S2.正常节点监听邻居节点,使用点估计获得对应邻居节点的RSSI分布,更新NBR_Info;S3.对于收到的DIS包,查询NBR_Info,根据RSSI分布的样本均值和标准差,判断包的合法性;S4.对于合法DIS数据包,将源地址、RSSI和到达时间存入DIS_Cache表;S5.引入锚节点,用于广播DIS包的信息来辅助正常节点定位;等,本发明利用信号强度RSSI定义两种物理地址标识,用于粗粒度定位邻居节点,与包中的源地址进行比较,能有效检测到女巫攻击并隔离恶意节点。

权利要求 :

1.一种基于信号强度的女巫攻击检测和隔离方法,其特征在于,包括以下步骤:S1.分析无线电信号模型,得到发射功率、节点距离和信号强度之间的关系;

S2.正常节点监听邻居节点,使用点估计获得对应邻居节点的RSSI分布,更新NBR_Info;

S3. 对于收到的DIS包,查询NBR_Info,根据RSSI分布的样本均值和标准差,判断包的合法性;

S4. 对于合法DIS数据包,将源地址、RSSI和到达时间存入DIS_Cache表;

S5. 引入锚节点,用于广播DIS包的信息来辅助正常节点定位;

S6. 正常节点选定RSSI最大的锚节点作为锚头节点;

S7. 正常节点在收到DIS_A后,查询DIS_Cache,先比较到达时间和源地址,判断DIS_A的时效性;

S8. 若DIS_A未过期,找到DIS_A对应的DIS信息,计算物理地址标识D;

S9. 根据D查找黑名单Black_List,若为恶意物理地址标识,则丢弃此包并利用点估计更新Black_List中此表项的均值D;

S10. 根据D查找DIS_Info,找到对应表项后比较节点ID,验证此物理地址标识的合法性;

S11. 若为合法物理节点,则响应此DIS包,并利用点估计更新DIS_Info中对应表项;若为恶意节点,则隔离此节点,将D加入黑名单Black_List;

所述S1中,使用的信号传播模型是对数正态阴影模型log‑normal shadowing model,其接收方收到包的能量强度由以下公式计算得到:,

其中, 是离发包节点距离为d的接收节点收到包的能量强度, 为发包节点的无线电发射功率, 是近地参考距离near‑earth reference distance, 是对于参考节点 的路径损失,  为路径损失指数且依赖于环境, 是高斯随机噪声;

所述S2中,当节点的无线电发射功率固定时,RSSI是和距离相关的,所以用于定位,而对于正常节点,其无线电发射功率往往是固定的,因此对于给定的一对发包节点和接收节点,其RSSI是服从高斯分布的,通过点估计,来使用样本均值和标准差来代替总体的期望和标准差,对于每个邻居节点,使用如下方法更新均值和标准差:,

其中 为样本均值, 为样本标准差,RSSI为新收到包的信号强度, 为对应邻居节点的包的数量;

所述S8中,根据DIS_A中的信息与记录在表DIS_Cache中的DIS信息,计算得到物理地址标识D:;

其中, 为锚节点收到对应DIS数据包时的信号强度, 为记录在DIS_Cache中对应DIS包的信号强度,其对应性都是通过DIS的源地址来确定,由于物理地址标识D与无线电发送功率无关,所以定位到包括恶意节点在内的所有节点,得到对应当前节点和锚节点的相对位置;

所述S9中,根据计算得到的物理地址标识D查询黑名单Black_List,判断其物理节点是否已被隔离;

所述S10中,对于未被隔离的物理节点,根据D查询表DIS_Info,判断此DIS包中的源地址与对应表项记录的源地址是否相同,因为D可以定位到每一个节点,而只有恶意节点会使用多个虚假身份广播DIS包,所以相同的物理地址标识D会对应多个源逻辑地址,当收到恶意节点广播的第二个DIS包时,其计算出相同的物理地址标识D,但两个包中的源地址不同,因而被判定为恶意节点;

所述S11中,在被判定为恶意节点后,会将此物理地址标识D加入黑名单中,并丢弃此DIS包,而对于正常邻居节点,其物理地址标识D会一直对应一个源地址,因此在收到正常DIS包时,会利用点估计更新DIS_Info中对应表项的均值 ,并根据RPL协议的涓流机制对此DIS包进行DIO包的响应。

2.如权利要求1所述的基于信号强度的女巫攻击检测和隔离方法,其特征在于,所述S3中,根据包中的源地址查询表 ,计算当前包RSSI与表中记录 的差值 ,根据高斯分布的特性,当满足如下公式时:,

判断包的合法性,此包为合法邻居节点发送的包。

3.如权利要求2所述的基于信号强度的女巫攻击检测和隔离方法,其特征在于,所述S5中,考虑到DIS本就是广播数据包,所以引入锚节点广播辅助数据包DIS_A,与正常节点完成合作,锚节点在收到DIS包时,其会记录DIS源地址的8bit ID和8bit RSSI,然后将这两个数据放入原本DIS包中的16bit保留地址,然后得到DIS_A数据包并广播。

4.如权利要求3所述的基于信号强度的女巫攻击检测和隔离方法,其特征在于,所述S6中,正常节点处于多个锚节点的通信范围内,而在计算物理地址标识时只需要与其中的一个锚节点合作,根据锚节点的信号强度RSSI,选择RSSI最大的锚节点作为锚头节点,忽略其他锚节点的数据包。

5.如权利要求4所述的基于信号强度的女巫攻击检测和隔离方法,其特征在于,所述S7中,当正常节点收到锚头节点发送的DIS_A数据包时,先根据源地址查询表DIS_Cache,根据对应DIS包和DIS_A包的到达时间,判断DIS_A是否过期。

说明书 :

一种基于信号强度的女巫攻击检测和隔离方法

技术领域

[0001] 本发明涉及基于信号强度的女巫攻击检测和隔离方法,特别涉及RPL网络中女巫攻击的检测和恶意节点隔离。

背景技术

[0002] 物联网是目前发展最迅速的网络之一,它将传统的互联网扩充为包含各种物联网设备的万物互联的物理世界。通过将各种设备、传感器通过有线和无线连接连入互联网中,人们可以通过IOT感知周围的事物,达到万物互联的目的。同时物联网(IoT)是一个广泛的技术和研究领域,其核心组成部分为低功耗和有损网络(LLN,Low power and lossy Network),LLN是一类大量资源受限的传感器形成的WSN。这些资源受限的设备由于具有较小的板载内存和较低计算能力,同时通信技术受到高丢包率、帧大小限制、低数据速率、短通信范围和动态变化的网络拓扑的影响,因此,很多常用的路由协议不适用于LLN。为了LLN的发展,RPL协议被Internet Engineering Task Force (IETF) working group提出,用于连接这些设备。
[0003] 而由于RPL缺少相应的安全机制以及LLN节点较弱的计算和存储能量,RPL网络很容易收到各种路由攻击。女巫攻击是无线传感器网络中很常见且能造成十分严重后果的恶意攻击,恶意节点通过生成的虚假身份广播DIS包,使邻居节点的涓流计时器重置,使网络充斥控制数据包,消耗节点的能量。传感器和整个网络的生命周期是无线传感网络很重要的性质,因为物理环境的限制,当传感器电池耗尽后,很难及时为传感器节点补充能量,因此节点宕机,甚至会形成网络“黑洞”。现有针对女巫攻击的大部分工作都只解决了的女巫攻击恶意行为的检测,并没有提供相应的防御措施来降低攻击对网络造成的影响。即使部分工作实现了恶意行为隔绝措施,也是在网络级别的隔绝,即识别出攻击后停止对相应包的回复,这样的隔离措施粒度不够,同时所需时间过长。利用节点位置无法发生改变的性质,部分工作通过多节点间协作精确定位到恶意节点,但当恶意节点不断变化发射功率时,这些精确定位方法就无法定位到恶意节点,而变化发射功率对恶意节点来说是很容易实现的。而部分针对变化功率的女巫攻击,通过分析能量的变化来检测女巫攻击,因此又无法检测不改变功率的女巫攻击。

发明内容

[0004] 本发明要解决的技术问题是在面向RPL协议的物联网场景中,提出了一种新颖的轻量级和有效的机制来识别恶意攻击。
[0005] 为此目的,本发明提出的技术方案为一种基于信号强度的女巫攻击检测和隔离方法,包括以下步骤:
[0006] S1.分析无线电信号模型,得到发射功率、节点距离和信号强度之间的关系;
[0007] S2.正常节点监听邻居节点,使用点估计获得对应邻居节点的RSSI分布,更新NBR_Info;
[0008] S3. 对于收到的DIS包,查询NBR_Info,根据RSSI分布的样本均值和标准差,判断包的合法性;
[0009] S4. 对于合法DIS数据包,将源地址、RSSI和到达时间存入DIS_Cache表;
[0010] S5. 引入锚节点,用于广播DIS包的信息来辅助正常节点定位;
[0011] S6. 正常节点选定RSSI最大的锚节点作为锚头节点;
[0012] S7. 正常节点在收到DIS_A后,查询DIS_Cache,先比较到达时间和源地址,判断DIS_A的时效性;
[0013] S8. 若DIS_A未过期,找到DIS_A对应的DIS信息,计算物理地址标识D;
[0014] S9. 根据D查找黑名单Black_List,若为恶意物理地址标识,则丢弃此包并利用点估计更新Black_List中此表项的均值D;
[0015] S10. 根据D查找DIS_Info,找到对应表项后比较节点ID,验证此物理地址标识的合法性;
[0016] S11. 若为合法物理节点,则响应此DIS包,并利用点估计更新DIS_Info中对应表项;若为恶意节点,则隔离此节点,将D加入黑名单Black_List。
[0017] 近一步,前述S1中,对信号传播模型进行分析,通过信号强度来对节点进行定位。由于女巫攻击节点会在广播的DIS包中改变源地址,即源IP地址和源MAC地址,所以在出现女巫攻击的网络中,只根据包中的源地址来分辨包的来源是不可行的。所以本专利通过信号强度来得到邻居节点的相对位置,定义了两个物理地址标识:RSSI和D。在发包节点功率固定时,RSSI只与两个节点间的距离相关,所以RSSI用于记录正常邻居节点的信息。而D是与发送节点功率无关的标识,所以可以定位到包括恶意节点在内的所有节点。由于我们针对的是固定节点的RPL网络,所以节点间的相对位置是固定的,因此比较物理地址标识和包中源地址的一致性,就可以分别出恶意节点。S1中,目前最广泛使用的信号传播模型是对数正态阴影模型(log‑normal shadowing model),其接收方收到包的能量强度由以下公式计算得到:
[0018] ,
[0019] 其中, 是离发包节点距离为d的接收节点收到包的能量强度, 为发包节点的无线电发射功率, 是近地参考距离(near‑earth reference distance),是对于参考节点 的路径损失, 为路径损失指数且依赖于环境, 是高斯随机噪声。
[0020] 可见,在相同场景下,信号强度RSSI是与发射功率和距离相关的,因此可以用来表示节点间的相对位置。
[0021] 近一步,前述S2中,通过前面分析的信号传播模型,只有正常的传感器节点保持固定的无线电发射功率,所以正常节点之间可以通过RSSI来进行粗粒度的定位。因此对于一个正常节点,其记录邻居节点包的RSSI。考虑到高斯噪声的存在,其固定邻居包的RSSI服从高斯分布,因而不断通过点估计更新其样本RSSI的均值和标准差,用于后续判断差值是否过大。该步骤S2中,当节点的无线电发射功率固定时,RSSI是和距离相关的,所以可以用于定位,而对于正常节点,其无线电发射功率往往是固定的,因此对于给定的一对发包节点和接收节点,其RSSI是服从高斯分布的,因此我们可以用通过点估计,来使用样本均值和标准差来代替总体的期望和标准差,因此对于每个邻居节点,我们使用如下方法更新均值和标准差:
[0022] ,
[0023] 其中 为样本均值, 为样本标准差,RSSI为新收到包的信号强度, 为对应邻居节点的包的数量。
[0024] 近一步,前述S3中,对于收到的DIS包,会根据源地址查询NBR_Info。如果是正常节点发送的DIS包,那么当前包的RSSI与NBR_Info中对应条目的 的插值会在99.7%的概率下小于3s,利用这样的特征,当差值过大时,当前节点会将此DIS包判定为恶意节点发送的虚假DIS包。即所述S3中,根据包中的源地址查询表NBR_Info,计算当前包RSSI与表中记录 的差值 ,根据高斯分布的特性,当满足如下公式时:
[0025] ,
[0026] 判断包的合法性,此包为合法邻居节点发送的包。
[0027] 近一步,前述S4中,由于使用RSSI无法定位恶意节点,并需要与邻居节点合作来得到恶意节点的位置,所以需要先记录当前DIS包的相关信息用于后续计算。若前一步被暂时判定为合法包,则会将DIS包的相关信息保存在DIS_Cache表中,用于后续与锚节点的辅助数据包进行计算。DIS_Cache表存放DIS包的源地址、到达时间以及RSSI,其中,源地址用于后续对同一个来源的包进行判定,到达时间用于接收锚节点的DIS_A包时判断时效性,RSSI用于后续计算物理地址标识D。
[0028] 近一步,前述S5中,由于需要节点间的合作,为了避免合作请求数据包和响应包过多,本方案引入锚节点广播对应合作数据包,减少包的交互。在DIS包中存在16bit的保留字段,因此锚节点在保留字段中存放8bit源ID和8bitRSSI,然后锚节点会广播修改后的DIS包(称为DIS_A数据包)。即S5中,考虑到DIS本就是广播数据包,所以引入锚节点广播辅助数据包DIS_A,与正常节点完成合作,锚节点在收到DIS包时,其会记录DIS源地址的8bitID和8bit RSSI,然后将这两个数据放入原本DIS包中的16bit保留地址,然后得到DIS_A数据包并广播。
[0029] 近一步,前述S6中,考虑到锚节点会对整个网络进行覆盖,所有部分节点可能收到多个锚节点的辅助包,所有节点会根据信号强度RSSI,选择信号最强的锚节点作为锚头节点,之后便只接收锚头节点的DIS_A包用于合作。即该步骤中,正常节点往往处于多个锚节点的通信范围内,而在计算物理地址标识时只需要与其中的一个锚节点合作,所以根据锚节点的信号强度RSSI,选择RSSI最大的锚节点作为锚头节点,忽略其他锚节点的数据包。
[0030] 近一步,前述S7中,当正常节点收到锚头节点发送的DIS_A数据包时,先根据源地址查询表DIS_Cache,根据对应DIS包和DIS_A包的到达时间,判断DIS_A是否过期。节点在收到锚头节点发送的DIS_A辅助数据包时,会提取出保留保留字段中存放的原DIS包的ID和RSSI。然后节点根据ID查询DIS_Cache表,找到该DIS_A回应的DIS包数据。找到对应条目后,比较DIS和DIS_A的到达时间,当这两者差别较大时,表示此DIS_A并不是记录中DIS的回复。这是由于恶意节点不断改变功率,锚节点和当前节点可能无法同时收到恶意节点发出的DIS包,因为锚节点回复的包和当前节点记录中的包不是同一次恶意DIS包。
[0031] 近一步,前述S8中,根据DIS_A中的信息与记录在表DIS_Cache中的DIS信息,计算得到物理地址标识D:
[0032] ;
[0033] 其中, 为锚节点收到对应DIS数据包时的信号强度, 为记录在DIS_Cache中对应DIS包的信号强度,其对应性都是通过DIS的源地址来确定,由于物理地址标识D与无线电发送功率无关,所以定位到包括恶意节点在内的所有节点,得到对应当前节点和锚节点的相对位置。
[0034] 当验证了DIS_A的时效性之后,表示锚节点和当前节点都收到了此DIS_A包信息中对应的DIS包,因而可以用于计算物理地址标识D。假设节点C发送DIS包,节点B充当锚节点用于辅助定位,根据信号传播模型,节点A和B收到C发出包的RSSI如下:
[0035] ,
[0036] 其中 和 分别表示节点C发出的包在节点A和B收到时的信号强度指数,为发包节点C的无线电发射功率, 是近地参考距离(near‑earth reference distance), 是对于参考节点 的路径损失,为路径损失指数且依赖于环境,和 是对应的高斯随机噪声, 和 表示节点A和B与发包节点C之间的距离。因而由两个节点合作得到的D为:
[0037] ,
[0038] 其中 ,表示随机噪声的差值。因而可以看到,D是与包的发送功率无关的一个变量,其只与两个节点与发包节点的距离的比值相关,因而可以用于表示节点之间的相对位置,称D为物理地址标识用于表示一个物理节点。
[0039] 近一步,前述S9中,根据物理地址标识D查询黑名单,判断此物理节点是否以及被加入黑名单且被隔离。由于物理地址标识D是恶意节点的唯一标识,因而会丢掉黑名单中所有的恶意节点的包。因此从根本上解决了女巫攻击,不会因为包中不同的虚假身份而对网络的检测产生干扰。
[0040] 近一步,前述S10中,对于未被隔离的物理节点,根据D查询表DIS_Info,判断此DIS包中的源地址与对应表项记录的源地址是否相同。因为D可以定位到每一个节点,而只有恶意节点会使用多个虚假身份广播DIS包,所以相同的物理地址标识D会对应多个源逻辑地址,当收到恶意节点广播的第二个DIS包时,其计算出相同的物理地址标识D,但两个包中的源地址不同,因而被判定为恶意节点;如不在黑名单中,证明此DIS包是正常节点发出或是恶意节点发出的第一个恶意包。因此需要分辨出这两种情况,因而根据D查询DIS_Info数据表。如果表中不存在这个物理地址标识D,则插入新条目;如果存在,则将当前包的源地址与表项中的源地址进行比较。
[0041] 最后,前述S11中,在被判定为恶意节点后,会将此物理地址标识D加入黑名单中,并丢弃此DIS包。而对于正常邻居节点,其物理地址标识D会一直对应一个源地址,因此在收到正常DIS包时,会利用点估计更新DIS_Info中对应表项的均值 ,并根据RPL协议的涓流机制对此DIS包进行DIO包的响应;如果两个源地址不同,这意味着通过一个物理地址对应了多个源逻辑地址,即同一个节点发出的包具有不同的源地址,这证明此D标识的物理节点是一个恶意节点,因而需要隔离恶意节点,将其加入黑名单中,达到对恶意节点的精确隔离。若两个源地址相同,说明这是正常的DIS数据包,节点会根据RPL的涓流协议进行响应,重置涓流计时器,然后回应DIO数据包。
[0042] 本发明具有如下有益效果:本发明通过提出一种即利用信号强度来进行粗粒度节点定位和细粒度节点隔离的方案,从根本上解决女巫攻击。本发明通过对信号传播模型进行分析,得到信号强度、发射功率、节点距离三者之间的关系,通过定义两种不同的物理地址标识来对不同情况下的邻居节点进行定位,通过RSSI对正常的邻居节点和锚节点进行定位,通过定义对同一个发包节点的两个接收方RSSI的差值D对包括恶意节点在内的所有节点进行定位。得益于物理地址标识D与发射功率无关的优秀性质,其对节点的粗粒度定位非常有效,且计算效率非常高,能够很好的定位和隔离恶意节点。利用两个物理地址标识对节点的粗粒度定位,能够以很小的计算复杂度和很少的包交互对包的来源进行分析,初步排除恶意包。利用物理地址标识D对恶意节点进行定位,实现了对恶意包来源的追踪,使节点对恶意节点的检测和隔离不受网络规模和发包速率的影响,具有较好的稳定性能。在具有女巫攻击节点的RPL网络中,本发明在能量、包的交互、包的到达率、隔离效率等性能指标上优于相关方案,能够使网络节点不存在恶意节点的标准RPL网络,具有非常优秀的性能。

附图说明

[0043] 附图1是基于信号强度的女巫攻击检测和隔离方法;
[0044] 附图2中的(a)和图2中的(b)是仿真环境中两种不同的拓扑示意图;
[0045] 附图3中的(a)和图3中的(b)是不同方案在DIO包数量的比较示意图;
[0046] 附图4中的(a)和图4中的(b)是不同方案下网络总能量消耗的对比示意图;
[0047] 附图5中的(a)和图5中的(b)是不同方案下网络节点能量消耗的累计密度函数的比较示意图;
[0048] 附图6中的(a)和图6中的(b)是不同方案下PDR的比较示意图;
[0049] 附图7中的(a)和图7中的(b)是本发明与对比方案Gini在对恶意节点隔离效率下的对比示意图。

具体实施方式

[0050] 以下结合附图,提供一个和现有的女巫攻击检测和定位方案进行比较的仿真结果作为实施例,但此实施例仅作为示例,目的在于解释本发明,不能理解为本发明的限制。
[0051] 实施例1:本发明利用RSSI得到两种物理地址标识,对节点进行轻量级的粗粒度定位,分析女巫攻击的特征,结合RPL网络的特性,提出了一种轻量级的和有效的女巫攻击检测和隔离方案。
[0052] 如图1所示,本发明实施的基于信号强度的女巫攻击检测和隔离方法包括以下步骤:
[0053] S1.分析无线电信号模型,得到发射功率、节点距离和信号强度之间的关系;
[0054] S2.正常节点监听邻居节点,使用点估计获得对应邻居节点的RSSI分布,更新NBR_Info;
[0055] S3. 对于收到的DIS包,查询NBR_Info,根据RSSI分布的样本均值和标准差,判断包的合法性;
[0056] S4. 对于合法DIS数据包,将源地址、RSSI和到达时间存入DIS_Cache表;
[0057] S5. 引入锚节点,用于广播DIS包的信息来辅助正常节点定位;
[0058] S6. 正常节点选定RSSI最大的锚节点作为锚头节点;
[0059] S7. 正常节点在收到DIS_A后,查询DIS_Cache,先比较到达时间和源地址,判断DIS_A的时效性;
[0060] S8. 若DIS_A未过期,找到DIS_A对应的DIS信息,计算物理地址标识D;
[0061] S9. 根据D查找黑名单Black_List,若为恶意物理地址标识,则丢弃此包并利用点估计更新Black_List中此表项的均值D;
[0062] S10. 根据D查找DIS_Info,找到对应表项后比较节点ID,验证此物理地址标识的合法性;
[0063] S11. 若为合法物理节点,则响应此DIS包,并利用点估计更新DIS_Info中对应表项;若为恶意节点,则隔离此节点,将D加入黑名单Black_List。
[0064] 近一步,前述S1中,对信号传播模型进行分析,通过信号强度来对节点进行定位。由于女巫攻击节点会在广播的DIS包中改变源地址,即源IP地址和源MAC地址,所以在出现女巫攻击的网络中,只根据包中的源地址来分辨包的来源是不可行的。所以本专利通过信号强度来得到邻居节点的相对位置,定义了两个物理地址标识:RSSI和D。在发包节点功率固定时,RSSI只与两个节点间的距离相关,所以RSSI用于记录正常邻居节点的信息。而D是与发送节点功率无关的标识,所以可以定位到包括恶意节点在内的所有节点。由于我们针对的是固定节点的RPL网络,所以节点间的相对位置是固定的,因此比较物理地址标识和包中源地址的一致性,就可以分别出恶意节点。S1中,目前最广泛使用的信号传播模型是对数正态阴影模型(log‑normal shadowing model),其接收方收到包的能量强度由以下公式计算得到:
[0065] ,
[0066] 其中, 是离发包节点距离为d的接收节点收到包的能量强度, 为发包节点的无线电发射功率, 是近地参考距离(near‑earth reference distance),是对于参考节点 的路径损失, 为路径损失指数且依赖于环境, 是高斯随机噪声。可见,在相同场景下,信号强度RSSI是与发射功率和距离相关的,因此可以用来表示节点间的相对位置。
[0067] 近一步,前述S2中,通过前面分析的信号传播模型,只有正常的传感器节点保持固定的无线电发射功率,所以正常节点之间可以通过RSSI来进行粗粒度的定位。因此对于一个正常节点,其记录邻居节点包的RSSI。考虑到高斯噪声的存在,其固定邻居包的RSSI服从高斯分布,因而不断通过点估计更新其样本RSSI的均值和标准差,用于后续判断差值是否过大。该步骤S2中,当节点的无线电发射功率固定时,RSSI是和距离相关的,所以可以用于定位,而对于正常节点,其无线电发射功率往往是固定的,因此对于给定的一对发包节点和接收节点,其RSSI是服从高斯分布的,因此我们可以用通过点估计,来使用样本均值和标准差来代替总体的期望和标准差,因此对于每个邻居节点,我们使用如下方法更新均值和标准差:
[0068] ,
[0069] 其中 为样本均值, 为样本标准差,RSSI为新收到包的信号强度, 为对应邻居节点的包的数量。
[0070] 近一步,前述S3中,对于收到的DIS包,会根据源地址查询NBR_Info。如果是正常节点发送的DIS包,那么当前包的RSSI与NBR_Info中对应条目的 的插值会在99.7%的概率下小于3s,利用这样的特征,当差值过大时,当前节点会将此DIS包判定为恶意节点发送的虚假DIS包。即所述S3中,根据包中的源地址查询表NBR_Info,计算当前包RSSI与表中记录 的差值 ,根据高斯分布的特性,当满足如下公式时:
[0071] ,
[0072] 判断包的合法性,此包为合法邻居节点发送的包。
[0073] 近一步,前述S4中,由于使用RSSI无法定位恶意节点,并需要与邻居节点合作来得到恶意节点的位置,所以需要先记录当前DIS包的相关信息用于后续计算。若前一步被暂时判定为合法包,则会将DIS包的相关信息保存在DIS_Cache表中,用于后续与锚节点的辅助数据包进行计算。DIS_Cache表存放DIS包的源地址、到达时间以及RSSI,其中,源地址用于后续对同一个来源的包进行判定,到达时间用于接收锚节点的DIS_A包时判断时效性,RSSI用于后续计算物理地址标识D。
[0074] 近一步,前述S5中,由于需要节点间的合作,为了避免合作请求数据包和响应包过多,本方案引入锚节点广播对应合作数据包,减少包的交互。在DIS包中存在16bit的保留字段,因此锚节点在保留字段中存放8bit源ID和8bitRSSI,然后锚节点会广播修改后的DIS包(称为DIS_A数据包)。即S5中,考虑到DIS本就是广播数据包,所以引入锚节点广播辅助数据包DIS_A,与正常节点完成合作,锚节点在收到DIS包时,其会记录DIS源地址的8bitID和8bit RSSI,然后将这两个数据放入原本DIS包中的16bit保留地址,然后得到DIS_A数据包并广播。
[0075] 近一步,前述S6中,考虑到锚节点会对整个网络进行覆盖,所有部分节点可能收到多个锚节点的辅助包,所有节点会根据信号强度RSSI,选择信号最强的锚节点作为锚头节点,之后便只接收锚头节点的DIS_A包用于合作。即该步骤中,正常节点往往处于多个锚节点的通信范围内,而在计算物理地址标识时只需要与其中的一个锚节点合作,所以根据锚节点的信号强度RSSI,选择RSSI最大的锚节点作为锚头节点,忽略其他锚节点的数据包。
[0076] 近一步,前述S7中,当正常节点收到锚头节点发送的DIS_A数据包时,先根据源地址查询表DIS_Cache,根据对应DIS包和DIS_A包的到达时间,判断DIS_A是否过期。节点在收到锚头节点发送的DIS_A辅助数据包时,会提取出保留保留字段中存放的原DIS包的ID和RSSI。然后节点根据ID查询DIS_Cache表,找到该DIS_A回应的DIS包数据。找到对应条目后,比较DIS和DIS_A的到达时间,当这两者差别较大时,表示此DIS_A并不是记录中DIS的回复。这是由于恶意节点不断改变功率,锚节点和当前节点可能无法同时收到恶意节点发出的DIS包,因为锚节点回复的包和当前节点记录中的包不是同一次恶意DIS包。
[0077] 近一步,前述S8中,根据DIS_A中的信息与记录在表DIS_Cache中的DIS信息,计算得到物理地址标识D:
[0078] ;
[0079] 其中, 为锚节点收到对应DIS数据包时的信号强度, 为记录在DIS_Cache中对应DIS包的信号强度,其对应性都是通过DIS的源地址来确定,由于物理地址标识D与无线电发送功率无关,所以定位到包括恶意节点在内的所有节点,得到对应当前节点和锚节点的相对位置。
[0080] 当验证了DIS_A的时效性之后,表示锚节点和当前节点都收到了此DIS_A包信息中对应的DIS包,因而可以用于计算物理地址标识D。假设节点C发送DIS包,节点B充当锚节点用于辅助定位,根据信号传播模型,节点A和B收到C发出包的RSSI如下:
[0081] ,
[0082] 其中 和 分别表示节点C发出的包在节点A和B收到时的信号强度指数,为发包节点C的无线电发射功率, 是近地参考距离(near‑earth reference distance), 是对于参考节点 的路径损失,为路径损失指数且依赖于环境,和 是对应的高斯随机噪声, 和 表示节点A和B与发包节点C之间的距离。因而由两个节点合作得到的D为:
[0083] ,
[0084] 其中 ,表示随机噪声的差值。因而可以看到,D是与包的发送功率无关的一个变量,其只与两个节点与发包节点的距离的比值相关,因而可以用于表示节点之间的相对位置,称D为物理地址标识用于表示一个物理节点。
[0085] 近一步,前述S9中,根据物理地址标识D查询黑名单,判断此物理节点是否以及被加入黑名单且被隔离。由于物理地址标识D是恶意节点的唯一标识,因而会丢掉黑名单中所有的恶意节点的包。因此从根本上解决了女巫攻击,不会因为包中不同的虚假身份而对网络的检测产生干扰。
[0086] 近一步,前述S10中,对于未被隔离的物理节点,根据D查询表DIS_Info,判断此DIS包中的源地址与对应表项记录的源地址是否相同。因为D可以定位到每一个节点,而只有恶意节点会使用多个虚假身份广播DIS包,所以相同的物理地址标识D会对应多个源逻辑地址,当收到恶意节点广播的第二个DIS包时,其计算出相同的物理地址标识D,但两个包中的源地址不同,因而被判定为恶意节点;如不在黑名单中,证明此DIS包是正常节点发出或是恶意节点发出的第一个恶意包。因此需要分辨出这两种情况,因而根据D查询DIS_Info数据表。如果表中不存在这个物理地址标识D,则插入新条目;如果存在,则将当前包的源地址与表项中的源地址进行比较。
[0087] 最后,前述S11中,在被判定为恶意节点后,会将此物理地址标识D加入黑名单中,并丢弃此DIS包。而对于正常邻居节点,其物理地址标识D会一直对应一个源地址,因此在收到正常DIS包时,会利用点估计更新DIS_Info中对应表项的均值 ,并根据RPL协议的涓流机制对此DIS包进行DIO包的响应;如果两个源地址不同,这意味着通过一个物理地址对应了多个源逻辑地址,即同一个节点发出的包具有不同的源地址,这证明此D标识的物理节点是一个恶意节点,因而需要隔离恶意节点,将其加入黑名单中,达到对恶意节点的精确隔离。若两个源地址相同,说明这是正常的DIS数据包,节点会根据RPL的涓流协议进行响应,重置涓流计时器,然后回应DIO数据包。
[0088] 以下为仿真实验结果:
[0089] 仿真实验参数配置如下:
[0090]  (1)仿真平台:Contiki 3.0中的Cooja仿真平台;
[0091] (2)仿真时间:1小时;
[0092] (3)正常节点UDP发包间隔:5s;
[0093] (4)恶意节点广播DIS间隔:2s;
[0094] (5)本发明使用两种不同的网络拓扑,如图2中的(a)和图2中的(b)所示:
[0095] a)Topo1
[0096] i. 部署范围:1000m*1000m
[0097] ii. 普通节点数量:30
[0098] iii. 锚节点数量:4
[0099] b)Topo2
[0100] iv. 部署范围:1500m*1500m
[0101] v. 普通节点数量:50
[0102] vi. 锚节点数量:9
[0103] (6)恶意节点占比:10%;
[0104] 对比方案(本发明后续称为CLFI):
[0105] 1.标准RPL网络(后续称为RPL);
[0106] 2.存在恶意节点的标准RPL网络(后续称为RPL‑Sybil);
[0107] 3.Pu C等人2020年在《IEEE Internet of Things Journal》上发表的“Sybil attack in RPL‑based Internet of Things: analysis and defenses”,该方案部署在有恶意节点的网络中(后续称为Gini)。
[0108] 图3中的(a)、图3中的(b)显示了不同方案在上诉仿真环境下DIO包的数量。在女巫攻击中,恶意节点通过使用虚假身份广播DIS包,从而造成网络涓流机制生效,节点立即回复DIO包,同时由于涓流计时器重置为最小间隔,在短时间内,节点都要广播大量的DIO包。因此女巫攻击对网络最直接的影响就是产生大量的DIO包,而网络中充斥着大量控制数据包进而影响网络中的其他性能指标。所以我们考虑比较整个仿真过程中网络中DIO数据包的总数,通过此性能指标可以直观的感受各种方案在女巫攻击的表现。从图3中的(a)、图3中的(b)中可以看到,如果不对女巫攻击采取防御措施,网络中将会充斥大量的控制数据包,将会间接影响节点的寿命,进而影响整个网络的生命周期,同时还会影响UDP数据包的转发。可以看到本发明方案CLFI和对比方案Gini都能显著降低女巫攻击网络的影响,而由于Gini在检测女巫攻击时,是基于时间窗口来进行检测的,虽然判定为女巫攻击时会减缓DIO的回复,但是需要足够多的窗口数量才会隔离女巫攻击,所以在完全隔离之前,依旧会回复较多的DIO数据包。而我们提出的CLFI方案,在检测出女巫攻击的同时就会完成对女巫攻击的隔离,防止攻击节点对网络的进一步影响。
[0109] 图4中的(a)、图4中的(b)和图5中的(a)、图5中的(b)显示了网络能量消耗这一性能指标的对比,女巫攻击通过广播DIS使邻居节点涓流机制重置,从而消耗节点能量,而节点能量是WSN中最重要的性质,其直接决定了网络的生命周期。其中图4中的(a)、图4中的(b)表现的是网络能量的总体消耗,可以看到,本发明的CLFI方案以及对比的Gini方案都能很大程度的缓解女巫攻击的影响。同时本发明CLFI相比Gini,消耗了更少的能量,更接近不存在攻击的RPL网络,能够显著降低女巫攻击的影响,延长网络的生命周期。图5表现的是不同方案下单个节点能量消耗的累计分布函数,根据CDF也可以看到每个方案中单个节点消耗的最多能量,即每条曲线的最后,可以看到两个方案效果都挺好,但本发明方案中,单个节点消耗也非常接近不存攻击的网络,说明本发明的检测和隔离的效果都非常好。
[0110] 图6中的(a)、图6中的(b)表现的是不同方案在sink节点处的PDR(包的到达率),PDR表示每个sender发出的包在sink处的到达率,因此这是衡量RPL网络性能最重要的指标之一,其直接决定着sender收集到的数据能否安全通过sink节点被人们获取。可以看到,当不采取任何防御措施时,节点存在一定的丢包行为,当采取了相应的防御策略后,PDR得到了很大的改善。Gini和CLFI的PDR达到了提升,而得益于即使的检测和隔离,本发明拥有更好的性能表现。
[0111] 图7中的(a)、图7中的(b)对比的本发明CLFI和对比方案Gini在隔离效率上的区别。从隔离方式来说,Gini是基于整个网络的隔离,当被检测为存在女巫攻的窗口到达相应阈值后,会对整个网络进行隔离,即不响应任何DIS包,同时广播隔离包通知网络中的其他节点。可以看出,在相邻的很短时间内所有节点完成隔离。从隔离时间上来说,Gini的时间粒度为窗口时间,所有实际上完成隔离往往是隔离窗口的倍数,隔离延迟时间较长。同时,Gini的隔离粒度太大,对整个网络的DIS包都不响应,若出现新的节点或者断联的节点寻求加入网络,将不会得到及时响应。本发明CLFI方案是基于节点粒度的攻击隔离,所以正常节点需要对每一个通信范围内的恶意节点进行隔离,所以整体上隔离的次数变多。但是从图中可以看到,在仿真开始后的很短的时间内我们的CLFI就开始了大批量的隔离,同时也说明对节点影响较大的恶意节点能在很短的时间内被成功隔离,使恶意节点对网络的影响有限。
[0112] 综上所述,本发明基于信号强度的女巫攻击检测和隔离方法,通过轻量级的粗粒度定位和节点级别的恶意节点隔离能够非常有效的检测和隔离女巫攻击,在性能上能够接近不存在攻击的标准RPL网络,具有高可用性。
[0113] 需要说明的是,流程图中或在此以其他方式描述的任何过程或方法描述可以被理解为,表示包括一个或更多个用于实现特定逻辑功能或过程的步骤的可执行指令的代码的模块、片段或部分,并且本发明的优选实施方式的范围包括另外的实现,其中可以不按所示出或讨论的顺序,包括根据所涉及的功能按基本相同的方式或按相反的顺序,来执行功能,这应被专利的实施例所属技术领域的技术人员所理解。
[0114] 在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等描述意指结合该实施例或示例描述的具体特征、结构、材料或特点包括于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或特点可以在任何的一个或多个实施例或示例中以合适的方式结合。
[0115] 尽管上面已经示出和描述了本发明的实施例,可以理解的是,上述实施例是示例性的,不能理解为对发明的限制,本领域的普通技术人员在不脱离本发明的原理和宗旨的情况下在本发明的范围内可以对上述实施例进行变化、修改、替换和变型。