中科三方:淺析SSL證書的工作原理

youbingke發表於2021-09-09

網際網路的快速發展和普及極大方便了人們的工作和生活,但同時也帶來了一定的安全隱患。因為傳統的網路通訊都使用的是HTTP傳輸協議,資訊資料採用明文方式傳輸,全程公開暴露,很容易被人監聽和劫持,同時HTTP協議無法驗證通訊雙方身份,因此給了釣魚網站可乘之機,嚴重影響了資訊傳輸的可靠性和安全性。正是基於這樣的背景,SSL證書應運而生。

什麼是SSL證書?

SSL證書是一種用於在Web伺服器和客戶端瀏覽器之間建立加密連結的數字證書。透過配置和應用SSL證書啟用HTTPS協議,可實現對網站真實性的確認和資訊傳輸過程的加密處理,有效保障網際網路資料傳輸的安全性。

中科三方:淺析SSL證書的工作原理?

SSL證書工作原理

當客戶端向一個https網站發起請求時,伺服器會將SSL證書傳送給客戶端進行校驗,SSL證書中包含一個公鑰。校驗成功後,客戶端會生成一個隨機串,並使用受訪網站的SSL證書公鑰進行加密,然後再傳送給網站伺服器。

網站伺服器收到加密的隨機串後,會利用自己的私鑰進行解密,得到由客戶端生成的隨機串。伺服器使用這一隨機串,開始與客戶端進行對稱加密通訊,客戶端使用隨機串對伺服器發來的資訊進行加密。

中科三方:淺析SSL證書的工作原理?

從這個過程中可以看出,SSL證書同時使用了非對稱加密和對稱加密,使用非對稱加密運送一把“鑰匙”給伺服器,保證“鑰匙”的安全性,伺服器得到“鑰匙”後,使用這把“鑰匙”對資訊進行加密,整個傳輸過程都處於加密狀態,有效保障了資訊的完整性、準確性和安全性。

SSL證書工作流程

SSL證書的工作流程分為三個部分:握手協議(Handshake protocol)、記錄協議(Record protocol)、警報協議(Alert protocol)。

一、握手協議

握手協議發生在應用程式的資料傳輸前,是客戶端和伺服器用SSL連線通訊時使用的第一個子協議,也是整個SSL過程中最複雜的一部分協議。該協議允許伺服器和客戶端相互驗證、協商加密和MAC演算法以及保密金鑰,用來保護在SSL記錄中傳送的資料。

每個握手協議包含以下3個欄位:

(1)Type:表示10種訊息型別之一

(2)Length:表示訊息長度位元組數

(3)Content:與訊息相關的引數

中科三方:淺析SSL證書的工作原理?

握手協議有4個階段:

第一階段:建立安全能力

SSL握手的第一階段啟動邏輯連線。首先客戶端向伺服器發出client hello訊息等待伺服器響應,隨後伺服器向客戶端返回server hello訊息,對client hello訊息中的資訊進行確認。

中科三方:淺析SSL證書的工作原理?

ClientHello資訊

客戶傳送CilentHello資訊,包含如下內容:

(1)客戶端可以支援的SSL最高版本號

(2)一個用於生成主秘密的32位元組的隨機數。

(3)一個確定會話的會話ID。

(4)一個客戶端可以支援的密碼套件列表,每個套件都以“SSL”開頭,緊跟著的是金鑰交換演算法。

(5)一個客戶端可以支援的壓縮演算法列表。

ServerHello資訊

伺服器用ServerHello資訊應答客戶,包括下列內容:

(1)一個SSL版本號。

(2)一個用於生成主秘密的32位元組的隨機數。(客戶端一個、服務端一個)

(3)會話ID

(4)從客戶端的密碼套件列表中選擇的一個密碼套件

(5)從客戶端的壓縮方法的列表中選擇的壓縮方法

這個階段之後,客戶端服務端知道了下列內容:

(1)SSL版本

(2)金鑰交換、資訊驗證和加密演算法

(3)壓縮方法

(4)有關金鑰生成的兩個隨機數。

第二階段:伺服器鑑別與金鑰交換

伺服器啟動SSL握手第2階段,該階段只有伺服器傳送訊息,客戶端接收訊息。

中科三方:淺析SSL證書的工作原理?

該階段分為4步:

(1)伺服器將數字證書和到根CA整個鏈發給客戶端,使客戶端透過伺服器證書中的伺服器公鑰識別認證伺服器。

(2)根據金鑰交換演算法進行伺服器秘鑰交換

(3)伺服器要求客戶端進行身份驗證。

(4)伺服器完成握手。

第三階段:客戶端鑑別與金鑰交換

客戶端開始握手第三階段,本階段只有客戶端傳送訊息,伺服器接收訊息。

中科三方:淺析SSL證書的工作原理?

(1)為了驗證伺服器,客戶傳送一個證書資訊,這是可選的,在IIS中可以配置強制客戶端證書認證。

(2)客戶端金鑰交換:這裡客戶端將預備主金鑰傳送給服務端,注意這裡會使用服務端的公鑰進行加密。

(3)證書驗證,對預備秘鑰和隨機數進行簽名,證明擁有證書的公鑰。

第四階段:握手完成

客戶端啟動SSL握手第4階段,使伺服器結束。該階段分為4步,前2個訊息來自客戶端,後2個訊息來自伺服器。

中科三方:淺析SSL證書的工作原理?

二、記錄協議

記錄協議發生在客戶端和伺服器握手成功後,即客戶端和伺服器確認雙方身份交換使用的演算法後,進入SSL記錄協議,記錄協議向SSL連線提供兩個服務:

(1)保密性:使用握手協議定義的秘密金鑰實現

(2)完整性:握手協議定義了MAC,用於保證訊息完整性

中科三方:淺析SSL證書的工作原理?

SSL記錄協議接收傳輸的應用程式訊息,將資料分割成可管理的塊,然後利用加密演算法對資料進行加密,最後新增標頭檔案。接收資料後,需要對其進行解密、驗證、解壓縮和重新組裝。

三、警報協議

客戶端和伺服器發現錯誤時,如證書錯誤、證書到期、握手失敗等情況,會向對方傳送一個警報訊息。如果是致命錯誤,則演算法立即關閉SSL連線,雙方還會先刪除相關的會話號和金鑰。

以下是一些警告資訊:

• unexpected_message:接收了不合適的報文。

• bad_record_mac:收到了不正確的MAC。

• decompression_failure:解壓縮函式收到不適當的輸入。

• illegal_parameter:握手報文中的一個欄位超出範圍或與其他欄位不相容。

• certificate_revoked:證書已經被廢棄。

• bad_certificate:收到的證書是錯誤的。

• certificate_expired:證書已經過期。

• handshake_failer:握手過程失敗。

當發生了以上情況中的任意一個時,都會啟用警報協議。

——

隨著網際網路技術的快速發展和普及,企業線上業務的比例快速提升,網站安全的重要性日漸凸顯。透過安裝和部署SSL證書啟用更為安全的HTTPS傳輸協議,對傳輸資料進行加密處理,並有效驗證伺服器身份,最大程度避免了資訊洩露和釣魚網站,有效保障使用者數安全,提升企業品牌形象。

如今越來越多的網站開始部署SSL證書,以提升網站的安全防護能力,在政府、金融、科研以及大型企業等重點行業和領域,SSL證書已成為了保障網站資料安全的一種“標配”。


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69996004/viewspace-2791273/,如需轉載,請註明出處,否則將追究法律責任。

相關文章