HTTPS協議—加密算法和中間攻擊人的博弈

活動發起人@小虛竹 想對你說:

這是一個以寫作博客為目的的創作活動,旨在鼓勵大學生博主們挖掘自己的創作潛能,展現自己的寫作才華。如果你是一位熱愛寫作的、想要展現自己創作才華的小伙伴,那么,快來參加吧!我們一起發掘寫作的魅力,書寫出屬于我們的故事。我們誠摯邀請你參加為期14天的創作挑戰賽!

提醒:在發布作品前,請將不需要的內容刪除。

各位看官,大家早安午安晚安呀~~~

如果您覺得這篇文章對您有幫助的話

歡迎您一鍵三連,小編盡全力做到更好
歡迎您分享給更多人哦

今天我們來學習HTTPS協議—加密算法和中間攻擊人的博弈

?? ? ? ? HTTPS不僅是一種安全的通信協議,更是一場加密算法與中間人攻擊者的精彩博弈。在這場博弈中,加密算法就像是一把堅固的鎖,而中間人攻擊者則試圖找到這把鎖的弱點。今天,我們就來深入探討HTTPS協議中的加密算法,以及它們如何與中間人攻擊者展開這場沒有硝煙的戰爭!

? ? ? ?一段數據需要經過一段路程到達目的地,我們如果想要這個數據安全的到達終點,不僅需要護送人實力強大,還需要這個數據本身就具有安全性(如何數據更安全呢?)

我們直接想到的辦法就是對這個數據進行加密!

舉個例子:

?83 版 <<火燒圓明園>> , 有人要謀反干掉慈禧太后. 恭親王奕?給慈禧遞的折子. 折子內容只是扯

一扯家常, 套上一張挖了洞的紙就能看到真實要表達的意思.

明文: "當心肅順, 端華, 戴恒" (這幾個人都是當時的權臣, 后來被慈禧一鍋端).

密文: 奏折全文

密鑰: 挖了洞的紙.

在密碼學中,使用密鑰加密,主要有兩種方式

1.對稱加密

加密和解密使用的密鑰是同一個密鑰,如果只是單純的對稱加密,安全性不能保證。

2.非對稱加密

有兩個密鑰:公鑰和私鑰(一對),公鑰(可以公開的)私鑰自己拿好。用其中一個鑰匙加密,就只能用另一個鑰匙進行解密。

對稱加密算法的效率要比非對稱算法的效率更高!!!

對稱加密算法的加密和解密速度非常快。由于算法的簡單性和高效的數學運算,對稱加密可以在短時間內完成大量的數據加密和解密。

1.HTTPS的加密過程

? ? 在加密的過程中,我們還要考慮到算法的效率,不能單純因為加密的事情,搞得程序變得效率低下,這樣就未免得不償失了

目前我們知道 對稱加密算法效率很高,但不是很安全;非對稱反之。

因此我們很容易就能得出我們需要的加密方法需要二者的結合~(如果還是不行的話,還需要再加上一些其他的機制——證書的使用)

1.1.為何對稱加密不安全的呢?

首先我們知道對稱加密是客戶端和服務器公用一個密鑰,那么這里就分成兩種情況了。

  1. 所有的客戶端密鑰都一樣(這樣的想都不要想,黑客也和你的密鑰一樣,幾乎沒什么作用)
  2. 不同的客戶端的密鑰不一樣

第一種明顯是不科學的,那第二種呢?

我先給出的解釋:

如果不一樣的客戶端秘鑰不一樣,但是傳輸密文的時候需要把密鑰發送給服務器然后黑客就能中間拿到了這個秘鑰。

問題:

為什么服務器不維護一個數據庫,通過辨別客戶端的身份然后識別出這個客戶端的密鑰是什么?這樣密鑰就不通過網絡傳輸了,不就安全了?

解釋:

這里存在著很多問題:首先辨識就是一個復雜的過程,根據什么來辨識?在我卡那里主要的矛盾在于——服務器維護成本高:如果服務器需要維護一個包含每個客戶端密鑰的數據庫,這將帶來巨大的管理成本(特別是處理大量的請求時,頻繁地訪問數據庫無疑是一個巨大的開銷)。

