傳輸層TCP 與 安全層SSL/TLS

本章節主要探討三個問題:

1. SSL/TSL 的區別和聯系是什么?

2. 我們常說的 “三次握手” 發生在哪個階段,SSL/TSL層有參與嗎?

3.?HTTPS混合加密發生在哪個層?

一、SSL 和?TLS?

聯系

  • 繼承關系TLS 直接基于 SSL 3.0 設計,可以視為 SSL 的升級版,TLS 1.0 最初命名為 SSL 3.1,后因標準化需要更名為 TLS。
  • 核心目標一致:兩者的核心目標都是為網絡通信提供安全及數據完整性保障,它們都位于 TCP/IP 協議與各種應用層協議之間,為數據通訊提供安全支持。

區別

  • 開發者:SSL 由 Netscape 開發,而 TLS 是 IETF 在 SSL 的基礎上進行開發的。
  • 版本:SSL 有 SSL 1.0、2.0、3.0 等版本,其中 SSL 3.0 是最后一個版本;TLS 有 TLS 1.0、1.1、1.2、1.3 等版本,TLS 1.3 是目前最新的版本。
  • 安全性:SSL 存在一些已知的安全漏洞,如 SSL 2.0 和 SSL 3.0 都有安全問題,已逐漸被棄用;
    TLS 解決了 SSL 中存在的許多安全問題,引入了更強的加密算法和更安全的握手過程,安全性更高。
  • 握手過程:SSL 的握手過程相對簡單,TLS 的握手過程則更加安全和復雜。
  • 加密算法:SSL 支持一些較弱的加密算法,TLS 支持更強的加密算法,如 AES、ChaCha20 等。
  • 兼容性:現代系統通常禁用 SSL,普遍使用 TLS。

二、SSL/TLS 會參與三次握手嗎?

答:不會,三次握手僅發生在傳輸層的 TCP 協議中,與安全層(SSL/TLS)沒有直接關聯。

要理解這一點,需要先明確 TCP 三次握手的本質、以及 TCP 與 SSL/TLS 在網絡分層中的位置和分工。

1. 先理清核心概念:TCP 三次握手的作用

TCP(傳輸控制協議)是傳輸層的核心協議,其設計目標是為應用層提供可靠的、面向連接的字節流服務

而 “三次握手” 是 TCP 建立連接的核心機制,目的是:

  • 確認客戶端和服務器的 “發送能力” 和 “接收能力” 均正常;
  • 協商雙方初始的序列號(ISN),為后續數據傳輸的有序性、去重提供基礎;
  • 最終建立起一條雙向的、可靠的傳輸通道。

簡單來說,三次握手是 TCP “建立連接” 的專屬流程,只和傳輸層相關,在 SSL/TLS 啟動之前就已經完成

2. 再看分層關系:TCP(傳輸層)是 SSL/TLS(安全層)的 “基礎”

根據 TCP/IP 分層模型(或 OSI 模型的簡化理解),各層的依賴關系是 “下層為上層提供服務”:

  • 傳輸層(TCP):先通過三次握手建立可靠連接,為上層(如 SSL/TLS)提供 “穩定的字節流傳輸通道”;
  • 傳輸安全層(SSL/TLS):在 TCP 連接建立后,才在這個 “基礎通道” 上啟動自己的 “握手流程”(即 SSL/TLS 握手),協商加密算法、交換隨機數、驗證證書、生成會話密鑰;
  • 應用層(如 HTTPS):SSL/TLS 握手完成后,才基于加密通道傳輸 HTTP 數據(即 HTTPS = HTTP + SSL/TLS)。

三者的啟動順序是:


TCP 三次握手(建立連接)→ SSL/TLS 握手(建立安全通道)→ HTTP 數據傳輸(應用層通信)

3. 關鍵區別:TCP 三次握手 vs. SSL/TLS 握手

很多人會混淆這兩個 “握手”,但它們的層級、目的完全不同,對比如下:

對比維度TCP 三次握手SSL/TLS 握手
所屬層級傳輸層(TCP 協議)傳輸層與應用層之間(安全層)
發生時機通信剛開始,SSL/TLS 啟動前TCP 連接建立后,HTTP 數據傳輸前
核心目的建立可靠的連接(確認收發能力、協商序列號)建立安全的加密通道(協商算法、驗證身份、生成密鑰)
參與方交互次數3 次交互(客戶端→服務器→客戶端)視版本不同(如 TLS 1.2 約 4-6 次,TLS 1.3 優化為 2 次)

