【Linux網絡與網絡編程】07.應用層協議HTTPS

HTTP 協議內容都是按照文本的方式明文傳輸的,這就導致在傳輸過程中出現一些被篡改的情況。HTTPS 就是在 HTTP 協議的基礎上引入了一個加密層的應用層協議。

1. 基礎概念

1.1 加密與解密

加密就是把明文(要傳輸的信息)進行一系列變換,生成密文。解密就是把密文再進行一系列變換,還原成明文。在這個加密和解密的過程中,往往需要一個或者多個中間的數據輔助進行這個過程,這樣的數據稱為密鑰。

為什么要加密?

因為 http 的內容是明文傳輸的,明文數據會經過路由器、wifi 熱點、通信服務運營商、代理服務器等多個物理節點。如果信息在傳輸過程中被劫持,傳輸的內容就完全暴露了。劫持者還可以篡改傳輸的信息且不被雙方察覺,這就是中間人攻擊 ,所以我們才需要對信息進行加密。

所以加密就是為了避免中間人攻擊。

1.2 常見的加密方式

1.2.1 對稱加密

采用單鑰密碼系統的加密方法,同一個密鑰可以同時用作信息的加密和解密,這種加密方法稱為對稱加密

??特征:

加密和解密所用的密鑰是相同的。通過同一個 "密鑰" 把明文加密成密文,并且也能把密文解密成明文

??常見對稱加密算法:

DES、3DES、AES、TDEA、Blowfish、RC2 ……

??特點:

算法公開、計算量小、加密速度快、加密效率高

1.2.2 非對稱加密

需要兩個密鑰來進行加密和解密,這兩個密鑰是公鑰私鑰。

? 特征:

通過公鑰對明文加密,變成密文;通過私鑰對密文解密,變成明文。也可以反著用,通過私鑰對明文加密,變成密文;通過公鑰對密文解密,變成明文

? 常見非對稱加密算法:

RSA,DSA,ECDSA ……

? 特點:

算法強度復雜、安全性依賴于算法與密鑰,但是由于其算法復雜,而使得加密解密速度沒有對稱加密解密的速度快。 最大的缺點就是運算速度非常慢,比對稱加密要慢很多。

1.2.3 數據摘要(數字指紋)

數字指紋(數據摘要),其基本原理是利用單向散列函數(Hash 函數)對信息進行運算,生成一串固定長度的數字摘要。數字指紋并不是一種加密機制,但可以用來判斷數據有沒有被篡改

? 常見摘要算法:

MD5、SHA1、SHA256、SHA512 …… 算法把無限的映射成有限,因此可能會有碰撞(兩個不同的信息,算出的摘要相同,但是概率非常低)

? 特征:

摘要嚴格意義不是加密,通常用來進行數據對比

2. HTTPS的工作過程探索

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

若只使用對稱加密的話,服務端如何得知客戶端的密鑰呢?往往是在建立連接時將密鑰傳過去,那么如何保證密鑰的安全性呢?在給密鑰加密嗎?這不就變成了雞生蛋,蛋生雞的問題了嗎?因此該方案不具備可行性!

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

只使用非對稱加密我們可以看到貌似是要比對稱加密要好的,不過在初始建立聯系時,公鑰還是面臨著被中間人獲取的安全問題。當客戶端向服務端發消息時,需要服務端使用私鑰進行解密的,而私鑰是沒法被獲取的,所以可以認為是安全的。但是服務端向客戶端發送消息時,需要客戶端通過公鑰進行解密,而公鑰是可以被獲取的,所以這一部分是不安全的。可以認為是單向安全的。

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

這次總可以了吧,但是效率太慢了(非對稱加密的速度很慢,開始時提到過)。而且這種方案也存在著安全問題(講完方案四具體來說)。

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

這一部分我們只使用非對稱密鑰用于初始時交換公鑰,所以效率是提高了的,但是這一部分就沒有問題了嗎?

中間人攻擊:

上面這種情況就是中間人就可以拿到對稱密鑰X了,中間人就可以自由的解密監聽信息,并篡改相應信息了。

此時面對中間人攻擊的核心問題就是:客戶端無法甄別自己收到的公鑰是一個由客戶端發出的合法的公鑰,所以接下來我們看看這個問題是如何解決的。

數據簽名

簽名的形成是基于非對稱加密算法的。它的作用就是對數據摘要(數字指紋)進行加密

可以看出只有持有私鑰的簽名者菜呢個對數據進行簽名,那么誰是簽名者呢?

CA機構與證書

服務端在使用 HTTPS 前,需要向 CA 機構申領一份數字證書,數字證書里含有證書申請者信息、公鑰信息等。服務器把證書傳輸給瀏覽器,瀏覽器從證書里獲取公鑰就行了,證書就如身份證,證明服務端公鑰的權威性。

