HTTPS(全稱:Hyper Text Transfer Protocol over SecureSocket Layer),是以安全為目標的 HTTP 通道,簡單講是 HTTP 的安全版,即 HTTP 下加入 SSL 層。 HTTPS 的安全基礎是 SSL,因此加密的詳細內容就需要 SSL 。
HTTPS 存在不同於 HTTP 的默認端口及一個加密/身份驗證層在( HTTP 與 TCP 之間)。這個系統提供了身份驗證與加密通訊方法。現在它被廣泛用於萬維網上安全敏感的通訊,例如交易支付方面。傳統的 HTTP 模式,存在着大量的灰色中間環節,相關信息很容易被竊取,但 HTTPS 卻是通過認證用戶與服務器,將數據准確地發送到客戶機與服務器,並采用加密方式以防數據中途被盜取,大大降低了第三方竊取信息、篡改冒充身份的風險。
HTTPS 訪問所面臨的問題
通常有得必有所失,HTTPS 雖然增加了網站安全性,但也會增加用戶訪問網站的時間以及服務器性能的消耗。下面我們來看看 HTTPS 面臨的一些問題。
- HTTPS 多次握手,會一定程度上降低用戶訪問速度
- 網站改用 HTTPS 以后,由 HTTP 跳轉到 HTTPS 的方式增加了用戶訪問耗時(多數網站采用 301、302 跳轉)
- HTTPS 涉及到的安全算法會消耗 CPU 資源,需要增加大量機器(HTTPS 訪問過程需要加解密)
- SSL 證書費用較很高,以及其在服務器上的部署、更新維護非常繁瑣
又拍雲一直對 HTTPS 性能進行持續優化,致力於 HTTPS 達到更快的數據傳輸性能。又拍雲 HTTPS 優化已支持了以下特性:HTTP/2+Server Push、TLS 1.3+最低 TLS 版本控制、HSTS、ChaCha20-Poly1305、TLS Record Size、OCSP Stapling等,這些特性極大提升了 HTTPS 傳輸速度和用戶的訪問體驗。
持續優化,讓 HTTPS 更快更安全
為了使 HTTPS 達到更快的數據傳輸性能,並且在傳輸過程中更加安全,又拍雲不遺余力地對其進行優化。下面具體來看下這些新特性到底給 HTTPS 帶來了什么。
HTTP/2+Server Push
HTTP/2 即超文本傳輸協議 2.0,是下一代 HTTP 協議。它由國際互聯網工程任務組 (IETF)的 Hypertext Transfer Protocol Bis (httpbis) 工作小組進行開發,以 SPDY 為原型,經過兩年多的討論和完善最終確定。
HTTP/2 優勢如下:
- HTTP/2 采用二進制格式傳輸數據,其在協議的解析和優化擴展上帶來更多的優勢和可能。
- HTTP/2 對消息頭采用 HPACK 進行壓縮傳輸,能夠節省消息頭占用的網絡的流量。
- 多路復用,簡單說就是所有的請求可以通過一個 TCP 連接並發完成。
- Server Push:服務端能夠更快的把資源推送給客戶端。
其中 Server Push 是 HTTP/2 規范中引入的一種新技術,即服務端在沒有被客戶端明確的詢問下,搶先地 “推送” 一些網站資源給客戶端(瀏覽器),該特性可以極大的改善頁面訪問效果。
又拍雲 CDN 當前已全平台支持 HTTP/2,並已默認開啟。又因 HTTP/2 是在 HTTPS 協議的基礎上實現的,看歷史,所以只要使用又拍雲 HTTPS 加速服務的域名,都可免費享受 HTTP/2 服務,無需做任何特殊配置。
Server Push 開啟路徑:登陸 CDN 控制台,依次進入:服務管理 > 功能配置 > HTTPS > HTTP/2 ,點擊【管理】按鈕即可開始配置。配置中,其中【匹配路徑】為必填項,【推送資源】為非必填項。
TLS 1.3+最低 TLS 版本控制
TLS 1.3 是 TLS 協議中最新、最快和最安全的版本,相比舊版的 TLS 協議增加了多項新功能。通過簡化 SSL 握手,提高了建連速度,減少了延遲。並通過移除有安全隱患的加密算法,提高了用戶訪問的性能、效率和安全性等等。
△ TLS 1.2 握手流程
△ TLS 1.3 握手流程△ TLS 1.3 握手流程
如圖所示,TLS1.2 協議中需要加密套件協商、密鑰信息交換、ChangeCipherSpec 協議通告等過程,需要消耗 2-RTT 的握手時間,檢測網站是否被劫持,這也是造成 HTTPS 協議慢的一個重要原因之一,而在 TLS 1.3 中,客戶端首先不僅發送 ClientHello 支持的密碼列表,而且還猜測服務器將選擇哪種密鑰協商算法,並發送密鑰共享,使第一次握手時只需要 1-RTT,從而提高了速度。除此之外,TLS 1.3 還有以下新特性:
- 廢除不支持前向安全性的 RSA 以及具有 CVE-2016-0701 漏洞的 DH 密鑰交換算法;
- MAC 只使用 AEAD 算法;
- 禁用 RC4 / SHA1 等不安全的算法;
- 加密握手消息;
- 減少往返時延 RTT,支持 0-RTT;
- 兼容中間設備 TLS 1.2;
- 加密握手消息。
另外,隨着加密標准的升級,TLS 1/1.1 將逐漸被全行業禁用。目前正處於 TLS 1.2 取代 TLS 1/1.1 的過渡時期,2018 年將會有越來越多的互聯網安全企業啟用 TLS 1.2。又拍雲 CDN 服務可靈活配置網站使用的最低 TLS 協議版本,提升網站的安全性。選擇的協議級別越高,相應的也就更安全,但是可以支持的瀏覽器也就越少,有可能會影響終端用戶訪問,請謹慎選擇配置。
TLS 1.3 及最低 TLS 版本開啟路徑:CDN → 功能配置 → HTTPS → TLS1.3/最低 TLS 版本
HSTS
又拍雲采用了 HSTS(HTTP Strict Transport Security)技術,開啟此功能后,將保證瀏覽器始終連接到網站的 HTTPS 加密版本,不需要用戶手動在URL地址欄中輸入 HTTPS 的地址。HSTS 的開啟減少用戶等待 301/302 的跳轉時間, 有效地保護網站和用戶的數據安全。
HSTS 開啟路徑:登陸 又拍雲CDN 控制台,依次進入:服務 > 功能配置 > HTTPS > HSTS,點擊管理即可開始配置。
ChaCha20-Poly1305——HTTPS 移動端對稱加密套件
ChaCha20-Poly1305 是由 Google 專門針對移動端 CPU 優化而采用的一種新式流式加密算法,它的性能相比普通算法要提高 3 倍,在 CPU 為精簡指令集的 ARM 平台上尤為顯著(ARM v8 前效果較明顯)。其中 ChaCha20 是指對稱加密算法,Poly1305 是指身份認證算法。ChaCha20-Poly1305 算法精簡,有安全性強、兼容性強等特點,可減少加密解密所產生的數據量進而可以改善用戶體驗,減少等待時間,節省電池壽命等。
又拍雲 CDN 已經全面支持 Google 推出的針對移動端優化的加密套件——ChaCha20-Poly1305。所有用戶都可以享受到該算法加解密性能提升,網頁加載時間減少,電池壽命延長等優勢。又拍雲 CDN 已經默認支持 ChaCha20-Poly1305,並針對不支持 AES-NI 的終端優先選擇此算法作為對稱加密算法。
貼心福利,免費 SSL 證書+自主配置
至於前文中提到的 SSL 證書昂貴以及申購、配置麻煩的問題,又拍雲也已經幫你想好了解決方法。又拍雲聯合 Symantec、GeoTrust、TrustAsia、Let’s Encrypt 推出付費和免費 SSL 證書申請與管理一站式服務,無需繁雜流程,一鍵申請,自主部署,輕松實現網站與 Web 應用的 HTTPS 加密部署。
最后,大家可以看到,又拍雲在優化 HTTPS 訪問時,付出了艱辛的努力,實現了各種優化功能,讓用戶使用的更加安心、舒心,帶給用戶更好的體驗。如果你的網站還沒有開啟 HTTPS,不要猶豫,趕緊部署起來,趕上全網加密時代吧。文章轉自:https://zhuanlan.zhihu.com/p/42763471