Linux——https基礎理論

1. 初步認識https協議

??屬于應用層

??相較于http協議,https在應用層多了一層加密層,為了保證數據安全

??簡單理解:https就是對http的加密和解密


2. 中間人攻擊

??數據在傳輸過程中,遭第三方篡改。


3. 加密方式

??對稱加密:雙方使用同一個密鑰進行加密和解密

特點:通信速度快

??非對稱加密:需要兩個密鑰,一共公開 → 公鑰, 一個私有 → 私鑰

特點:慢


4. 加密方案

4.1 方案一:只使用對稱加密

首次申請時,client端需要將對稱密鑰X,發給服務端,該過程會被中間人攻擊,因此不安全,所以pass

4.2 方案二:只使用非對稱加密

只能保證單向數據安全,所以pass

4.3 方案三:雙方都使用非對稱加密

通信的雙方將各自的公鑰傳給對方,然后開始通信。

流程

1. server端將公鑰s傳給client端

2. client端將公鑰c傳給server端

3. client端將數據+公鑰s傳給server端,server端用自己的私鑰s對數據進行解密

4. server端拿著響應+公鑰c傳給client端,client?端用自己的私鑰c對數據進行解密

缺陷

1.本質還是不安全的,稍后解釋

2.通信速度太慢了

4.4 方案四:非對稱加密 + 對稱加密

流程

1. server端將公鑰s傳給client端,

2. client端將對稱密鑰X + 公鑰s形成密文數據傳給 server端

3. server端拿著自己的私鑰s對密文數據進行解密,這樣server端也就拿到了 對稱密鑰X,

4. 雙方使用對稱密鑰x進行通信

缺陷

中間人可以篡改由server端發送的公鑰s,篡改為自己的公鑰m,client端發送密文數據時, 發送的是:對稱密鑰X + 公鑰m,中間人就可以拿自己的私鑰m解密,獲得對稱密鑰X

后續server端和client端通信時,中間人就一覽無余了,這也是方案三的缺陷

中間人為了隱藏其存在,將自己解出來的對稱密鑰X和原先的公鑰S 進行加密,再傳給server端,此時雙方都不知道數據已經被中間人篡改過了

4.5 最終方案:非對稱加密 + 對稱加密 + 證書認證

現存方案問題:client端無法驗證收到公鑰s的合法性。

引入新概念

??摘要:將數據通過散列函數(哈希算法)得到的散列值稱為摘要

??簽名:將獲得的摘要通過簽名者的私鑰A進行加密,得到的數據稱為簽名

:簽名者是CA機構 or CA子機構,后續介紹

??證書:銘文數據 + 簽名的組合稱為證書

??驗證:client端將 銘文數據通過散列函數得到的散列值H1,client端通過簽名者的公鑰A對簽名進行解密,得到散列值H2,判斷H1和H2是否相等來驗證client端收到的公鑰s是否合法。

方案五的通信流程

1. server端拿著域名、公鑰s、申請者向CA機構申請證書,

:域名、公鑰s、申請者等其他信息稱為sever端的銘文數據

2. CA機構根據server端的銘文數據通過散列函數獲得散列值,對散列值進行加密后獲得簽名,將銘文數據和簽名數據附加在一起形成證書,然后再向server端頒發證書

3. 此時http服務器建立完畢,就可以正式上線給用戶使用了

4. 用戶端發起http申請,獲得攜帶證書的公鑰

5. 驗證公鑰的合法性,將 銘文數據通過散列函數得到的散列值 與 通過CA機構的公鑰S解密后的散列值 進行對比,來驗證合法性

:所有的瀏覽器都內置了CA的公鑰

6. 一旦公鑰可信任,形成對稱密鑰X + 證書中的公鑰s ,將對稱密鑰發給server端

:如果有中間方修改了數據,用戶進行驗證時得到的散列值完全不同,該報文會被丟棄,只要中間方拿不到CA的私鑰 or 用戶使用的是合法的CA公鑰進行解密,注定了中間方無法對信息進行篡改

7. 后續雙方通過該對稱密鑰X進行通信。

補充:如何成為中間人?

假wifi or 假網站等

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

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

相關文章

在 C++ 中對類型進行排序

