https交互原理

Https 交互時序圖:

在這里插入圖片描述

HTTPS 通信中結合 RSA 和 AES 加密的流程,本質是利用 RSA 的安全特性交換 AES 密鑰,再用高效的 AES 加密實際數據傳輸。


HTTPS 交互核心流程(TLS/SSL 握手)

1. 建立 TCP 連接
  • 客戶端通過 TCP 三次握手連接服務器的 443 端口。
2. TLS/SSL 握手(密鑰協商階段)
  • Client Hello
    客戶端發送支持的功能列表:TLS 版本、支持的加密套件(如 TLS_RSA_WITH_AES_256_GCM_SHA384)、客戶端隨機數(Client Random)。

  • Server Hello
    服務器選擇加密套件(如 RSA + AES-256),并發送:

    • 服務器隨機數(Server Random
    • 數字證書(含服務器的 RSA 公鑰,由 CA 簽發)。
  • 客戶端驗證證書
    客戶端用 CA 公鑰驗證證書合法性(防中間人攻擊)。

  • Pre-Master Secret 生成與加密(RSA 核心步驟)

    • 客戶端生成 Pre-Master Secret(46 字節隨機數)。
    • 用服務器的 RSA 公鑰加密 Pre-Master Secret → 得到 Encrypted Pre-Master Secret
    • 發送 Client Key Exchange 消息(包含加密后的 Pre-Master Secret)。
  • 服務器解密 Pre-Master Secret(RSA 核心步驟)
    服務器用 RSA 私鑰解密獲得 Pre-Master Secret。

  • 生成會話密鑰(AES 密鑰的誕生)
    客戶端和服務器分別用以下三個參數生成相同的 Master Secret

    Master Secret = PRF(Pre-Master Secret, "master secret", Client Random + Server Random)  
    

    再根據 Master Secret 派生出 AES 對稱密鑰(如 AES-256 密鑰)和 MAC 密鑰。

  • 切換加密模式通知
    雙方發送 Change Cipher Spec 消息,宣告后續通信使用協商的密鑰加密。

  • 握手完成驗證
    雙方發送加密的 Finished 消息,驗證握手過程是否一致且未被篡改。


3. 加密數據傳輸(AES 核心階段)
  • 應用數據加密

    • 客戶端用協商的 AES 密鑰加密 HTTP 請求(如 AES-GCM 模式加密 + 完整性校驗)。
    • 發送加密后的數據到服務器。
  • 服務器解密與響應

    • 服務器用相同的 AES 密鑰解密請求。
    • 處理請求后,再用 AES 密鑰加密響應數據返回給客戶端。
  • 客戶端解密響應
    客戶端用 AES 密鑰解密響應,獲得明文內容。


為什么結合 RSA 和 AES?

階段RSA 作用AES 作用優勢
密鑰交換加密傳輸 Pre-Master Secret(短數據)-非對稱加密保證密鑰安全交換
數據傳輸-加密實際 HTTP 數據(長數據)對稱加密速度快,適合大數據量
安全性解決密鑰分發問題提供高效加密兼顧安全性與性能

關鍵安全設計解析

  1. RSA 保護 AES 密鑰

    • Pre-Master Secret 是 AES 密鑰的“種子”,由 RSA 公鑰加密后傳輸,僅服務器私鑰可解密。
    • 即使攻擊者截獲流量,也無法破解 Pre-Master Secret(RSA 數學難題保障)。
  2. 前向保密(可選增強)
    現代 TLS 常用 ECDHE-RSA 替代 RSA 密鑰交換:

    • ECDHE 生成臨時會話密鑰,即使服務器 RSA 私鑰泄漏,歷史會話仍安全。
    • RSA 僅用于簽名認證(不直接加密密鑰)。
  3. AES 高效加密

    • AES-256 提供 256 位密鑰強度,加密速度快(比 RSA 快千倍以上)。
    • 工作模式(如 GCM)同時提供加密和完整性校驗。

總結

  • RSA 用于信任鏈建立和安全交換 AES 密鑰(短數據加密)。
  • AES 用于高效加密實際通信數據(長數據加密)。
  • 這種組合在安全性和性能上達到最優平衡,是 HTTPS 的基石設計。

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

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

相關文章

LSTM入門案例(時間序列預測)| pytorch實現

需求 假如我有一個時間序列,例如是前113天的價格數據(訓練集),然后我希望借此預測后30天的數據(測試集),實際上這143天的價格數據都已經有了。這里為了簡單,每一天的數據只有一個價…

WPS、Word加載項開發流程(免費最簡版本)

文章目錄1 加載項對比2 WPS 加載項2.1 本地開發2.1.1 準備開發環境2.1.2 新建 WPS 加載項項目2.1.3 運行項目2.2 在線部署2.2.1 編譯項目2.2.2 部署項目2.2.3 生成分發文件2.2.4 部署分發文件2.3 安裝加載項2.4 取消發布3 Word 加載項3.1 本地開發3.1.1 準備開發環境3.1.2 新建…

Flink SQL 性能優化實戰

最近我們組在大規模上線Flink SQL作業。首先,在進行跑批量初始化完歷史數據后,剩下的就是消費Kafka歷史數據進行追數了。但是發現某些作業的追數過程十分緩慢,要運行一晚上甚至三四天才能追上最新數據。由于是實時數倉指標計算上線初期&#…

HTML 樹結構(DOM)深入講解教程

一、HTML 樹結構的核心概念 1.1 DOM(文檔對象模型)的定義 DOM(Document Object Model)是 W3C 制定的標準接口,允許程序或腳本(如 JavaScript)動態訪問和更新 HTML/XML 文檔的內容、結構和樣式。…

用鼠標點擊終端窗口的時候出現:0;61;50M0;61;50M0;62;50M0

在做aws webrtc viewer拉流壓測的過程中,我本地打開了多個終端,用于連接EC2實例: 一個終端用于啟動 ‘并發master腳本’、監控master端的cpu、mem;一個終端用于監控master端的帶寬情況;一個終端用于監控viewer端的cpu、…

C++-linux 5.gdb調試工具

GDB調試工具 在C/C開發中,程序運行時的錯誤往往比編譯錯誤更難定位。GDB(GNU Debugger)是Linux環境下最強大的程序調試工具,能夠幫助開發者追蹤程序執行流程、查看變量狀態、定位內存錯誤等。本章將從基礎到進階,全面講…

Update~Read PLC for Chart ~ Log By Shift To be... Alarm AI Machine Learning

上圖~ 持續迭代 1、增加報警彈窗,具體到哪個值,雙邊規格具體是多少 2、實時顯示當前值的統計特征,Max Min AVG ... import tkinter as tk from tkinter import simpledialog import time import threading import queue import logging from datetime import datet…

es的自定義詞典和停用詞

在 Elasticsearch 中,自定義詞典是優化分詞效果的核心手段,尤其適用于中文或專業領域的文本處理。以下是關于 ES 自定義詞典的完整指南: 為什么需要自定義詞典? 默認分詞不足: ES 自帶的分詞器(如 Standard…

微算法科技技術突破:用于前饋神經網絡的量子算法技術助力神經網絡變革

隨著量子計算和機器學習的迅猛發展,企業界正逐步邁向融合這兩大領域的新時代。在這一背景下,微算法科技(NASDAQ:MLGO)成功研發出一套用于前饋神經網絡的量子算法,突破了傳統神經網絡在訓練和評估中的性能瓶頸。這一創新…

一文讀懂循環神經網絡(RNN)—語言模型+讀取長序列數據(2)

目錄 讀取長序列數據 為什么需要 “讀取長序列數據”? 讀取長序列數據的核心方法 1. 滑動窗口(Sliding Window) 2. 分段截取(Segmentation) 3. 滾動生成(Rolling Generation) 4. 關鍵信息…

Oracle Virtualbox 虛擬機配置靜態IP

Oracle Virtualbox 虛擬機配置靜態IP VirtualBox的網卡,默認都是第一個不能自定義,后續新建的可以自定義。 新建NAT網卡、host主機模式網卡 依次點擊:管理->工具->網絡管理器新建host主機模式網卡 這個網卡的網段自定義,創建…

Linux RAID1 創建與配置實戰指南(mdadm)

Linux RAID1 創建與配置實戰指南(mdadm)一、RAID1 核心價值與實戰目標RAID1(磁盤鏡像) 通過數據冗余提供高可靠性:當單塊硬盤損壞時,數據不丟失支持快速陣列重建讀寫性能略低于單盤(鏡像寫入開銷…

MySQL數據庫----函數

目錄函數1,字符串函數2,數值函數3,日期函數4,流程函數函數 1,字符串函數 MySQL中內置了很多字符串函數 2,數值函數 3,日期函數 4,流程函數

1.2 vue2(組合式API)的語法結構以及外部暴露

vue2 vue3中可以寫vue2的語法&#xff0c;vue2的結構像一個花盆里的根&#xff08;根組件App.vue&#xff09;&#xff0c;根上可以插上不同的枝杈和花朵&#xff08;組件&#xff09;。 組件的結構&#xff1a; // 這里寫邏輯行為 <script lang"ts"> export d…

Swift 解 LeetCode 324:一步步實現擺動排序 II,掌握數組重排的節奏感

文章目錄摘要描述題解答案題解代碼&#xff08;Swift&#xff09;題解代碼分析步驟一&#xff1a;排序數組步驟二&#xff1a;左右指針分段步驟三&#xff1a;按位置交錯插入示例測試及結果示例 1示例 2示例 3&#xff08;邊界情況&#xff09;時間復雜度分析空間復雜度分析總結…

使用SQLMAP的文章管理系統CMS的sql注入滲透測試

SQLMAP注入演示&#xff1a;抓包拿到Cookie:召喚sqlmap&#xff1a;sqlmap -u "http://192.168.1.99:8085/show.php?id34" --cookie "pma_langzh_CN; kbqug_admin_username2621-PL_LxhFjyVe43ZuQvht6MI5q0ZcpRVV5FI0pzQ6XR8; kbqug_siteid2621-PL_LxhFjyVe4yA5…

I3C通信協議核心詳解

一、物理層與電氣特性雙線結構 SCL&#xff08;串行時鐘線&#xff09;&#xff1a;主設備控制&#xff0c;支持 推挽&#xff08;Push-Pull&#xff09;輸出&#xff08;高速模式&#xff09;和 開漏&#xff08;Open-Drain&#xff09;&#xff08;兼容I2C模式&#xff09;。…

Docker搭建Redis哨兵集群

Redis提供了哨兵機制實現主從集群下的故障轉移&#xff0c;其中包含了對主從服務的檢測、自動故障恢復和通知。 1.環境 centos7、redis6.2.4、MobaXterm 目的&#xff1a; 搭建redis的主從同步哨兵集群&#xff08;一主一從三哨兵&#xff09; 2.步驟 1.主從集群的搭建 主從…

暑假Python基礎整理 --異常處理及程序調試

異常概念 在程序運行過程中&#xff0c;經常會遇到各種各樣的錯誤&#xff0c;這些錯誤統稱為“異常”。如下表是Python常見的異常與描述&#xff1a; 異常描述NameError嘗試訪問一個未聲明的變量引發錯誤IndexError索引超出序列范圍引發錯誤IndentationError縮進錯誤ValueErr…

k8s-高級調度(二)

目錄 Taint(污點)與Toleration(容忍) Taint&#xff08;污點&#xff09;&#xff1a;節點的排斥標記 Toleration&#xff08;容忍&#xff09;&#xff1a;Pod的適配聲明 與節點親和性的對比 警戒(cordon)和轉移(drain) Cordon&#xff1a;節點隔離&#xff08;阻止新 Po…