接下來看一下證書的格式:

我們可以看出,證書實質上就是攜帶簽名的明文數據

CA機構簽發證書的流程:

可以知道,當客戶端收到證書之后需要對證書中的公鑰提取,即解密證書。故而所有的瀏覽器都要內置一些可行的CA機構或者它授權的子機構的公鑰!

2.5 方案五:非對稱加密 + 對稱加密 + 證書認證

使用這種方案就可以避免中間人的攻擊了,因為中間人哪怕拿到了證書也無法對證書進行篡改。而這種方案也就是當前的HTTPS使用的工作方案。

總結:

HTTPS 工作過程中涉及到的密鑰有三組。

第一組(非對稱加密):用于校驗證書是否被篡改。服務器持有私鑰(私鑰在形成 CSR 文件與申請證書時獲得),客戶端持有公鑰(操作系統包含了可信任的 CA 認證機構有哪些, 同時持有對應的公鑰),服務器在客戶端請求時,返回攜帶簽名的證書,客戶端通過這個公鑰進行證書驗證,保證證書的合法性,進一步保證證書中攜帶的服務端公鑰權威性。

第二組(非對稱加密):用于協商生成對稱加密的密鑰。客戶端用收到的 CA 證書中的公鑰(是可被信任的)給隨機生成的對稱加密的密鑰加密傳輸給服務器,服務器通過私鑰解密獲取到對稱加密密鑰。

第三組(對稱加密):客戶端和服務器后續傳輸的數據都通過這個對稱密鑰加密解密。

其實一切的關鍵都是圍繞這個對稱加密的密鑰,其他的機制都是輔助這個密鑰工作的。第二組非對稱加密的密鑰是為了讓客戶端把這個對稱密鑰傳給服務器,第一組非對稱加密的密鑰是為了讓客戶端拿到第二組非對稱加密的公鑰。

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

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

相關文章

【k8s】PV,PVC的回收策略——return、recycle、delete

PV 和 PVC 的回收策略主要用于管理存儲資源的生命周期,特別是當 PVC 被刪除時,PV 的處理方式。回收策略決定了 PV 在 PVC 被刪除后的行為。 回收策略的類型 Kubernetes 提供了三種主要的回收策略,用于管理 PV 的生命周期: Reta…

2023藍帽杯初賽內存取證-2

直接使用mimikatz插件來獲取用戶密碼: vol.py --plugin/opt/volatility/plugins -f memdump.mem --profile Win7SP1x64 mimikatz 答案:3w.qax.com

使用dompurify修復XSS跨站腳本缺陷

1. 問題描述 漏洞掃描說有一個低危漏洞,容易被跨站腳本攻擊XSS。 2. 使用dompurify修復 DOMPurify is a DOM-only, super-fast, uber-tolerant XSS sanitizer for HTML, MathML and SVG. 簡單來說,我們可以使用 dompurify 處理xss跨站腳本攻擊。 2.…

【c語言】指針和數組筆試題解析

一維數組: //數組名a如果既不單獨放在sizeof()中,也不與&結合,那么就表示數組首元素的大小 //a一般表示數組首元素地址,只有兩種情況表示整個數組,sizeof(arr)表示整個數組的大小,&arr表示數組的地址 int a[]…

機器人進階---視覺算法(六)傅里葉變換在圖像處理中怎么用

傅里葉變換在圖像處理中怎么用 傅里葉變換的基本原理應用場景Python代碼示例逐行解釋總結傅里葉變換在圖像處理中是一種重要的工具,它將圖像從空間域轉換到頻域,從而可以對圖像的頻率特性進行分析和處理。傅里葉變換在圖像濾波、圖像增強、圖像壓縮和圖像分析等方面都有廣泛應…

深度學習與總結JVM專輯(七):垃圾回收器—CMS(圖文+代碼)

