Https加密
#介紹
Http直接透過明文在瀏覽器和伺服器之間傳遞訊息,容易被監聽抓取到通訊內容。
Https採用對稱加密和非對稱加密結合的方式來進行通訊。
Https不是應用層的新協議,而是Http通訊介面用SSL和TLS來加強加密和認證機制。
加密方式
對稱加密:加密和解密都是同一個密匙。
非對稱加密:金鑰成對出現,分為公鑰和私鑰,公鑰加密需要私鑰解密,私鑰加密需要公鑰解密。
兩者差異
對稱加密速度快,非對稱加密速度慢。
對稱加密要將金鑰暴露,和明文傳輸沒差別。
非對稱加密將公鑰暴露,供客戶端加密,服務端使用私鑰解密。
Https加密的選擇
對稱加密弊端
對稱加密速度快,適合Https加密演算法,但伺服器和瀏覽器之間傳遞密鑰的過程被人監聽,相當明文傳輸。
非對稱加密弊端
服務端只將公鑰暴露,瀏覽器使用公鑰對訊息進行非對稱加密,服務端以私鑰解密。但是服務端回覆瀏覽器的時候,只能用私鑰加密,瀏覽器只能用公鑰解密。但是:公鑰是所有人都知道的,所有人都可以讀取服務端回覆的訊息來進行解密,所以解決不了服務端傳遞訊息到瀏覽器。
Https加密
對稱加密和非對稱加密結合方式
瀏覽器使用Https的URL存取伺服器,建立SSL連結。
伺服器收到SSL鏈接,發送非對稱加密的公鑰A返回給瀏覽器
瀏覽器產生隨機數,作為對稱加密的密鑰B
瀏覽器使用公鑰A,對自己產生的金鑰B進行加密,得到金鑰C
瀏覽器將金鑰C,傳送給伺服器。
伺服器用私鑰D對接受的金鑰C進行解密,得到對稱加金鑰B。
瀏覽器和伺服器之間可以用密鑰B作為對稱加密密鑰進行通訊。
總結
這樣瀏覽器和伺服器就共用一個對稱加密金鑰B,重要的是不會被攔截到。只在傳輸金鑰B的時候進行了一次非對稱加密,之後就用對稱加密進行傳送資料。
以上是https加密方式是什麼的詳細內容。更多資訊請關注PHP中文網其他相關文章!