0.前言 在 C 中&#xff0c;我編寫了一個 tuple-like 模板&#xff0c;這個模板能容納任意多且可重復的類型&#xff1a; template<typename... Ts> struct TypeList {};// usage: using List1 TypeList<int, double, char, double>; using List2 TypeList<…

Unity-Socket通信實例詳解

今天我們來講解socket通信。 首先我們需要知道什么是socket通信&#xff1a; Socket本質上就是一個個進程之間網絡通信的基礎&#xff0c;每一個Socket由IP端口組成&#xff0c;熟悉計網的同學應該知道IP主要是應用于IP協議而端口主要應用于TCP協議&#xff0c;這也證明了Sock…

使用Go語言對接全球股票數據源API實踐指南

使用Go語言對接全球股票數據API實踐指南 概述 本文介紹如何通過Go語言對接支持多國股票數據的API服務。我們將基于提供的API文檔&#xff0c;實現包括市場行情、K線數據、實時推送等核心功能的對接。 一、準備工作 1. 獲取API Key 聯系服務提供商獲取訪問密鑰&#xff08;替…

LeetCode 熱題 100 17. 電話號碼的字母組合

LeetCode 熱題 100 | 17. 電話號碼的字母組合 大家好&#xff0c;今天我們來解決一道經典的算法題——電話號碼的字母組合。這道題在 LeetCode 上被標記為中等難度&#xff0c;要求給定一個僅包含數字 2-9 的字符串&#xff0c;返回所有它能表示的字母組合。下面我將詳細講解解…

OpenCV計算機視覺實戰(3)——計算機圖像處理基礎

OpenCV計算機視覺實戰&#xff08;3&#xff09;——計算機圖像處理基礎 0. 前言1. 像素和圖像表示1.1 像素 2. 色彩空間2.1 原色2.2 色彩空間2.3 像素和色彩空間 3. 文件類型3.1 圖像文件類型3.2 視頻文件3.3 圖像與視頻 4. 計算機圖像編程簡史5. OpenCV 概述小結系列鏈接 0. …

Vite 的工作流程

Vite 的工作流程基于其創新的 “預構建 按需加載” 機制&#xff0c;通過利用現代瀏覽器對原生 ES 模塊的支持&#xff0c;顯著提升了開發效率和構建速度。以下是其核心工作流程的詳細分析&#xff1a; 一、開發環境工作流程 1. 啟動開發服務器 冷啟動&#xff1a;通過 npm …

線性DP(動態規劃)

線性DP的概念&#xff08;視頻&#xff09; 學習線性DP之前&#xff0c;請確保已經對遞推有所了解。 一、概念 1、動態規劃 不要去看網上的各種概念&#xff0c;什么無后效性&#xff0c;什么空間換時間&#xff0c;會越看越暈。從做題的角度去理解就好了&#xff0c;動態規劃…

MySQL中sql_mode的設置

■ 57版本原來配置 show variables like %sql_mode%; STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION ■ 修改配置文件 注釋掉sql_mode&#xff0c;并重啟&#xff0c;查看57版本的默認設置 ONL…

MCAL學習(1)——AutoSAR

1.了解AutoSAR及一些概念 AutoSAR是Automotive Open System Architecture ,汽車開放系統架構。 針對汽車ECU的軟件開發架構。已經是汽車電子軟件開發的標準。 OS服務&#xff1a;Freertos 整車廠&#xff08;OEM&#xff09;主要負責應用層算法 一級供應商&#xff1a;生產制…

Vue報錯:Cannot read properties of null (reading ‘xxx‘)

一、報錯問題 Cannot read properties of null (reading style)at patchStyle (runtime-dom.esm-bundler.js:104:22)二、錯誤排查 這類報錯一般是在已經開發好后&#xff0c;后面測試時突然發現的&#xff0c;所以不好排查錯誤原因。 三、可能原因及解決方案 v-if 導致 在 …

25G 80km雙纖BIDI光模塊:遠距傳輸的創新標桿

