密碼協議
出自 MBA智库百科(https://wiki.mbalib.com/)
密碼協議(Cryptographic Protocol)
目錄 |
密碼協議,也稱安全協議,一般是指在大型公眾網路上,多人參與並憑藉其達到秘密信息交換,和確定信息完整性的方法。一般而言,密碼學中所有的密碼系統,例如密鑰分配系統、數字簽名認證系統、秘密共用系統,均可稱為密碼協議。密碼協議為網路提供安全服務,是網路安全的基本保障。近年來,隨著Internet的飛速發展,網路上越來越多的數據傳輸和交易都需要密碼協議的保障和支持。
密碼協議的目的不僅僅是為了簡單的秘密性,參與協議的各方可能為了計算一個數值需要共用它們的秘密部分、共同產生隨機序列、確定互相的身份、或同時簽署合同等。
密碼協議的內容[1]
認證協議是一個認證過程,是兩方或多方通信實體為達到向對方證明自己擁有某種屬性進行的一系列步驟。認證協議可以分為三個子類型:數據源認證、實體認證、密鑰建立的認證。
1、數據源認證
數據源認證與數據完整性認證無法完全隔離開來,邏輯上來講,被篡改過的消息可以認為不是來自最初消息源。不過,這兩個概念差別很大,且用途功能不同。數據源認證協議包含以下特征。
(1)包含從某個聲稱的消息源到接收者的傳輸過程,該接收者在接收時會驗證消息。
(2)接收方執行消息驗證的目的在於確認消息發送者的身份,防比敵手冒充合法用戶發送消息。
(3)接收方執行消息驗證的目的還在於確認收到的消息是否完整(離開消息源之後沒有被篡改)。
(4)驗證的進一步目的是驗證消息的鮮活性(消息是否第一次從正確的消息源被髮送出來的)。
2、實體認證
所謂實體認證指的是依照認證協議進行通信的一個過程,基於實體認證技術,一個通信實體可以向另一個通信實體證實自己的身份並得到對方的確認。認證協議的一個重要目標就是實體認證。
3、密鑰建立認證協議
認證密鑰建立協議主要實現以下功能:為參與某具體協議的若幹個參與者實現身份認證,併為這些參與者建立一個新的共用密鑰,用於後續的安全通信。作為應用最為廣泛的網路通信協議之一,認證密鑰建立協議所生成的會話密鑰可以構建安全通道,保證應用層上的後續通信的安全。當然,該協議也可以與公鑰密碼體制一起使用,同時實現機密性和認證性。密鑰建立協議通常分為密鑰分發協議和密鑰交換協議(或密鑰協商)等。我們經常用到的認證密鑰協議包括Kerboro、認證協議、Needham-Schroeder認證協議等。在密鑰建立協議中會包含對實體認證和數據源認證。認證協議也可用於無線網路中安全切換認證,在無線網路中,一個終端用戶可能由於實際通信需求,需要切換到另一個基站所覆蓋的範圍內,這個用戶就需要和新的接入點進行相互認證和密鑰協商。
在密碼技術領域中,認證協議會而臨多種攻擊方法,這就是認證協議的安全性問題難以解決的原因所在。對認證協議或認證的密鑰建立協議的成功攻擊,通常並不是指攻破該協議的密碼演算法,相反,它通常是指攻擊者能夠以某種未授權並且不被察覺的方式獲得某種密碼信任證件或者破壞某種密碼服務,同時不用破環某種密碼演算法。這是由於密碼設計的錯誤而不是密碼演算法的問題。密碼協議而臨的典型攻擊眾多。
1、消息重放攻擊
攻擊者預先記錄某個協議先前的某次運行中的某條消息,然後在該協議新的運行中重放(重新發送)記錄的消息,由於認證協議的目標是建立通信方之間的真實通信,並且該目標通常是通過多方直接交換新鮮的消息來實現,所以協議之間的消息重發會導致通信方的錯誤判斷,從而導致通信者之間的不真實的通信,且通信者察覺不到。
2、中間人攻擊
中間人攻擊在本質上眾所周知的“象棋大師問題”,它主要針對缺乏雙方認證的通信協議中,在攻擊過程中,攻擊者能夠把協議的參與者所提出的困
難問題提交給另一個參與者來回答,然後把答案交給原來提問者,反之亦然。
3、平行會話攻擊
在攻擊者的安排下,一個協議的多個運行併發執行,在此過程中,攻擊者能夠從一個運行中得到另外某個運行中的困難問題答案,從而達到攻擊的目的。
4、交錯攻擊
某個協議的兩次獲多次運行在攻擊者的特意安排下按交織的方式執行。在這種模式下,攻擊者可以合成其需要的特定消息併在某個運行中進行傳送,以便得到某主體應答消息,此應答消息又被用於另外運行的協議中,如此交錯運行,最終達到其攻擊目的。
在協議的攻擊類型中,還有其它更多的攻擊方法,比如姓名遺漏攻擊、類型缺陷攻擊、密碼服務濫用攻擊等。對密碼協議的攻擊無法窮盡,除了人們發現或己知的很多攻擊之外,可能還存在很多人們沒有發現的潛在攻擊。由上述針對各種密碼協議的攻擊方法來看,密碼協議所而臨的攻擊方式是通常是多種多樣的,常常會以令人非常吃驚的方式出現。如何設計安全的密碼協議或如何檢測一個密碼協議是否安全是密碼技術中的一個嚴峻課題。
密碼協議的分析方法概述[1]
由於認證協議會而臨諸多己知攻擊及未知的攻擊,因此,針對認證協議的安全性分析也成為密碼研究中的一個特別重要的研究方向。目前已經有的關於安全協議的分析方法主要可以歸納為4種。
1、基於邏輯推理的分析方法
1989年,BAN邏輯成為邏輯分析的典型代表。作為一個開創性工作,BAN邏輯首次對基於邏輯推理所設計的密碼協議進行了形式化分析。在BAN邏輯中,各個參與者在最初始時刻的知識有了形式化定義,參與者的職責也同樣得到了形式化。BAN邏輯通過信息的發送和接收等協議步驟可以得到新知識,再利用推理規則獲取最終的知識。當協議執行完成後,如果最終得到的知識和信任語句集中沒有目標知識和信任的相應語句時,就表明所設計的協議是不安全的,存在缺陷。具體的邏輯分析步驟如下。
(1)協議理想化:通過BAN邏輯語言對實際協議的所有步驟進行描述。
(2)確定初始假設:協議運行開始時的信仰假設和狀態假設。
(3)確定斷言:所謂確定斷言就是將相關邏輯公式附加給協議的語句。
(4)邏輯化推理:所謂邏輯化推理就是利用推理規則,基於假設和斷言來得到參與者最終的信仰。最後,對最終得到的邏輯結果判斷,檢查所設計的協議是否達到設計之初的目標。
2、基於模型檢驗的分析方法
模型檢驗技術是一種適用於有限狀態系統的自動化分析技術,實際上也是密碼協議的一種自動驗證工具。從協議的初始狀態開始,模型檢驗(Model Checking)技術就對協議主體和潛在攻擊者的所有可能的執行路徑進行狀態搜索,以確定是否存在錯誤狀態。這種技術方法進行密碼協議分析建模是以進程代數、Dolev-Yao模型等為理論基礎的。1996年,基於通信順序進程(Communication Sequential Processes, CSP)方法和模型檢驗技術,Lowe實現了密碼協議的形式化分析。基於CSP模型以及CSP模型的失敗差異細化(Failures-Diver-gences Refinement, FDR)檢驗工具,Lowe對Needham-Schroeder認證協議進行了分析,併發現了針對該協議的一個可行的攻擊。其它類似的方法包括Interrogator系統、FDR模型檢驗工具和NRL(Naval Research Laboratory)協議分析器等。模型檢驗技術需要而臨的難題是如何恰當地把安全協議用對應的分析語言描述。由於該方法是一種狀態搜索的過程,當協議稍微複雜時,會而臨狀態爆炸問題。此外,這種方法的分析過程與攻擊者能力的刻畫和密碼協議的形式化都緊密相關,而攻擊者的行為方式卻在不斷地發展變化。
3、基於定理證明的分析方法
就基於定理證明的分析方法來說,串空間(Strand Space)方法非常重要。串空間方法是Thayer、 Herzog和Guttman於1998年提出並用於密碼協議分析的。多個strand的集合構成串空間,strand是一個線性結構,由發送和接收的消息組成,是協議主體或者攻擊者的行為事件的一個序列。對於協議的一個誠實主體而言,已在協議一次運行中的行為可以基於一個Strand來表示,不同strand表示不同主體的行為。特別地,一個主體在某個時間段里參加了多次協議運行也用不同的strand來表示。對於攻擊者而言,它所獲知的消息的發送和接收行為共同組成其、trand中的行為。
4、密碼學可證明安全性分析方法
該方法使用現代密碼學中可證明安全性的理論,在複雜性理論的框架下提供協議安全證明,是一種規約式證明,把協議的安全性規約到某特定的已知難題。在一些特定框架下能夠給出密碼協議的安全性證明。