GB | BIG5
|
| 首頁 > 安全技術 > 網絡 > 正文 |
 |
| 安全協議淺談 |
| http://www.ccw.com.cn 左曉棟 (2001-04-19 15:36:07) |
1.安全協議的基本概念
首先需要指出,本文所指的安全協議特指使用密碼學技術的密碼協議(cryptographic protocol)。所謂協議,就是兩個或者兩個以上的參與者為完成某項特定的任務而採取的一系列步驟。這個定義包含三層含義:
1) 協議自始至終是有序的過程,每一個步驟必須執行,在前一步沒有執行完之前,面的步驟不可能執行;
2) 協議至少需要兩個參與者;
3) 通過協議必須能夠完成某項任務。
密碼協議是使用密碼學技術的協議,協議的參與者可能是可以信任的人,也可能是攻擊者和完全不信任的人。密碼協議包含某種密碼算法。在網絡通信中最常用的、基本的密碼協議按照其完成的功能可以分成以下三類:
1) 密鑰交換協議
一般情況下是在參與協議的兩個或者多個實體之間建立共享的秘密,通常用建立在一次通信中所使用的會話密鑰。協議可以採用對稱密碼體制,也可以採用非對稱密碼體制,例如Diffie-Hellman密鑰交換協議。
2) 認証協議
認証協議中包括實體認証(身份認証)協議、消息認証協議、數據源認証和數據目的認証協議等,用來防止假冒、篡改、否認等攻擊。
3) 認証和密鑰交換協議
這類協議將認証和密鑰交換協議結合在一起,是網絡通信中最普遍應用的安全協議。常見的有Needham-Schroeder協議、分布認証安全服務(DASS)協議、ITU-T X.509認証協議等等。
2.安全協議的安全性
安全協議是許多分布式系統安全的基礎,確保這些協議的安全運行是極為重要的。大多數安全協議只有為數不多的幾個消息傳遞,其中每一個消息都是經過巧妙設計的,消息之間存在著復雜的相互作用和制約;同時,安全協議中使用了多種不同的密碼體制,安全協議的這種復雜的情況導致目前的許多安全協議存在安全缺陷。造成協議存在安全缺陷的原因主要有兩個:一是協議設計者誤解或者採用了不恰當的技術;二是協議設計者對環境要求的安全需求研究不足。因此,對協議的安全性進行分析和研究是一個重要的課題。
由實際應用的安全協議產生缺陷的原因是多種多樣的,所以很難有一種通用的分類方法將安全協議的安全缺陷進行分類。S. Gritzalis和D. Spinellis根據安全缺陷產生的原因和相應的攻擊方法對安全缺陷進行了分類:
基本協議缺陷
是指在安全協議的設計中沒有或者很少防范攻擊者的攻擊。
口令/密鑰猜測缺陷
這類缺陷產生的原因是用戶往往從一些常用的詞中選擇其口令,從而導致攻擊者能夠進行口令猜測攻擊;或者選取了不安全的偽隨機數生成算法構造密鑰,使攻擊者能夠恢復該密鑰。
陳舊(stale)消息缺陷
主要是指協議設計中對消息的新鮮性沒有充分考慮,從而使攻擊者能夠進行消息重放攻擊,包括消息源的攻擊、消息目的的攻擊等等。
並行會話缺陷
協議對並行會話攻擊缺乏防范,從而導致攻擊者通過交換適當的協議消息能夠獲得所需要的信息。包括並行會話單角色缺陷、並行會話多角色缺陷等等。
內部協議缺陷
協議的可達性存在問題,協議的參與者中至少有一方不能夠完成所有必須的動作而導致的缺陷。
密碼系統缺陷
協議中使用的密碼算法和密碼協議導致協議不能完全滿足所要求的機密性、認証等需求而產生的缺陷。
安全協議的安全性是一個很難解決的問題,許多廣泛應用的安全協議來都被發現存在安全缺陷。因此,從安全協議的分析和設計角度來看,我們都不能夠存在輕信和盲從心理,而應當對協議的安全性作出認真的分析。
3.安全協議的分析
目前,對安全協議進行分析的方法主要有兩大類:一類是攻擊檢驗方法;一類是形式化的分析方法。
所謂攻擊檢驗方法就是搜集使用目前的對協議的有效攻擊方法,逐一對安全協議進行攻擊,檢驗安全協議是否具有抵抗這些攻擊的能力。在分析的過程中主要使用自然語言和示意圖,對安全協議所交換的消息進行剖析。這種分析方法往往是非常有效的,關鍵在攻擊方法的選擇。
形式化的分析方法是採用各種形式化的語言或者模型,為安全協議建立模型,並按照規定的假設和分析、驗証方法証明協議的安全性。目前,形式化的分析方法是研究的熱點,但是就其實用性來說,還沒有什突破性的進展。
近幾年來,密碼學家提出了許多關安全協議的形式化分析方法,以檢驗協議中是否存在安全缺陷。總的來說,協議的形式化分析技術可以概括為四大類:
<類型1> 使用通用的、不是為分析安全協議專門設計的形式化描述語言和協議校驗工具建立安全協議的模型並進行校驗。
其主要思想是將安全協議看作一般的協議,並試圖証明協議的正確性。採用的工具和模型與驗証一般協議的類似,例如使用有限狀態圖、Petri網模型、LOTOS語言等等。這種方法的一個主要缺點是僅証明協議的正確性而不是安全性。
<類型2> 安全協議的設計者設計專門的專家系統來制定協議的校驗方案並進行協議檢驗,從而對協議的安全性作出結論。
其主要思想是根據協議的設計開發專用的專家系統,使用專家系統發現協議是否能夠達到不合理的狀態(比如密鑰的泄露等等)。這種技術能夠很好的識別缺陷但是不能証明協議的安全性,也不可能發現未知的缺陷。
<類型3> 使用基知識和信念的邏輯來建立所分析的協議的安全需求模型。
這種方法是目前為止使用最廣泛的一種方法,最名的是BAN邏輯。BAN邏輯是一個形式邏輯模型,進行基知識和信任的分析。BAN邏輯假設認証是完整性和新鮮度的函數,使用邏輯規則來對協議的屬性進行跟蹤和分析。一般來說,BAN邏輯只能推出認証的結果,而不能對一般的安全性進行証明。
使用BAN邏輯分析安全協議的步驟如下:
(1) 協議的理想化轉化
(2) 假設所有的協議初始狀態
(3) 使用邏輯規則對系統的狀態作出斷言
(4) 運用邏輯原理得到關信任的斷言
<類型4> 基密碼學系統的代數特性開發協議的形式化模型
這種方法是將安全協議系統當作一個代數系統模型,表示出協議的參與者的各種狀態,然分析某種狀態的可達性。Michael Merritt已經証明了代數模型可以用來分析安全協議。美國海軍研究實驗室(Navy Research Lab.)開發的協議分析器是這種方法中最成功的一個應用,可以用來在各種協議中尋找新的和已知的缺陷。
安全協議的形式化分析方法本身是研究的熱點,但是其應用並不是非常廣泛,主要原因是安全協議的安全性的形式化過程比較困難。
需要指出的是,由安全協議本身的復雜性,目前並沒有一種方法能夠給出安全協議安全性的充分而且必要的理論証明。上述每一類方法都有不同的側重點,或者說或多或少地存在不足之處,我們在使用上述方法分析安全協議的時候,應當仔細分析協議的特點、應用環境和需求,綜合使用這些分析方法,以得到一個比較合理的結果。
(http://www.fanqiang.com)
進入【UNIX論壇】
|
|
| 相關文章 |
|
|
|
|
 |
★ 樊強制作 歡迎分享 ★ |