HTTPS 和安全通信原來這麼簡單

一、HTTPS 簡介

HTTP 協議(HyperText Transfer Protocol,超文本傳輸協議):

  • 用於客戶端與服務器端之間的通信。
  • 通過請求報文和響應報文的交換達成通信。
  • 是無狀態的協議。

HTTP 協議以簡單便捷爲設計目的,所以並沒有提供確保通信安全的服務。
HTTPS(HTTP Secure,超文本傳輸安全協議),實現了 HTTP 的安全通信。
HTTPS = HTTP + 加密(防竊聽) + 認證(防僞裝) + 完整性保護(防篡改)。
HTTPS 並非是應用層的一種新協議,而是讓 HTTP 和 SSL 通信,SSL 再和 TCP 通信,就變成了 HTTPS。簡言之,HTTPS 就是身披 SSL 協議外殼的 HTTP。
圖1

SSL 是獨立於 HTTP 的協議,提供通信加密、身份認證和完整性保護的功能。不光是 HTTP 協議,其它運行在應用層的 SMTP 和 Telnet 等協議均可配合 SSL 協議使用。可以說 SSL 是當今世界上應用最爲廣泛的網絡安全技術。
SSL 技術最初是由網景公司率先倡導的,開發了 SSL3.0 之前的版本,目前主導權已經轉移到了 IETF(Internet Engineering Task Force,Internet 工程任務組)的手中。IETF 以 SSL3.0 爲基礎,又制訂了 TLS1.0、TLS1.1 和 TLS1.2。TSL 是以 SSL 爲基礎開發的,有時也會將該協議統稱爲 SSL。當前主流的版本是 SSL3.0 和 TLS1.0。

二、安全通信依賴的加密技術

加密技術總體上可以分爲三大類:

  1. 非對稱加密
  2. 對稱加密
  3. 單向加密

常見的非對稱加密算法爲 RSA,RSA 的加密原理可以參考:RSA算法過程以及正確性證明
常見的對稱加密算法有 DES、3DES 和 AES。
常見的單向加密算法有 MD5、SHA 和 SHA-256。

非對稱加密的優缺點:
優點:安全,只需要公佈公鑰即可。
缺點:加解密速度慢。

對稱加密的優缺點和非對稱加密的優缺點相對:
缺點:不安全,加解密使用同一個祕鑰。
優點:加解密速度快。

兩者優勢互補,配合使用簡直完美。

最後說說單向加密的特點:
特點一:不可逆,起到防篡改的作用。
特點二:無論明文多長,加密結果通常很短。

注意: 單向加密起到防篡改作用的前提是,需要保證密文沒有被對應篡改。如果不能保證密文沒有被篡改,那單向加密只能防止意外修改(不可靠信道造成的)不能防止惡意修改。

安全通信的技術實現:

  1. 通信加密由對稱加密非對稱加密共同實現;
  2. 身份認證和完整性保護由數字簽名單向加密(信息摘要) 共同實現;

數字簽名其實是非對稱加密的逆向應用。
非對稱加密重點在加密,使用公鑰加密私鑰解密。如果你沒有私鑰就沒辦法看到明文。
數字簽名重點在簽名,使用私鑰加密公鑰解密,因爲公鑰是公開的,並且和私鑰一一配對,那麼我如果可以用公鑰看到明文,就說明確實是你用私鑰加的密,私鑰是私有的,所以可以起到身份認證的作用。
像 RSA 既可以用來非對稱加密,也能用來數字簽名。但也有專門用於數字簽名的算法,像 DSA。

通信加密主要由對稱加密實現,因爲其速度快。非對稱加密只用於前期保證對稱祕鑰的安全傳輸。

身份認證和完整性保護其實都是由數字簽名保證的。因爲數字簽名速度慢,所以使用單向加密縮短其要加密的信息。

三、HTTPS 安全通信

HTTPS 的通信流程如下圖所示:
圖2

把握重點:
CA 機構(證書授權中心)有自己的一對公鑰私鑰,用於數字簽名。
服務器有自己的一對公鑰私鑰,用於非對稱加密。

CA 機構的公鑰一般會被自動配置在瀏覽器中。
能夠提供 HTTPS 通信的服務器,會先向 CA 機構申請含有服務器公鑰的數字證書。

瀏覽器通過 CA 機構的公鑰驗證服務器的數字證書。驗證通過後,從數字證書中獲取服務器的公鑰。
然後由客戶端產生對稱加密的祕鑰,並使用服務器公鑰加密對稱祕鑰,接着把加密後的對稱祕鑰發送給服務器,服務器使用私鑰解密得到對稱祕鑰。
後面雙方使用對稱加密進行密文通信。

數字證書的驗證過程如下:
圖3

數字證書包括了服務器的公鑰、CA 機構的信息、服務器域名、數字簽名、信息摘要算法以及證書對應的域名。
當客戶端收到服務器發來的證書之後,使用本地配置的 CA 機構的公鑰解密數字簽名得到證書的信息摘要,然後根據證書上說的算法計算當前證書的信息摘要,將兩個信息摘要做對比。如果一樣,則表示證書是有效地,否則要麼是服務器造了假,要麼是在證書傳輸過程中發生意外錯誤或被中間人惡意篡改。

數字證書需要購買申請,功能越強大的證書費用越高。
HTTPS 連接服務器端資源佔用高很多,支持訪客多的網站需要投入更大的成本。
HTTPS 協議握手階段比較費時,對網站的響應速度有影響,影響用戶體驗。比較好的方式是分而治之,例如 12306 網站的主頁使用 HTTP 協議,關於用戶信息等方面使用 HTTPS。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章