http 與 https 的區別以及加密詳解

一、http與https的區別:

  1. http和https是兩種通信方式
  2. http默認採用80作爲通訊端口,對於傳輸採用不加密的方式,https默認採用443,對於傳輸的數據進行加密傳輸
  3. https協議需要到CA申請證書
  4. HTTPS協議可以理解爲HTTP協議的升級,就是在HTTP的基礎上增加了數據加密。在數據進行傳輸之前,對數據進行加密,然後再發送到服務器。這樣,就算數據被第三者所截獲,但是由於數據是加密的,所以你的個人信息是安全的。這就是HTTP和HTTPS的最大區別。

二、原理詳解

(1)、http傳輸原理講解

HTTP協議是一種使用明文數據傳輸的網絡協議。
我們通過一個簡單的例子來描述:
在這裏插入圖片描述
上圖應該是我們最期望看到的結果,兩者得到了真愛。但是,這種情況真的是我們想的那樣嗎?答案很簡單,不是的,因爲產生了第三者!看下圖:
在這裏插入圖片描述
本來客戶端想發送我喜歡你,但是內容被黑客截取,黑客篡改了內容,給服務端發送了我討厭你,一段美好的姻緣就此斷送了。
爲什麼黑客可以得到呢?客戶端向服務端發送的內容都是暴露的,發送的是什麼,傳輸的就是什麼,所以黑客可以很容易的得到內容,無需破解。

(2)、https傳輸原理講解以及加密過程講解

爲了避免上圖情況發生,我們引入了https(http+ssl,也就是在http外面加了一層ssl保護殼)

HTTPS協議可以理解爲HTTP協議的升級,就是在HTTP的基礎上增加了數據加密。在數據進行傳輸之前,對數據進行加密,然後再發送到服務器。
那麼https是怎麼加密的呢?下面我們介紹兩種加密方式:對稱加密和非對稱加密
1、對稱加密的原理:
原理圖:
在這裏插入圖片描述
客戶端在向服務端發送請求的時候採用了一種加密算法(圖中的密鑰$)對"我愛你"進行了加密,加密後的內容爲:ASKJ@##!!,然後服務端獲取到相關內容後通過相對應的解密算法可以將內容解密爲"我愛你",從而保證了信息的安全性。但是這種方法真的安全嗎?結果顯然不是,假如第三方獲取到密鑰 $呢?看下圖:
在這裏插入圖片描述
這相當於沒有加密,因此使用同一個密鑰是無法解決問題的,因此引入了非對稱加密,使用不同的祕鑰加解密。這就爲對稱加密的協商過程進行加密。

2、非對稱加密
這裏涉及到公鑰私鑰特點是私鑰加密後的密文,只要是公鑰,都可以解密,但是反過來公鑰加密後的密文,只有私鑰可以解密。私鑰只有一個人有,而公鑰可以發給所有的人。
看例子:

A(客戶)想給B(服務器)發送一段文字,但是不想讓別人看到,因此想使用非對稱加密方法來加密這段文字,當然,B需要有一對公鑰和私鑰:
①、B將他的公鑰發送給A
②、A用B給他的公鑰加密這段文字,然後傳給B
③、B用他的私鑰解密A發過來的消息,這裏要強調的是,只要B的私鑰不泄露,這封信就是安全的,即使落在別人手裏,也無法解密。
通過這幾步,B就能成功收到A發送的信息,同時又達到了保密的目的。

在這裏插入圖片描述
在這裏解釋一下:

對於https加密的過程,我們首先介紹的對稱加密,採用對稱加密進行通信存在祕鑰協商過程的不安全性,因此我們採用了非對稱加密算法解決了對協商過程的加密,因此https是集對稱加密和非對稱加密爲一體的加密過程

3、數字證書
爲什麼會說到數字證書?其實上面的過程存在一些問題,看下圖:
在這裏插入圖片描述
客戶端獲取公鑰最最直接的方法是服務器端將公鑰發送給每一個客戶端用戶,但這個時候就出現了公鑰被劫持的問題,如上圖。那麼如何安全的獲取公鑰,並確保公鑰的獲取是安全的? 那就需要用到終極武器了:SSL 證書(需要購買)和CA機構。

原理圖如下:
在這裏插入圖片描述
服務器發送了一個SSL證書給客戶端,SSL 證書中包含的具體內容有證書的頒發機構、有效期、公鑰、證書持有者、簽名,通過第三方的校驗保證了身份的合法,解決了公鑰獲取的安全性

二、總結

HTTPS要使客戶端與服務器端的通信過程得到安全保證,必須使用的對稱加密算法,但是協商對稱加密算法的過程,需要使用非對稱加密算法來保證安全,然而直接使用非對稱加密的過程本身也不安全,會有中間人篡改公鑰的可能性,所以客戶端與服務器不直接使用公鑰,而是使用數字證書籤發機構頒發的證書來保證非對稱加密過程本身的安全。這樣通過這些機制協商出一個對稱加密算法,就此雙方使用該算法進行加密解密。從而解決了客戶端與服務器端之間的通信安全問題。

參考博客: https://www.cnblogs.com/qiangxia/p/5261813.html

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章