古詩詞大全網 - 藝術簽名 - HTTPS的請求過程

HTTPS的請求過程

1、瀏覽器發起往服務器的 443 端口發起請求,請求攜帶了瀏覽器支持的加密算法和哈希算法。

2、服務器收到請求,選擇瀏覽器支持的加密算法和哈希算法。

3、服務器下將數字證書返回給瀏覽器,這裏的數字證書可以是向某個可靠機構申請的,也可以是自制的。 (註釋:證書包括以下這些內容:1. 證書序列號。2. 證書過期時間。3. 站點組織名。4. 站點DNS主機名。5. 站點公鑰。6. 證書頒發者名。7. 證書簽名。因為證書就是要給大家用的,所以不需要加密傳輸)

4、瀏覽器進入數字證書認證環節,這壹部分是瀏覽器內置的 TSL 完成的:

4.1 首先瀏覽器會從內置的證書列表中索引,找到服務器下發證書對應的機構,如果沒有找到,此時就會提示用戶該證書是不是由權威機構頒發,是不可信任的。如果查到了對應的機構,則取出該機構頒發的公鑰。

4.2 用機構的證書公鑰解密得到證書的內容和證書簽名,內容包括網站的網址、網站的公鑰、證書的有效期等。瀏覽器會先驗證證書簽名的合法性(驗證過程類似上面 Bob 和 Susan 的通信)。簽名通過後,瀏覽器驗證證書記錄的網址是否和當前網址是壹致的,不壹致會提示用戶。如果網址壹致會檢查證書有效期,證書過期了也會提示用戶。這些都通過認證時,瀏覽器就可以安全使用證書中的網站公鑰了。

4.3 瀏覽器生成壹個隨機數 R,並使用網站公鑰對 R 進行加密。

5、瀏覽器將加密的 R 傳送給服務器。

6、服務器用自己的私鑰解密得到 R。

7、服務器以 R 為密鑰使用了對稱加密算法加密網頁內容並傳輸給瀏覽器。

8、瀏覽器以 R 為密鑰使用之前約定好的解密算法獲取網頁內容。

註釋:

第3步中,證書的內容包含的證書的簽名是什麽?簽名是指利用上壹層證書的私鑰,加密壹些元信息(證書所有者的信息,包括基本信息,公鑰,證書生效域名等)。這樣,當收到簽名證書時,只需要根據CA提供的公鑰對簽名解密,驗證元信息是否壹致,就可以判斷當前證書是否合法。壹句話來說就是,每個證書會對下壹層的證書合法性做擔保 。

第4步中,怎麽認證數字證書?

客戶端怎麽確認妳的證書是合法的呢。首先妳的證書會在https握手過程中被傳遞到瀏覽器,瀏覽器從妳的證書中找到了頒發者,從頒發者的證書(如果妳電腦上有的話)又找到了CA的證書(CA證書會在操作系統安裝時就安裝好,所以每個人電腦上都有根證書),使用CA證書中帶的公鑰來對頒發者證書做驗簽,壹旦匹配,說明妳電腦上的頒發者證書不是偽造的,同理,再用頒發者證書中的公鑰去驗證妳的證書,以此證明妳的證書不是偽造的。這樣整個鏈狀的驗證,從而確保妳的證書壹定是直接或間接從CA簽發的,這樣瀏覽器地址欄會顯示壹個綠色的盾牌,表示妳的網站能通過證書驗證

如果妳的電腦上沒有頒發者證書(斷鏈)或者妳自己本身就是自簽名證書(自己做CA,但是要記得,人家電腦上並沒有裝妳的自簽名根證書),那麽瀏覽器會報警提示不能驗證證書,問妳是否還需要繼續。

過幾天有時間整理下防止抓包的文檔。