天天看點

【第4題】 什麼是https

https是基于http和SSL/TLS實作的一個協定,他可以保證在網絡上傳輸的資料都是加密的,進而保證資料安全。

接下來我們從http協定開始,提出想法并逐漸進行分析,最終實作Https。

1. http協定是不安全的。

在https誕生之前,所有網站都使用http協定,而http協定在資料傳輸的過程中都是明文,是以可能存在資料洩露和篡改。

【第4題】 什麼是https

2. 使用對稱秘鑰進行資料加密

為了防止資料洩露和篡改,我們對資料進行加密,如:生成一個對稱密碼【DKUFHNAF897123F】,将對稱秘鑰分别交給浏覽器和伺服器端,他們之間傳輸的資料都使用對稱秘鑰進行加密和解密。

【第4題】 什麼是https

請求和響應流程如下:

  1. 用戶端使用對稱秘鑰對請求進行加密,并發送給服務端。
  2. 服務端接收到密文之後,使用對稱秘鑰對密文進行解密,然後處理請求。 最後再使用對稱秘鑰把要傳回的内容再次加密,傳回給用戶端。
  3. 用戶端接收到密文之後,使用對稱秘鑰進行解密,并擷取最終的響應内容。

如此一來,資料傳輸都是密文,解決了明文傳輸資料的問題。但是,這麼幹有bug。

  • 浏覽器如何擷取對稱秘鑰?
  • 每個用戶端的對稱秘鑰相同,浏覽器能拿到對稱秘鑰,那麼黑客也可以拿到,是以,資料加密也就沒有意義了。  

3. 動态對稱秘鑰和非對稱秘鑰

為了解決對稱秘鑰動态性以及讓用戶端和服務端安全的擷取對稱秘鑰,可以引入非對稱秘鑰機制。

【第4題】 什麼是https

如此一來,解決了 動态對稱秘鑰 和 資料加密的問題,因為每個使用者的對稱秘鑰都是随機生成且傳輸的過程中都使用公鑰加密(公鑰加密的資料隻有私鑰能解密),所有黑客無法截獲對稱秘鑰。而資料傳輸是通過對稱秘鑰加密過的,是以黑客即使能擷取資料也無法去解密看到真實的内容。  看似無懈可擊,但是,這麼幹還是又bug。

如果黑客在上圖 【步驟2】劫持,黑客把自己的公鑰傳回給客用戶端,那麼用戶端會使用黑客的公鑰來加密對稱秘鑰,黑客在【步驟6】截獲請求,使用自己的私鑰擷取對稱秘鑰,後面過程全都會完蛋...

4. CA憑證的應用

使用 ca 證書可以解決黑客劫持的問題。

【第4題】 什麼是https

如此一來,就解決了黑客劫持的問題,因為即使黑客劫持後的給浏覽器即使傳回了證書也無法通過校驗,同時浏覽器也會提示錯誤資訊。

注意:https是基于http和SSL/TLS實作的一個協定,其中前9個步驟稱為是SSL/TLS過程,之後的傳輸資料利用的就是http協定(收發資料)。

5. 總結

以上就是Https的實作原理,https可以保證資料安全,但由過程需要反複加密解密所有通路速度會有所下降(魚和熊掌不能兼得)。

【第4題】 什麼是https

作者:武沛齊

出處:http://www.cnblogs.com/wupeiqi/

本文版權歸作者和部落格園共有,歡迎轉載,但未經作者同意必須保留此段聲明,且在文章頁面明顯位置給出原文連接配接。