HTTPS和SSL握手過程(轉載)

https介紹

HTTPS = HTTP + 一組對稱、非對稱和基於證書的加密技術 
HTTPS是最多見的HTTP安全版本。它獲得了很普遍的應用,全部主要的商業瀏覽器和服務器都提供HTTPS。HTTPS將HTTP協議與一組強大的對稱、非對稱和基於證書的加密技術結合在一塊兒,使得HTTPS不只很安全,並且很靈活,很容易在出於無序狀態的、分散的全球互聯網上進行管理算法

https與http鏈接過程區別

https與http鏈接過程區別 
這裏寫圖片描述

https的優點:

  1. 通信過程的hash生成的摘要,保證數據完整性
  2. 握手過程的非對稱加密,傳輸過程的對稱加密,保證數據私密性
  3. 證書保證雙方身份的真實性

https大體過程

  1. 創建服務器443端口鏈接
  2. SSL握手:隨機數,證書,密鑰,加密算法
  3. 發送加密請求
  4. 發送加密響應
  5. 關閉SSL
  6. 關閉TCP

SSL握手大體過程:

  1. 客戶端發送隨機數1,支持的加密方法(如RSA公鑰加密)
  2. 服務端發送隨機數2,和服務器公鑰,並確認加密方法
  3. 客戶端發送用服務器公鑰加密的隨機數3
  4. 服務器用私鑰解密這個隨機數3,用加密方法計算生成對稱加密的密鑰給客戶端,
  5. 接下來的報文都用雙方協定好的加密方法和密鑰,進行加密

SSL握手詳細過程:

1、客戶端發出加密通訊請求ClientHello

提供: 
1,協議版本(如TSL1.0) 
2,隨機數1(用於生成對話密鑰) 
3,支持的加密方法(如RSA公鑰加密) 
4,支持的壓縮方法瀏覽器

2、服務器迴應SeverHello

迴應內容: 
1,確認使用的加密通訊協議版本(TSL1.0) 
2,隨機數2(用於生成對話密鑰) 
3,確認加密方法(RSA) 
4,服務器證書(包含非對稱加密的公鑰) 
5,(可選)要求客戶端提供證書的請求安全

3、客戶端驗證證書

若是證書不是可信機構頒佈,或證書域名與實際域名不符,或者證書已通過期,就會向訪問者顯示一個警告,是否繼續通訊服務器

4、客戶端迴應

證書沒有問題,就會取出證書中的服務器公鑰 
而後發送: 
1,隨機數3(pre-master key,此隨機數用服務器公鑰加密,防止被竊聽) 
2,編碼改變通知(表示隨後的信息都將用雙方商定的方法和密鑰發送) 
3,客戶端握手結束通知編碼

5、雙方生成會話密鑰

雙方同時有了三個隨機數,接着就用事先商定的加密方法,各自生成同一把「會話密鑰」 
服務器端用本身的私鑰(非對稱加密的)獲取第三個隨機數,會計算生成本次所用的會話密鑰(對稱加密的密鑰),若是前一步要求客戶端證書,會在這一步驗證加密

6、服務器最後響應

服務器生成會話密鑰後,向客戶端發送: 
1,編碼改變通知(後面的信息都用雙方的加密方法和密鑰來發送) 
2,服務器握手結束通知blog

至此,握手階段所有結束,接下來客戶端與服務器進入加密通訊,用會話密鑰加密內容圖片

相關文章
相關標籤/搜索