https原理及其中所包含的對稱加密、非對稱加密

一、爲什麼要使用https

使用https的原因其實很簡單,就是因爲http的不安全。

當我們往服務器發送比較隱私的數據(比如說你的銀行卡,身份證)時,如果使用http進行通信。那麼安全性將得不到保障。首先數據在傳輸的過程中,數據可能被中間人抓包拿到,那麼數據就會被中間人竊取。其次數據被中間人拿到後,中間人可能對數據進行修改或者替換,然後發往服務器。最後服務器收到數據後,也無法確定數據有沒有被修改或替換,當然,如果服務器也無法判斷數據就真的是來源於客戶端。

總結下來,http存在三個弊端:

  1. 無法保證消息的保密性
  2. 無法保證消息的完整性和準確性
  3. 無法保證消息來源的可靠性

https就是爲了解決上述問題應運而生的。

二、https中涉及的基本概念

爲了解決http中存在的問題,https採用了一些加解密,數字證書,數字簽名的技術來實現。下面先介紹一下這些技術的基本概念

對稱加密與非對稱加密:爲了保證消息的保密性,就需要用到加密和解密。加解密算法目前主流的分爲對稱加密和非對稱加密。

  • 對稱加密(共享密匙加密):客戶端和服務器公用一個密匙用來對消息加解密,這種方式稱爲對稱加密。客戶端和服務器約定好一個加密的密匙。客戶端在發消息前用該密匙對消息加密,發送給服務器後,服務器再用該密匙進行解密拿到消息。
    在這裏插入圖片描述
    對稱加密的優點:對稱加密解決了http中消息保密性的問題
    對稱加密的缺點:
  1. 對稱加密雖然保證了消息保密性,但是因爲客戶端和服務器共享一個密匙,這樣就使得密匙特別容易泄露
  2. 因爲密匙泄露風險較高,所以很難保證消息來源的可靠性、消息的完整性和準確性。

在這裏插入圖片描述

  • 非對稱加密(公有密匙加密):既然對稱加密中,密匙那麼容易泄露,那麼我們可以採用一種非對稱加密的方式來解決。採用非對稱加密時,客戶端和服務端均擁有一個公有密匙和一個私有密匙。公有密匙可以對外暴露,而私有密匙只有自己可見。使用公有密匙加密的消息,只有對應的私有密匙才能解開。反過來,使用私有密匙加密的消息,只有公有密匙才能解開。這樣客戶端在發送消息前,先用服務器的公匙對消息進行加密,服務器收到後再用自己的私匙進行解密。

在這裏插入圖片描述

非對稱加密的優點:

  1. 非對稱加密採用公有密匙和私有密匙的方式,解決了http中消息保密性問題,而且使得私有密匙泄露的風險降低。
  2. 因爲公匙加密的消息只有對應的私匙才能解開,所以較大程度上保證了消息的來源性以及消息的準確性和完整性。
    非對稱加密的缺點:
  3. 非對稱加密時需要使用到接收方的公匙對消息進行加密,但是公匙不是保密的,任何人都可以拿到,中間人也可以。那麼中間人可以做兩件事,第一件是中間人可以在客戶端與服務器交換公匙的時候,將客戶端的公匙替換成自己的。這樣服務器拿到的公匙將不是客戶端的,而是服務器的。服務器也無法判斷公匙來源的正確性。第二件是中間人可以不替換公匙,但是他可以截獲客戶端發來的消息,然後篡改,然後用服務器的公匙加密再發往服務器,服務器將收到錯誤的消息。
  4. 非對稱加密的性能相對對稱加密來說會慢上幾倍甚至幾百倍,比較消耗系統資源。正是因爲如此,https將兩種加密結合了起來。
    在這裏插入圖片描述
    在這裏插入圖片描述
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章