• 沒有找到結果。

網路安全協定的安全性

第二章 網路安全協定概論

2.4 網路安全協定的安全性

經過基本的介紹後,我們對網路安全協定有了一定的瞭解。接著我們就來探 討它有可能發生的問題,藉由知道網路安全協定遭受的問題及對應的攻擊方法,

在有所認知之後,才能開始思考如何解決這些問題的辦法。

網路基本攻擊法概述

在探討網路安全協定的攻擊法之前,在網路安全,基本假設攻擊者所具有的 基本攻擊能力,有以下四種 :

1. 阻斷(Interrupt)︰利用各種攻擊方法癱瘓電腦系統或者讓使用者要存 取的資料無法使用。這是針對資料的可利用性加以攻擊。

2. 攔截(Interception)︰一個非法的第三者在網路上竊取他人在網路上 溝通傳送的資料。這是針對資料的機密性加以攻擊。

3. 修改(Modification)︰一個非法的第三者不僅從網路中竊取資料,並 將資料加以修改,再傳送給原本的接收者,試圖欺騙之。這是針對資料的完 整性加以攻擊。

4. 捏造(Forgery)︰一個非法的第三者擅自偽造資料,並假裝是某位合法 使用者的身分,將資料傳給欲欺瞞的對象。這是針對資料的確實性加以攻擊。

看過了基本攻擊者的能力,接著針對網路安全協定,我們介紹到目前為 止被提出來的各種漏洞。根據Ulf Carlsen 於1994年提出的論文[12],大 致可以劃分為如下面幾種漏洞:

1. 基本型漏洞 (Elementary flaws)

這類型的漏洞發生在早期網路剛開始使用時,主要是忽略了在網路上傳 輸時,忘記重要的資料要利用加密法保護,而遭攻擊者擷取重要資訊,現 在這一類型的錯誤已經很少發生。

如果我們一般常用的電子佈告欄系統(BBS),當我們要傳送帳號與密碼 皆是利用明文傳送,即會遭受此種攻擊。

2. 密碼猜測漏洞 (Password-guessing flaws)

這類漏洞主要算是加密方法不夠強大,抵禦能力不足,可能在現代高 速的電腦計算能力之下,在不常的時間內即被破解,或者是使用者採用了 長度過短或一般常見的單字來當密碼,讓攻擊者利用暴力法或字典攻擊法 的方法猜測出加密金鑰,進而對整個網路安全協定產生危害,導致原本看 似正確無誤的網路安全協定出現問題。

3. 時效性漏洞 (Freshless flaws)

這類型的漏洞,主要發生在某些網路安全協定,某個參與者無法驗證 他所接收到訊息是否是本回合協定溝通中由對方產生且傳送給他的,還是 某個惡意第三者利用其之前擷取並且儲存下來的訊息傳送給他,導致參與 者誤判,對系統造成危害。我們看下面的一個例子:

1. A->S : A, B, N

a

2. S->A : {N

a

, B, K

ab

, {K

ab

, A}K

bs

}K

as

3. A->B : {K

ab

, A}K

bs

4. B->A : {N

b

}K

ab

5. A->B : {N

b

-1}K

ab

圖 2.2 The Needham-Schroeder protocol

這個例子中,我們可以很明顯的發現Message3沒有任何資訊可以驗證 此訊息是否為新鮮的(Fresh),所以攻擊者可以將一封訊息三擷取並且儲存 下來,再利用密碼學方法破解取得Kab,之後若A和B還有在利用此安全協定 進行溝通,喬裝成A傳送訊息三給B,造成B的誤認。安全協定即沒達到原本 的目的,這就是沒有注意時效性的漏洞。

4. 神諭使漏洞 (Oracle flaws)

這算是最複雜的一種漏洞,也算是所以漏洞中非常難分析的一種,變 形的攻擊很多,因此很難預防,但隨著檢驗的技術不斷推陳出新,我們已 經能較為有效的偵測出這種缺點。

*本漏洞有許多別名,將他們列出來有助瞭解(僅列出英文):

