HTTPS通信機制

概述

使用HTTP協議進行通信時,由於傳輸的是明文所以很容易遭到竊聽,就算是加密過的信息也容易在傳輸中遭受到篡改,因此需要在HTTP協議基礎上添加加密處理,認證處理等,有了這些處理機制的HTTP成爲HTTPS
HTTPS是在應用層和傳輸層之間加入了SSL(Secure Socket Layer)安全套接層和TLS(Transport Layer Security)安全傳輸層協議。
正常情況下HTTP直接與TCP通信,而HTTPS是先與SSL通信後再與TCP進行通訊。


HTTPS加密機制

要了解HTTPS的加密方式首先需要只要什麼是共享密鑰加密(對稱密鑰加密)和公開密鑰加密(非對稱密鑰加密)。

  • 共享密鑰加密:發送方傳輸給接收方一段加密的信息,那麼接收方就要用密鑰來解密這段信息,加密與解密的密鑰是一樣的,這樣的加密方法爲共享密鑰加密,對於共享密鑰加密,如果獲取密鑰的話那麼任何人都可以解密這段信息。

  • 公開密鑰加密:公開密鑰解決了共享密鑰的問題,傳輸的信息用同一個公開的密鑰進行加密,但是接收方解密的時候用私有的密鑰進行解密,公開密鑰加密又稱作非對稱密鑰加密,當截取者獲取公開密鑰時也無法對信息進行解密,必須用私有密鑰纔可以解密。

HTTPS採用混合加密機制
HTTPS使用公開密鑰加密的方式來傳輸用於共享密鑰加密的密鑰,然後雙方都存在這個密鑰後用共享密鑰加密的方式進行信息傳輸。
然而這樣做也會出現一些問題,當服務端與客戶端在公開密鑰加密的方式下進行通信時,怎樣確保這個公開的密鑰就是服務器傳過來的,也有可能是在傳輸的過程中被替換掉了,由於存在這樣的原因,所以需要使用由權威的數字證書認定機構頒發的公開密鑰證書。

這樣HTTPS傳輸的過程大概是這個樣子:


HTTPS安全通信流程

  • 客戶端發送請求報文開始SSL通信,報文中包含客戶端支持的SSL版本,加密組件列表。

  • 服務器可進行SSL通信時會發送響應報文。

  • 之後服務器發送Certificate報文,報文中包含公開密鑰證書。

  • 最後服務器發送報文通知客戶端最初的SSL握手結束

  • SSL第一次握手結束後,客戶端會用服務器的公開密鑰加密一段隨機密碼串傳輸給服務器。

  • 接着客戶端會繼承發送報文提示服務器,在此報文以後的通信將使用之前發送過去的隨機密碼串進行加密處理。

  • 最後客戶端發送結束報文。

  • 服務器同樣發送報文提示客戶端,在此報文以後的通信將使用客戶端之前發送過來的隨機密碼串進行加密處理。

  • 服務器發送結束報文。

  • 服務器和客戶端的結束報文交換完後,SSL連接建立完成,開始HTTP請求。

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