史萊姆論壇

史萊姆論壇 (http://forum.slime.com.tw/)
-   網路軟硬體架設技術文件 (http://forum.slime.com.tw/f133.html)
-   -   (安全知識)Bob、Alice、數位證書和IPSec (http://forum.slime.com.tw/thread99009.html)

psac 2004-03-08 01:48 PM

(安全知識)Bob、Alice、數位證書和IPSec
 
網路安全中最知名的人物大概就是Bob和Alice了,因為很多安全原理闡述中都用這兩個虛擬人物來進行實例說明。

我們先來看看Bob是怎麼從CA中心獲得一個數位證書的:

1、Bob首先新建他自己的密鑰對(key pair),包含公鑰和私鑰;

2、Bob通過網路把他的公鑰送到CA中心,公鑰中包含了Bob的個人鑒別訊息(他的名字、地址、所用設備的序列號等等)。這些訊息是證書所必需的;

3、這個證書申請在CA中心服務器上會一直處於等待(pending)狀態,直到CA中心的某人開始處理Bob的請求;

4、在CA中心的某人鑒定並確認了Bob確實是那個提交公鑰的人。為了確定Bob和密鑰之間的對應關係,這個確認過程會通過某種人和人之間、帶外的方式進行;

5、Bob定期地對CA服務器進行查詢,希望他的證書申請過程能完成並已可取回;

6、CA中心新建並簽署一個包含Bob的公鑰及個人訊息的證書,從而保證密鑰的確實性;

7、Bob查詢CA服務器,發現證書已準備好,馬上下載證書並將證書存儲起來;

8、Bob現在可以使用證書來發佈他的公鑰,而其他使用Bob證書的人可以通過檢驗CA中心的簽名(檢驗CA簽名需要CA的公鑰)來驗證證書的確實性。

下面我們來看看Alice和Bob是怎麼驗證訊息的完整性的

現假設Alice發送訊息給Bob,Bob怎樣確認這個訊息未被篡改呢?

1、Alice和Bob為了驗證在他們之間的資料的完整性,約定使用同一種散列(hash)算法;

2、Alice和Bob約定使用一個只有他們兩個才知道的共享密鑰(shared key);

3、Alice要送給Bob一個訊息,訊息內容為「Hello!」;

4、Alice為這個訊息新建一個散列值。散列計算過程會將訊息內容「Hello!」和共享密鑰做為輸入,算法的輸出值就是散列值。

5、Alice把訊息內容和她算好的散列值發送給Bob;

6、Bob接收到訊息後對訊息進行他自己的散列值計算。計算過程會把收到的訊息內容和共享密鑰做為輸入,算法的輸出就是Bob的散列值;

7、Bob把自己算出來的散列值和從Alice收到的散列值進行對比。如果散列值是相符的,Bob就知道訊息在傳輸過程中沒有被更改過。任何對傳輸資料的更改都會導致Bob的散列值與Alice的散列值不一致。

下面我們來看看Alice和Bob間如何建立一個IPSec安全通道


現假設Alice需要建立一個到Bob處的IPSec安全通道,這中間發生了些什麼事呢?

1、Alice發起一個到Bob的IKE SA(Security Association),並請求協商一個他們之間應使用的transform set(不好譯,直接用了原文)。這個transform set指定了IKE SA所需的加密、散列及認證算法及其他訊息(如SA生存期等,SA生存期指定了SA的生存週期)。如果Bob支持Alice要求的transform set,協商過程繼續,否則,IKE SA協商失敗,不再會有其他的通訊產生;

2、Alice把她的數位證書發送給Bob。證書中包含了她的公鑰,同時數位證書保證了公鑰的真實性。Bob對自身公鑰的處理過程和Alice相同;

3、Alice和Bob相互之間交換Diffie-Hellman數位,這些數位已做數位簽名處理,交換D-H數位的目的是為了建立一個shared secret。D-H數位進行簽名處理的目的是為了通訊雙方能驗證彼此間的身份。否則的話攻擊者可以偽裝成Bob和Alice進行D-H交換——man-in-the-middle(中間人)攻擊;

4、Alice利用Bob的公鑰來驗證Bob D-H數位中的簽名(這個過程對Bob進行了認證)。Bob也做同樣的事情——利用Alice的公鑰來驗證Alice的D-H數位中的簽名;

5、Alice和Bob利用D-H密鑰交換算法計算出一個只有他們兩個之間才知曉的shared key(共享密鑰);

6、此時在Alice和Bob間已經建立起了IKE SA。資料可以在兩者間安全的進行傳輸,所使用的共享密鑰為第5步中建立起的共享密鑰、算法為IKE transform set中指定的算法;

7、Alice開始進行IPSec SA初始化,IPSec SA是用戶實際資料傳輸時使用的(注意分清IKE SA和IPSec SA的區別,IKE SA是用於管理目的,不用於用戶資料)。利用IKE SA做為一個安全信道,Alice開始為IPSec SA協商一個或多個transform set。她的每一個transform set中都為SA指定了一個安全協議(AH或ESP)和算法(散列和/或加密)。如果Bob能支持其中的一種transform set,協商過程繼續。否則IPSec SA協商失敗,不再會有其他的通訊產生;

8、Alice和Bob利用D-H密鑰交換算法為IPSec SA計算出一個共享密鑰。這個過程也提供了PFS功能:IPSec SA所使用的密鑰不能由IKE SA所使用的密鑰衍生得出;

9、Alice現在可以通過IPSec SA和Bob建立起安全的資料連接,所使用的共享密鑰為第8步中建立起的共享密鑰、算法為IPSec transform set中指定的算法;

10、IPSec SA由IKE來進行維護。在IPSec SA過期前,一個使用新密鑰的新SA會被新建起來,然後用戶通訊會無縫轉移到新的SA上。這就是IKE所提供的rekeying服務;

11、如果Bob需要發送資料,他必需初始化並建立起一個和Alice間的IPSec SA,因為IPSec SA是單向的,而IKE SA則是雙向的。


所有時間均為台北時間。現在的時間是 04:05 PM

Powered by vBulletin® 版本 3.6.8
版權所有 ©2000 - 2024, Jelsoft Enterprises Ltd.

『服務條款』

* 有問題不知道該怎麼解決嗎?請聯絡本站的系統管理員 *


SEO by vBSEO 3.6.1