高翔 郭新東 逢曉燕 張鳳蘭
摘 要: 分布式系統發展至今,規模越來越大,網絡中故障節點的查找更加困難。在此針對這種問題提出了一種新的基于安全日志的問責方法。通過維護一個系統安全日志以記錄節點過去的行為,節點間依賴此安全日志中的記錄來確定其他節點行為的正確性。通過在NS?3環境下對問責機制的模擬,得出結論:使用問責機制可以確保分布式環境下任意發生故障的節點最終能被至少一個正確的節點檢測出來,并且存在至少一個正確的節點持有該節點發生故障的確鑿證據。
關鍵字: 分布式系統; 故障節點; 安全日志; 問責機制
中圖分類號: TN964?34 文獻標識碼: A 文章編號: 1004?373X(2014)10?0092?04
Abstract: With the development of distributed systems, their scale is becoming larger and larger, but it is more difficult to find the fault nodes in network. A new accountability method based on the security log is proposed in this paper. The previous behaviors of nodes are recorded by maintaining a security log in the system, and the nodes rely on the record in this security log to determine the correctness of other nodes' behaviors. Through simulating the accountability mechanism in NS?3 environment, a conclusion is obtained in this paper. That is, the application of the accountability mechanism is able to ensure any fault node can be detected by at least one correct node in the distributed environment, and at least one correct node holds the conclusive evidence of the fault that has occurred in the node.
Keywords: distributed system; fault node; security log; accountability mechanism
0 引 言
分布式系統發展至今,規模越來越大,組件越來越多,只有每一個組件協調合作,才能保證整個系統的正常運行。如果其中的一個組件出現故障,則有可能威脅到整個系統的安全。由于系統規模的不斷擴大,復雜度和風險性也日益變大,系統安全面臨前所未有的挑戰。系統管理者迫切需要通過可靠的網絡舉證技術來幫助解決故障發現,系統調試,問責和損害評估等問題。
在分布式系統中查找故障通常是極其困難的,這往往也是由分布式系統的復雜程度決定的。假如懷疑其中的一些節點出現故障,可能是由于設備硬件損壞、或是管理員的配置失誤、再或是節點被黑客攻擊或更改了其中運行的軟件,但是由于地域分布問題,并不知道具體哪些是故障節點,也不知道故障的具體表現癥狀。而且,當規模較大時,節點因誤配或安全性較低而使這些問題更加明顯。尤其在跨多個管理域的系統中,由于缺乏總的管理域,上述問題會更加嚴重。這類多管理域的系統如提供網絡服務的DNS,NTP和SMTP等,再如信息系統,網格計算系統,Web Service和P2P系統等。
1 問責機制的基礎
針對上述問題,提出一種新的基于安全日志的“問責”方法加以解決。在一個具備問責機制的系統中,所有的節點行為都經過加密后被鏈接到相關的實施節點上。系統中維持一個安全記錄以記錄過去的行為,系統中的節點可以使用此記錄相互檢查以確定其正確性。
假定節點的行為正常稱之為正確節點,否則稱之為錯誤節點。
首先引出系統的模型如圖1所示。
如圖1所示,每個節點可以被建模為一個狀態機S、一個檢測機D、和一個應用A的模型。狀態機代表所有需要被問責機制檢測的服務或應用,而應用服務則代表其他的不需要被檢測的功能,如圖形用戶界面GUI[1]。檢測機是對問責機制的具體實現,它可以觀測到狀態機S的所有輸入和輸出,并且還可以與其他節點的檢測機通信。我們假設正確節點的狀態機S和檢測機D依照指定的規范實現,而錯誤的節點則可能表現出任意行為。
檢測機向其本地應用層報告其他節點的錯誤標示。通常,當節點i發現節點j具有異常行為時,就會發出exposed(j)信號。當節點i懷疑節點j未發送其本應該發送的消息時,就會發出suspected(j)對節點j表示置疑,其他情況則以trusted(j)來表示[2]。
2 問責機制的實現技術
問責機制的實現主要包含了安全日志、提交協議、一致性協議、審計協議、挑戰\回復協議、證據傳輸協議。
2.1 安全日志
為了強制實現“問責性”,系統必須為每個節點的輸入和輸出維持一條記錄,并且在記錄被篡改的情況下有能力檢測出來。使用一種只增型安全日志作為記錄工具[4]。
只增型安全日志是一個只允許增加的鏈表,該日志按時間先后順序記錄一個特定節點的狀態機的輸入和輸出。安全日志還包含狀態機的周期性快照和檢測機的部分注釋。每條日志記錄包括一個序列號[si]、一個類型[ti]、和特定類型的內容[ci],把它表示為[ei=(si,ti,ci)]。該序列號可以是非連續的,但必須是嚴格遞增的。我們可以使用時間戳來作為序列號。另外,每條記錄還包括一個遞歸定義的哈希值[hi],該哈希值可以表示為[hi=hash(hi-1sitihash(ci))],[其中]表示連接,哈希基值hash(i-1)已知。
日志的安全性由合成的哈希鏈(如圖2)和一個認證者集來確保。認證者是經節點的私鑰簽名后的聲明,它的日志條目具有相應的哈希值。以a來表示認證者,以[signj(arg)]表示用節點j的私鑰對參數arg進行簽名,則一個認證者[aji=signj(si,hi)]表示節點j簽名的聲明,且該認證者的記錄條目[ei]包含哈希值[hi]。
2.2 提交協議
必須確保一個節點的日志不能被加入一個未發生的日志條目,如一條它從未發送或接收的消息。同樣,也必須確保節點日志具有完整性,即日志應其包含節點發送或接收的所有消息,或者是來自其他正確節點的消息。
當節點i發送消息m到節點j時,節點i必須提交它發送過消息m,而節點j必須提交它接收到m。它們擁有一個認證者,該認證者由其他節點充當,并在消息中說明,認證者檢查相關的日志條目。記錄接收消息的日志條目里必須包含相應的認證者,因此,節點無法偽造它并未發送過的消息條目[5]。
仍以節點i向節點j發送一條消息m舉例,節點i首先創建一個日志條目([sk], SEND, {j,m}),然后將[hk-1],[sk]和[signk(skhk)]附到m上,再將結果發送至節點j。因此,節點j有足夠的信息計算出[hk],并提取出[aik],如果[aik]中的簽名無效,j將丟棄m。否則,j創建自己的日志條目([sl],RECV,{i,[sk],m}),并返回一個附有[hl-1],[sl]和[signl(slhl)]的應答。這使得節點i可以提取并驗證[ajl],如果i收到的應答無效,就會向j的證人節點發出挑戰請求。
2.3 一致性協議
如果節點i收到來自節點j的認證者,它必須再將認證者轉發至j的證人集[w(k)],因此,證人節點擁有所有節點j發送或接收的消息的可驗證證據[6]。每個證人節點[w∈w(j)]周期性的選取認證者及最小序列號和最大序列號并對節點j進行挑戰,以獲取節點j的所有處于該序列號范圍內的日志條目。如果節點j是正確的,這些日志條目將會構成一條線性的哈希鏈,該鏈包含所有其他認證者所持的哈希值。如果上述不滿足,證人w將持有j發生錯誤的確鑿證據。
最后,證人可以使用日志條目來提取所有的認證者,這些認證者來自其他節點且被節點j轉發至相關證人。這點是必要的,因為節點j可以與其他節點k共同發生錯誤,這樣,它可以轉發k的消息到證人集[w(k)]而不轉發k的驗證者[7]。
2.4 審計協議
可以利用節點的日志來檢查該節點的行為是否符合其參考實現。節點i的證人w周期性的檢查i的最近的認證者,然后對i發出挑戰以獲取自上次審計后的所有日志條目。然后證人w將新的日志條目添加到它對i的本地拷貝日志中[8]。
隨后,證人w在本地建立i的參考實現的實例,并用來自i的最近一次快照對實例進行初始化。然后,從這個快照處開始重播所有的輸入,并比較[Si]的輸出和該日志中記錄的輸出。
因為要求[Si]是確定的,所以任何不符都表示節點i是錯誤的[8]。這種情況下,證人w可以用[aik]和本地拷貝的下標作為針對節點i的可驗證證據,這樣,任意正確節點都可以檢查此證據。
2.5 挑戰/回復協議
如果節點對挑戰進行了回復,則該協議可以暴露錯誤節點。但是,如果節點并未回復挑戰或并未回復一個發送給它的消息,除非對同步性做一個強假設,否則我們無法區分一個節點是惡意的錯誤還是因為網絡的問題[9]。
當節點j發現節點i拒絕其合作時,將節點i的狀態標記為可疑并對節點i發起挑戰。挑戰必須包含有足夠的證據使其他節點相信,如果節點i是正確的那么它會回復挑戰。然后節點j將挑戰發送至i的證人集,證人再將挑戰發送至節點i。如果節點i對此不予回復,則證人指出節點i是可疑節點。
挑戰的方式有兩種:
(1) 審計挑戰:審計挑戰有2個認證者組成,[aik]和[ail](k (2) 發送挑戰:發送挑戰由一條簡單的消息m和由一致性協議附加的額外信息組成。通過提取和檢查消息m中的認證者,任意正確的節點都確信節點i必須對m進行應答。如果節點i是正確的且從未收到過m,則i可以接受m并返回一個應答。如果i已經收到過m,則它可以簡單的重發一下之前的應答即可。 2.6 證據傳輸協議 為了確保所有正確的節點最終都能對錯誤節點做出一致的指證,即持有相同的證據,其中包括相同的審計集和相同的挑戰信息,允許每個節點i周期性的獲取由其他節點j的證人收集到的挑戰。在大多數實際的情況中,節點i可能只關心對與它進行直接或間接通信的節點的控告[10]。 如果一個正確的節點i擁有對另一個節點j的挑戰,則它的檢測機指示suspected(j)。在此狀態下,如果i收到一條來自j的消息,則i對j進行挑戰[11]。一旦i收到對未判定信息的挑戰的有效回復,則i的檢測機重新指示為trusted(j)。如果節點i擁有關于節點j行為異常的證據,則節點i的檢測機發出exposed(j)。 3 結 果 在NS?3模擬環境下將問責機制在一個覆蓋多播環境下進行了仿真實驗,實驗模擬了單一源點向多個節點發送數據流的情形,因為源節點可能沒有足夠的帶寬或資源為所有的節點發送流,所以需要所有的節點參與其中,將自己收到的數據進行轉發,以達到對源節點負載均衡的目的。這樣,中間節點就有機會對轉發數據進行篡改或不進行轉發。 仿真環境的規模為100個節點,并手動的注入了一定數目的錯誤節點,設置了2條多播,每條只有一個源節點,50個客戶節點,每個節點設計2個證人節點。在沒有使用問責機制的情況下,錯誤節點不轉發或對數據進行隨機篡改,數據完整性無法保證,鏈路利用率低。使用問責機制后,數據完整性和鏈路利用率都有明顯提高。
4 結 語
本文討論分布式系統下錯誤檢測的難點所在和需要解決的問題,并提出一種新的解決方法,即問責機制,通過問責可以確保表現錯誤的節點最終能被至少一個正確的節點指證出來,同時保證正確的節點不被誣告。問責機制需要的一系列條件限制了它只能在規模適度的環境下使用,除非犧牲部分完整性,一旦滿足了這些條件,問責機制就可以在較大規模的網絡環境下使用了。
參考文獻
[1] 潘愛民.計算機網絡[M].4版.北京:清華大學出版社,2004.
[2] 張千里.網絡安全新技術[M].北京:人民郵電出版社,2003.
[3] 高永強.網絡安全技術與應用[M].北京:人民郵電出版社,2003.
[4] 陳魯生.現代密碼學[M].北京:科學出版社,2002.
[5] 韓海東.入侵檢測系統實例剖析[M].北京:清華大學出版社,2002.
[6] 劉洪斐,王灝,王換招.一個分布式入侵檢測系統模型的設計[J].微機發展,2003(1):92?95.
[7] ARGYRAKI K, MANIATIS P, IRZAK O, et al. An accountability interface for the Internet [R/OL]. [2007?08?10].http://www.infoscience.epfl.ch/record/109957.
[8] BARKER E, BARKER W, BURR W, et al. Recommendation for key management [R/OL]. [2005?08?12].http://csrc.nist.gov/publications/nistpubs/800?57/SP800?57?Part1.
[9] BARRINGER H, GOLDBERG A, HAVELUND K, et al. Rule?based runtime verification [J]. Lecture Notes in Computer Science, 2004, 2937: 44?57.
[10] BAZZI R A, NEIGER G. Simplifying fault?tolerance: providing the abstraction of crash failures [J]. Journal of ACM, 2001, 48(3): 499?554.
[11] BRACHA G. Asynchronous Byzantine agreement protocols [J]. Information and Computation, 1987, 75(2): 130?143.
[12] 陽萬安,李振,李彥,等.無線分布式系統中基于移動Agent的日志分析[J].現代電子技術,2007,32(10):91?93.
4 結 語
本文討論分布式系統下錯誤檢測的難點所在和需要解決的問題,并提出一種新的解決方法,即問責機制,通過問責可以確保表現錯誤的節點最終能被至少一個正確的節點指證出來,同時保證正確的節點不被誣告。問責機制需要的一系列條件限制了它只能在規模適度的環境下使用,除非犧牲部分完整性,一旦滿足了這些條件,問責機制就可以在較大規模的網絡環境下使用了。
參考文獻
[1] 潘愛民.計算機網絡[M].4版.北京:清華大學出版社,2004.
[2] 張千里.網絡安全新技術[M].北京:人民郵電出版社,2003.
[3] 高永強.網絡安全技術與應用[M].北京:人民郵電出版社,2003.
[4] 陳魯生.現代密碼學[M].北京:科學出版社,2002.
[5] 韓海東.入侵檢測系統實例剖析[M].北京:清華大學出版社,2002.
[6] 劉洪斐,王灝,王換招.一個分布式入侵檢測系統模型的設計[J].微機發展,2003(1):92?95.
[7] ARGYRAKI K, MANIATIS P, IRZAK O, et al. An accountability interface for the Internet [R/OL]. [2007?08?10].http://www.infoscience.epfl.ch/record/109957.
[8] BARKER E, BARKER W, BURR W, et al. Recommendation for key management [R/OL]. [2005?08?12].http://csrc.nist.gov/publications/nistpubs/800?57/SP800?57?Part1.
[9] BARRINGER H, GOLDBERG A, HAVELUND K, et al. Rule?based runtime verification [J]. Lecture Notes in Computer Science, 2004, 2937: 44?57.
[10] BAZZI R A, NEIGER G. Simplifying fault?tolerance: providing the abstraction of crash failures [J]. Journal of ACM, 2001, 48(3): 499?554.
[11] BRACHA G. Asynchronous Byzantine agreement protocols [J]. Information and Computation, 1987, 75(2): 130?143.
[12] 陽萬安,李振,李彥,等.無線分布式系統中基于移動Agent的日志分析[J].現代電子技術,2007,32(10):91?93.
4 結 語
本文討論分布式系統下錯誤檢測的難點所在和需要解決的問題,并提出一種新的解決方法,即問責機制,通過問責可以確保表現錯誤的節點最終能被至少一個正確的節點指證出來,同時保證正確的節點不被誣告。問責機制需要的一系列條件限制了它只能在規模適度的環境下使用,除非犧牲部分完整性,一旦滿足了這些條件,問責機制就可以在較大規模的網絡環境下使用了。
參考文獻
[1] 潘愛民.計算機網絡[M].4版.北京:清華大學出版社,2004.
[2] 張千里.網絡安全新技術[M].北京:人民郵電出版社,2003.
[3] 高永強.網絡安全技術與應用[M].北京:人民郵電出版社,2003.
[4] 陳魯生.現代密碼學[M].北京:科學出版社,2002.
[5] 韓海東.入侵檢測系統實例剖析[M].北京:清華大學出版社,2002.
[6] 劉洪斐,王灝,王換招.一個分布式入侵檢測系統模型的設計[J].微機發展,2003(1):92?95.
[7] ARGYRAKI K, MANIATIS P, IRZAK O, et al. An accountability interface for the Internet [R/OL]. [2007?08?10].http://www.infoscience.epfl.ch/record/109957.
[8] BARKER E, BARKER W, BURR W, et al. Recommendation for key management [R/OL]. [2005?08?12].http://csrc.nist.gov/publications/nistpubs/800?57/SP800?57?Part1.
[9] BARRINGER H, GOLDBERG A, HAVELUND K, et al. Rule?based runtime verification [J]. Lecture Notes in Computer Science, 2004, 2937: 44?57.
[10] BAZZI R A, NEIGER G. Simplifying fault?tolerance: providing the abstraction of crash failures [J]. Journal of ACM, 2001, 48(3): 499?554.
[11] BRACHA G. Asynchronous Byzantine agreement protocols [J]. Information and Computation, 1987, 75(2): 130?143.
[12] 陽萬安,李振,李彥,等.無線分布式系統中基于移動Agent的日志分析[J].現代電子技術,2007,32(10):91?93.