第四章 系統介面與模擬結果
4.2 系統分析後的結果
在 4.1 節中我們以圖解說明了我們這個系統分析 Woo and Lam Authentication Protocol 的執行過程。因此在這一小節中會探討我們系統分析後得到的資料究竟 有什麼功用?
在圖 4.12 的 Hacker 區塊中有三類資訊。分別是 DirectAttack 的訊息、
pieceTogether 的訊息和 Relationship 的訊息。在這個例子中,DirectAttack 和 pieceTogether 的訊息是一樣。
B 在 2.3 裡要傳送給對方的{Nb}Kbs 攔截下來,這時候 Attacker 就已經成功 的取得了{Nb}Kbs 了。
最後 Attacker 將 1.4 裡 B 要傳送給受信任的第三者的資料攔截下來,接 著偽裝成受信任的第三者將 2.3 拿到的{Nb}Kbs 傳送給 B,而這時候 Attacker 也就成功的偽裝成 A 來跟 B 溝通了。
2. 第二個訊息是說找到第五個 Message 的{Nb}Kbs 和第三個 Message 的 {Nb}Kas 只有加密的 key 不一樣,所以可以經由多個 Run 來取得 {Nb}Kas。經由多個 Run 去取得{Nb}Kas 之後,認證協定也是會繼續執 行到第五個 Message。另外因為 Nb 是隨機的,所以第五個 Message 的 {Nb}Kbs 是無法利用其他 Run 取得第三個 Message 的{Nb}Kas,況且既 然是同一個 Run,Attacker 早在攔截下第三個 Message 的時候就已經成 功取得{Nb}Kas 了。因此拿第五個 Message 的{Nb}Kbs 去取得第三個 Message 的{Nb}Kas 是一件非常沒有意義的事情,所以這段訊息就不加 以理會。
z pieceTogether 的訊息:
1. 第一個訊息說明系統找到第三個 Messgae 的{Nb}Kas 和第五個 Message 的{Nb}Kbs 只有加密的 key 不一樣,所以可以經由多個 Run 來取得 {Nb}Kbs。在 4.1 節我們提到 pieceTogether 代表的是圖 3.2 右邊的圓,
而這個圓代表的意義在 3.3 節我們也提到用來分析的 Item 可以經由一個 或一個以上的 Run 取得。因此第三個 Message 的{Nb}Kas 可以找出一 個 Run 或一個 Run 以上來取得,當拿到之後再經由多個 Run 來成功取 得第五個 Message 的{Nb}Kbs。
流程如下:
1.1 I(M) -> B : M M 代表任何人 1.2 B - > I(M) : Nb
1.3 I(M) -> B : anything
1.4 B -> I(S) : {m, anything}Kbs
2.1 N -> I(O) : N N, O 代表任何人 2.2 I(O) -> N : Nb
2.3 N -> I(O) : {Nb}Kns
3.1 I(N) -> B : N N 指的是 2.1 的 N 3.2 B -> I(N) : Nb’
3.3 I(N) -> B : {Nb}Kns
3.4 B -> I(S) : {N, {Nb}Kns}Kbs 3.5 S -> I(B) : {Nb}Kbs
1.5 I(S) -> B : {Nb}Kbs
首先假設 Attacker 要攻擊 B,一開始 Attacker 偽裝成任何一個人跟 B 溝 通,當拿到 B 傳送過來的 Nb 後。接著只要有其他人(N)要跟別人(O)溝通的 時候,就偽裝成別人(O)將 B 的 Nb 傳送回去藉此拿到{Nb}Kns。
接著 Attacker 偽裝成 N 跟 B 溝通,並且將 2.3 拿到的{Nb}Kns 在 3.3 的 時候傳送給 B 一樣藉此拿到{Nb}Kbs。
最後將 3.5 拿到的{Nb}Kbs 回到原本的 Run 也就是 1.5 的時候傳送給 B,而此時 Attacker 也就成功的偽裝成他想偽裝的人來跟 B 溝通了。
在這個例子中,其實 2.1~2.3 和 3.1~3.5,Attacker 就已經可以成功的偽 裝成 N 來跟 B 溝通了,可是因為我們 pieceTogether 找出的是一個 Run 或一
個 Run 以上,所以才可以再加上 1.1~1.5 這樣多一個 Run 的攻擊方式。當然 如果要在多加一個 Run 甚至多個 Run 也是可以的。
在[7]一文中,也有提到類似這樣的攻擊方法,不過他們找到的攻擊方 法總共需要五個 Run 才可以攻破此認證協定,而我們的這個方法找到了只 需要三個 Run 就可以攻破的攻擊流程。
2. 第二個訊息是說找到第五個 Message 的{Nb}Kbs 和第三個 Message 的 {Nb}Kas 只有加密的 key 不一樣,所以可以經由多個 Run 來取得 {Nb}Kas。經由多個 Run 去取得{Nb}Kas 之後,認證協定也是會繼續執 行到第五個 Message。另外因為 Nb 是隨機的,所以第五個 Message 的 {Nb}Kbs 是無法利用其他 Run 取得第三個 Message 的{Nb}Kas,況且既 然是同一個 Run,Attacker 早在攔截下第三個 Message 的時候就已經成 功取得{Nb}Kas 了。因此拿第五個 Message 的{Nb}Kbs 去取得第三個 Message 的{Nb}Kas 是一件非常沒有意義的事情,所以這段訊息就不加 以理會。
z Relationship 的訊息:
1. 可以經由 Message 4 的資料取得 Message 5 的 "{Nb}Kbs" 這筆資料 2. 可以控制 Message 5 的 "{Nb}Kbs" 這筆資料
3. 可以經由 Message 3 的資料取得 Message 4 的 "{A, {Nb}Kas}Kbs" 這筆 資料
4. 可以控制 Message 4 的 "{A, {Nb}Kas}Kbs" 這筆資料
5. 可以經由 Message 2 的資料取得 Message 3 的 "{Nb}Kas" 這筆資料 6. 可以控制 Message 3 的 "{Nb}Kas" 這筆資料
從 2、4 和 6 我們可以知道這些資料都是可控制的資源,而從 1、3 和 5 可以知道經由上一個 Message 的所有 Item(因為他們都是可控制的資源)可以 取得該 Item。而且觀看認證協定我們可以發現,2、4 和 6 的這三個資料剛 好是認證協定的第五、第四和第三個 Message,也就是說如果今天要攻擊第 五個 Message 的"{Nb}Kas",除了從攔截下來的所有 Item 和可控制的資源中 找這個 Item 之外,只要取得第三個 Message 的"{Nb}Kbs"或第四個 Message 的"{A, {Nb}Kas}Kbs"就可以取得這個 Item 了,而這也就是 1、3 和 5 這三 個訊息彼此間的關係。