摘要:服務端通過私鑰解密明文,公鑰密文密文,私鑰明文因為握手的過程中采用了非對稱加密,客戶端本身不知道服務器的秘鑰,這樣通信就不會被中間人劫持。
HTTPS(全稱:Hyper Text Transfer Protocol over Secure Socket Layer 超文本傳輸安全協議)
HTTPS在傳統的HTTP和TCP之間加了一層用于加密解密的SSL/TLS層(安全套接層Secure Sockets Layer/安全傳輸層Transport Layer Security)層。使用HTTPS必須要有一套自己的數字證書(包含公鑰和私鑰)。
HTTPS解決的問題
信息加密傳輸:第三方無法竊聽;
校驗機制:一旦被篡改,通信雙方會立刻發現;
身份證書:防止身份被冒充。
HTTPS加密過程:
客戶端請求服務器獲取證書公鑰
客戶端(SSL/TLS)解析證書(無效會彈出警告)
生成隨機值
用公鑰加密隨機值生成密鑰
客戶端將秘鑰發送給服務器
服務端用私鑰解密秘鑰得到隨機值
將信息和隨機值混合在一起進行對稱加密
將加密的內容發送給客戶端
客戶端用秘鑰解密信息
加密過程使用了對稱加密和非對稱加密。
對稱加密: 客戶端和服務端采用相同的密鑰經行加密
encrypt(明文,秘鑰) = 密文 decrypt(密文,秘鑰) = 明文
非對稱加密:客戶端通過公鑰加密。服務端通過私鑰解密
encrypt(明文,公鑰) = 密文 decrypt(密文,私鑰) = 明文
因為TLS握手的過程中采用了非對稱加密,客戶端本身不知道服務器的秘鑰,這樣通信就不會被中間人劫持。此外這一步服務端還提供了證書,并且可能要求客戶端提供證書。關于證書下文會提到,只要有了證書,就能保證和你通信的對方是真實的,而不是別人偽造的。
那然后驗證證書呢?
客戶端獲取到了站點證書,拿到了站點的公鑰
客戶端找到其站點證書頒發者的信息
站點證書的頒發者驗證服務端站點是否可信
往上回溯,找到根證書頒發者
通過根證書頒發者一步步驗證站點證書頒布者是否可信
附:
HTTPS默認使用443端口,而HTTP默認使用80端口。
TLS就是從SSL發展而來的,只是SSL發展到3.0版本后改成了TLS
第一次請求中TLS握手的代價很大
后續的請求會共用第一次請求的協商結果
我的GitHub地址參考:
劉某某_adf3
jimsshom
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/106408.html
摘要:前言總括原文博客地址協議之數據加密過程詳解知乎專欄簡書專題前端進擊者知乎前端進擊者簡書博主博客地址的個人博客生活只要你聽過,不可能沒聽過協議吧,協議是一種安全協議。 前言 總括: 原文博客地址:SSL協議之數據加密過程詳解 知乎專欄&&簡書專題:前端進擊者(知乎)&&前端進擊者(簡書) 博主博客地址:Damonare的個人博客 生活 SSL 只要你聽過HTTPS,不可能沒聽過...
閱讀 796·2021-11-24 09:38
閱讀 998·2021-11-11 11:01
閱讀 3236·2021-10-19 13:22
閱讀 1524·2021-09-22 15:23
閱讀 2828·2021-09-08 09:35
閱讀 2766·2019-08-29 11:31
閱讀 2119·2019-08-26 11:47
閱讀 1563·2019-08-26 11:44