小夥伴們在面試過程當中會遇到一些HTTPS相關問題面試
我大概收集整理了下算法
這些問題咱們均可以在如下文章中找到答案
被竊聽解決安全
遇假裝解決服務器
遭篡改解決併發
HTTP + 加密 + 認證 + 完整性保護
= HTTPS加密
HTTPS 不是新協議,只是HTTP通訊接口部分用SSL和TLS代替code
HTTP + SSL = HTTPS
接口
HTTPS : HTTP -> SSL -> TCP -> IP
HTTPS : HTTP -> TCP -> IP登錄
對稱密鑰加密(共享密鑰加密):加密解密用同一個密鑰隨機數
非對稱密鑰加密(公開密鑰加密):一把私有密鑰(只有本身知道),一把公開密鑰(任何人均可以知道)
HTTPS採用共享密鑰加密
與公開密鑰加密
混合加密機制,保證處理速度和安全性
- 交換密鑰階段: 使用公開密鑰加密 能夠簡單理解爲加密的是共享密鑰的公鑰(保證安全) - 創建通訊交換報文: 使用共享密鑰加密 加密的是通訊的報文(保證速度)
公開密鑰
登陸證書認證機構數字簽名
並頒發公鑰證書
客戶端支持的加密算法 = [A,B,C]
客戶端隨機數 = R1
服務端隨機數 = R2
TLS四次握手
Client Hello
客戶端請求創建鏈接,向服務端發送(R1 + [A,B,C]
)Server Hello
服務端 回覆(R2 + [A] + 證書(非對稱加密公鑰)
)Client Key Exchange
客戶端 驗證證書 而後經過 [A] -> key
key + 非對稱加密公鑰 = 加密key
併發送(加密key
)Server Finish
服務端 利用 加密key + 非對稱加密私鑰 = 解密key
R1 + R2 + 解密key = 對稱加密的密鑰
此後的HTTP連接數據傳輸即經過對稱加密方式進行加密傳輸。
SSL
是一種安全傳輸協議,因爲安全的緣由SSL v1.0和SSL v2.0都沒有公開,直到SSL v3.0。
TLS
是SSL v3.0的升級版,目前市面上全部的HTTPS都是用的是TLS,而不是SSL
爲保證小夥伴們快速理解記憶,本文對HTTPS知識儘量的作了簡化處理,某些細節沒有深究,望見諒