本发明属于无线传感器网络技术领域,涉及一种安全时间同步方法,具体涉及一种针对WSN中Sybil攻击的安全时间同步方法。
背景技术:
近年来,随着无线传感器网络(Wireless Sensor Networks,WSN)越来越广泛的应用,许多针对无线传感器网络的时间同步协议得到了广泛的研究,如RBS,TPSN等这些时间同步协议可以适用于各种不同的无线传感器网络。时间同步协议是许多无线传感器网络服务的基础,因此只要破坏时间同步过程就能对整个无线传感器网络发起毁灭性的打击。
Sybil攻击是传感器网络最常见的攻击类型之一,其中节点非法地声称多个身份。针对Sybil攻击,现有的安全时间同步协议:攻击容忍时间同步协议(ASTP)(Hu X,Park T,Shin K G.Attack-Tolerant Time-Synchronization in Wireless Sensor Networks[C]//INFOCOM 2008.the Conference on Computer Communications.IEEE,2008:41-45)和基于安全最大共识的时间同步协议(SMTS)(He J,Chen J,Cheng P,et al.Secure Time Synchronization in Wireless Sensor Networks:A Maximum Consensus-Based Approach[J].IEEE Transactions on Parallel&Distributed Systems,2014,25(4):1055-1065)可以检测恶意节点,并丢弃从他们发送的时间戳。然而,单个节点可以在Sybil攻击下控制大部分ID空间,从而导致ASTP和SMTS检测到太多的恶意节点。因此,许多传感器节点不能同步它们的逻辑时钟,因为它们不能在它们的邻居中找到合法的节点。也就是说,当WSN网络中某个或者一些节点遭受到Sybil攻击时,被攻击的节点伪造身份向待同步节点发布带有不同标识的不正确时间戳,从而影响节点的时间同步,进而导致全网络节点时间同步失效。
技术实现要素:
有鉴于此,本发明的目的在于提供一种针对WSN中Sybil攻击的安全时间同步方法。
为达到上述目的,本发明提供如下技术方案:
一种针对WSN中Sybil攻击的安全时间同步方法,包括步骤:
(1)网络中待同步节点开始接收邻居节点广播的时间同步消息;
(2)使用信息检测机制区分消息中有效的时间戳;
(3)节点使用分布式同步算法更新本地时间;
(4)节点同步完成后,广播带有时间戳的同步消息。
步骤(1)中,网络为分布式网络,即网络内没有参考节点也没有根节点。
步骤(1)中,每个节点均有邻居节点。
步骤(2)中,所述信息检测机制为利用一致性原理结合图形理论检测消息。
步骤(3)中,所述同步算法基于历史消息。
作为优选技术方案之一,步骤(1)的具体方法是:网络内的待同步节点i邻居节点数目为n,邻居节点j计算出自己的相位偏移αj和时钟偏移βj,邻居节点j发送同步消息给待同步节点i,包括:邻居节点j相位偏移αj和时钟偏移βj,发送消息时的时间戳待同步节点接收到邻居节点的消息时间为其中,i≥1,j≥1,1≤j≤n。
作为优选技术方案之一,步骤(2)的具体方法是:待同步节点i收集所有邻居节点广播的消息,待同步节点利用图形理论来检测收集到的消息是否为有效消息,防止邻居节点遭遇Sybil攻击伪造身份发布不正确的同步消息;主要使用动态规划找到最大的团,具体检测方法如下:
(21)一致性:假设待同步节点待检测消息取任意两条消息ma和mb,如果符合
则消息ma和消息mb是一致性的,即ma~mb;其中,a<b,mb是最近的消息,mc.ts和mc.tr分别表示发送和接收时间戳,c=a,b,ρm表示节点硬件规定的最大偏移;
(22)定理:ma~mb,mb~mk(ma表示时间a的消息,a<b<k),那么ma~mk;
(23)用图G=(V,E)表示消息mi和消息mj关系,相当于顶点Vi∈V,e=(Vi,Vj)∈E,则Vi~Vj;如果两条消息符合一致性,那么以两消息为两顶点间存在边e,顶点在最大团内;其中,V表示消息md组成的顶点集合,E表示顶点集合V内两两顶点之前的边组成的边集合,G表示由顶点集合V和边集合E组成的图,e表示顶点Vi和顶点Vj之间的边,1≤d≤n;
(24)由定理(22)可知,可使用边的方向代替G=(V,E);
(25)假设顶点集合Vi={V1,V2,...,Vi},为顶点的图,ci为的最大团的内顶点数量,i≥3;
(26)c1,c2,…ci-1已知,找出在顶点V1,V2,...,Vi-1中是否与Vi存在边,倘若存在,进入步骤(28);否则,进入步骤(27);其中,i≥3;
(27)ci=1;用记录存在顶点序号;
(28)cp为c1~ci-1中任意值,用x[]记录存在顶点序号;
(29)最大团的大小为max1≤i≤nci,max1≤i≤nci是有效消息总数,x[]记录的是有效消息的序号,n≥2。
作为优选技术方案之一,步骤(3)的具体方法是:
(31)待同步节点i记录下所有邻居节点j的有效消息,消息包括:接收到消息的序号num,邻居节点j相位偏移αj和时钟偏移βj,发送消息时的时间戳待同步节点接收到邻居节点的消息时间为
(32)计算出每一个邻居节点j的偏移系数ρij,
其中和为最近一次的发送和接收时间;
(33)待同步节点可以得到邻居节点所有的αj、βj、ρij,
由节点的本地硬件时钟公式τ=(1+ρ)*t+Δ,其中t是参考时钟,ρ是时钟漂移,Δ是时钟偏移,
可知αij=(ρij+1)*αj,
计算出所有的αi1,αi2,…αin,取集合内最小的αik值,即αi=αik,βi=βik。
(34)由公式Lj(t)=αjτj(t)+βj,更新节点i的逻辑时间。
本发明的有益效果在于:
本发明的WSN网络采用分布式网络,节点有足够数量的邻居节点来加速时间同步的过程,每个节点依靠广播服务向其相邻的节点发送带有时间戳的消息。节点接受邻居节点广播的时间消息,节点采用图形理论中最大团理论方法来区分邻居节点发布的消息中有效的时间戳,防止接收到Sybil节点伪造身份广播的带有不正确时间戳的消息给待同步节点,当节点接收完邻居节点的有效时间戳消息,采用基于分布式同步算法更新节点的本地时间。
现有的针对Sybil攻击方法是检测节点是否遭受攻击,如果检测到节点遭受到攻击则丢弃该节点。由于遭受攻击的节点会影响其他节点同步,从而欺骗网络将正常节点判断为恶意节点,导致很多节点不能在它们的邻域中找到合法的节点,因此许多正常传感器节点不能同步它们的逻辑时钟,而本发明的独特之处在于采用图形理论在消息级别而不是节点级别的执行异常检测,用来区分有效时间戳和无效时间戳,进而实现全网络节点的时间同步。能够有效预防攻击节点的欺骗行为。
附图说明
为了使本发明的目的、技术方案和有益效果更加清楚,本发明提供如下附图进行说明:
图1为本发明的整体框架图;
图2为本发明的细化框架图。
具体实施方式
下面将结合附图,对本发明的优选实施例进行详细的描述。
如图1和图2所示,一种针对WSN中Sybil攻击的安全时间同步方法,包括步骤:
(1)网络中待同步节点开始接收邻居节点广播的时间同步消息;
其中,网络为分布式网络,即网络内没有参考节点也没有根节点,每个节点均有邻居节点。具体方法是:网络内的待同步节点i邻居节点数目为n,邻居节点j计算出自己的相位偏移αj和时钟偏移βj,邻居节点j发送同步消息给待同步节点i,包括:邻居节点j相位偏移αj和时钟偏移βj,发送消息时的时间戳待同步节点接收到邻居节点的消息时间为其中,i≥1,j≥1,1≤j≤n。
(2)使用信息检测机制区分消息中有效的时间戳;
具体方法是:待同步节点i收集所有邻居节点广播的消息,待同步节点利用图形理论来检测收集到的消息是否为有效消息,防止邻居节点遭遇Sybil攻击伪造身份发布不正确的同步消息;主要使用动态规划找到最大的团,具体检测方法如下:
(21)一致性:假设待同步节点待检测消息取任意两条消息ma和mb,如果符合
则消息ma和消息mb是一致性的,即ma~mb;其中,a<b,mb是最近的消息,mc.ts和mc.tr分别表示发送和接收时间戳,c=a,b,ρm表示节点硬件规定的最大偏移;
(22)定理:ma~mb,mb~mk(ma表示时间a的消息,a<b<k),那么ma~mk;
(23)用图G=(V,E)表示消息mi和消息mj关系,相当于顶点Vi∈V,e=(Vi,Vj)∈E,则Vi~Vj;如果两条消息符合一致性,那么以两消息为两顶点间存在边e,顶点在最大团内;其中,V表示消息md组成的顶点集合,E表示顶点集合V内两两顶点之前的边组成的边集合,G表示由顶点集合V和边集合E组成的图,e表示顶点Vi和顶点Vj之间的边,1≤d≤n;
(24)由定理(22)可知,可使用边的方向代替G=(V,E);
(25)假设顶点集合Vi={V1,V2,...,Vi},为顶点的图,ci为的最大团的内顶点数量,i≥3;
(26)c1,c2,…ci-1已知,找出在顶点V1,V2,...,Vi-1中是否与Vi存在边,倘若存在,进入步骤(28);否则,进入步骤(27);其中,i≥3;
(27)Ci=1;用x[]记录存在顶点序号;
(28)cp为c1~ci-1中在意值,用记录存在顶点序号;
(29)最大团的大小为max1≤i≤nci,max1≤i≤nci是有效消息数,x[]记录的是有效消息的序号,n≥2。
(3)节点使用分布式同步算法更新本地时间;
具体方法是:
(31)待同步节点i记录下所有邻居节点j的有效消息,消息包括:接收到消息的序号num,邻居节点j相位偏移αj和时钟偏移βj,发送消息时的时间戳待同步节点接收到邻居节点的消息时间为
(32)计算出每一个邻居节点j的偏移系数ρij,
其中和为最近一次的发送和接收时间;
(33)待同步节点可以得到邻居节点所有的αj、βj、ρij,
由节点的本地硬件时钟公式τ=(1+ρ)*t+Δ,其中t是参考时钟,ρ是时钟漂移,Δ是时钟偏移,
可知αij=(ρij+1)*αj,
计算出所有的αi1,αi2,…αin,取集合内最小的αik值,即αi=αik,βi=βik。
(34)由公式Lj(t)=αjτj(t)+βj,更新节点i的逻辑时间。
(4)节点同步完成后,广播带有时间戳的同步消息。
最后说明的是,以上优选实施例仅用以说明本发明的技术方案而非限制,尽管通过上述优选实施例已经对本发明进行了详细的描述,但本领域技术人员应当理解,可以在形式上和细节上对其作出各种各样的改变,而不偏离本发明权利要求书所限定的范围。