目錄 一、產品優勢&#xff1a;雙纖與BIDI的獨特價值 易天光通信25G SFP28 ZR 80KM 易天光通信25G SFP28 BIDI ZR 80KM 二、權威認證與技術突破 三、雙纖與BIDI的核心差異解析 四、應用場景&#xff1a;驅動多領域高效互聯 總結 在5G、云計算與數字化轉型的推動下&#xff0c;光…

2025-05-06 學習記錄--Python-注釋 + 打印變量 + input輸入

合抱之木&#xff0c;生于毫末&#xff1b;九層之臺&#xff0c;起于累土&#xff1b;千里之行&#xff0c;始于足下。&#x1f4aa;&#x1f3fb; 一、注釋 ?? &#xff08;一&#xff09;、塊注釋 &#x1f36d; 舉例&#xff1a; &#x1f330; # 打印數字 print(2025) …

基于mediapipe深度學習的眨眼檢測和計數系統python源碼

目錄 1.算法運行效果圖預覽 2.算法運行軟件版本 3.部分核心程序 4.算法理論概述 5.算法完整程序工程 1.算法運行效果圖預覽 (完整程序運行后無水印) 2.算法運行軟件版本 人工智能算法python程序運行環境安裝步驟整理_本地ai 運行 python-CSDN博客 3.部分核心程序 &…

怎樣通過API 實現python調用Chatgpt,gemini

怎樣通過API 實現python調用Chatgpt,gemini 以下為你詳細介紹如何設置和調用這些參數,以創建一個類似的 ChatCompletion 請求: 1. 安裝依賴庫 如果你使用的是 OpenAI 的 API 客戶端,需要先安裝 openai 庫。可以使用以下命令進行安裝: pip install openai2. 代碼示例 …

Linux 下MySql主從數據庫的環境搭建

測試環境&#xff1a;兩臺服務器&#xff0c;Mysql版本 8.0&#xff0c;linux版本&#xff1a;Ubuntu 20.04.3&#xff1b; 1.在兩臺服務器上安裝MySql&#xff1b; 2.選一臺作為主服務器&#xff0c;在主服務器上以root用戶進入Mysql&#xff0c;執行以下語句&#xff1a; …

力扣1812題解

記錄 2025.5.7 題目&#xff1a; 思路&#xff1a; 從左下角開始&#xff0c;棋盤的行數和列數&#xff08;均從 1 開始計數&#xff09;之和如果為奇數&#xff0c;則為白色格子&#xff0c;如果和為偶數&#xff0c;則為黑色格子。 代碼&#xff1a; class Solution {pu…

適合java程序員的Kafka消息中間件實戰

創作的初心&#xff1a; 我們在學習kafka時&#xff0c;都是基于大數據的開發而進行的講解&#xff0c;這篇文章為java程序員為核心&#xff0c;助力大家掌握kafka實現。 什么是kafka: 歷史&#xff1a; 誕生與開源&#xff08;2010 - 2011 年&#xff09; 2010 年&#xf…

PDF智能解析與知識挖掘:基于pdfminer.six的全棧實現

前言 在數字化信息爆炸的時代&#xff0c;PDF&#xff08;便攜式文檔格式&#xff09;作為一種通用的電子文檔標準&#xff0c;承載著海量的結構化與非結構化知識。然而&#xff0c;PDF格式的設計初衷是用于展示而非數據提取&#xff0c;這使得從PDF中挖掘有價值的信息成為數據…

Python爬蟲+代理IP+Header偽裝:高效采集亞馬遜數據

1. 引言 在當今大數據時代&#xff0c;電商平臺&#xff08;如亞馬遜&#xff09;的數據采集對于市場分析、競品監控和價格追蹤至關重要。然而&#xff0c;亞馬遜具有嚴格的反爬蟲機制&#xff0c;包括IP封禁、Header檢測、驗證碼挑戰等。 為了高效且穩定地采集亞馬遜數據&am…

架構思維:探討架構師的本質使命

文章目錄 軟件工程1. 軟件工程的定義與核心目標2. 軟件工程 vs. 軟件項目管理3. 軟件工程的兩大特性4. 軟件工程的關鍵活動與方法論5. 架構師在軟件工程中的職責架構師的職責和思維架構師心性修煉三大核心能力架構設計的基本準則 團隊共識“設計文檔”的統一結構框架閱讀他人代…