這就給我們帶來思考:要是隨時生成的密鑰能安全傳輸就好了(這樣的密鑰肯定要傳輸的呀,不然另一方不知道)(一旦傳輸就又要泄露,所以我們要給這個密鑰再加密)。

故:我們要解決的問題:給密鑰再進行加密。

這個時候我們就可以引出隨時生成的公鑰和私鑰了

1.2.非對稱加密解決對稱加密的不安全問題(但是還會有中間人攻擊的問題)

圖解:

大家可以看到,上面的步驟看似很好的解決了問題。

但是黑客憑什么要把公鑰給你(黑客為什么不進行掉包?)

1.3.中間人攻擊的問題

這里的問題就是:
黑客根本就不會把pub1(服務器生成的是私鑰返回給客戶端),而是把自己pub2返回給了客戶端,但是客戶端完全不知道這個公鑰(pub2)是錯誤的

客戶端使用pub2對密鑰進行加密,黑客拿到這個數據,用自己的pri2把密鑰拿出來。在用pub1加密發給服務器(天衣無縫)

這里主要的問題就是客戶端無法分辨這里的公鑰是否正確,如果自己手里面有一個確定的東西可以驗證這個公鑰是否正確,這個問題就解決了

1.4.公正機構的證書解決公鑰是否正確的問題