總結

  • 三次握手只屬于傳輸層的 TCP 協議,是建立可靠連接的前提,和 SSL/TLS(安全層)無關;
  • SSL/TLS 是在 TCP 連接的基礎上,額外增加的 “安全增強層”,它有自己獨立的 “握手流程”,但不是三次握手;
  • 整個 HTTPS 的通信流程,是 “TCP 三次握手打底 → SSL/TLS 握手加安全 → HTTP 傳輸數據” 的層層依賴關系。

三、HTTPS混合加密發生在哪個層?

HTTPS 的混合加密(即 “非對稱加密 + 對稱加密” 的組合機制)完全發生在 TLS 層

更具體地說,是在 TLS 協議的 “握手階段” 和 “記錄階段” 中協同實現的,與 TCP 層(傳輸層)或 HTTP 層(應用層)無直接關聯。

要理解這一點,需要先明確 HTTPS 混合加密的核心邏輯 ——用非對稱加密解決 “對稱密鑰的安全傳輸問題”,用對稱加密解決 “大量數據的高效加密問題”,而這兩個步驟的執行載體,正是 TLS 協議的分層設計:

1. 混合加密的兩個關鍵步驟,均由 TLS 層實現

TLS 協議本身分為 “握手協議” 和 “記錄協議” 兩層,混合加密的兩個核心動作分別在這兩層中完成:

(1)非對稱加密:用于 TLS 握手階段,安全交換 “對稱密鑰的種子”

在 TLS 握手開始后,客戶端和服務器會通過非對稱加密完成兩件關鍵事:

  • 服務器向客戶端發送 “數字證書”(含服務器的公鑰),客戶端通過信任鏈驗證證書合法性(確認服務器身份,防止中間人攻擊);
  • 客戶端生成一個臨時的 “預主密鑰(Pre-Master Secret)”,用服務器證書中的公鑰(非對稱加密的公鑰)?加密后發送給服務器;
  • 服務器用自己的私鑰(非對稱加密的私鑰)?解密,得到 “預主密鑰”。

至此,客戶端和服務器通過 “非對稱加密” 安全共享了 “預主密鑰”—— 這一步的核心是 “避免對稱密鑰在傳輸中被竊取”,而整個過程完全在 TLS 握手協議中執行,TCP 層僅負責傳輸這些加密后的握手數據(不理解數據含義),HTTP 層此時尚未參與。

(2)對稱加密:用于 TLS 記錄階段,高效加密 HTTP 數據

TLS 握手完成后,客戶端和服務器會基于 “預主密鑰”+“客戶端隨機數(Client Random)”+“服務器隨機數(Server Random)”,通過相同的算法(如 HKDF)生成最終的 “會話密鑰(Session Key)”—— 這個 “會話密鑰” 就是對稱加密的密鑰

之后進入 “TLS 記錄階段”:所有 HTTP 層的原始數據(如請求頭、響應體)會先交給 TLS 記錄協議,由其完成三件事:

  1. 對 HTTP 數據進行分段(按 TLS 規定的最大長度切割);
  2. 用 “會話密鑰” 通過對稱加密算法(如 AES-GCM)對分段數據加密;
  3. 對加密后的數據添加 “消息認證碼(MAC)” 或 “認證標簽(Tag)”,確保數據完整性(防止被篡改)。

最終,這些加密后的 “TLS 記錄數據” 會被交給 TCP 層,由 TCP 傳輸到對方;對方接收后,再通過 TLS 記錄協議用相同的 “會話密鑰” 解密、驗證完整性,最后將原始 HTTP 數據交給應用層(HTTP 層)。

簡言之:對稱加密的核心是 “高效處理大量 HTTP 數據”,其加密 / 解密動作由 TLS 記錄協議執行,HTTP 層只負責處理解密后的原始數據,完全感知不到加密過程。

2. 為什么混合加密不會發生在其他層?

  • TCP 層(傳輸層):TCP 的作用是 “可靠傳輸字節流”,僅負責數據的分段、重傳、有序交付,不具備任何加密能力,也不理解 TLS/HTTP 數據的含義,無法參與加密;
  • HTTP 層(應用層):HTTP 本身是 “明文協議”,沒有加密邏輯;HTTPS 的 “安全” 本質是給 HTTP 套了一層 TLS “保護殼”——HTTP 數據是 “被 TLS 加密的對象”,而非加密的執行者。