Parallel session attacks, Reflection attacks, Multi-role flaws。

本漏洞主要是利用網路安全協定交換訊息的過程,攻擊者藉由扮演特定 參與者身分,且利用多次的安全協定溝通,得到特定的機密資訊,即使該 資訊有受到完美的加密演算法所保護。我們可以參考下面的例子:

1. A->B : {M}K

a

2. B->A : {{M}K

a

}K

b

3.

A->B : {M}K

b

圖 2.3 The simple Three pass protocol

這是一個很簡略的三步驟式協定,並且我們假設{{M}Ka}Kb = {{M}Kb}Ka, 現在如果有位參與者Alice扮演A的腳色想要和Eve溝通(如此一來,Eve扮演 著B的角色),但攻擊者Bob冒充了Eve,則會出現以下的攻擊模式:

1. Alice->Eve

Bob

: {M}Ka 2. Eve

Bob

->Alice : {M}Ka

3.

Alice->Eve

Bob

: M

圖 2.4 Single-role oracle attack on the protocol

由上圖,第二步驟時Bob沒按照規則傳送訊息二,反而傳送{M}Ka,而 Alice接收到時,按照規則將訊息二用金鑰Ka解密傳送回去,這樣一來明顯 變成傳送明文,導致原本機密的資料就此洩漏出去。

5. 類別漏洞 (Type flaws)

這類型的漏洞,現在在實做上通常都已經能夠避免了,而且已經有提 出許多良好的設計方法,可以使設計出來的安全協定不會遭受到此種漏 洞,但這是一個相當經典的漏洞,攻擊法也相當的漂亮,值得我們好好探 討一翻,或許將來會有利用這方法為基礎,延伸出來的新攻擊法。

本方法主要利用某些網路安全協定在實做沒有詳細檢查收到訊息的類 別,導致在攻擊者精心設計之下,把某類型的資訊誤認為另一種類型的資 訊,導致網路安全協定出現問題。(通常是讓參與者把Nonce或Identity誤 認為Key)

我們參考以下經典的例子:

1. A->B : M, A, B, {N

a

, M, A, B}K

as

2. B->S : M, A, B, {N

a

, M, A, B}K

as

, {N

b

, M, A, B}K

bs

3. S->B : M, {N

a

, K

ab

}K

as

, {N

b

, K

ab

}K

bs

4.

B->A : M, {N

a

, K

ab

}K

as

圖 2.5 Otway-Rees protocol

這個安全協定每個加密訊息,看似包含了許多資訊,難以利用之前所講 的神諭使攻擊法攻破,但卻有個極大的類別漏洞。攻擊如下:

1. A -> E

b

: M, A, B, {N

a

, M, A, B}K

as

2.

E

b

-> A : M, {N

a

, M, A, B}K

as

圖 2.6 Attacking the Otway-Rees protocol

當攻擊者收到A傳來的訊息一時,即回傳訊息四給A,而若沒有檢查訊息 類別的實做情形下,A會將M, A, B 三個訊息總和當成Kab,如此一來攻擊 者之後就可以把M, A, B總和當成金鑰和A溝通,這可說是非常精簡有力的 攻擊法。

6. 內部漏洞 (Internal flaws)

內部漏洞主要發生在實做時,除了協定訊息的傳送外,缺乏做一些本 機該做的檢查所導致。

如圖2.3,當A在傳送訊息三之前,因該要先檢查訊息三是一封加密的訊 息,如此一來就不會遭受神諭使攻擊法的攻擊。設計網路安全協定,應該 明確的規範每個本機端內部的行為,如此一來,可以大大減少發生各種漏 洞的機會。

7. 加密演算法漏洞 (Cryptosystem-related flaws)

這點和密碼猜測漏洞很有關係,設計不良的加密演算法很容易被密碼 猜測法攻破,除了之外有些安全協定會在傳送的訊息中,利用XOR之類的函 式組合一些訊息,但是若設計不當很可能遭受攻擊者使用一些精妙的技巧 推出原本隱密的訊息。所以在設計與加密有關的部份時需要慎重的考慮。

相關文件