一、HTTP 與 HTTPS 的區別
項目 | HTTP | HTTPS |
---|---|---|
全稱 | HyperText Transfer Protocol | HyperText Transfer Protocol Secure |
端口 | 80 | 443 |
協議層 | 應用層 | 應用層 + TLS(安全層) |
加密方式 | 明文傳輸 | 加密傳輸(TLS) |
安全性 | 易被劫持、中間人攻擊 | 可加密、防篡改、防偽裝 |
是否需證書 | 否 | 是(由 CA 機構頒發) |
二、HTTPS 的核心安全保障
HTTPS 基于 TLS(或舊版 SSL)實現以下三個目標:
- 機密性(防監聽):使用對稱加密加密數據內容
- 身份認證(防偽裝):通過數字證書驗證服務器身份
- 完整性校驗(防篡改):使用摘要算法保證數據未被修改
三、HTTPS 加密通信原理(TLS 握手過程)
混合加密機制:
加密方式 | 使用目的 | 特點 |
---|---|---|
非對稱加密 | 握手階段傳輸密鑰 | 安全但慢 |
對稱加密 | 正文傳輸 | 快但需安全傳遞密鑰 |
摘要 + MAC | 校驗完整性 | 防止數據被篡改 |
TLS 1.2 握手步驟:
四、數字證書與身份認證
數字證書包含:
- 公鑰
- 服務器域名
- 頒發機構(CA)
- 有效期
- 簽名算法(SHA256)
驗證方式:
客戶端瀏覽器內置 根證書列表,通過鏈式驗證服務器的證書是否被信任。
五、TLS 1.3 對比 TLS 1.2
特性 | TLS 1.2 | TLS 1.3 |
---|---|---|
握手輪次 | 至少 2 次 RTT | 最快 1 次 RTT(支持 0-RTT) |
加密套件 | 多(含部分弱算法) | 默認強加密(去除 RSA 握手) |
會話恢復 | 使用 Session ID/Ticket | 使用 PSK |
前向保密 | 可選 | 默認啟用 |
六、HTTPS 常見問題總結
1. HTTPS 為什么比 HTTP 安全?
答: HTTPS 使用 TLS 實現加密通信、防監聽、防篡改和身份認證,相比 HTTP 明文傳輸更安全。
2. HTTPS 使用哪些加密算法?
類型 | 說明 | 示例算法 |
---|---|---|
非對稱加密 | 握手階段傳輸密鑰 | RSA、ECDHE |
對稱加密 | 加密通信內容 | AES、ChaCha20 |
摘要算法 | 校驗完整性 | SHA-256、HMAC |
3. HTTPS 全程使用非對稱加密嗎?
答: 否。
握手階段使用非對稱加密交換對稱密鑰,之后的通信使用對稱加密(更高效)。
4. 數字證書是什么?客戶端如何驗證?
答: 證書由 CA 簽發,包含服務器公鑰、域名等信息。客戶端通過瀏覽器預置的根證書驗證其合法性(鏈式信任模型)。
5. TLS 握手過程簡述?
答: 客戶端發送 Hello → 獲取服務器證書 → 驗證后生成對稱密鑰 → 使用公鑰加密密鑰傳輸 → 建立安全通道。
6. 中間人攻擊是什么?HTTPS 如何防止?
答: 中間人偽裝成服務端竊聽數據。HTTPS 使用證書認證 + 加密通信,確保客戶端只能與真正的服務器通信,防止中間人。
7. TLS 1.2 vs TLS 1.3 的主要區別?
- TLS 1.3 性能更優,握手更快(支持 0-RTT)
- 移除不安全算法,默認啟用前向保密
- 加密元數據更強,防止探測
七、總結
特性 | HTTPS 優勢 |
---|---|
保密性 | 數據加密,防止監聽 |
身份認證 | 數字證書,防止偽造 |
完整性 | 摘要校驗,防止數據被篡改 |
性能(TLS 1.3) | 握手更快,資源更節省 |
應用場景 | 登錄、支付、傳輸隱私數據的所有 Web 應用場景 |