趙庭達(dá),武曉春
(蘭州交通大學(xué)自動化與電氣工程學(xué)院,蘭州 730070)
隨著鐵路列車運(yùn)行速度的不斷提高,鐵路內(nèi)部各個系統(tǒng)時間的一致性對行車安全至關(guān)重要,如時間不同步,則會造成故障定位不準(zhǔn)確、影響調(diào)度指揮或引發(fā)其他安全問題。在早期信號系統(tǒng)設(shè)備中,由于一些網(wǎng)絡(luò)設(shè)備或涉及安全分析的系統(tǒng)缺少時間同步接口,導(dǎo)致時間偏差較大。在7.23事故后的鐵路安全大檢查中,發(fā)現(xiàn)各個信號設(shè)備系統(tǒng)的時間信息不統(tǒng)一,具有一定安全隱患,需進(jìn)行整改[1]。而隨著綜合網(wǎng)管在鐵路中的引入[2],系統(tǒng)內(nèi)部時間信號的統(tǒng)一變得越發(fā)重要。由于上述情況,鐵路時間同步網(wǎng)在鐵路系統(tǒng)中得到了越來越多的應(yīng)用,保證了鐵路系統(tǒng)時間信息的準(zhǔn)確性和一致性。
我國鐵路時間同步網(wǎng)采用時間同步協(xié)議NTP,然而,近年來針對NTP協(xié)議的攻擊在全球范圍內(nèi)已造成了數(shù)以億計的經(jīng)濟(jì)損失[3]。目前,國內(nèi)外學(xué)者對時間同步的安全性進(jìn)行了一定研究,李欣等[4]分析了近年來針對NTP的典型攻擊手段和行為,提出了安全建議;張昊磊,張友鵬等[5-7]對鐵路時間同步網(wǎng)進(jìn)行安全性分析,指出NTP協(xié)議在身份認(rèn)證過程中容易遭受中間人攻擊,存在安全隱患;張友鵬[8]通過大數(shù)據(jù)方法監(jiān)測鐵路時間同步網(wǎng)異常流量,以達(dá)到檢測NTP協(xié)議DDOS攻擊的目的;ULLMANN[9]分析了針對NTP協(xié)議的延遲攻擊,說明了攻擊原理及對時間同步過程的影響,并提出了檢測方法。延遲攻擊不需對時間同步報文進(jìn)行篡改就可以破壞時間同步的準(zhǔn)確性,因此,更加難以檢測,容易給系統(tǒng)帶來安全隱患。已有研究中,并未涉及到NTP協(xié)議延遲攻擊的緩解方法,對延遲攻擊的應(yīng)對策略進(jìn)行研究并提出緩解方法具有重要意義。
有色Petri網(wǎng)(CPN)作為一種圖形化的建模語言,適用于通信、同步以及資源共享等類型系統(tǒng)的建模。TCPN在CPN的基礎(chǔ)上增加了時間參數(shù),用以表述變遷發(fā)生所經(jīng)過的時間,相比CPN能更好地對時間同步過程進(jìn)行描述,本次重點(diǎn)分析NTP協(xié)議的對時階段,對延遲攻擊進(jìn)行建模仿真,并提出應(yīng)對策略。
我國鐵路時間同步網(wǎng)完成鐵路各個系統(tǒng)內(nèi)部時間的統(tǒng)一,其結(jié)構(gòu)包括了時間同步節(jié)點(diǎn)、眾多被同步設(shè)備和時間同步鏈路。時間同步節(jié)點(diǎn)分3級,按照主從樹結(jié)構(gòu)排列,一、二、三級時間節(jié)點(diǎn)分別位于國鐵集團(tuán)調(diào)度中心,鐵路局或客專調(diào)度所,車站、段、所等位置[10],鐵路時間同步網(wǎng)結(jié)構(gòu)如圖1所示。
圖1 鐵路時間同步網(wǎng)結(jié)構(gòu)
我國鐵路時間同步網(wǎng)采用自上而下逐級同步的方式。其中,一級時間同步節(jié)點(diǎn)內(nèi)的接收機(jī)通過接收天線引入外部時間標(biāo)準(zhǔn)源,并將時間信號傳給一級母鐘設(shè)備[11]。一級母鐘按照設(shè)定的時間同步周期與諸多二級時間節(jié)點(diǎn)和被同步設(shè)備等進(jìn)行時間同步,二級時間節(jié)點(diǎn)接收一級時間節(jié)點(diǎn)的時間信號,更新自身時間并向三級時間節(jié)點(diǎn)和被同步設(shè)備提供時間信號,三級時間節(jié)點(diǎn)接收二級時間節(jié)點(diǎn)的時間信號,更新自身時間并與各被同步設(shè)備進(jìn)行時間同步,當(dāng)各時間同步節(jié)點(diǎn)無時間信號輸入時進(jìn)入守時狀態(tài),在一定時間精度內(nèi)與外部標(biāo)準(zhǔn)時間源保持時間同步[12]。
網(wǎng)絡(luò)時間協(xié)議(NTP)于1985年美國特拉華大學(xué)提出,其時間同步精度可達(dá)到毫秒級。我國鐵路時間同步網(wǎng)采用NTP主從工作模式,通過服務(wù)器與客戶端之間的往返信息包來確定兩地時鐘的差值和報文在網(wǎng)絡(luò)中傳輸?shù)难訒r[13]。
NTP協(xié)議的時間同步分為認(rèn)證階段和對時階段。在認(rèn)證階段,服務(wù)器與客戶端完成初始關(guān)聯(lián)、交換證書和Cookie請求[14],之后進(jìn)入對時階段。在對時階段,客戶端與服務(wù)器通過交互報文來更新客戶端時間并完成時間同步,客戶端與服務(wù)器在對時階段的報文交換如圖2所示[15]。
圖2 NTP協(xié)議對時過程
圖2中左側(cè)為服務(wù)器時間,右側(cè)為客戶端時間。當(dāng)開始進(jìn)行時間同步時,客戶端向服務(wù)器發(fā)送時間同步請求報文syns_Request,其中,記錄了報文的發(fā)送時間t1;服務(wù)器接收到時間請求報文后記錄報文接收時間t2并編制時間同步回復(fù)報文Syns_Response,其中,記錄了報文的發(fā)送時間t3以及t1和t2;客戶端收到時間同步回復(fù)報文之后記錄時間t4,此時,客戶端記錄了t1,t2,t3和t4。由于NTP協(xié)議假定時間同步請求報文與時間同步回復(fù)報文的傳輸延遲相同,因此,NTP協(xié)議的報文傳輸延遲可表示為
(1)
式中,P為傳輸延遲,根據(jù)t1,t2和P,可計算出服務(wù)器與客戶端之間的時間偏移量
(2)
式中,D為時間偏移量,客戶端通過計算出的偏移量來調(diào)整自身時間與服務(wù)器一致,調(diào)整后的客戶端時間tc=tc0+D(tc0為未調(diào)整的客戶端時間)。
時間有色Petri網(wǎng)的形式化定義為[16-19]
TCPN=(∑,P,T,A,N,C,E,G,τ)
(3)
式中,∑為一個非空有限集合,稱為顏色集;P為一個有限集合,表示模型中所有庫所的集合,庫所通常用圓形表示;T為一個有限集合,表示模型中所有變遷的集合,變遷在模型中用矩形表示;A為有向弧的集合,表示為P×T∪T×P,有向弧的兩端分別為庫所和變遷;N為節(jié)點(diǎn)函數(shù),是從A映射至P×T∪T×P的函數(shù);C為顏色函數(shù),是從P映射到∑的函數(shù),即為每個庫所定義一個顏色集;E為弧表達(dá)式函數(shù);G為守衛(wèi)表達(dá)式函數(shù),表示變遷發(fā)生的約束;τ為時間參數(shù),時間有色Petri網(wǎng)模型為變遷增加了時間參數(shù),用來表示變遷發(fā)生所經(jīng)過的時間,適用于描述對時階段的時間變化。此外,模型中還存在一個表示模擬器時間的全局時鐘,用于表示模型的運(yùn)行時間并協(xié)調(diào)各個變遷發(fā)生的優(yōu)先度,以保證模型中各個變遷的有序發(fā)生。
正常情況下,時間同步周期結(jié)束后客戶端時間應(yīng)與服務(wù)器時間相同。根據(jù)NTP協(xié)議的時間同步原理和信息交互過程,使用CPN Tools工具建立一級時間同步節(jié)點(diǎn)和子鐘設(shè)備之間的時間同步過程模型,在主從工作模式下,一級節(jié)點(diǎn)母鐘設(shè)備為服務(wù)器,子鐘設(shè)備為客戶端,其時間同步過程模型如圖3所示。
圖3 NTP協(xié)議時間同步模型
模型模擬了正常情況下NTP協(xié)議時間同步過程,為對時間同步的周期性進(jìn)行描述,該模型可循環(huán)運(yùn)行,模型中各個庫所和變遷的含義如表1、表2所示。
表1 時間同步模型中各個庫所的含義
在模型中,表示時間的庫所顏色集為T,其代表令牌值的數(shù)據(jù)類型為浮點(diǎn)型;表示時間周期數(shù)的庫所N0和N1顏色集為NU,代表令牌值的數(shù)據(jù)類型為整型。庫所Cli至庫所R0的路徑表示時間同步請求報文的傳遞過程,在一級節(jié)點(diǎn)收到請求報文后,通過變遷S1獲得時間t3,并經(jīng)由庫所res和庫所TS將時間t1、t2、t3傳遞給子鐘設(shè)備,之后通過變遷AD來計算偏移量并對子鐘設(shè)備時間進(jìn)行調(diào)整。變遷TN(N=1…4)表示時間保持器,其保證了在仿真器時間不斷流逝的情況下令牌的時間能實(shí)時更新,而指向TN的抑制弧保證了變遷TN不會影響到時間t3與偏移量的計算。
表2 時間同步模型中各個變遷的含義
使用CPN Tools工具對模型進(jìn)行仿真,為對模型的效果進(jìn)行驗(yàn)證,一級節(jié)點(diǎn)與子鐘設(shè)備的初始時間設(shè)定為互不相等的正數(shù),并進(jìn)行多次試驗(yàn)。當(dāng)子鐘設(shè)備發(fā)送請求報文后,由時間保持器模擬子鐘設(shè)備時間的流逝,當(dāng)一級節(jié)點(diǎn)收到請求報文時,記錄時間t1和t2,之后發(fā)送時間同步回復(fù)報文,并記錄發(fā)送時間t3,當(dāng)子鐘設(shè)備收到時間同步回復(fù)報文時,根據(jù)其中記錄的時間t1、t2和t3計算時間偏移量并調(diào)整子鐘設(shè)備。在多組不同母鐘與子鐘時間初值情況下,對模型進(jìn)行多次仿真測試,仿真結(jié)果如表3所示。
表3 時間同步模型仿真測試結(jié)果 ms
由仿真結(jié)果可知,當(dāng)子鐘設(shè)備的初始時間與母鐘設(shè)備不同時,在模型運(yùn)行結(jié)束后,各組子鐘設(shè)備時間經(jīng)過調(diào)整均與母鐘設(shè)備時間一致,驗(yàn)證了本文所建立的NTP時間同步模型的正確性。
攻擊者通過偽造服務(wù)器、中間人攻擊等方式對數(shù)據(jù)包進(jìn)行延遲操縱,在NTP協(xié)議時間同步報文的通信鏈路中引入延遲[5]。延遲攻擊破壞NTP所假定的主從網(wǎng)絡(luò)延遲對稱性,進(jìn)而影響偏移量計算,達(dá)到破壞時間同步準(zhǔn)確性的目的[20]。
假定攻擊者在一級節(jié)點(diǎn)母鐘向子鐘設(shè)備發(fā)送時間同步回復(fù)報文的過程中引入延遲,引入延遲值μ,則有
(4)
式中,Dattack1為受到攻擊時子鐘設(shè)備計算的偏移量。由結(jié)果可知,在一級節(jié)點(diǎn)回復(fù)報文過程中引入延遲值為μ的延遲攻擊后,計算偏移量會出現(xiàn)μ/2的偏差,若以該偏移量對子鐘設(shè)備時間進(jìn)行調(diào)整,在時間同步周期結(jié)束時子鐘設(shè)備時間落后一級節(jié)點(diǎn)時間μ/2。
設(shè)μm和μm-1分別為攻擊者在開始攻擊后第m個時間同步周期和第m-1個時間同步周期引入的延遲,在開始攻擊后第m個周期開始時,子鐘設(shè)備時間落后一級節(jié)點(diǎn)μm-1/2,結(jié)合公式(2)可得
(5)
其中,Dattackm為攻擊者引入延遲攻擊的第m個周期的計算偏移量,dm為非攻擊因素造成的客戶端時間偏差。由式(5)可知,當(dāng)μm=μm-1,即攻擊者在前后兩個時間同步周期引入的延遲相同時,除第一個時間同步周期之外,前后兩個時間同步周期所計算的偏移量與未受攻擊時所計算的偏移量一致,故客戶端難以通過監(jiān)測計算偏移量來確定是否遭受了延遲攻擊。
由以上分析可知,在受到延遲攻擊后,客戶端所計算的偏移量只在引入延遲的第1個周期存在變化,同時延遲攻擊又避免了對時間同步報文內(nèi)容的篡改,因此,延遲攻擊具有破壞時間同步的精確度、不易察覺的特點(diǎn)。在鐵路時間同步網(wǎng)中,由于采用了從一級時間同步節(jié)點(diǎn)逐級向下進(jìn)行時間同步的方式,當(dāng)時間同步鏈路遭受攻擊后,在攻擊節(jié)點(diǎn)下游所有設(shè)備均會收到錯誤的時間信號,從而對鐵路系統(tǒng)內(nèi)部時間的一致性造成很大影響。
為檢測延遲攻擊,增加鐵路時間同步網(wǎng)應(yīng)對網(wǎng)絡(luò)攻擊的彈性,建議充分利用鐵路時間同步網(wǎng)中引入外部標(biāo)準(zhǔn)時間源(GPS/北斗)的時間同步設(shè)備。在時間同步過程中,引入外部標(biāo)準(zhǔn)時間源的客戶端在與服務(wù)器完成時間同步報文交互后不對自身時鐘進(jìn)行調(diào)整,而是驗(yàn)證所計算的偏移量。若在該客戶端上游未發(fā)生攻擊時,其計算偏移量應(yīng)接近于0,若計算的偏移量違反超過一定次數(shù)時便會報警,表明受到了延遲攻擊。
為應(yīng)對延遲攻擊并提高時間同步的穩(wěn)定性,應(yīng)提出NTP協(xié)議延遲攻擊的緩解策略,當(dāng)收到報警時,客戶端應(yīng)調(diào)整自身時鐘盡量與服務(wù)器保持一致。提出了一種通過求取引入延遲近似值來緩解攻擊的方法,具體方法如下。
由式(4)可知,當(dāng)受到攻擊時,時間同步周期結(jié)束后客戶端時間落后服務(wù)器時間μ/2,因此,只需確定μ值就可對客戶端時鐘進(jìn)行緩解。為確定μ值,客戶端計算并存儲偏移量的均值A(chǔ)vg(n),可表示為
(6)
式中,n為時間同步周期數(shù),D(n)為第n個周期的計算偏移量。設(shè)攻擊者在第n+1個周期進(jìn)行延遲攻擊,客戶端在第n+m個周期收到報警,當(dāng)收到報警時,客戶端儲存了Avg(n),…,Avg(n+m)和D(n),…,D(n+m),由式(5)、式(6)可得到各個周期的μ值為
(7)
式中,k為小于m的正整數(shù),由于影響時鐘漂移的濕度、溫度和其他因素在很長一段時間內(nèi)逐漸變化,且很少出現(xiàn)急劇變化[21],則可由Avg(n)代替di,各周期的μ值也可表示為
(8)
在求出每個周期的μ值后,由各個周期μ值的平均值來表示引入延遲的近似值,在攻擊結(jié)束前用該近似值的1/2來調(diào)整客戶端時鐘,從而達(dá)到緩解延遲攻擊的目的。
為對緩解方法進(jìn)行仿真驗(yàn)證,需對上文中的時間同步模型進(jìn)行拓展。首先,假定攻擊者在一級節(jié)點(diǎn)向子鐘設(shè)備發(fā)送回復(fù)報文的過程中引入延遲攻擊,在模型中加入攻擊節(jié)點(diǎn)來對延遲攻擊進(jìn)行模擬,加入的延遲攻擊部分如圖4所示。
圖4 延遲攻擊節(jié)點(diǎn)模型
在原時間同步模型中的庫所P1和TS之間引入了一個變遷ATK,在令牌經(jīng)過此變遷時會增加令牌的時間戳,時間戳的增加量由函數(shù)DELAY確定,以此模擬延遲攻擊。在原模型的基礎(chǔ)上加入攻擊部分后,繼續(xù)對模型進(jìn)行拓展,加入延遲攻擊緩解部分,如圖5所示。
圖5 NTP延遲攻擊緩解模型
在進(jìn)行了一個時間同步周期后,子鐘設(shè)備計算的偏移量通過變遷SW1傳遞給緩解部分,之后由緩解部分對偏移量進(jìn)行計算處理,模型中各個庫所和變遷的含義如表4所示。
模型由變遷CAL1計算未受攻擊時的Avg(n),由變遷CAL3計算攻擊者引入延遲μ的近似值,在收到警報后,由變遷AD2完成對子鐘設(shè)備的緩解,緩解后代表子鐘設(shè)備時間的令牌值存放在庫所FC中。
為驗(yàn)證緩解方法的有效性,使用CPN Tools仿真功能對拓展后模型進(jìn)行仿真驗(yàn)證。仿真時,在第11個時間同步周期引入延遲攻擊,設(shè)偏移量違規(guī)次數(shù)閾值為3,時間同步周期間的時間間隔為3 min,根據(jù)時間間隔并參考晶體時鐘的漂移率,時間偏差設(shè)定為2~3 ms。在開始緩解后,分別測定了在不同引入延遲下使用和未使用緩解方法時的緩解效果,其仿真結(jié)果如表5所示。
由仿真結(jié)果可知,在不同引入延遲值的情況下,使用緩解方法后的主從偏移量絕對值均小于2 ms,緩解了延遲攻擊帶來的影響,與理論分析相符,仿真結(jié)果驗(yàn)證了緩解方法和緩解模型的有效性和正確性。
(1)使用時間有色Petri網(wǎng)建立NTP時間同步模型,利用時間有色Petri網(wǎng)的時間特性來對時間同步效果進(jìn)行量化分析,并驗(yàn)證了模型的正確性,為時間同步協(xié)議的進(jìn)一步研究提供了模型參考。
(2)針對鐵路時間同步協(xié)議延遲攻擊,分析了延遲攻擊對時間同步過程造成的影響,并建議增加準(zhǔn)確的外部標(biāo)準(zhǔn)時間源,以增加應(yīng)對攻擊的彈性。
(3)根據(jù)引入延遲與計算偏移量的關(guān)系,提出了延遲攻擊的緩解方法,通過模型對緩解方法進(jìn)行仿真后可知,緩解過后的時間偏差小于2 ms,驗(yàn)證了所提方法的有效性。