1.一種針對WSN中Sybil攻擊的安全時間同步方法,其特征在于,包括步驟:
(1)網(wǎng)絡(luò)中待同步節(jié)點開始接收鄰居節(jié)點廣播的時間同步消息;
(2)使用信息檢測機制區(qū)分消息中有效的時間戳;
(3)節(jié)點使用分布式同步算法更新本地時間;
(4)節(jié)點同步完成后,廣播帶有時間戳的同步消息。
2.根據(jù)權(quán)利要求1所述的一種針對WSN中Sybil攻擊的安全時間同步方法,其特征在于,步驟(1)中,網(wǎng)絡(luò)為分布式網(wǎng)絡(luò)。
3.根據(jù)權(quán)利要求1所述的一種針對WSN中Sybil攻擊的安全時間同步方法,其特征在于,步驟(1)中,每個節(jié)點均有鄰居節(jié)點。
4.根據(jù)權(quán)利要求1所述的一種針對WSN中Sybil攻擊的安全時間同步方法,其特征在于,步驟(2)中,所述信息檢測機制為利用一致性原理結(jié)合圖形理論檢測消息。
5.根據(jù)權(quán)利要求1所述的一種針對WSN中Sybil攻擊的安全時間同步方法,其特征在于,步驟(3)中,所述同步算法基于歷史消息。
6.根據(jù)權(quán)利要求1所述的一種針對WSN中Sybil攻擊的安全時間同步方法,其特征在于,步驟(1)的具體方法是:網(wǎng)絡(luò)內(nèi)的待同步節(jié)點i鄰居節(jié)點數(shù)目為n,鄰居節(jié)點j計算出自己的相位偏移αj和時鐘偏移βj,鄰居節(jié)點j發(fā)送同步消息給待同步節(jié)點i,包括:鄰居節(jié)點j相位偏移αj和時鐘偏移βj,發(fā)送消息時的時間戳待同步節(jié)點接收到鄰居節(jié)點的消息時間為其中,i≥1,j≥1,1≤j≤n。
7.根據(jù)權(quán)利要求6所述的一種針對WSN中Sybil攻擊的安全時間同步方法,其特征在于,步驟(2)的具體方法是:待同步節(jié)點i收集所有鄰居節(jié)點廣播的消息,待同步節(jié)點利用圖形理論來檢測收集到的消息是否為有效消息,防止鄰居節(jié)點遭遇Sybil攻擊偽造身份發(fā)布不正確的同步消息;主要使用動態(tài)規(guī)劃找到最大的團,具體檢測方法如下:
(21)一致性:假設(shè)待同步節(jié)點待檢測消息取任意兩條消息ma和mb,如果符合
則消息ma和消息mb是一致性的,即ma~mb;其中,a<b,mb是最近的消息,mc·ts和mc·tr分別表示發(fā)送和接收時間戳,c=a,b,ρm表示節(jié)點硬件規(guī)定的最大偏移;
(22)定理:ma~mb,mb~mk(ma表示時間a的消息,a<b<k),那么ma~mk;
(23)用圖G=(V,E)表示消息mi和消息mj關(guān)系,相當于頂點Vi∈V,e=(Vi,Vj)∈E,則Vi~Vj;如果兩條消息符合一致性,那么以兩消息為兩頂點間存在邊e,頂點在最大團內(nèi);其中,V表示消息md組成的頂點集合,E表示頂點集合V內(nèi)兩兩頂點之前的邊組成的邊集合,G表示由頂點集合V和邊集合E組成的圖,e表示頂點Vi和頂點Vj之間的邊,1≤d≤n;
(24)由定理(22)可知,可使用邊的方向代替G=(V,E);
(25)假設(shè)頂點集合Vi={V1,V2,...,Vi},為頂點的圖,ci為的最大團的內(nèi)頂點數(shù)量,i≥3;
(26)c1,c2,…ci-1已知,找出在頂點V1,V2,...,Vi-1中是否與Vi存在邊,倘若存在,進入步驟(28);否則,進入步驟(27);其中,i≥3;
(27)ci=1;用x[]記錄存在頂點序號;
(28)cp為c1~ci1中任意值,用x[]記錄在頂點序號;
(29)最大團的大小為max1≤i≤n ci,max1≤i≤n ci是有效消息數(shù),x[]記錄的是有效消息的序號,n≥2。
8.根據(jù)權(quán)利要求7所述的一種針對WSN中Sybil攻擊的安全時間同步方法,其特征在于,步驟(3)的具體方法是:
(31)待同步節(jié)點i記錄下所有鄰居節(jié)點j的有效消息,消息包括:接收到消息的序號num,鄰居節(jié)點j相位偏移αj和時鐘偏移βj,發(fā)送消息時的時間戳待同步節(jié)點接收到鄰居節(jié)點的消息時間為
(32)計算出每一個鄰居節(jié)點j的偏移系數(shù)ρij,
其中和為最近一次的發(fā)送和接收時間;
(33)待同步節(jié)點可以得到鄰居節(jié)點所有的αj,βj、ρij,
由節(jié)點的本地硬件時鐘公式τ=(1+ρ)*t+Δ,其中t是參考時鐘,ρ是時鐘漂移,Δ是時鐘偏移,
可知αij=(ρij+1)*αj,
計算出所有的αi1,αi2’…αin,取集合內(nèi)最小的αik值,即αi=αik,βi=βik。
(34)由公式Lj(t)=αjτj(t)+βj,更新節(jié)點i的邏輯時間。