大型網(wǎng)站的 HTTPS 實踐(1):HTTPS 協(xié)議和原理
當(dāng)今世界,HTTPS是安全保護數(shù)據(jù)傳輸?shù)幕A(chǔ),也是網(wǎng)站或 Web 應(yīng)用實施安全策略的重要環(huán)節(jié)。本文將介紹 HTTPS 的原理與運作機制,所面臨的挑戰(zhàn),以及大型網(wǎng)站等組織如何建立并維護 HTTPS 協(xié)議。 一、HTTPs 協(xié)議原理 HTTPS是以安全為目標的HTTP通道;它通過SSL/TLS安全協(xié)議為網(wǎng)絡(luò)數(shù)據(jù)傳輸提供保護。SSL證書由Web服務(wù)器提供,其中包含一個公鑰、一個私鑰和一個服務(wù)器證書。服務(wù)器證書由可信的第三方組織(證書頒發(fā)機構(gòu)——CAs)頒發(fā),并且包含服務(wù)器的信息,如服務(wù)器域名、IP等??蛻舳耍g覽器)根據(jù)服務(wù)器證書的內(nèi)容,發(fā)送證書驗證請求,服務(wù)器將其自身的證書發(fā)送給客戶端,由此進行服務(wù)器身份認證。 一旦服務(wù)器身份認證通過,客戶端便可以同服務(wù)器進行安全連接。這個過程需要在客戶端和服務(wù)器端進行密鑰交換,交換密鑰的方式有RSA和Diffie-Hellman兩種。 一旦密鑰交換完成,瀏覽器和服務(wù)器就可以安全地通信。服務(wù)器端將使用公鑰加密數(shù)據(jù)傳輸,客戶端將使用私鑰解密數(shù)據(jù)。同時,客戶端和服務(wù)器也會采用傳輸層安全性(TLS)的協(xié)議進行交流,其主要目的是根據(jù)客戶端傳送的密鑰和服務(wù)器記錄的密鑰,來通過加密機制來實現(xiàn)服務(wù)器端數(shù)據(jù)的安全傳輸。 二、HTTPS 面臨的挑戰(zhàn) 當(dāng)不慎將 HTTP 信息的傳輸發(fā)布到假設(shè)不安全的網(wǎng)絡(luò)服務(wù)器或 Web 應(yīng)用程序上時,HTTPS 便會面臨著挑戰(zhàn),告訴我們建立 HTTPS 鏈接并不簡單、也不是權(quán)宜之計。 主要挑戰(zhàn)有: (1)首先是安全性,主要針對身份認證、內(nèi)容傳輸安全以及針對可能出現(xiàn)的潛在安全缺陷實施保護措施。 (2)其次是安全性的維護,即 HTTPS 認證的服務(wù)器端提供者要定期更新證書,并且在簽名機制的基礎(chǔ)上,保證傳輸過程中的數(shù)據(jù)完整性。 (3)再次是靈活性,大型網(wǎng)站要盡量提升用戶體驗,因此要實現(xiàn)頁面可緩存性,盡量節(jié)省數(shù)據(jù)傳輸時間。 (4)最后是速度問題,HTTPS 協(xié)議需要比 HTTP 協(xié)議更長的傳輸時間,且證書中所包含的元數(shù)據(jù)會增加客戶端請求的時間,因此要實現(xiàn) HTTPS 的快速請求和傳輸,需要重新映射數(shù)據(jù)元。 三、大型網(wǎng)站 HTTPS 實踐 大型網(wǎng)站要實現(xiàn) HTTPS,必須盡量避免上面的挑戰(zhàn),具體要點如下: (1)應(yīng)該使用最新的 TLS 與 SSL 加密技術(shù),確保傳輸數(shù)據(jù)安全性,把自己保護起來。 (2)需要定期更新證書,并且要確保簽名機制的完整性,來防止數(shù)據(jù)遭竊取和未經(jīng)授權(quán)訪問。 (3)通過 CDN 加速來實現(xiàn)緩存優(yōu)化,必要時采用雙層 HTTPS,減少數(shù)據(jù)傳輸?shù)呢摀?dān)。 (4)盡