楊 朔,李長庚
(中南大學(xué) 物理與電子學(xué)院,湖南 長沙 410083)
時間同步是無線傳感器網(wǎng)絡(luò)諸多應(yīng)用的基礎(chǔ),目前廣泛用于傳統(tǒng)網(wǎng)絡(luò)的同步技術(shù)主要有GPS和NTP[1],但因二者無法適用于動態(tài)拓?fù)?、能量有限、精度要求高、無網(wǎng)絡(luò)基礎(chǔ)設(shè)施且只能使用輕量協(xié)議的無線傳感器網(wǎng)絡(luò),學(xué)者們先后提出了無線傳感器網(wǎng)絡(luò)的參考廣播同步 (reference-broadcast synchronization,RBS) 協(xié)議[2],其時間同步的精度相對偏低,多跳階段,RBS一次同步涉及3方節(jié)點(diǎn),頻繁的再同步增加了通信和能量開銷。傳感器網(wǎng)絡(luò)時間同步協(xié)議(timing-sync protocol for sensor networks, TPSN)[3],具有較好的可擴(kuò)展性,但由于全網(wǎng)參考時間由根節(jié)點(diǎn)確定,一旦根節(jié)點(diǎn)失效,就要重新選取根節(jié)點(diǎn)進(jìn)行同步,魯棒性不強(qiáng),再次同步還需大量計算和能量開銷。無線傳感器網(wǎng)絡(luò)的拓?fù)錁O易變化,同步協(xié)議必須支持網(wǎng)絡(luò)動態(tài)變化的功能,隨著無線傳感器網(wǎng)絡(luò)的發(fā)展,網(wǎng)絡(luò)的應(yīng)用大多是多跳通信,因此,同步協(xié)議還必須滿足多跳網(wǎng)絡(luò)的要求。泛洪時間同步協(xié)議(flooding time synchronization protocol, FTSP)[4],綜合考慮了時間同步的精度、能量、動態(tài)拓?fù)洹⒖蓴U(kuò)展性和魯棒性、穩(wěn)定性等多方面的要求,是最有效的時間同步協(xié)議。
然而,F(xiàn)TSP極易受到來自網(wǎng)絡(luò)內(nèi)部的惡意攻擊,這些攻擊所造成的影響已不僅僅局限于同步精度了,它們完全可以使待同步的節(jié)點(diǎn)時鐘同步到錯誤的時間上去,從而導(dǎo)致全網(wǎng)同步失敗。因此,本文將基于FTSP提出一種安全算法,抵御來自網(wǎng)絡(luò)內(nèi)部的惡意攻擊,同時對算法進(jìn)行改進(jìn),提高算法的同步精度,減少計算開銷,并通過仿真驗(yàn)證安全算法的可靠性和有效性。
FTSP采用一元線性回歸方法估計節(jié)點(diǎn)本地時鐘與標(biāo)準(zhǔn)時鐘的時間偏移,并在每秒末尾對節(jié)點(diǎn)本地時間進(jìn)行補(bǔ)償,提高時鐘同步的精度。式(1)為節(jié)點(diǎn)本地時間與標(biāo)準(zhǔn)時間表達(dá)式
T=at+b,a=1+d,
(1)
式中t為節(jié)點(diǎn)本地時間,T為標(biāo)準(zhǔn)時間。時間偏移的程度通常用漂移率[5]來描述,定義時鐘漂移率d為2個時鐘時間差的速率。穩(wěn)定情況下,傳感器節(jié)點(diǎn)有著相對穩(wěn)定的時鐘漂移率,且ρ≤d≤ρ,由式(1)有
(2)
FTSP設(shè)計比較簡單,算法存在很多安全漏洞,容易遭受到來自網(wǎng)絡(luò)內(nèi)部的惡意攻擊。對此,學(xué)者們做了很多分析討論[5,6],本文將對FTSP中可能遭受到的基于發(fā)送時間標(biāo)的攻擊設(shè)計一種安全算法,又因線性回歸方法容易受到異常數(shù)據(jù)點(diǎn)的影響,導(dǎo)致計算出錯誤的時間偏差。因此,本文也將改進(jìn)計算時鐘漂移率的公式,對其進(jìn)行加權(quán)處理,提高同步精度,減小惡意攻擊對時間同步的影響。
當(dāng)傳感器網(wǎng)絡(luò)中的節(jié)點(diǎn)處于安全的穩(wěn)定的同步狀態(tài)下,各節(jié)點(diǎn)的時鐘漂移率是一個穩(wěn)定的值。Huang D J指出網(wǎng)絡(luò)中每個傳感器節(jié)點(diǎn)都有一個穩(wěn)定的,且區(qū)別于其他節(jié)點(diǎn)的時鐘漂移率[7],并將時鐘漂移率作為傳感器網(wǎng)絡(luò)中節(jié)點(diǎn)的唯一標(biāo)識ID[8],實(shí)驗(yàn)利用FTSP作為測試工具,實(shí)驗(yàn)結(jié)果顯示:對于同一個節(jié)點(diǎn)在每個同步周期測量得到的時鐘漂移率之間的偏差非常小,一般不大于10-6。
進(jìn)一步研究發(fā)現(xiàn),當(dāng)標(biāo)準(zhǔn)時間(即發(fā)送時間標(biāo))Ti被惡意篡改,漂移率d將會產(chǎn)生明顯偏差。因此,本文在FTSP中加入異常時鐘漂移率檢測器和惡意節(jié)點(diǎn)ID號過濾器,利用每個傳感器節(jié)點(diǎn)在安全狀態(tài)下具有唯一穩(wěn)定的區(qū)別于其他傳感器節(jié)點(diǎn)的時鐘漂移率來檢測接收到的受到惡意攻擊的發(fā)送時間標(biāo),同時將該錯誤同步時間信息丟棄,重新接收其他鄰居節(jié)點(diǎn)發(fā)送的同步信息,若該節(jié)點(diǎn)連續(xù)2次發(fā)送錯誤的時間標(biāo),則將該惡意節(jié)點(diǎn)ID號過濾掉,加入到黑名單中,提示其他鄰居節(jié)點(diǎn)拒收來自該惡意節(jié)點(diǎn)的同步信息,減少計算開銷,提高原算法的安全性。為實(shí)現(xiàn)上述功能,本文需要對FTSP原始同步信息的數(shù)據(jù)包格式進(jìn)行修改,在同步信息中添加發(fā)送節(jié)點(diǎn)ID和黑名單,如圖1所示。
圖1 新的同步數(shù)據(jù)包
各節(jié)點(diǎn)時鐘同步了一定周期后,時鐘漂移率基本趨于穩(wěn)定,且同步周期越多,精度和穩(wěn)定性越高。當(dāng)漂移率趨于穩(wěn)定時,在一定周期內(nèi)建立一個記錄各節(jié)點(diǎn)時鐘漂移率平均值的存儲表M,如表1所示。根據(jù)仿真結(jié)果確定漂移率偏差范圍±θ,則時鐘偏移率的閾值范圍為Mn-θ≤dthreshold≤Mn+θ,此后每個周期計算得出的dn都要進(jìn)入存儲表M中進(jìn)行判定,若當(dāng)前周期時鐘漂移率在閾值范圍內(nèi),則接收此次同步信息并進(jìn)行數(shù)據(jù)更新;否則,丟棄這個數(shù)據(jù),重新接收其他鄰居節(jié)點(diǎn)的同步信息。
表1 節(jié)點(diǎn)時鐘漂移率平均值存儲表M
為進(jìn)一步提高FTSP的同步精度,減小FTSP受到攻擊后對時間同步的影響,本文對計算時鐘漂移率d公式做如下改進(jìn)
d′(m)=
(3)
其中, 0≤α≤1,0≤α+β≤1。式(3)表示給當(dāng)前周期m和前2個周期m-1,m-2求得的漂移率d分配不同的權(quán)重。假設(shè)當(dāng)前周期m受到發(fā)送時間標(biāo)的惡意攻擊,d(m)出現(xiàn)偏差,則當(dāng)前周期即第m周期權(quán)重(1-α-β)應(yīng)最小,通過改進(jìn)后式(3)的計算,漂移率d受到的影響將會被有效抑制。
本文模擬無線傳感器網(wǎng)絡(luò)時間同步環(huán)境,在100 m×100 m區(qū)域內(nèi),隨機(jī)布置100個傳感器節(jié)點(diǎn),如圖2所示。
圖2 節(jié)點(diǎn)分布圖
圓圈區(qū)域?yàn)楦?jié)點(diǎn)ID0的通信半徑。其中節(jié)點(diǎn)15,21,30,45,90等在根節(jié)點(diǎn)通信范圍內(nèi),為單跳通信節(jié)點(diǎn);節(jié)點(diǎn)77,83等在根節(jié)點(diǎn)通信范圍外,為多跳[9,10]通信節(jié)點(diǎn)。節(jié)點(diǎn)21,60等為節(jié)點(diǎn)77,83等節(jié)點(diǎn)的鄰居節(jié)點(diǎn)。
首先對原始FTSP進(jìn)行仿真,同步100個周期,圖3為其中8個節(jié)點(diǎn)的時鐘漂移率,可以清晰地看到:節(jié)點(diǎn)時鐘漂移率互不重疊且各自趨向一個穩(wěn)定的值。因此,可將穩(wěn)定且相異的時鐘漂移率作為各節(jié)點(diǎn)的身份標(biāo)識。
圖3 穩(wěn)定環(huán)境下各節(jié)點(diǎn)時鐘漂移率分布
由圖2知,多跳通信節(jié)點(diǎn)77,83均為節(jié)點(diǎn)60,21的鄰居節(jié)點(diǎn),它們首先接收距離較近的節(jié)點(diǎn)60發(fā)送的同步數(shù)據(jù)包,由圖3可以看出:在安全穩(wěn)定的情況下,節(jié)點(diǎn)77和83的時鐘漂移率分別趨向穩(wěn)定的值,對FTSP算法中節(jié)點(diǎn)60第95~100周期的發(fā)送時間標(biāo)T95-100進(jìn)行篡改,令T95-100=T95-100+100μs,則節(jié)點(diǎn)77,83接收到該同步數(shù)據(jù)包后的時鐘漂移率如圖4圖(a)所示。
從圖3可見,前10個周期受初始化影響節(jié)點(diǎn)時鐘漂移率波動較大,因此,本文選取第11周期到20周期的數(shù)據(jù)構(gòu)建節(jié)點(diǎn)時鐘漂移率平均值存儲表M,如表2所示,根據(jù)仿真結(jié)果本文確定θ取10-8。
表2 節(jié)點(diǎn)時鐘漂移率平均值存儲表M
從圖4(a)圖可以看出:當(dāng)節(jié)點(diǎn)60的發(fā)送時間標(biāo)被惡意篡改,節(jié)點(diǎn)77和83原本趨于穩(wěn)定的時鐘漂移率發(fā)生驟變,這將導(dǎo)致時鐘偏移的計算出現(xiàn)偏差,時間補(bǔ)償后節(jié)點(diǎn)77,83的本地時間與標(biāo)準(zhǔn)時間的誤差越來越大,使時間同步失效。
對添加了異常漂移率檢測器和惡意節(jié)點(diǎn)ID過濾器的安全算法進(jìn)行仿真驗(yàn)證,同樣對節(jié)點(diǎn)60第95~100周期的發(fā)送時間標(biāo)T95-100進(jìn)行篡改,令T95-100=T95-100+100 μs,仿真結(jié)果如圖4(b)圖所示。
圖4 FTSP算法和安全算法受到發(fā)送時間標(biāo)攻擊
安全算法中2個節(jié)點(diǎn)通過異常時鐘漂移率檢測器檢測出異常,沒有接收節(jié)點(diǎn)60的同步信息,重新選擇接收了節(jié)點(diǎn)21的同步信息,因?yàn)檫B續(xù)5個周期計算出的時鐘漂移率都異常,因此,將ID60加入到了黑名單中,提示其他節(jié)點(diǎn)拒絕接收該惡意節(jié)點(diǎn)發(fā)送的同步信息,減少計算開銷。
本文通過計算同一時刻各節(jié)點(diǎn)預(yù)測的全局時間與標(biāo)準(zhǔn)時間誤差的平均值來驗(yàn)證改進(jìn)算法的同步效果。用控制變量法,經(jīng)過數(shù)次仿真驗(yàn)證,結(jié)果表明:α=0.3,β=0.69時,同步精度最高,誤差平均值最小,如圖5所示。
圖5 α,β取不同值時誤差平均值比較圖
在第80周期對原始FTSP和改進(jìn)的FTSP進(jìn)行發(fā)送時間標(biāo)攻擊,此時改進(jìn)的FTSP中α取0.3,β取0.69,仿真結(jié)果如圖6所示,改進(jìn)的FTSP同步精度較原始FTSP有所提高,并且在受到攻擊的情況下,減輕了攻擊對時間同步的影響,改進(jìn)算法取得了良好的效果。
圖6 FTSP和改進(jìn)的FTSP誤差平均值比較圖
本文為進(jìn)一步提高FTSP的同步精度,抵御基于發(fā)送時間標(biāo)的攻擊,抑制異常數(shù)據(jù)對同步造成的影響,減小計算開銷,改進(jìn)了時鐘漂移率計算公式,對其進(jìn)行加權(quán)處理,經(jīng)過大量仿真驗(yàn)證,確定權(quán)重α,β的最佳值,并在原算法中加入異常時鐘漂移率檢測器和惡意節(jié)點(diǎn)ID過濾器,仿真結(jié)果表明:同步精度提高,能有效抵御發(fā)送時間標(biāo)的惡意攻擊,安全性能增加,計算開銷減少,魯棒性增強(qiáng)。
由于節(jié)點(diǎn)的時鐘也會受到環(huán)境濕度、溫度等條件的影響,所處的環(huán)境不一樣同樣會使得節(jié)點(diǎn)時鐘漂移率發(fā)生變化。因此,本文的安全算法也可以用來排除受外界環(huán)境影響而導(dǎo)致同步失效的節(jié)點(diǎn)。
參考文獻(xiàn):
[1]徐煥良,劉佼佼,王浩云,等.WSN/WSAN中的時間同步算法研究[J].計算機(jī)工程與應(yīng)用,2012,48 (31):56-60.
[2]Elson J,Girod L,Estrin D.Fine-grained-network time synchronization using reference broadcasts[C]∥ACM SIGOPS Operating Systems Review,New York,2002:147-163.
[3]Broido A,Claffy K C,Kohno T.Remote physical device fingerprinting[C]∥Proceedings of the 2005 IEEE Symposium on Security and Privacy,2005:93-108.
[4]Maroti M,Kusy B,Simon G.The flooding time synchronization protocol[R].New York:Technical Report ISIS—04,2004.
[5]Liao W C,Roosta T,Sastry S,et al.Testbed implementation of a secure flooding time synchronization protocol[C]∥Wireless Co-mmunications and Networking Conference,Las Vegas,NV,2008:3157-3162.
[6]Roosta T,Sastry S.Securing flooding time synchronization protocol in sensor networks[C]∥The First International Workshop on Embedded Systems Security,2006:107-116.
[7]Hellerstein J M,Huang D J,Huang H Y,et al.Clock drift based node identification in wireless sensor networks[C]∥IEEE Global Communications Conference,2008:1877-1881.
[8]Tan Dingzhong,Jing Niansheng,Shi Zhu,et al.Research on time synchronization apply in WSNs[C]∥2010 2nd International Conference on Information Science and Engineering(ICISE),Hangzhou,China,2010:6866-6869.
[9]Djenouri Djamel,Merabtine Nassima,Mekahlia Fatma Zohra,et al.Fast distributed multi-hop relative time synchronization protocol and estimators for wireless sensor networks[J].Ad Hoc Networks,2013,6(1):2329-2344.
[10] Zhu Wentao,Zhou Jianying ,Deng Robert H,et al..Detecting node replication attacks in wireless sensor networks:A sur-vey[J].Journal of Network and Computer Applications,2012,35(3):1022-1034.