1、SSL協議的握手過程html
開始加密通訊以前,客戶端和服務器首先必須創建鏈接和交換參數,這個過程叫作握手(handshake)。服務器
假定客戶端叫作愛麗絲,服務器叫作鮑勃,整個握手過程能夠用下圖說明。session
握手階段分紅五步。dom
第一步,愛麗絲給出協議版本號、一個客戶端生成的隨機數(Client random),以及客戶端支持的加密方法。加密
第二步,鮑勃確認雙方使用的加密方法,並給出數字證書、以及一個服務器生成的隨機數(Server random)。spa
第三步,愛麗絲確認數字證書有效,而後生成一個新的隨機數(Premaster secret),並使用數字證書中的公鑰,加密這個隨機數,發給鮑勃。htm
第四步,鮑勃使用本身的私鑰,獲取愛麗絲髮來的隨機數(即Premaster secret)。blog
第五步,愛麗絲和鮑勃根據約定的加密方法,使用前面的三個隨機數,生成"對話密鑰"(session key),用來加密接下來的整個對話過程。ssl
上面的五步,畫成一張圖,就是下面這樣。rem
大圖:http://image.beekka.com/blog/2014/bg2014092003.png
握手階段有三點須要注意。
(1)生成對話密鑰一共須要三個隨機數。
(2)握手以後的對話使用"對話密鑰"加密(對稱加密),服務器的公鑰和私鑰只用於加密和解密"對話密鑰"(非對稱加密),無其餘做用。
(3)服務器公鑰放在服務器的數字證書之中。
從上面第二點可知,整個對話過程當中(握手階段和其後的對話),服務器的公鑰和私鑰只須要用到一次。
轉載:http://www.ruanyifeng.com/blog/2014/09/illustration-ssl.html
=============END=============