HTTPS協議原理解析

2022-01-09 22:53:12 字數 1586 閱讀 6692

對稱加密加密和解密的秘鑰使用的是同乙個。

非對稱加密:與對稱加密演算法不同,非對稱加密演算法需要兩個金鑰:公開金鑰(publickey)和私有金鑰(privatekey)。 公開金鑰與私有金鑰是一對,如果用公開金鑰對資料進行加密,只有用對應的私有金鑰才能解密;如果用私有金鑰對資料進行加密,那麼只有用對應的公開金鑰才能解密。因為加密和解密使用的是兩個不同的金鑰,所以這種演算法叫作非對稱加密演算法。

對稱加密:演算法公開、計算量小、加密速度快、加密效率高。常見演算法有:des、3des、blowfish、idea、rc4、rc5、rc6 和 aes。

非對稱加密:安全速度慢。常見演算法有:rsa、ecc(移動裝置用)、diffie-hellman、el gamal、dsa(數字簽名用)。

伺服器端的公鑰和私鑰,用來進行非對稱加密

客戶端生成的隨機金鑰,用來進行對稱加密(提高效率)

1

.客戶端向伺服器發起https請求,連線到伺服器的443埠

2.伺服器端有乙個金鑰對,即公鑰和私鑰,是用來進行非對稱加密使用的,伺服器端儲存著私鑰,不能將其洩露,公鑰可以傳送給任何人。

3.伺服器將自己的公鑰傳送給客戶端。

4.客戶端收到伺服器端的證書之後,會對證書進行檢查,驗證其合法性,如果發現發現證書有問題,那麼https傳輸就無法繼續。嚴格的說,這裡應該是驗證伺服器傳送的數字證書的合法性,如果公鑰合格,那麼客戶端會生成乙個隨機值,這個隨機值就是用於進行對稱加密的金鑰,我們將該金鑰稱之為client key,即客戶端金鑰,這樣在概念上和伺服器端的金鑰容易進行區分。然後用伺服器的公鑰對客戶端金鑰進行非對稱加密,這樣客戶端金鑰就變成密文了,至此,https中的第一次http請求結束。

5.客戶端會發起https中的第二個http請求,將加密之後的客戶端金鑰傳送給伺服器。

6.伺服器接收到客戶端發來的密文之後,會用自己的私鑰對其進行非對稱解密,解密之後的明文就是客戶端金鑰,然後用客戶端金鑰對資料進行對稱加密,這樣資料就變成了密文。

7.然後伺服器將加密後的密文傳送給客戶端。

8.客戶端收到伺服器傳送來的密文,用客戶端金鑰對其進行對稱解密,得到伺服器傳送的資料。這樣https中的第二個http請求結束,整個https傳輸完成。

a)非對稱加密的加解密效率是非常低的,而 http 的應用場景中通常端與端之間存在大量的互動,非對稱加密的效率是無法接受的。

b)在 https 的場景中只有服務端儲存了私鑰,一對公私鑰只能實現單向的加解密,所以 https 中內容傳輸加密採取的是對稱加密,而不是非對稱加密。

http 協議被認為不安全是因為傳輸過程容易被監聽者勾線監聽、偽造伺服器,而 https 協議主要解決的便是網路傳輸的安全性問題。首先我們假設不存在認證機構,任何人都可以製作證書,這帶來的安全風險便是經典的「中間人攻擊」問題。

"中間人攻擊"的具體過程如下:

HTTPS原理解析

我們用https的目的是什麼?為了 a端與b端互發的訊息 就算被攔截獲取到也是加密了無法檢視的,通用的加密 解密過程如下 以上的過程分析如下 1 a端傳入加密串 xx 進a端的加密方法中,加密處理後假設生成了 fwe y h 2 然後a端將 fwe y h 傳送到b端。3 b端接收到 fwe y h...

HTTPS原理解析

開門見山地說,眾所周知,https http ssl tls,使用非對稱加密演算法 對稱加密演算法的混合加密演算法。最近在面試過程中被問到幾次這個問題,看過幾篇部落格,說的都不是很清楚,理解也有偏差,毫無意外的面試都掛了,今天看到了阮一峰老師的部落格 ssl tls 協議,終於有一種醍醐灌頂的感覺。...

HTTPS原理解析

https的驗證流程 延伸的問題 如果中間人自己向權威機構申請乙個證書,並且把服務端發來的證書進行偷換成自己的證書,該如何?並不能造成危害,因為證書的簽名是由服務端 等資訊生成的,並且經過機構私鑰加密,中間人無法篡改。所以,發個服務端的證書是無法通過驗證的。https的缺點 https和http的區...