總結

HTTPS 的混合加密是 TLS 層的核心功能:

  • 非對稱加密在 TLS 握手階段,解決 “對稱密鑰的安全共享”;
  • 對稱加密在 TLS 記錄階段,解決 “HTTP 數據的高效加密”;
    整個過程中,TCP 層僅負責傳輸 TLS 加密后的數據,HTTP 層僅負責處理 TLS 解密后的原始數據,二者均不參與加密邏輯。

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

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

    相關文章

    【數學建模學習筆記】時間序列分析:ARIMA

    零基礎看懂 ARIMA 模型:從原理到實戰如果你完全沒接觸過 “時間序列預測”,也不懂復雜公式,這篇會用 “說人話” 的方式幫你搞懂 ARIMA 模型,以及文中代碼到底在做什么。一、先搞懂:ARIMA 是用來干嘛的?簡單…

    【macOS】垃圾箱中文件無法清理的“含特殊字符文件名”的方法

    【macOS】垃圾箱中文件無法清理的“含特殊字符文件名”的方法文件名包含特殊字符(如空格、中文符號等)導致終端無法正確識別文件路徑。 可以嘗試以下解決方法:使用文件路徑自動補全輸入 rm (注意 rm 后有空格)&#xf…

    ???????Blender 重拓撲修改器實戰指南:從基礎操作到細節優化?

    在 Blender 建模中,重拓撲是解決 “高模難編輯、低模細節差” 的關鍵。傳統手動重拓撲效率低,重拓撲修改器能自動生成規整拓撲,保留模型外形,適合游戲資產、動畫角色等場景。 一、核心作用與適用場景? 重拓撲修改器并非 “一鍵完…

    C/C++哆啦A夢

    寫在前面 用代碼繪制童年記憶中的那個藍胖子——哆啦A夢,是我對經典角色的一次深情致敬。這段程序不僅是一幅靜態圖像的生成,更是一次對童年幻想世界的數字重建。通過精確的幾何控制與色彩搭配,我將那個圓潤可愛、溫暖可靠的機器人重新帶回眼…

    CSS入門指南:30字掌握核心技巧

    1. CSS初體驗 1.1. CSS定義 層疊樣式表 (Cascading Style Sheets,縮寫為 CSS) 用來描述 HTML 文檔的呈現(美化內容) 1.2. CSS引入方式 內部樣式表:學習使用 CSS 代碼寫在head里面的 style標簽 里面 外部樣式表&…

    從實操到原理:一文搞懂 Docker、Tomcat 與 k8s 的關系(附踩坑指南 + 段子解疑)

    目錄 一、先分清:Docker、Tomcat、k8s 到底是 “干啥的”? 二、它們的 “合作關系”:從 Java 項目到集群部署的全流程 三、實際應用場景:什么時候該用誰? 1. 單獨使用場景 2. 組合使用場景(最常見&…

    測試覆蓋率不夠高?這些技巧讓你的FastAPI測試無懈可擊!

    url: /posts/0577d0e24f48b3153b510e74d3d1a822/ title: 測試覆蓋率不夠高?這些技巧讓你的FastAPI測試無懈可擊! date: 2025-09-02T01:49:10+08:00 lastmod: 2025-09-02T01:49:10+08:00 author: cmdragon summary: FastAPI通過TestClient工具支持單元測試,模擬HTTP請求直接…

    Qwen3-Reranker-0.6B 模型結構

    模型加載 import torch from modelscope import AutoModel, AutoTokenizer, AutoModelForCausalLMtokenizer AutoTokenizer.from_pretrained("Qwen/Qwen3-Reranker-0.6B", padding_sideleft) model AutoModelForCausalLM.from_pretrained("Qwen/Qwen3-Reranke…

    無參 MOS 算法的評估方式

    一、無參 MOS 算法 在音頻處理和質量評估領域,MOS(Mean Opinion Score)是一種常用的主觀評價指標,用于衡量音頻質量。然而,獲取主觀 MOS 評分通常需要大量的人力和時間。因此,無參 MOS 算法應運而生&#…

    Flowable——配置使用Flowable-UI

    文章目錄 前言 框架選型與版本 flowable-ui 搭建 依賴引入 springboot 主要版本 flowable 相關 log4j 日志配置項 配置文件 log4j配置文件 application.yml 增加啟動類并啟動程序 項目整體結構 前言 最近對工作流的flowable比較感興趣,匯總記錄一下相關的研究學習知識點。 框…

    2025大學生必考互聯網行業證書排名?

    在互聯網行業蓬勃發展的當下,大學生若想畢業后順利投身其中,提前考取相關高含金量證書不失為明智之舉。這些證書不僅能證明專業能力,還能在求職時為你增添競爭優勢。接下來,為大家詳細介紹 2025 年大學生必考的互聯網行業證書排名…

    【并發系列-01】高并發系統架構設計原理

    【并發系列-01】高并發系統架構設計原理 1. 業務場景:當雙11遇上技術挑戰 1.1 問題場景描述 想象一下這樣的場景:某電商平臺在雙11期間,短短30分鐘內涌入了500萬用戶,同時發起了超過2000萬次商品查詢請求和100萬次下單操作。而平時…

    【Vue2 ?】Vue2 入門之旅(八):過渡與動畫

    前幾篇我們學習了事件處理。本篇將介紹 過渡與動畫&#xff0c;讓 Vue 頁面更加生動。 目錄 transition 組件進入與離開過渡過渡類名結合 CSS 動畫JavaScript 鉤子小結 transition 組件 Vue 提供了內置組件 <transition>&#xff0c;可以為元素或組件的進入和離開添加動…

    【LeetCode】力扣刷題攻略路線推薦!適合新手小白入門~(含各類題目序號)

    力扣上有許多數據結構及算法的練習&#xff0c;但是如果由第一題【兩數之和】開始刷&#xff0c;會讓50%的人倒在起點。所以我們刷題要講究路線攻略以及技巧~大體路線方向由簡入難數學數組鏈表字符串哈希表雙指針遞歸棧隊列樹圖與回溯算法貪心動態規劃刷題技巧 建議刷題的時候分…

    Windows 電腦發現老是自動訪問外網的域名排障步驟

    Windows 電腦發現老是自動訪問外網的域名,如何排障 一、基礎信息獲取與進程定位 1.1、確認進程關鍵信息 1.2、進程合法性初步驗證 二、網絡連接深度分析 2.1、目的IP/域名溯源 2.2、端口與協議檢查 三、進程行為與系統異常排查 3.1、進程啟動與依賴分析 3.2、系統異常行為掃描…

    curl、python-requests、postman和jmeter的對應關系

    一、初識curlcurl 是一個功能強大的命令行工具&#xff0c;用于傳輸數據&#xff0c;支持多種協議&#xff08;如 HTTP、HTTPS、FTP 等&#xff09;。分析以下curl&#xff1a;curl "https://$HOST/mon/adm/au/opera" --header "Authorization: $AUTH" -X …

    【MySQL】初識數據庫基礎

    【MySQL】初識數據庫基礎 &#x1f525;個人主頁&#xff1a;大白的編程日記 &#x1f525;專欄&#xff1a;MySQL筆記 文章目錄【MySQL】初識數據庫基礎前言一. 數據庫基礎&#xff08;重點&#xff09;1.1 什么是數據庫1.2 主流數據庫1.3 基本使用1.3.1 MySQL安裝1.3.2 連接…

    微服務Docker-compose之若依部署

    目錄 1.創建一個文件夾 2.上傳壓縮包 3.解壓 4.執行ry1文件 5.執行ry2文件 6.進入nginx的html目錄解壓dist文件 7.執行ry3文件 8.訪問nacos 9.訪問若依 1.創建一個文件夾 2.上傳壓縮包 3.解壓 4.執行ry1文件 5.執行ry2文件 6.進入nginx的html目錄解壓dist文件 7.執行ry…

    《中國棒球》健將級運動員什么水平·棒球1號位

    棒球國家健將級の神級科普&#xff5c;國內TOP1%??國際能打嗎&#xff1f;1. 什么是"國家健將級"&#xff1f;&#xff5c;What is "Master Sportsman"&#xff1f;中國運動員等級天花板&#xff1a;僅次"國際健將"的最高國家級榮譽&#xff0…

    NAT與內網穿透

    目錄 一、為什么需要NAT&#xff1f; 二、NAT的核心&#xff1a;從“一對一”到“多對一” &#xff08;1&#xff09;靜態NAT &#xff08;2&#xff09;動態NAT &#xff08;3&#xff09;NAPT 三、NAPT的雙刃劍&#xff1a;安全與局 四、內網穿透 &#xff08;1&…