https通訊原理

 Https是什麼?

Https是基於安全目的的Http通道,其安全基礎由SSL層來保證。最初由netscape公司研發,主要提供了通訊雙方的身份認證和加密通信方法。現在廣泛應用於互聯網上安全敏感通訊。

Https與Http主要區別

協議基礎不同:Https在Http下加入了SSL層,

通訊方式不同:Https在數據通信之前需要客戶端、服務器進行握手(身份認證),建立連接後,傳輸數據經過加密,通信端口443。

Http傳輸數據不加密,明文,通信端口80。

SSL協議基礎

SSL協議位於TCP/IP協議與各種應用層協議之間,本身又分爲兩層:

SSL記錄協議(SSL Record Protocol):建立在可靠傳輸層協議(TCP)之上,爲上層協議提供數據封裝、壓縮、加密等基本功能。

SSL握手協議(SSL Handshake Procotol):在SSL記錄協議之上,用於實際數據傳輸前,通訊雙方進行身份認證、協商加密算法、交換加密密鑰等。

SSL協議通信過程

(1) 瀏覽器發送一個連接請求給服務器;服務器將自己的證書(包含服務器公鑰S_PuKey)、對稱加密算法種類及其他相關信息返回客戶端;

(2) 客戶端瀏覽器檢查服務器傳送到CA證書是否由自己信賴的CA中心簽發。若是,執行4步;否則,給客戶一個警告信息:詢問是否繼續訪問。

(3) 客戶端瀏覽器比較證書裏的信息,如證書有效期、服務器域名和公鑰S_PK,與服務器傳回的信息是否一致,如果一致,則瀏覽器完成對服務器的身份認證。

(4) 服務器要求客戶端發送客戶端證書(包含客戶端公鑰C_PuKey)、支持的對稱加密方案及其他相關信息。收到後,服務器進行相同的身份認證,若沒有通過驗證,則拒絕連接;

(5) 服務器根據客戶端瀏覽器發送到密碼種類,選擇一種加密程度最高的方案,用客戶端公鑰C_PuKey加密後通知到瀏覽器;

(6) 客戶端通過私鑰C_PrKey解密後,得知服務器選擇的加密方案,並選擇一個通話密鑰key,接着用服務器公鑰S_PuKey加密後發送給服務器;

(7) 服務器接收到的瀏覽器傳送到消息,用私鑰S_PrKey解密,獲得通話密鑰key。

(8) 接下來的數據傳輸都使用該對稱密鑰key進行加密。

上面所述的是雙向認證 SSL 協議的具體通訊過程,服務器和用戶雙方必須都有證書。由此可見,SSL協議是通過非對稱密鑰機制保證雙方身份認證,並完成建立連接,在實際數據通信時通過對稱密鑰機制保障數據安全性

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