聊一聊 HTTPS(一)—— 概述

https 顧名思義,就是安全版的 http。既然說 https 是安全的,那么為什么它安全呢?原因是相比于 http ,htttps 在 http 之下加了一層 SSL/TLS(Secure Socket Layer/Transport Layer Secure)。SSL/TLS 是用來加密傳輸信息的。

1、http發送的消息都是未經過加密的,而且直接通過下層 TCP 直接發送。這樣如果有人在發送途中,截獲到信息,由于信息是未加密的,攻擊人輕易地就能得知信息的內容。

2、而對于 https 來說,它并不是將信息直接交由 TCP 來發送。而需要經過 SSL/TLS 層的加密,加密后的內容,再由 TCP 來發送。相當于在 TCP 層上,HTTP 之下,構建了一層 SSL/TSL 。

3、這個加密過程中

  • 首先,需要驗證數字證書是否簽發自可信的 CA(Certificate Agent) ,以此來驗證站點的合法性。
  • 在確認站點是可信之后,client 和 server 會協商一個會話密鑰(session key)。會話密鑰(session key)來加密雙方通信信息。會話的加密一般采用對稱加密。目的是為了降低加密解密運算的復雜度

4、SSL/TLS 的加密對用戶是透明,感受的不到它的存在,在瀏覽體驗上和 http 并無二致。對于中間人,就算是截獲報文,由于沒有私鑰,無法對報文進行解密

SSL

SSL.png

https 通信的過程

步驟1,在端口號 443 建立 TCP 連接
步驟2,進行站點身份驗證,和加密方法的協商
步驟3,http 發送信息給 SSL ,SSL 使用協商的加密算法加密信息后,發送給 TCP
步驟4,接收使用協商的加密算法加密的信息,并解密后發給 http 層
步驟5,關閉 SSL 連接
步驟6,關閉 TCP 連接

下圖左側a為 http 連接建立過程,右側b為 https 連接建立過程

https建立連接、請求和釋放連接.png

說一說關鍵步驟2

步驟 2 可以分為兩個步驟
1、進行站點的身份認證
2、會話加密算法的協商、會話秘鑰的生成

在建立 TCP 連接后,就可以進行站點身份的驗證和會話內容加密算法的協商。

在說明身份驗證的過程,需要先簡單了解一下由 CA 簽發的數字證書。 數字證書的一般形式(x.509 v3 certificate)如下圖所示。

https 證書形式.png

來看一下知乎的證書chrome->開發者工具->security

包含了,證書序列號、證書過期時間、站點所有者、域名、公鑰、簽發 CA和證書的簽名。

證書的簽名是用來驗證證書的完整性和防止被篡改。它生成過程是,通過一種非對稱加密算法(如RSA),使用私鑰對證書所有域進行加密運算后得到的一串數字簽名。

進行站點身份驗證的過程是這樣的:

首先,client 獲得 server 發來的數字證書。
然后驗證數字證書是否過期、是否簽發自可信的CA、證書是否完整是否被篡改,再驗證證書的發來站點和證書上的站是否一致。如果以上,驗證都通過。那么站點就是可信的。可以進一步協商,進行會話所需要的密鑰。然后使用此密鑰對會話內容進行加密解密

首先,驗證數字證書
  • 日期驗證(Date check),通過和證書中的過期字段對比,判斷證書是否有效
  • 簽發者驗證(Signer trust check),判斷證書中的 CA 是否在本地 CA 信任列表上
  • 簽名驗證(Signature check),通過使用證書中的公鑰和加密方法,對signature進行反向解密,來驗證證書的內容是否和解密出的內容一致
  • 站點身份認證(Site identity check),將站點的域名和證書域名比較,來驗證數字證書發自可信任的站點


    SSLhandshake

數字證書的簽名驗證中,使用的非對稱加密。signature = d(cert,private),通過使用公式 e(d(cert,private),pub) = cert,即可驗證證書的真偽。

然后,協商對會話加密的密鑰

在上面那張圖中可以看到,client 在請求連接站點時,會向服務器請求數字證書,同時發送可選的加密方式。
站點在接收到請求后,會選擇一種加密方式。此時,client 和站點就擁有了加密和解密的密鑰。接下來,雙方的通信就可以使用這個協商的密鑰的進行加密。
一般情況下,對會話進行加密使用的是對稱加密。原因是對稱加密的加密和解密速度快于非對稱加密。

在驗證成功后,就可以進行加密會話
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容