基於HTTPS的安全機制的研究(一)

##1 問題提出安全

如今普遍使用的HTTP協議採用的是一種明文傳輸的方式,所以通訊雙方的數據在網絡上傳輸是十分不安全的。服務器

##2 解決方案網絡

一種簡單的解決方案就是對傳輸的數據進行加密處理。併發

目前流行的加密方式有兩種:對稱加密和非對稱加密。加密

###2.1 對稱加密圖片

首先討論對稱加密方式。it

對稱加密指的是通訊雙方使用同一套密鑰對數據進行加密和解密。原理

若是使用對稱加密就意味着通訊的雙方必須都知道密鑰,才能完成加密和解密操做。方法

一種典型的場景是:客戶端發送密鑰至服務器,服務器接受該密鑰,以後全部的數據傳輸都採用該密鑰進行加密和解密;im

該方法雖然能夠解決明文傳輸的問題,卻存在安全隱患。在密鑰協商階段,客戶端須要發送密鑰給服務器,此時若是攻擊者監測到該密鑰,就可使用該密鑰來解密以後全部的數據,那麼本次經對稱加密後的數據傳輸也就變爲明文傳輸。

所以,如何確保對稱加密方式中密鑰的安全是此方式中最爲核心的問題。

###2.2 非對稱加密

接下來咱們討論非對稱加密方式。 非對稱加密的密鑰有公鑰和私鑰之分,使用公鑰加密的數據只有私鑰才能解密,同理使用私鑰加密的數據只有公鑰才能解密。

那麼對傳輸數據進行非對稱加密是否是就是安全的呢?

非對稱加密一種典型的場景是: 由服務器生成公鑰和私鑰,並將公鑰發送給客戶端,以後服務器和客戶端之間全部的數據都採用公鑰和私鑰加密。

接下來咱們分析下這種場景。 客戶端接受到服務器發來的公鑰,而後使用公鑰對數據進行加密,根據非對稱加密的原理,咱們瞭解這種加密數據只有服務器使用私鑰才能解密,所以任何攻擊者截取到該信息都沒法完成解密,因此任何由客戶端向服務器發送的數據都是安全的。

可是,在開始階段,服務器須要將公鑰發送給客戶端,在這個過程當中,攻擊者就有可能會拿到公鑰,這就意味以後全部由服務器發給客戶端的,經私鑰加密的數據,攻擊者一樣能夠用截取到的公鑰對其進行解密。

綜上,咱們得出,採用非對稱加密的方式只能保證客戶端到服務器的數據是安全的,並不能保證服務器到客戶端也是安全的,所以只是一種單向安全的加密方式。

###2.3 混合加密方式

接下來咱們探討採用對稱加密+非對稱加密混合加密方式。

經過2.1 對稱加密方式 一節的分析,咱們知道,此種方式最大的問題在於密鑰的安全性,一旦密鑰被攻擊者獲取,那麼本次傳輸將變爲明文傳輸。經過2.2 非對稱加密方式 咱們瞭解非對稱加密只是單向安全的數據傳輸,即只有客戶端到服務器的傳輸纔是安全的。

結合兩者的特色,咱們提出,通訊雙方全部的數據傳輸採用對稱加密方式,密鑰的傳輸採用非對稱加密方式。

一種典型的場景是:

  • 服務器生成公鑰和私鑰,並將公鑰發給客戶端;
  • 客戶端生成對稱加密的密鑰,用公鑰對該密鑰進行加密,併發給服務器,以後全部的數據傳輸都使用該密鑰進行加密;
  • 服務器收到該客戶端發過來的經公鑰加密的數據,使用私鑰對其解密,從而獲得客戶端的密鑰,以後全部來自該客戶端的數據,都使用該密鑰解密。

這種混合加密的方式在必定程度上確實能提升數據傳輸的安全性,可是它就必定安全嗎?欲知後事如何,且聽下回分解。

輸入圖片說明

相關文章
相關標籤/搜索