發(fā)表日期:2018-09 文章編輯:小燈 瀏覽次數(shù):2918
HTTPS 協(xié)議(HyperText Transfer Protocol over Secure Socket Layer):可以理解為HTTP+SSL/TLS, 即 HTTP下加入 SSL 層,HTTPS的安全基礎是 SSL,因此加密的詳細內(nèi)容就需要 SSL,用于安全的 HTTP 數(shù)據(jù)傳輸。
HTTPS協(xié)議需要到CA申請證書,一般免費證書較少,因而需要一定費用。HTTP是超文本傳輸協(xié)議,信息是明文傳輸,HTTPS則是具有安全性的SSL加密傳輸協(xié)議。HTTP和HTTPS使用的是完全不同的連接方式,用的端口也不一樣,前者是80,后者是443。HTTP的連接很簡單,是無狀態(tài)的;HTTPS協(xié)議是由SSL+HTTP協(xié)議構(gòu)建的可進行加密傳輸、身份認證的網(wǎng)絡協(xié)議,比HTTP協(xié)議安全。SSL(Secure Socket Layer,安全套接字層):1994年為 Netscape 所研發(fā),SSL 協(xié)議位于 TCP/IP協(xié)議與各種應用層協(xié)議之間,為數(shù)據(jù)通訊提供安全支持。
TLS(Transport Layer Security):其前身是SSL,它最初的幾個版本(SSL 1.0、SSL 2.0、SSL 3.0)由網(wǎng)景公司開發(fā),1999年從 3.1開始被IETF 標準化并改名,發(fā)展至今已經(jīng)有 TLS 1.0、TLS 1.1、TLS 1.2 三個版本。SSL3.0和TLS1.0由于存在安全漏洞,已經(jīng)很少被使用到。TLS 1.3改動會比較大,目前還在草案階段,目前使用最廣泛的是TLS 1.1、TLS 1.2。
對稱加密算法非常簡單,只要加密方和解密方都擁有同一密鑰(可為128,192,256 bit大小的密鑰,密鑰越長,加密解密時間越長,解密難度也越高),即可完成加密解密過程,且假設無法強制對加密過的明文進行解密。
加密使用的密鑰和解密使用的密鑰是不相同的,分別稱為:公鑰、私鑰,公鑰和算法都是公開的,私鑰是保密的。非對稱加密算法性能較低,但是安全性超強,由于其加密特性,非對稱加密算法能加密的數(shù)據(jù)長度也是有限的。例如:RSA、DSA、ECDSA、 DH、ECDHE。
將任意長度的信息轉(zhuǎn)換為較短的固定長度的值,通常其長度要比信息小得多,且算法不可逆。例如:MD5、SHA-1、SHA-2、SHA-256 等。
簽名就是在信息的后面再加上一段內(nèi)容(信息經(jīng)過hash后的值),可以證明信息沒有被修改過。hash值一般都會加密后(也就是簽名)再和信息一起發(fā)送,以保證這個hash值不被修改。

此種方式屬于對稱加密,雙方擁有相同的密鑰,信息得到安全傳輸,但此種方式的缺點是:

客戶端用公鑰對請求內(nèi)容加密,服務器使用私鑰對內(nèi)容解密,反之亦然,但上述過程也存在缺點:


SSL證書給客戶端,SSL證書中包含的具體內(nèi)容有: CA 客戶端在接受到服務端發(fā)來的SSL證書時,會對證書的真?zhèn)芜M行校驗,以瀏覽器為例說明如下
CA,與服務器發(fā)來的證書中的頒發(fā)者CA比對,用于校驗證書是否為合法機構(gòu)頒發(fā)。CA的公鑰,然后對服務器發(fā)來的證書里面的簽名進行解密。hash算法計算出服務器發(fā)來的證書的hash值,將這個計算的hash值與證書中簽名做對比。SSL證書費用很高,以及其在服務器上的部署、更新維護非常繁瑣。HTTPS 降低用戶訪問速度(多次握手)。HTTPS以后,由HTTP跳轉(zhuǎn)到HTTPS的方式增加了用戶訪問耗時(多數(shù)網(wǎng)站采用302跳轉(zhuǎn))。HTTPS涉及到的安全算法會消耗 CPU 資源,需要增加大量機器(HTTPS訪問過程需要加解密)。客戶端在使用HTTPS方式與Web服務器通信時有以下幾個步驟:

HTTPS的URL訪問Web服務器,要求與Web服務器建立SSL連接。Web服務器收到客戶端請求后,會將網(wǎng)站的證書信息(證書中包含公鑰)傳送一份給客戶端。Web服務器開始協(xié)商SSL連接的安全等級,也就是信息加密的等級。Web服務器利用自己的私鑰解密出會話密鑰。Web服務器利用會話密鑰加密與客戶端之間的通信。【HTTP】HTTPS 原理詳解
看圖學HTTPS
HTTPS 的故事
白話https
手把手HTTPS