CMS垃圾收集器深度解析教程 1. 前言:為什么需要CMS?2. CMS 工作原理:一場與時間的賽跑2.1. 初始標記(Initial Mark)2.2. 并發標記(Concurrent Mark)2.3. 重新標記(Remark&#xff09…

數據采集:AI 發展的基石與驅動力

人工智能(AI)無疑是最具變革性的技術力量之一,正以驚人的速度重塑著各行各業的格局。從智能語音助手到自動駕駛汽車,從精準的醫療診斷到個性化的推薦系統,AI 的廣泛應用已深刻融入人們的日常生活與工作的各個層面。而在…

從信息泄露到內網控制

0x01 背景 之前常見用rce、文件上傳等漏洞獲取webshell,偶然遇到一次敏感信息泄露獲取權限的滲透,簡單記錄一下過程。 0x02 信息泄露 發現系統某端口部署了minio服務,經過探測發現存在minio存儲桶遍歷 使用利用工具把泄露的文件全部整理一…

《門》凡是過往,皆為序曲。我們的愛,和最初一樣

《門》凡是過往,皆為序曲。我們的愛,和最初一樣 夏目漱石,本名夏目金之助,筆名漱石,日本近代作家,代表作有《三四郎》《門》《從此以后》《我是貓》《心》《明暗》等。 竺家榮 譯 文章目錄 《門》凡是過往&…

衡石ChatBI:依托開放架構構建技術驅動的差異化數據服務

在當今數字化浪潮中,企業對數據價值的挖掘和利用需求日益增長。BI(商業智能)工具作為企業獲取數據洞察的關鍵手段,其技術架構的創新與發展至關重要。衡石科技的Chat BI憑借其獨特的開放架構,在BI領域脫穎而出&#xff…

oracle中錯誤總結

oracle中給表起別名不能用as,用as報錯 在 Oracle 數據庫中,??WITH 子句(即 CTE,公共表表達式)允許后續定義的子查詢引用前面已經定義的 CTE??,但 ??前面的 CTE 無法引用后面的 CTE??。這種設計類似…

NLP高頻面試題(五十)——大模型(LLMs)分詞(Tokenizer)詳解

在自然語言處理(NLP)任務中,將文本轉換為模型可處理的數字序列是必不可少的一步。這一步通常稱為分詞(tokenization),即把原始文本拆分成一個個詞元(token)。對于**大型語言模型(LLM,Large Language Model,大型語言模型)**而言,選擇合適的分詞方案至關重要:分詞的…

優化WAV音頻文件

優化 WAV 音頻文件通常涉及 減小文件體積、提升音質 或 適配特定用途(如流媒體、廣播等)。以下是分場景的優化方法,涵蓋工具和操作步驟: 一、減小文件體積(無損/有損壓縮) 1. 無損壓縮 轉換格式&#xff1…

ORACLE SQL輸入的變量由于隱式轉換無法使用索引的分析優化

近期,某客戶在巡檢分析AWR報告時,發現有個TOP SQL的執行效率偏慢,檢查分析SQL,發現數據塊讀取量高,分析執行計劃,發現有個查詢條件未使用到索引; 對執行計劃及表上的字段、索引進行分析&#x…

【鋰電池SOH估計】RF隨機森林鋰電池健康狀態估計,鋰電池SOH估計(Matlab完整源碼和數據)

目錄 效果一覽程序獲取程序內容代碼分享研究內容基于隨機森林(RF)的鋰電池健康狀態(SOH)估計算法研究摘要1. 引言2. 鋰電池SOH評估框架3. 實驗與結果分析4. 未來研究方向6. 結論效果一覽 程序獲取 獲取方式一:文章頂部資源處直接下載:【鋰電池SOH估計】RF隨機森林鋰電池…

安全高效兩不誤,這款安全數據擺渡系統支持8種傳輸協議

安全高效兩不誤!這款安全數據擺渡系統支持8種傳輸協議 傳統的安全數據擺渡系統主要包括物理介質拷貝(如光盤、U盤)、網閘、光閘、防火墻文件交換模塊等,這些安全數據擺渡系統和傳輸方式在傳輸協議支持及功能實現上各有優劣勢。 …

(51單片機)LCD顯示溫度(DS18B20教程)(LCD1602教程)(延時函數教程)(單總線教程)

演示視頻: LCD顯示溫度 源代碼 如上圖將9個文放在Keli5 中即可,然后燒錄在單片機中就行了 燒錄軟件用的是STC-ISP,不知道怎么安裝的可以去看江科大的視頻: 【51單片機入門教程-2020版 程序全程純手打 從零開始入門】https://www.…

【愚公系列】《Python網絡爬蟲從入門到精通》063-項目實戰電商數據偵探(主窗體的數據展示)

🌟【技術大咖愚公搬代碼:全棧專家的成長之路,你關注的寶藏博主在這里!】🌟 📣開發者圈持續輸出高質量干貨的"愚公精神"踐行者——全網百萬開發者都在追更的頂級技術博主! &#x1f…

日志分析工具快速統計電商系統單位時間內的請求總數

一、常用日志分析工具及操作步驟 ?ELK Stack(Elasticsearch + Logstash + Kibana)?核心操作? 日志收集?:通過Logstash配置日志輸入(如Nginx日志文件),使用grok插件解析日志格式。 數據存儲?:將解析后的日志存入Elasticsearch,利用其分布式搜索能力快速索引數據。…

Win10一體機(MES電腦設置上電自動開機)

找個鍵盤,帶線的那種,插到電腦上,電腦開機;連續點按F11;通過↑↓鍵選擇Enter Setup 然后回車; 選擇 smart settings ; 選擇 Restore AC Power Loss By IO 回車; 將prower off 改為…