淺談HTTPS傳輸協議原理

我們常常在使用網上銀行時看到的連接都是以“https”開始的,那麼這個https是什麼呢?這其實是表示目前連接使用了SSL進行加密,能保證客戶端到服務器端的通信都在被保護起來,那麼瀏覽器是如果實現的呢?下面讓我們來介紹一下SSL基本的實現方法。

首先我們有兩種基本的加解密算法類型:對稱加密,非對稱加密(公私鑰加密),現在介紹一下這兩種加密算法的特點:

對稱加密:密鑰只有一個,加密解密爲同一個密碼,且加解密速度快,典型的對稱加密算法有DESAES等,示意圖如下:

對稱加密
1 對稱加密

非對稱加密:密鑰成對出現(且根據公鑰無法推知私鑰,根據私鑰也無法推知公鑰),加密解密使用不同密鑰(公鑰加密需要私鑰解密,私鑰加密需要公鑰解密),相對對稱加密速度較慢,典型的非對稱加密算法有RSADSA等,示意圖如下:

非對稱加密
2 非對稱加密

根據上面的兩種加密方法,現在我們就可以設計一種無法讓他人在互聯網上知道你的通訊信息的加密方法:

  1. 在服務器端存在一個公鑰及私鑰

  2. 客戶端從服務器取得這個公鑰

  3. 客戶端產生一個隨機的密鑰

  4. 客戶端通過公鑰對密鑰加密(非對稱加密)

  5. 客戶端發送到服務器端

  6. 服務器端接受這個密鑰並且以後的服務器端和客戶端的數據全部通過這個密鑰加密(對稱加密)

    HTTPS通信過程的時序圖如下:

    HTTPS通信時序圖
    3 HTTPS通信時序圖

正如上圖所示,我們能保證下面幾點:

  1. 客戶端產生的密鑰只有客戶端和服務器端能得到

  2. 加密的數據只有客戶端和服務器端才能得到明文

  3. 客戶端到服務端的通信是安全的

當然實際的SSL實現算法複雜的多,並有數據校驗、身份驗證等功能,如果需要更多了角請參看RFC2246RFC4346文檔。

發佈了0 篇原創文章 · 獲贊 0 · 訪問量 1萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章