https與http區別簡介以及SSL工作方式

  • HTTPS系列一:HTTPS簡介
  • HTTPS系列二:SSL如何工作?
  • HTTPS系列一:HTTPS簡介

    HTTPS(Secure Hypertext Transfer Protocol)安全超文本傳輸協議 它是一個安全通信通道,它基於HTTP開發,用於在客戶計算機和服務器之間交換信息。它使用安全套接字層(SSL)進行信息交換,簡單來說它是HTTP的安全版,是使用 TLS/SSL 加密的 HTTP 協議。

    HTTPS系列二:TLS/SSL如何工作?

    TLS/SSL 全稱安全傳輸層協議 Transport Layer Security, 是介於 TCP 和 HTTP 之間的一層安全協議,不影響原有的 TCP 協議和 HTTP 協議,所以使用 HTTPS 基本上不需要對 HTTP 頁面進行太多的改造。TSL/SSL的工作主要包括SSL握手和數據傳輸加密,涉及到的加密分為兩種:<strong>非對稱加密和對稱加密,很懵逼,來帶你看看下面的兩張圖:

    1. 非對稱加密:

    非對稱加密使用一對密鑰來加密和解密數據。其中一個密鑰會作為公鑰發送給通信的對手方(Client);另一個密鑰則作為私鑰保存(Server)。在非對稱加密算法下,我們可以使用私鑰來加密數據,只有與該私鑰對應的公鑰才能用來解密這份加密後的數據。

    比如web服務器想發送“hello world”給客戶端,又不想讓別人看見,就可以用私鑰加密“hello world”,傳輸到客戶端,客戶端收到數據後用公鑰就可以解密出來.

    https與http區別簡介以及SSL工作方式

    非對稱加密

    實際TSL/SSL使用非對稱加密方式來發起SSL握手,

    SSL握手

    SSL通信始於SSL握手。<strong>SSL握手是一種非對稱加密方式,它允許瀏覽器驗證服務器,獲取公鑰並在傳輸實際數據前建立起一個安全的連接。具體握手的過程參考如下圖所示:


    https與http區別簡介以及SSL工作方式

    非對稱加密算法的SSL握手-1

    https與http區別簡介以及SSL工作方式

    非對稱加密算法的SSL握手-2

  • 客戶端(瀏覽器)向web服務器發送一個Client hello消息。消息中包括客戶端的SSL版本號、加密設置、session數據以及其它web服務器需要用來和客戶端進行SSL通信的信息。
  • web服務器回覆Server hello消息。消息中包括服務器的SSL版本號、加密設置、session數據、<strong>SSL證書(附帶公鑰),以及其它客戶端需要用來和服務器進行SSL通信的信息。
  • 客戶端向CA(證書籤發機構)驗證SSL證書的有效性。如果驗證失敗,客戶端拒絕SSL連接並且拋出異常;如果驗證成功,則繼續下面的流程。
  • <strong>客戶端創建一個session key,並使用服務器發送過來的公鑰對其進行加密後發送給服務器(step5)。在某些情況下,比如客戶端是另外一臺web 服務器,這個時候服務器可能會要求對客戶端進行認證,那客戶端也需要將自己的證書發給服務器。
  • 服務器使用私鑰對獲取到的加密後的session key進行解密,然後向客戶端發送使用session key進行加密的通知信息。
  • SSL握手結束後,<strong>客戶端和服務器都拿到了一個有效的session key。這個session key將被用來在後續的數據傳輸過程中對數據進行加密和解密,這就是握手的過程,主要產生"會話秘鑰".

    2.對稱加密

    在對稱加密協議下,加密和解密的密鑰是用一個,數據的發送方和接收方都應該持有這個密鑰。SSL協議下,在通信雙方完成SSL握手之後,會使用session key來作為對稱加密密鑰進行數據傳輸。

    其它比較常見的對稱加密算法還包括AES-128,AES-192和AES-256。


    https與http區別簡介以及SSL工作方式

    對稱加密的數據傳輸

    SSL進行數據傳輸

    SSL協議下的實際數據傳輸,主要是基於session key的對稱加密算法來實現的。


    https與http區別簡介以及SSL工作方式

    對稱加密的數據傳輸

    SSL總體上依靠非對稱和對稱加密算法來工作。在現實中,SSL還需要依賴PKI(Public Key Infrastructure)來完成通信。

    總結下TLS/SSL 的基本工作方式是,

    第一階段:客戶端使用非對稱加密與服務器進行通信,實現身份驗證並協商對稱加密使用的密鑰,這階段叫會話秘鑰磋商,

    第二階段:然後對稱加密算法採用協商密鑰對信息以及信息摘要進行加密通信,不同的節點之間(客戶端與服務器)採用的對稱密鑰不同,從而可以保證信息只能通信雙方識別。

    後續為學習下如何下載申請CA證書,以及開源openssl使用,敬請期待.


    引用參考:

    https://www.tutorialsteacher.com/https/how-ssl-works

    https://zhuanlan.zhihu.com/p/101058747?utm_source=wechat_session&utm_medium=social&utm_oi=630166279156273152

    https://blog.csdn.net/cout__waht/article/details/80859369?depth_1-utm_source=distribute.pc_relevant.none-task&utm_source=distribute.pc_relevant.none-task


    分享到:


    相關文章: