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