HTTPS通信流程:SSL/TLS握手全解析

2021,2022,2023年1-8月看了很多技術書籍,現在想來忘了很多,用到的也不多,但是因為提前接觸過,所以很多新東西,接受起來,比預想的要容易些。最近突然想要回憶下HTTPS,居然回憶不起來了,哎。在此記錄下。

HTTPS通信過程:

例如:打開https://www.csdn.net/ 的首頁

1. 客戶端發起請求(ClientHello)

在打開一個https網址時先由客戶端發起請求。
內容:客戶端自身支持的SSL/TLS(Secure Sockets Layer安全套接層/Transport Layer Security傳輸層安全)版本,
加密套件列表(如TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256)、隨機數(Client Random)。
目的:與服務端協商加密參數,啟動安全連接。

2. 服務器響應(ServerHello + Certificate)

內容:
1:ServerHello:服務端選擇協議版本,加密套件,生成隨機數(Server Random)
2:Certificate:發送數字證書(含公鑰,數字簽名),證明自身身份。可選:可選ServerKeyExchange:若使用ECDHE等算法,發送額外密鑰交換參數。客戶端會使用此證書內的公鑰加密http的內容與服務端通信,而只有作為與公鑰配
對的私鑰才能解密通信內容,所以全世界只有此服務器可以知道你們的通信內容。除
非密鑰泄露,或被破解。

3 客戶端驗證證書

證書鏈校驗:驗證服務器證書是否由可信CA簽發,逐級追溯至根證書。有效期檢查:確保證書未過期。域名匹配:檢查證書中的域名(如SAN字段)與訪問地址一致。吊銷檢查:通過CRL(證書吊銷列表)或OCSP(在線證書狀態協議)確認證書未被吊銷。失敗處理:若驗證失敗(如證書過期、域名不匹配),瀏覽器會警告用戶。

4. 密鑰交換(ClientKeyExchange)

非對稱加密通信階段:客戶端生成預主密鑰(Pre-Master Secret),用服務器公鑰加密后發送。服務器用私鑰解密,獲取預主密鑰。
會話密鑰生成:
雙方基于預主密鑰、Client Random、Server Random,通過為隨機數函數
(PRF)生成對稱加密密鑰(Master Secret)非對稱加密安全性高,但是加密性能差,所以用在協商對稱加密密鑰的階段。
對稱加密密鑰協商完畢后,雙方切換致基于此密鑰的對稱加密算法通信。

5. 加密通信開始

    ChangeCipherSpec:雙方通知對方切換至協商好的加密算法。Finished消息:發送加密的握手完成消息,驗證密鑰正確性。數據傳輸:使用會話密鑰進行AES等對稱加密,確保高效安全通信。

PKI(公鑰基礎設施)之余HTTPS的主要作用:

1:數據加密
2:完整性保護:確保數據完整、未被篡改
3:不可抵賴性、不可否認性
4:身份認證
5:數字證書管理:CA/RA負責證書的簽發、更新、吊銷及CRL發布。PKI除了用在HTTPS中,還可以用于:電子郵件、虛擬專用通道、數字文檔簽名蓋章、軟件保護、加密狗等領域

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/87355.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/87355.shtml
英文地址,請注明出處:http://en.pswp.cn/web/87355.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

SVG 在 VSCode 中的使用與優勢

SVG 在 VSCode 中的使用與優勢 引言 SVG(可縮放矢量圖形)是一種基于可擴展標記語言的圖形圖像格式,與傳統的位圖格式(如 JPEG 或 PNG)相比,SVG 圖像具有更高的靈活性和可縮放性。隨著前端開發領域的不斷發展,SVG 在網頁設計中的應用越來越廣泛。本文將介紹 SVG 在 Vis…

Ubuntu開放mysql 3306端口

Ubuntu開放mysql 3306端口 1. 檢查 UFW 防火墻規則2. 檢查 iptables 規則 1. 檢查 UFW 防火墻規則 sudo ufw status verbose | grep 3306若輸出包含 3306/tcp ALLOW,表示端口已開放(如下) ubuntuUbuntu2404:~$ sudo ufw status verbose | grep 3306 3306/tcp …

CentOS 卸載docker

1、停止docker服務 systemctl stop docker.socket systemctl stop docker systemctl stop containerd 2、列出已安裝的docker包 yum list installed | grep -i docker 輸出如下: containerd.io.x86_64 1.6.33-3.1.el7 docker-ce-stab…

MySQL數據庫----DML語句

