evo真人(中国)

文章橫幅PC版
文章橫幅iPad版
文章橫幅手機版

ssl握手協議四個階段

TIME:2019-01-11 16:17  click: 423 次 來源: 未知

SSL握手協議可以進行客戶端和服務器相互認證,並協商加密密鑰用戶保護SSL記錄層所發送的數據。實行握手協議分為4個階段。

1)第一階段:建立安全能力

這一階段由客戶端向服務器發起建立連接請求,然後服務器與客戶機進行消息交換,創建主密鑰在這個階段交換兩個信息,即Client Hello和Server Hello 信息。

客戶端發送的Client hello含以下內容:

(1)客戶端可以支持的SSL的最高版本號;

(2)客戶端生成的32位元組的隨機數;

(3)一個可變長度的會話標識符ID,非零值表示客戶端希望更新現有連接的參數,零值表示客戶端希望為這次會話建立一條新連接;

(4)客戶端可支持的密碼算法組合以優先選用遞減的順序給出;

(5)客戶端可以支持的壓縮方法列表。

服務器發送的ServerHello包含以下內容:

(1)一個版本號,選取客戶支持的最高版本號和服務器支持的最高版本號中的較低者;

(2)服務器生成的32位元組的隨機數;

(3)一個會話標識符ID,與客戶端發送的一致;

(4)從客戶端列表中選擇密碼算法;

(5)從客戶端列表中選擇壓縮方法。

SSL協議支持如下密鑰交換方法:

(1)RSA:密鑰用接收者的RSA公鑰加密;

(2)固定Diffie-Hellman:這是一個Diffie-Hellman密鑰交換過程,客戶端和服務器都可以準備固定的參數,然後它們可建立一個固定的Diffie-Hellman半密鑰,而這些半密鑰包含在用戶的公鑰證書里,因此,雙方可交換證書來取得固定密鑰;

(3)匿名Diffie-Hellman:該方法使用基本的Diffie-Hellman密鑰交換方法來取得密鑰,注意:該方法不進行認證,因此,易受到中間人攻擊;

(4)暫時Diffie-Hellman:該方法用於創建臨時或一次性密鑰,為了阻止中間人攻擊,客戶端與服務器都用本身的私鑰簽名一個Diffie-Hellman密鑰並發送給對方,接收者用相應的公鑰驗證簽名;

(5)Fortezza:這種技術是專為Fortezza方案定義的,Fortezza是一種帶有96bit密鑰的分組密碼算法。

2)第二階段:服務器驗證和密鑰交換

若要認證,則在此階段,服務器發送其證書、公鑰,也許還要對客戶請求證書。然後服務器將發送server_key_exchange消息,如果服務器已發送含固定Diffie-Hellman參數的證書或用了RSA密鑰交換方法,則不用發送該消息。

3)第三階段:客戶端認證和密鑰交換

該階段共有三個消息從客戶端發送到服務器。

第一时间,如果服務器在第二階段已請求證書,則客戶端要發送一個證書信息;若無證書,那麼發送一個告警信息。

然後,客戶端將發送server_key_exchange消息。若密鑰交換算法為RSA,客戶端則建立完整的預備主密鑰,且藉助服務器RSA公鑰來加密。如果是匿名Diffie-Hellman或暫時Diffie-Hellman,客戶端就發送Diffie- Hellman半密鑰;若是固定Diffie-Hellman,信息內容就為空;如果是Fortezza,就發送Forteza參數。

最後,客戶端向服務端發送證書驗證消息進行證書確認,以便宣佈它擁有證書中的公鑰,這對阻止一個發送了證書且說明此證書來源於客戶的假冒者是必需的。注意:僅當客戶端證書有簽名功能時才會發送該消息,所以固定 Diffie-Hellman證書不可以如此驗證。

4)第四階段:完成

在這個階段交換4個信息。

第一时间客戶端發送一個改變密碼規格信息,並把未定的密碼規格複製到當前密碼規格中,這個信息實際上是將要討論的改變密碼各個協議的一部分。然後發送一個完成消息宣佈握手協議完成。

服務器為響應這2條消息,發送一個改變密碼規格信息,並把未定的密碼規格複製進當前密碼規格中。然後發送一個完成消息宣佈握手協議完成。

上一篇:密碼反饋模式優缺點解讀 下一篇:互聯網密鑰交換協議