【第4題】 什麼是https

https是基於http和SSL/TLS實現的一個協議,他能夠保證在網絡上傳輸的數據都是加密的,從而保證數據安全。瀏覽器

接下來咱們從http協議開始,提出想法並逐步進行分析,最終實現Https。安全

1. http協議是不安全的。

在https誕生以前,全部網站都使用http協議,而http協議在數據傳輸的過程當中都是明文,因此可能存在數據泄露和篡改。服務器

2. 使用對稱祕鑰進行數據加密

爲了防止數據泄露和篡改,咱們對數據進行加密,如:生成一個對稱密碼【DKUFHNAF897123F】,將對稱祕鑰分別交給瀏覽器和服務器端,他們之間傳輸的數據都使用對稱祕鑰進行加密和解密。網絡

請求和響應流程以下:併發

  1. 客戶端使用對稱祕鑰對請求進行加密,併發送給服務端。
  2. 服務端接收到密文以後,使用對稱祕鑰對密文進行解密,而後處理請求。 最後再使用對稱祕鑰把要返回的內容再次加密,返回給客戶端。
  3. 客戶端接收到密文以後,使用對稱祕鑰進行解密,並獲取最終的響應內容。

如此一來,數據傳輸都是密文,解決了明文傳輸數據的問題。可是,這麼幹有bug。網站

  • 瀏覽器如何獲取對稱祕鑰?
  • 每一個客戶端的對稱祕鑰相同,瀏覽器能拿到對稱祕鑰,那麼黑客也能夠拿到,因此,數據加密也就沒有意義了。  

3. 動態對稱祕鑰和非對稱祕鑰

爲了解決對稱祕鑰動態性以及讓客戶端和服務端安全的獲取對稱祕鑰,能夠引入非對稱祕鑰機制。加密

 

 

如此一來,解決了 動態對稱祕鑰 和 數據加密的問題,由於每一個用戶的對稱祕鑰都是隨機生成且傳輸的過程當中都使用公鑰加密(公鑰加密的數據只有私鑰能解密),全部黑客沒法截獲對稱祕鑰。而數據傳輸是經過對稱祕鑰加密過的,因此黑客即便能獲取數據也沒法去解密看到真實的內容。  看似無懈可擊,可是,這麼幹仍是又bug。spa

若是黑客在上圖 【步驟2】劫持,黑客把本身的公鑰返回給客客戶端,那麼客戶端會使用黑客的公鑰來加密對稱祕鑰,黑客在【步驟6】截獲請求,使用本身的私鑰獲取對稱祕鑰,後面過程全都會完蛋...3d

4. CA證書的應用

使用 ca 證書能夠解決黑客劫持的問題。blog

 

 

如此一來,就解決了黑客劫持的問題,由於即便黑客劫持後的給瀏覽器即便返回了證書也沒法經過校驗,同時瀏覽器也會提示錯誤信息。

注意:https是基於http和SSL/TLS實現的一個協議,其中前9個步驟稱爲是SSL/TLS過程,以後的傳輸數據利用的就是http協議(收發數據)。

5. 總結

以上就是Https的實現原理,https能夠保證數據安全,但由過程須要反覆加密解密全部訪問速度會有所降低(魚和熊掌不能兼得)。

相關文章
相關標籤/搜索