中科三方:淺析SSL證書的工作原理
網際網路的快速發展和普及極大方便了人們的工作和生活,但同時也帶來了一定的安全隱患。因為傳統的網路通訊都使用的是HTTP傳輸協議,資訊資料採用明文方式傳輸,全程公開暴露,很容易被人監聽和劫持,同時HTTP協議無法驗證通訊雙方身份,因此給了釣魚網站可乘之機,嚴重影響了資訊傳輸的可靠性和安全性。正是基於這樣的背景,SSL證書應運而生。
什麼是SSL證書?
SSL證書是一種用於在Web伺服器和客戶端瀏覽器之間建立加密連結的數字證書。透過配置和應用SSL證書啟用HTTPS協議,可實現對網站真實性的確認和資訊傳輸過程的加密處理,有效保障網際網路資料傳輸的安全性。
SSL證書工作原理
當客戶端向一個https網站發起請求時,伺服器會將SSL證書傳送給客戶端進行校驗,SSL證書中包含一個公鑰。校驗成功後,客戶端會生成一個隨機串,並使用受訪網站的SSL證書公鑰進行加密,然後再傳送給網站伺服器。
網站伺服器收到加密的隨機串後,會利用自己的私鑰進行解密,得到由客戶端生成的隨機串。伺服器使用這一隨機串,開始與客戶端進行對稱加密通訊,客戶端使用隨機串對伺服器發來的資訊進行加密。
從這個過程中可以看出,SSL證書同時使用了非對稱加密和對稱加密,使用非對稱加密運送一把“鑰匙”給伺服器,保證“鑰匙”的安全性,伺服器得到“鑰匙”後,使用這把“鑰匙”對資訊進行加密,整個傳輸過程都處於加密狀態,有效保障了資訊的完整性、準確性和安全性。
SSL證書工作流程
SSL證書的工作流程分為三個部分:握手協議(Handshake protocol)、記錄協議(Record protocol)、警報協議(Alert protocol)。
一、握手協議
握手協議發生在應用程式的資料傳輸前,是客戶端和伺服器用SSL連線通訊時使用的第一個子協議,也是整個SSL過程中最複雜的一部分協議。該協議允許伺服器和客戶端相互驗證、協商加密和MAC演算法以及保密金鑰,用來保護在SSL記錄中傳送的資料。
每個握手協議包含以下3個欄位:
(1)Type:表示10種訊息型別之一
(2)Length:表示訊息長度位元組數
(3)Content:與訊息相關的引數
握手協議有4個階段:
第一階段:建立安全能力
SSL握手的第一階段啟動邏輯連線。首先客戶端向伺服器發出client hello訊息等待伺服器響應,隨後伺服器向客戶端返回server hello訊息,對client hello訊息中的資訊進行確認。
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階段,該階段只有伺服器傳送訊息,客戶端接收訊息。
該階段分為4步:
(1)伺服器將數字證書和到根CA整個鏈發給客戶端,使客戶端透過伺服器證書中的伺服器公鑰識別認證伺服器。
(2)根據金鑰交換演算法進行伺服器秘鑰交換
(3)伺服器要求客戶端進行身份驗證。
(4)伺服器完成握手。
第三階段:客戶端鑑別與金鑰交換
客戶端開始握手第三階段,本階段只有客戶端傳送訊息,伺服器接收訊息。
(1)為了驗證伺服器,客戶傳送一個證書資訊,這是可選的,在IIS中可以配置強制客戶端證書認證。
(2)客戶端金鑰交換:這裡客戶端將預備主金鑰傳送給服務端,注意這裡會使用服務端的公鑰進行加密。
(3)證書驗證,對預備秘鑰和隨機數進行簽名,證明擁有證書的公鑰。
第四階段:握手完成
客戶端啟動SSL握手第4階段,使伺服器結束。該階段分為4步,前2個訊息來自客戶端,後2個訊息來自伺服器。
二、記錄協議
記錄協議發生在客戶端和伺服器握手成功後,即客戶端和伺服器確認雙方身份交換使用的演算法後,進入SSL記錄協議,記錄協議向SSL連線提供兩個服務:
(1)保密性:使用握手協議定義的秘密金鑰實現
(2)完整性:握手協議定義了MAC,用於保證訊息完整性
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/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 淺析DHCP的概念和原理(中科三方)
- 中科三方:瀏覽器是如何檢查SSL證書正常工作的?瀏覽器
- 什麼是域名ssl證書?域名ssl證書的分類有哪些?(中科三方)
- SSL證書的工作原理你知道嗎?
- 中科三方:詳解SSL證書的幾種型別型別
- 中科三方:網站為什麼要安裝SSL證書?SSL證書有哪些作用?網站
- 中科三方:5種導致“SSL證書不被信任”的原因
- SSL安全證書的工作原理是什麼
- 中科三方:關於SSL證書的幾個常見誤區
- 中科三方:三種檢視SSL證書有效期的方法
- 中科三方:SSL證書有哪些型別?如何去選擇?型別
- IPAM功能優勢淺析(中科三方)
- 中科三方:關於SSL證書你應該知道這些事
- 中科三方:SSL證書配置過程中常見問題盤點
- 中科三方:淺析域名管理的重要性
- 中科三方:企業有沒有必要安裝SSL證書?SSL證書為什麼沒有全面應用?
- 中科三方:SSL證書是什麼?主要有幾種型別?型別
- 什麼是SSL證書?SSL證書的原理和作用是什麼?
- 中科三方:為什麼很多中小站點也開始安裝SSL證書?
- 淺析 Kubernetes 控制器的工作原理
- Angular @Injectable 註解的工作原理淺析Angular
- 中科三方:淺析域名品牌保護的重要性
- 中科三方:淺析IPv6升級改造的幾種方式?
- 中科三方:淺析IPv6升級改造的幾種方式
- 中科三方:設定SSL證書升級HTTPS對網站最佳化有哪些影響?HTTP網站
- 域名管理專題:淺析域名解析全過程(中科三方)
- 如何申請SSL證書以及SSL證書的費用
- 免費SSL證書和付費SSL證書的區別
- SSL證書的分類有哪些?如何選擇SSL證書?
- 付費SSL證書和免費SSL證書的區別
- 如何區分SSL證書和國密SSL證書
- HTTPS的SSL證書配置HTTP
- koa原理淺析
- BTrace 原理淺析
- Seata原理淺析
- 淺析Promise原理Promise
- AQS原理淺析AQS
- Webpack 原理淺析Web