https通信流程

#什麼是https https = http + ssl/tls協議:在https數據傳輸的過程當中,須要用ssl/tls對數據進行加密和解密,而後用http對加密後的數據進行傳輸。算法

#祕鑰相關概念 對稱加密:信息的發送方和接收方使用同一個密鑰去加密和解密數據。對稱加密的特色是算法公開、加密和解密速度快 非對稱加密:使用一對密鑰,即公鑰和私鑰,且兩者成對出現。私鑰被本身保存,不能對外泄露。公鑰指的是公共的密鑰,任何人均可以得到該密鑰。用公鑰或私鑰中的任何一個進行加密,用另外一個進行解密。服務器

#具體流程 能夠分爲兩個階段:握手階段和數據傳輸階段session

握手階段dom

  1. 客戶端開始請求:發送自身支持的ssl版本信息、加密算法、一個隨機數(random_c)加密

  2. 服務器收到請求:響應確認ssl版本、確認加密算法、服務器公鑰(pubkey_s)、一個隨機數(random_s)ssl

  3. 客戶端收到了服務器的公鑰,開始驗證:驗證經過後:客戶端會根據前面的random_c和random_s生成一個隨機數pre-master secret,而後使用pubkey_s進行加密,發給服務端,同時會根據random_c、random_s、pre-master secret經過必定的算法得出session Keyio

  4. 服務端經過私鑰來解密,獲得pre-master secret,而後也經過random_c、random_s、pre-master secret經過必定的算法得出session Keyast

數據傳輸階段 採用對稱加密,經過上個階段產生的sessionKey進行加密和解密tls

相關文章
相關標籤/搜索