Https中SSL握手建立的過程

  • 假設現在有客戶端 A 和服務器 B :
    • 1、首先,客戶端 A 訪問服務器 B ,比如我們用瀏覽器打開一個網頁 www.baidu.com ,這時,瀏覽器就是客戶端 A ,百度的服務器就是服務器 B 了。這時候客戶端 A 會生成一個隨機數1,把隨機數1 、自己支持的 SSL 版本號以及加密算法等這些信息告訴服務器 B 。
    • 2、服務器 B 知道這些信息後,然後確認一下雙方的加密算法,然後服務端也生成一個隨機數 2 ,並將隨機數 2 和 CA 頒發給自己的證書一同返回給客戶端 A 。
    • 3、客戶端 A 得到 CA 證書後,會去校驗該 CA 證書的有效性,校驗方法在上面已經說過了。校驗通過後,客戶端生成一個隨機數3 ,然後用證書中的公鑰加密隨機數3 並傳輸給服務端 B 。
    • 4、服務端 B 得到加密後的隨機數3,然後利用私鑰進行解密,得到真正的隨機數3。
    • 5、最後,客戶端 A 和服務端 B 都有隨機數1、隨機數2、隨機數3,然後雙方利用這三個隨機數生成一個對話密鑰。之後傳輸內容就是利用對話密鑰來進行加解密了。這時就是利用了對稱加密,一般用的都是 AES 算法。
    • 6、客戶端 A 通知服務端 B ,指明後面的通訊用對話密鑰來完成,同時通知服務器 B 客戶端 A 的握手過程結束。
    • 7、服務端 B 通知客戶端 A,指明後面的通訊用對話密鑰來完成,同時通知客戶端 A 服務器 B 的握手過程結束。
    • 8、SSL 的握手部分結束,SSL 安全通道的數據通訊開始,客戶端 A 和服務器 B 開始使用相同的對話密鑰進行數據通訊。
  • 簡化如下:
    • 1、客戶端和服務端建立 SSL 握手,客戶端通過 CA 證書來確認服務端的身份;
    • 2、互相傳遞三個隨機數,之後通過這三個隨機數來生成一個密鑰;
    • 3、互相確認密鑰,然後握手結束;
    • 4、數據通訊開始,都使用同一個對話密鑰來加解密;
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章