小夥伴們在面試過程當中會遇到一些HTTPS相關問題面試
我大概收集整理了下算法
這些問題咱們均可以在如下文章中找到答案安全
HTTP + SSL = HTTPS
HTTP + 加密 + 認證 + 完整性保護
= HTTPS服務器
HTTPS 不是新協議,只是HTTP通訊接口部分用SSL和TLS代替併發
HTTPS : HTTP -> SSL -> TCP -> IP加密
HTTPS採用共享密鑰加密
與公開密鑰加密
混合加密機制,保證處理速度和安全性code
公開密鑰
登陸證書認證機構數字簽名
並頒發公鑰證書
客戶端支持的加密算法 = [A,B,C]
接口
客戶端隨機數 = R1
class
服務端隨機數 = 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知識儘量的作了簡化處理,某些細節沒有深究,望見諒