SSL通信基本過程

轉:http://www.cnblogs.com/afarmer/archive/2009/11/25/1610884.html

SSL消息按如下順序發送: 

  1.Client Hello 

  客戶發送服務器信息,包括它所支持的密碼組。密碼組中有密碼算法和鑰匙大小; 

  2.Server Hello 

  服務器選擇客戶和服務器都支持的密碼組到客戶。 

  3.Certificate 

  服務器發送一個證書或一個證書鏈到客戶端,一個證書鏈開始於服務器公共鑰匙證書並結束於證明權威的根證書。這個消息是可選的,但服務器證書需要時,必須使用它。

  4.Certificate request 

  當服務器需要鑑別客戶時,它發送一個證書請求到客戶端。在網絡程序中,這個消息很少發送。

  5.Server key exchange 

  服務器當發送來的公共鑰匙對鑰匙交換不是很充分時,發送一個服務器鑰匙交換消息。

  6.Server hello done 

  服務器告訴客戶完成它的初始化流通消息。 

  7.Certificate 

  假如服務器需要一個客戶證書時,客戶端發送一個證書鏈。(只有在服務器需要客戶證書時) 

  8.Client key exchange 

  客戶產生用於對稱算法的一個鑰匙。對RSA客戶用服務器公共鑰匙加密這個鑰匙信息並把它送到服務器。 

  9.Certificate verify 

  在網絡程序中,這個消息很少發送,它主要是用來允許服務器結束對客戶的鑑別處理。當用這個消息時,客戶發送用密碼函數的數字簽名的信息到服務端,當服務端用公共鑰匙解密這個消息時,服務器能夠鑑別客戶。 

  10.Change cipher spec 

  客戶發送一個消息告訴服務器改變加密模式。 

  11.Finished 

  客戶告訴服務器它已準備安全數據通信。 

  12.Change cipher spec 

  服務器發送一個消息到客戶端並告訴客戶修改加密模式。 

  13.Finished 

  服務器告訴客戶端它已準備好安全數據通信。這是client-server握手協議最後一步。 

  14.Encrypted data 

  客戶同服務器用對稱加密算法和密碼函數,並用客戶發送到服務器的祕密鑰匙加密通信。 

形象的可以用下面這幅圖來說明。

ssl 

具體過程通過wireshark抓取ie6跟gmail的通信過程可以看出一二。

001








這是Client Hello內容:

002

這是Server Hello內容:

003

這是服務器傳輸的證書:

004

這樣就對SSL通信過程有了一個大致的瞭解。




發佈了16 篇原創文章 · 獲贊 20 · 訪問量 94萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章