公證機構(Certificate Authority,簡稱CA):是數字證書的頒發機構(會生成一對公鑰和私鑰,公鑰往往會內置在每個系統中(大家都有),私鑰絕不泄露

關于公正機構的注釋:

網站的開發人員,想要搭建一個服務器的時候,就需要像公證機構提交申請(提交一些材料,像域名,服務器自己的公鑰(一份就好了,不必每個客戶端都不一樣,主要是密鑰不一樣并且安全傳輸就行了),廠商…………)

然后公證機構就會對這些材料進行審批,審核通過就會頒發一個數字證書(里面包含里服務器的域名,公鑰,證書時間范圍,數字簽名………)

什么是數字簽名呢?

數字簽名是 CA 對證書內容的一個加密哈希值(我們下面姑且稱這個哈希值為校驗和),由以下步驟生成:

  1. 計算哈希值
    CA 對證書的明文信息(域名、公鑰、有效期等)使用哈希算法(如 SHA-256)生成一個唯一的哈希值

  2. 加密哈希值
    CA 使用自己的私鑰對這個哈希值進行加密,加密后的結果就是數字簽名

  3. 將簽名附加到證書
    簽名和證書的其他信息(明文)一起發送給服務器。

具體過程實現:

再來一個問題哈哈:

黑客能否自己也申請一個證書,把服務器的證書替換掉(直接在服務器申請材料的時候把服務器的公鑰換成自己的?)

媽呀,這個黑客也忒狠了!!!

在申請數字證書時,證書頒發機構(CA)會對申請者的身份進行嚴格驗證!!!這包括驗證申請者的身份信息(如公司注冊信息、個人身份證明等)以及申請者對所申請域名的所有權。黑客無法通過這些驗證,因為他們無法提供合法的身份證明和域名所有權證明。(如果這也行,那真沒啥辦法了哈哈哈)

2.總結:

總的來說,我們最終實現HTTPS的加密過程如下:

雖然我的文章結束了,但是加密算法和中間攻擊人的博弈故事還在繼續!!!

寫完真的很激動——哈哈哈

上述就是HTTPS協議—加密算法和中間攻擊人的博弈的全部內容啦~~~

能看到這里相信您一定對小編的文章有了一定的認可。

有什么問題歡迎各位大佬指出
歡迎各位大佬評論區留言修正~~

您的支持就是我最大的動力???!!!

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

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

相關文章

Java替換jar包中class文件

在更新java應用版本的運維工作中&#xff0c;由于一些原因&#xff0c;開發沒辦法給到完整的jar包&#xff0c;這個時候&#xff0c;就可以只將修改后的某個Java類的class文件替換掉原來iar包中的class文件&#xff0c;重新啟動服務即可&#xff1a; 1、將jar包和將要替換的cl…

【UI設計】一些好用的免費圖標素材網站

阿里巴巴矢量圖標庫https://www.iconfont.cn/國內最大的矢量圖標庫之一&#xff0c;擁有 800 萬 圖標資源。特色功能包括團隊協作、多端適配、定制化編輯等&#xff0c;適合企業級項目、電商設計、中文產品開發等場景。IconParkhttps://iconpark.oceanengine.com/home字節跳動…

【10】高效存儲MongoDB的用法

目錄 一、什么是MongoDB 二、準備工作 &#xff08;1&#xff09;安裝MongoDB ?&#xff08;2&#xff09;安裝pymongo庫 三、連接MongoDB 四、指定數據庫 五、指定集合 六、插入數據 &#xff08;1&#xff09; insert 方法 &#xff08;2&#xff09;insert_one(…

MATLAB+Arduino利用板上的按鍵控制板上Led燈

幾年不使用&#xff0c;之前的知識都忘掉了。需要逐步撿起來。 1 熟悉按鍵的使用 2熟悉燈的控制 1 電路 我們將通過 MATLAB 的 Arduino 支持包與 Arduino 板通信&#xff0c;讀取按鍵狀態并控制 LED 燈的亮滅。 按鍵&#xff1a;連接到 Arduino 的數字引腳&#xff08;例如…

《深度學習》——YOLOv3詳解

文章目錄 YOLOv3簡介YOLOv3核心原理YOLOv3改進YOLOv3網絡結構 YOLOv3簡介 YOLOv3&#xff08;You Only Look Once, version 3&#xff09;是一種先進的實時目標檢測算法&#xff0c;由 Joseph Redmon 和 Ali Farhadi 開發。它在目標檢測領域表現出色&#xff0c;具有速度快、精…

【項目設計】網頁版五子棋

文章目錄 一、項目介紹1.項目簡介2.開發環境3.核心技術4.開發階段 二、Centos-7.6環境搭建1.安裝wget工具2.更換軟件源(yum源)3.安裝scl工具4.安裝epel軟件源5.安裝lrzsz傳輸工具6.安裝高版本gcc/g編譯器7.安裝gdb調試器8.安裝git9.安裝cmake10.安裝boost庫11.安裝Jsoncpp庫12.…

在coze工作流中將數據回寫到飛書表格

在coze工作流中將數據回寫到飛書表格

并查集(競賽)

一、模型建立 本質就是一個數組&#xff0c;數組的下標對應節點的編號&#xff0c;數組的值對應對應編號的節點的父節點。規定根節點的父節點是自己。 規定三個集合的根節點分別是1 4 6 二、并查集操作并實現 并查集主要操作&#xff1a;查找一個節點的父節點&#xff0c;判…

Leetcode 刷題筆記1 圖論part04

leetcode 110 字符串接龍 def judge(s1, s2):count 0for i in range(len(s1)):if s1[i] ! s2[i]:count 1return count 1if __name__ __main__:n int(input())begin_str, end_str map(str, input().split())if begin_str end_str:print(0)exit()strlist []for _ in ran…

從擴展黎曼澤塔函數構造物質和時空的結構-7

有了先前關于電荷之間吸引和排斥關系的頻率分析圖&#xff0c;我們可以按照類似的方法&#xff0c;對磁場做一樣的分析&#xff0c;即分析磁體同極相斥&#xff0c;異極相吸的本質。 我們知道上圖得以成立的原因在于磁感線&#xff0c;如下圖所示的排布方式&#xff0c; 磁體的…

AI比人腦更強,因為被植入思維模型【18】萬物系統思維模型

把事物看成鏈&#xff0c;看成網&#xff0c;看成生態。 定義 萬物系統思維模型是一種將宇宙萬物視為一個相互關聯、相互作用的整體系統的思維方式。它強調從系統的角度去認識、分析和解決問題&#xff0c;認為系統中的各個要素之間存在著復雜的相互關系&#xff0c;這些關系不…

Qt-Q_ENUM宏和QMetaEnum類

Q_ENUM是一個宏定義&#xff0c;它的作用是將一個枚舉類型注冊到元對象系統&#xff0c;從而能夠通過QMetaEnum類獲得一些關于enum類型的一些信息&#xff0c;例如獲取enum類型的名稱字符串&#xff0c;enum值和字符串互相轉換&#xff0c;enum類型保存在QVariant中&#xff0c…

MongoDB 配合python使用的入門教程

MongoDB 入門教程 1. 安裝 MongoDB 首先&#xff0c;你需要在你的機器上安裝MongoDB。你可以從 MongoDB官網 下載并安裝 Community 版本。安裝完成后&#xff0c;啟動MongoDB服務。 # 在Linux/Mac上啟動MongoDB mongod# 在Windows上&#xff0c;你可以通過Windows服務啟動Mo…

【云馨AI-大模型】大模型的開發和應用中,Python、PyTorch和vLLM關系概括

說明 1. Python 定位&#xff1a;基礎編程語言。作用&#xff1a;Python 是大模型生態系統的核心語言&#xff0c;幾乎所有深度學習框架&#xff08;如 PyTorch、TensorFlow&#xff09;和工具鏈&#xff08;如 vLLM&#xff09;都通過 Python 接口提供服務。特點&#xff1a…

西門子200smart之modbus_TCP(做主站與第三方設備)通訊

西門子200smart做MODBUS_TCP主站通訊,只有一個指令。設置相關參數即可完成讀寫操作。整 個過程非常復雜,操作非常嚴謹。此次,我們使用匯川EASY系列PLC做從站,完成演示。關于匯川案例的演示,詳見匯川EASY系列之以太網通訊(MODBUS_TCP做從站)-CSDN博客 關于主站和從站的介…

緩存設計模式

緩存設計模式&#xff08;Cache Design Pattern&#xff09;是一種用于存儲和管理頻繁訪問數據的技術&#xff0c;旨在提高系統性能、降低數據庫或后端服務的負載&#xff0c;并減少數據訪問延遲。以下是幾種常見的緩存設計模式&#xff0c;并用 Python Redis 進行示例代碼實現…

Java算法隊列和棧經常用到的ArrayDeque

主要是記錄一下add&#xff0c;push&#xff0c;poll這三個常用api&#xff0c;因為這三個就是棧和隊列一念之差的關鍵 1.add(E e) 方法 ?作用&#xff1a;將元素添加到雙端隊列的尾部?&#xff08;等價于 addLast(E e)&#xff09;。?行為&#xff1a; ?成功時&#xff1…

機器學習——一元線性回歸(算法實現與評估)

一元線性回歸是統計學中最基礎的回歸分析方法&#xff0c;用于建立兩個變量之間的線性關系模型。 1. 模型表達式 一元線性回歸的數學模型為&#xff1a; &#xff1a;因變量&#xff08;預測值&#xff09;&#xff1a;自變量&#xff08;輸入變量&#xff09;&#xff1a;回…

Ubuntu下用QEMU模擬運行OpenBMC

1、前言 在調試過程中&#xff0c;安裝了很多依賴庫&#xff0c;具體沒有記錄。關于kvm&#xff0c;也沒理清具體有什么作用。本文僅記錄&#xff0c;用QEMU成功的將OpenBMC跑起來的過程&#xff0c;做備忘&#xff0c;也供大家參考。 2、環境信息 VMware Workstation 15 Pro…

Gradle/Maven 本地倉庫默認路徑遷移 (減少系統磁盤占用)

Gradle 配置環境變量 GRADLE_USER_HOME&#xff0c;如D:/.gradle同時將 %userprofile%/.gradle 移動到配置路徑 Maven 修改settings.xml文件&#xff0c;localRepository同時將 %userprofile%/.m2/repository 移動到配置路徑 IDEA默認用的bundle maven, 路徑為安裝目錄下 p…