淺談HTTPS
是你大凱哥呢發表於2019-04-19
背景:
- Htttp採用明文傳輸資訊,存在資訊竊聽,資訊篡改的風險,而協議TLS/SSL具有身份驗證、資訊加密和完整性校驗的功能,可以完全避免此類問題發生。
- 竊聽相同段上的通訊很簡單,只需要收集在網際網路上流動的資料包就可以,對於收集這些資料包的工作交給抓包工具就可以實現了。
- TSL/SSL全稱安全傳輸協議,是介於TCP和HTTP之間的一層安全協議,不影響原有的TCP協議和HTTP協議,所以使用HTTPS基本不需要對HTTP頁面進行太多的改造。
- HTTPS = HTTP+ TLS/SSL
- TSL/SSL主要依賴三類基本演算法:雜湊函式Hash、對稱加密和非對稱加密,其利用非對稱加密實現身份認證和金鑰協商,對稱加密演算法採用協商的金鑰對資料加密,基於雜湊函式驗證資訊的完整性。!
- https過程
- 客戶端使用HTTPS的URL訪問Web伺服器,要求與WEb伺服器建立SSL連線
- Web伺服器收到客戶端的請求後,會將網站資訊(證書中包含公鑰)傳送一份給客戶端
- 客戶端的瀏覽器與Web伺服器協商SSL/TSL連線的安全協議等級,也就是資訊加密的等級
- 客戶端的瀏覽器根據雙方同意的安全等級,建立會話金鑰,然後利用網站的公鑰將對話的金鑰加密並·傳送網站
- Web伺服器利用自己的私鑰密出會話金鑰
- web伺服器利用會話金鑰加密與客戶端之間進行通訊
- https的優點
- 客戶端產生的金鑰只有客戶端和伺服器端能得到
- 加密的資料只有客戶端和服務端才能得到明文
- 客戶端到服務端的通訊是安全的
- https的侷限/缺點
- HTTPS比HTTP耗費更多的伺服器資源(https其實就是構建在SSL/TSL上的http協議,所以https比http多用多少伺服器資源,主要看SSL/TSL本身消耗多少伺服器資源)
- HTTPS並不能防止站點被網路蜘蛛抓取。某些情形下被加密資源的URL可僅通過截獲請求和響應大小推得,這就可使攻擊者同時知道明文(公開的靜態內容)和密文(被加密過的明文),從而選擇密文攻擊成為可能
- SSL證書需要繫結IP,不能在同一IP上繫結多個域名、