謝彥民
[摘要]隨著計(jì)算機(jī)技術(shù)以及網(wǎng)絡(luò)通信技術(shù)的快速發(fā)展,網(wǎng)絡(luò)環(huán)境中各節(jié)點(diǎn)的時(shí)鐘同步問(wèn)題變得越來(lái)越重要。介紹時(shí)鐘同步的方法及其相關(guān)協(xié)議,并對(duì)其安全性進(jìn)行分析和探討。
[關(guān)鍵詞]網(wǎng)絡(luò)通信技術(shù)同步相關(guān)協(xié)議
中圖分類號(hào):TP3文獻(xiàn)標(biāo)識(shí)碼:A文章編號(hào):1 671—7597(2009)1010076—01
隨著計(jì)算機(jī)技術(shù)和網(wǎng)絡(luò)技術(shù)的迅猛發(fā)展,特別是Internet與Intrauet的普及,管理信息系統(tǒng)已經(jīng)步入基于網(wǎng)絡(luò)系統(tǒng)的分布式環(huán)境。要使分布在各個(gè)計(jì)算機(jī)中的應(yīng)用程序相互協(xié)調(diào)、共同合作完成一項(xiàng)任務(wù),就需要這些系統(tǒng)之間有一個(gè)統(tǒng)一的、標(biāo)準(zhǔn)的時(shí)間。當(dāng)前人們活動(dòng)的很多領(lǐng)域的兩絡(luò)系統(tǒng)如金融業(yè)(證券、銀行)、廣電業(yè)(廣播、電視)、交通業(yè)(火車、飛機(jī))、電子商務(wù)(交易、認(rèn)證、加密)、電信(計(jì)費(fèi)、IP電話、網(wǎng)間結(jié)算)、大型分布式商業(yè)數(shù)據(jù)庫(kù)等需要在大范圍保持計(jì)算機(jī)間的時(shí)間同步和時(shí)間準(zhǔn)確。所以,網(wǎng)絡(luò)時(shí)間同步技術(shù)是當(dāng)前網(wǎng)絡(luò)應(yīng)用系統(tǒng)所需要的一項(xiàng)關(guān)鍵性技術(shù)。
一、時(shí)鐘同步的方法概述
時(shí)間同步是很多基于網(wǎng)絡(luò)的關(guān)鍵應(yīng)用的基礎(chǔ)。時(shí)鐘同步包括邏輯時(shí)鐘同步和物理時(shí)鐘同步。邏輯時(shí)鐘同步是指,在分布式系統(tǒng)中,所有進(jìn)程在事件發(fā)生的順序上要完全一致,而時(shí)序上沒(méi)有要求,即時(shí)間上并不需要完全一致。物理時(shí)鐘同步包括外同步和內(nèi)同步。外同步是通過(guò)某種算法,使得系統(tǒng)內(nèi)的時(shí)鐘與系統(tǒng)外的某個(gè)標(biāo)準(zhǔn)時(shí)鐘相一致。內(nèi)同步則是實(shí)現(xiàn)系統(tǒng)內(nèi)時(shí)鐘間的相互偏差不超過(guò)一個(gè)既定的范圍。絕對(duì)物理時(shí)鐘同步方法一般有三種硬件同步方法、軟件同步方法和分層式混合同步方法。
(一)硬件同步方法
硬件同步有兩種一種是借助于接收機(jī)或接收機(jī)來(lái)實(shí)現(xiàn)。網(wǎng)絡(luò)中每個(gè)節(jié)點(diǎn)各自引入接收機(jī)或接收機(jī)。第二種是各網(wǎng)絡(luò)節(jié)點(diǎn)都聯(lián)入專用的時(shí)鐘信號(hào)線,進(jìn)行時(shí)鐘同步。硬件同步法精度很高,但成本很高、操作不便。適用于小規(guī)模網(wǎng)絡(luò)系統(tǒng),在大規(guī)模分布式網(wǎng)絡(luò)系統(tǒng)中完全采用硬件同步方法是不現(xiàn)實(shí)的。
(二)軟件同步方法
完全利用軟件。通過(guò)時(shí)鐘同步算法的處理完成分布式系統(tǒng)中各節(jié)點(diǎn)的時(shí)鐘同步。軟件同步法一般涉及時(shí)間信息包在網(wǎng)絡(luò)中要同步的節(jié)點(diǎn)間的傳輸,因此軟件同步的缺點(diǎn)是同步精度與網(wǎng)絡(luò)延遲有關(guān),對(duì)于分布在廣域網(wǎng)上的大型分布式系統(tǒng)可能不能保證同步精度。
(三)分層式混合同步方法
將大規(guī)模分布式系統(tǒng)的節(jié)點(diǎn)網(wǎng)絡(luò)劃分為多個(gè)網(wǎng)段。在每個(gè)網(wǎng)段設(shè)置一個(gè)節(jié)點(diǎn)為時(shí)間服務(wù)節(jié)點(diǎn),在該節(jié)點(diǎn)上引入接收機(jī)或接收機(jī)及其相應(yīng)的時(shí)鐘接口設(shè)備,實(shí)現(xiàn)不同網(wǎng)段的時(shí)鐘同步。然后,在每個(gè)網(wǎng)段內(nèi)部通過(guò)軟件同步方法使本網(wǎng)段其它節(jié)點(diǎn)的時(shí)鐘與本網(wǎng)段時(shí)間服務(wù)節(jié)點(diǎn)的時(shí)鐘同步,從而實(shí)現(xiàn)整個(gè)分布式網(wǎng)絡(luò)的時(shí)鐘同步。
二、網(wǎng)絡(luò)時(shí)間協(xié)議
網(wǎng)絡(luò)時(shí)間協(xié)議(NTP),是目前互聯(lián)網(wǎng)中應(yīng)用非常廣泛的時(shí)間同步協(xié)議。NTP協(xié)議是TCP/IP協(xié)議簇的一部分,是運(yùn)行在應(yīng)用層協(xié)議。它是由時(shí)間協(xié)議(Time Protocol、Timestamp Message)及網(wǎng)際協(xié)議時(shí)間選項(xiàng)(IP TimeIP協(xié)議和UDP協(xié)議之上的ICMP時(shí)間戳消息(ICMP Option)發(fā)展而來(lái)的。
(一)網(wǎng)絡(luò)時(shí)問(wèn)服務(wù)的實(shí)現(xiàn)方式
網(wǎng)絡(luò)時(shí)間服務(wù)的實(shí)現(xiàn)方式有以下幾種方法:
無(wú)線時(shí)鐘(wireless clock):服務(wù)器系統(tǒng)可以通過(guò)串口連接一個(gè)無(wú)線時(shí)鐘。無(wú)線時(shí)鐘接收GPS全球衛(wèi)星定位系統(tǒng))的衛(wèi)星發(fā)射的信號(hào)來(lái)決定當(dāng)前時(shí)間。無(wú)線時(shí)鐘是一個(gè)非常精確的時(shí)間源,但是需要花一定的費(fèi)用。
時(shí)間服務(wù)器:可以使用網(wǎng)絡(luò)中NTP時(shí)間服務(wù)器,通過(guò)這個(gè)服務(wù)器來(lái)同步網(wǎng)絡(luò)中的系統(tǒng)的時(shí)鐘。在德拉瓦大學(xué)的網(wǎng)站上,尋找到這個(gè)鏈接http://www.eeeis.udel,)edu/)mills/ntp/servers.htrnl,就可以找到國(guó)外大多數(shù)的一級(jí)時(shí)間服務(wù)器以及訪問(wèn)所需要的IP或域名地址。此方式受網(wǎng)絡(luò)狀況的影響很大。
局域網(wǎng)內(nèi)的同步:如果只是需要在本地局域網(wǎng)內(nèi)進(jìn)行系統(tǒng)間的時(shí)鐘同步,那么就可以使用局域網(wǎng)中任何一個(gè)系統(tǒng)的時(shí)鐘。當(dāng)然,你需要選擇局域網(wǎng)中的某個(gè)節(jié)點(diǎn)的時(shí)鐘作為“權(quán)威的”的時(shí)間源(即領(lǐng)導(dǎo)),然后其它的節(jié)點(diǎn)就只需要與這個(gè)時(shí)間源進(jìn)行時(shí)間同步即可。使用這種方式,所有的節(jié)點(diǎn)都會(huì)使用一個(gè)公共的系統(tǒng)時(shí)鐘,但是不需要和局域網(wǎng)外的系統(tǒng)進(jìn)行時(shí)鐘同步。如果一個(gè)系統(tǒng)在一個(gè)局域網(wǎng)的內(nèi)部,同時(shí)又不能使用無(wú)線時(shí)鐘,這種方式是最好的選擇。對(duì)于網(wǎng)絡(luò)時(shí)間協(xié)議,在時(shí)間同步過(guò)程中每個(gè)需要同步的本地時(shí)鐘(客戶端)都與多個(gè)服務(wù)器連接,本地時(shí)鐘通過(guò)過(guò)濾判定最佳的同步路徑和服務(wù)器源。當(dāng)客戶端與某個(gè)服務(wù)器長(zhǎng)時(shí)間失去信息交換,那么客戶端會(huì)在冗余的服務(wù)器中進(jìn)行查詢,然后選出當(dāng)時(shí)的最優(yōu)同步路徑和時(shí)鐘源。
(二)NTP協(xié)議的優(yōu)勢(shì)
作為現(xiàn)今Internet上最流行的,也是使用最為廣泛的時(shí)間同步標(biāo)準(zhǔn),NTP協(xié)議設(shè)計(jì)主要有以下幾個(gè)優(yōu)勢(shì):
1,可提供精準(zhǔn)的時(shí)間
NTP使用協(xié)調(diào)世界時(shí)間UTC作為時(shí)鐘參考,時(shí)間信息的來(lái)源可以是原子鐘、天文臺(tái)或是GPS衛(wèi)星,同時(shí)也可以通過(guò)軟件方法從Internet上獲取。因此可以提供準(zhǔn)確且穩(wěn)定可靠的時(shí)鐘源。
2,時(shí)鐘服務(wù)器提供分層服務(wù)
NTP服務(wù)器具有分層服務(wù)器,分為0-15層,其中Stratum 0為GPS等UTC時(shí)間源,Stratum 1是一級(jí)服務(wù)器,直接從GPS等設(shè)備獲取時(shí)間。隨著層數(shù)的增加,服務(wù)器等級(jí)降低,能提供的時(shí)鐘同步精度也降低。在現(xiàn)實(shí)的網(wǎng)絡(luò)世界中,對(duì)時(shí)鐘精度的要求不盡相同,并不是至高精度方至好,因此采用分層的方法定義時(shí)鐘準(zhǔn)確性,可以讓人們根據(jù)自己的精度需要選擇合適的服務(wù)器,從而迅速同步網(wǎng)絡(luò)中各臺(tái)設(shè)備的時(shí)間。
3,采用認(rèn)證機(jī)制來(lái)實(shí)現(xiàn)抗干擾和避免惡意破壞
NTP認(rèn)證機(jī)制支持訪問(wèn)控制和MDS驗(yàn)證。為防止對(duì)時(shí)間服務(wù)器的惡意破壞,檢查來(lái)對(duì)時(shí)的信息是否是真正來(lái)自所宣稱的服務(wù)器并檢查信息的返回路徑,確保提供對(duì)時(shí)信息的服務(wù)器不是偽裝的源,從而防止惡意或意外的干擾。
三、NTP的安全性分析
NTP的安全需求要遠(yuǎn)高于其他的分布式服務(wù)。首先,認(rèn)證機(jī)制和時(shí)間同步機(jī)制的操作無(wú)法避免的纏繞。一方面可靠的時(shí)間同步要有密鑰:另一方面密鑰只有在指定的時(shí)間間隔上才一有效,而時(shí)間間隔只有在相關(guān)的服務(wù)器和客戶端與UTC可靠的同步時(shí)才能生效。另外,NTP子網(wǎng)是天然分層的,因而時(shí)間和可靠流是從根部的主服務(wù)器通過(guò)二級(jí)服務(wù)器流到葉節(jié)點(diǎn)上的客戶端。
只有當(dāng)?shù)街鞣?wù)器路徑上的所有服務(wù)器都是均屬可信時(shí),客戶才一可以宣稱從屬應(yīng)用是可靠的。在NTP里面,每個(gè)服務(wù)器驗(yàn)證次低一層服務(wù)器并可通過(guò)歸納驗(yàn)證最低層的服務(wù)器(主服務(wù)器)。
由可信的概念,引申出了可信聯(lián)系??尚怕?lián)系指的是如果服務(wù)器的證書和身份通過(guò)了校驗(yàn),那么聯(lián)系就是可信的。雖然如此客戶與可信源同步意味著系統(tǒng)時(shí)鐘使用了一個(gè)或幾個(gè)可信聯(lián)系的時(shí)間值進(jìn)行重置,并且遵從NTP分洪(mitigation)算法。當(dāng)證書機(jī)構(gòu)簽署證書請(qǐng)求時(shí)必須滿足可信要求,而證書本身可以存儲(chǔ)在公共目錄里,并且可以在不安全的網(wǎng)絡(luò)路徑進(jìn)行檢索。在安全模型里,最基本的假設(shè)是網(wǎng)絡(luò)上傳輸?shù)陌赡鼙黄谕慕邮照咭酝獾娜私孬@:截獲者以各種方式重構(gòu)包,部分或全部重放包,然后再繼續(xù)傳輸或者給以響應(yīng)。這些包可能會(huì)使得客戶認(rèn)為可信或者得出錯(cuò)誤的信息,從而使得協(xié)議操作失敗、網(wǎng)絡(luò)服務(wù)中斷或者寶貴的網(wǎng)絡(luò)和處理器資源被消耗。
對(duì)于NTP來(lái)說(shuō),入侵者的理論目標(biāo)有:植入錯(cuò)誤的時(shí)間值;破壞協(xié)議:用偽造的包來(lái)堵塞網(wǎng)絡(luò)、服務(wù)器和客戶,從而耗盡資源并否定對(duì)合法應(yīng)用的服務(wù)。對(duì)于這些可能存在的入侵,NTP建立了大量的防護(hù)機(jī)制-最基本的防護(hù)機(jī)制是時(shí)戳交換機(jī)制,它先天就能防止欺騙和重播攻擊。加強(qiáng)的時(shí)鐘過(guò)濾、選擇和群集算法被用于抵抗拜占庭式的惡意攻擊。當(dāng)沒(méi)有特別的指定防御頑固入侵者時(shí),這些算法和相應(yīng)的檢測(cè)很好的防止了不當(dāng)?shù)牟僮?。盡管如此,這些機(jī)制并沒(méi)有為客戶安全的鑒別和驗(yàn)證服務(wù)器。