目錄 DML-介紹SQL-DML-添加數據SQL-DML-修改數據SQL-DML-刪除數據 DML-介紹 DML英文全稱是 Data Manipulation Language(數據操作語言),用來對數據庫中表的數據記錄進行增刪改操作。 添加數據(INSERT) 修改數據(UPDATE&#xff…

Prompt:提示詞工程

前言在LLM大放異彩的今天,一個簡單的問題,可能就會引出一個方案,一篇散文,而驅動這一切的,正是輸入的“提示詞(Prompt)”Prompt工程就是:與大模型打交道時,如何更好地設計…

GSAP 動畫庫在 Vue3 項目中的使用總結

前言 GSAP(GreenSock Animation Platform)是目前最強大的 JavaScript 動畫庫之一,以其出色的性能和簡潔的API而聞名。本文將基于實際項目經驗,詳細介紹如何在 Vue3 項目中使用 GSAP 創建流暢、專業的動畫效果,包括核心…

【字節跳動】數據挖掘面試題0007:Kmeans原理,何時停止迭代

文章大綱 K-means 原理與迭代停止條件?? 一、K-Means核心思想🔁 二、迭代步驟詳解關鍵數學操作 ?? 三、何時停止迭代?Kmeans 算法實現代碼 ?? 四、面試常見擴展問題1. K值如何選擇?2. 初始質心影響結果嗎?3. 算法缺陷與改進…

209、長度最小的子數組

題目&#xff1a; 解答&#xff1a; 滑動窗口&#xff0c;左右指針指向窗口兩端&#xff0c;窗口為[left,right]&#xff0c;leftright時窗口只包含一個元素。 窗口內元素和sum>target時&#xff0c;left,推出左側一個元素;sum<target時&#xff0c;right&#xff0c;加…

關機精靈——自動化與便利性

文章目錄 背景目標實現下載 背景 自動化與便利性&#xff1a; 讓電腦在用戶無需值守或干預的情況下&#xff0c;在特定時間點&#xff08;倒計時結束&#xff09;或任務完成后自動關閉。節能與環保&#xff1a; 避免電腦在完成工作后或無人使用時繼續空耗電力。時間管理與健康…

L2CAP協議詳解:分段重組、QoS控制與多協議復用設計(面試寶典)

本文系統解析L2CAP協議的知識圖譜&#xff0c;掌握面試核心考點&#xff0c;并通過真題演練提升實戰能力。建議配合協議分析工具進行抓包實踐&#xff0c;加深對協議機制的理解。 一、L2CAP 在藍牙協議棧中的核心定位 L2CAP&#xff08;Logical Link Control and Adaptation P…

微軟服務器安全問題

微軟云服務器安全深度解析&#xff1a;挑戰、應對與未來展望——構建韌性“安全之盾”的持續博弈&#xff01; 在當今數字化時代&#xff0c;云計算已成為眾多企業和組織運行業務的核心基礎設施和“數字生命線”&#xff0c;而微軟云&#xff08;Azure&#xff09;作為全球領先…

后臺管理系統的誕生 - 利用AI 1天完成整個后臺管理系統的微服務后端+前端

AI創作系列(11)&#xff1a;后臺管理系統的誕生 - 利用AI 1天完成整個后臺管理系統的微服務后端前端 真實記錄&#xff1a;我決定為海貍IM添加一個后臺管理系統。從早上開始&#xff0c;到晚上結束&#xff0c;僅僅1天時間&#xff0c;我就完成了整個后臺管理系統的微服務后端和…

開發自動駕駛系統所需工具

硬件開發平臺 傳感器系統 環境感知工具包括&#xff1a; 激光雷達&#xff1a;通過發射激光脈沖并接收反射光來測量距離&#xff0c;構建點云數據以描繪周圍環境的三維結構。例如&#xff0c;Velodyne的VLP-16激光雷達每秒可發射約30萬次激光脈沖&#xff0c;生成高密度的點…

Node.js特訓專欄-實戰進階:12. 數據庫事務處理與并發控制

?? 歡迎來到 Node.js 實戰專欄!在這里,每一行代碼都是解鎖高性能應用的鑰匙,讓我們一起開啟 Node.js 的奇妙開發之旅! Node.js 特訓專欄主頁 專欄內容規劃詳情 數據庫事務處理與并發控制:原理、實踐與性能優化 一、事務基礎:ACID特性與實現原理 1.1 ACID特性詳解 事…

計算機網絡(五)數據鏈路層 MAC和ARP協議

目錄一、鏈路二、MAC地址三、ARP協議ARP工作流程?&#xff1a;?一、鏈路鏈路&#xff1a;一個結點到相鄰結點的物理線路數據鏈路&#xff1a;在鏈路的基礎上增加一些必要的軟件&#xff08;協議的實現&#xff09;和硬件&#xff08;網絡適配器&#xff09;。網絡中的主機、路…

DVWA SQL Injection 漏洞分析與利用

前言 Level: Low 漏洞分析 復現步驟 防御措施 Level: Medium 漏洞分析 mysql_real_escape_string()核心作用 示例對比 復現步驟 防御措施 Level: High 漏洞分析 復現步驟 防御措施 Level: Impossible 安全措施分析 防護要點 測試驗證 自動化工具使用&#x…

RabbitMQ:消息隊列的輕量級王者

&#x1f680; 一句話定位 RabbitMQ是分布式系統的"消息快遞員"&#xff0c;負責在系統間可靠傳遞信息&#xff0c;讓服務解耦更高效。 &#x1f31f; 核心應用場景 1. 異步解耦 場景&#xff1a;用戶注冊后發短信/郵件 用法&#xff1a;注冊服務發消息 → Rabbit…

Android系統默認賦予瀏覽器權限以及Android惡意覆蓋導致谷歌瀏覽器授權失敗的解決辦法

Android系統默認賦予瀏覽器權限以及Android惡意覆蓋導致谷歌瀏覽器授權失敗的解決辦法 一、Android系統默認賦予瀏覽器權限 只要是設計到默認賦權&#xff0c;就在framework下找這個類&#xff1a;base/services/core/java/com/android/server/pm/permission/DefaultPermissi…

矩陣的秩 線性代數

定義和求法 關于秩的幾個重要式子 例題 給出秩&#xff0c;那我們就有三個知識點&#xff0c;一個是用定義&#xff0c;一個是用求法&#xff0c;一個是重要式子。 題目沒什么好翻譯的&#xff0c;基本就是赤裸裸的跟你坦白了直說了。 接下來就是解法了。用定義的話就是說這個…

【大模型】基于MCP的mysql 服務構建及使用(python語言)

前言 ? 在之前使用dify來編排AI智能體&#xff0c;有這樣的一個場景&#xff0c;希望智能體能自動讀取數據庫數據&#xff0c;獲得統計數據&#xff08;問數&#xff09;&#xff0c;最終生成報告。 ? 當時實現思路是&#xff0c;通過知識庫告訴大模型相關表的字段定義&…