【計算機網絡】深度學習HTTPS協議

在這里插入圖片描述

在這里插入圖片描述
在這里插入圖片描述
💓 博客主頁:從零開始的-CodeNinja之路

? 收錄文章:【計算機網絡】深度學習HTTPS協議
🎉歡迎大家點贊👍評論📝收藏?文章

目錄

    • 一:HTTPS是什么
    • 二:HTTPS的工作過程
    • 三:對稱加密
    • 四:非對稱加密
    • 五:中間人攻擊
      • 1.證書
      • 2.數據簽名
      • 3.通過證書解決中間人攻擊
      • 4.中間人有沒有可能篡改該證書?
    • 六:完整流程

一:HTTPS是什么

HTTPS也是?個應用層協議.是在HTTP協議的基礎上引入了?個加密層.
HTTP協議內容都是按照文本的方式明文傳輸的.這就導致在傳輸過程中出現?些被篡改的情況.
在互聯網上,明文傳輸是比較危險的事情!!!
HTTPS就是在HTTP的基礎上進行了加密,進?步的來保證用戶的信息安全~
"加密"是什么
加密就是把明文(要傳輸的信息)進行?系列變換,生成密文
解密就是把密文再進行?系列變換,還原成明文
在這個加密和解密的過程中,往往需要?個或者多個中間的數據,輔助進行這個過程,這樣的數據稱為密

二:HTTPS的工作過程

既然要保證數據安全,就需要進行"加密".
網絡傳輸中不再直接傳輸明文了,而是加密之后的"密文".
加密的方式有很多,但是整體可以分成兩大類:對稱加密和非對稱加密
在這里插入圖片描述

三:對稱加密

對稱加密其實就是通過同?個"密鑰",把明文加密成密文,并且也能把密文解密成明文.
就是能在客戶端和服務器建立連接的時候,雙方協商確定這次的密鑰是啥~
在這里插入圖片描述

如果直接把密鑰明文傳輸,那么黑客也就能獲得密鑰了~~此時后續的加密操作就形同虛設了.
因此密鑰的傳輸也必須加密傳輸!
但是要想對密鑰進行對稱加密,就仍然需要先協商確定?個"密鑰的密鑰".此時密鑰的傳輸再用對稱加密就行不通了.
就需要引入非對稱加密.

四:非對稱加密

非對稱加密要用到兩個密鑰,?個叫做"公鑰",?個叫"私鑰".
公鑰和私鑰是配對的.最大的缺點就是運算速度非常慢,比對稱加密要慢很多.

  • 通過公鑰對明文加密,變成密文
  • 通過私鑰對密文解密,變成明文

也可以反著用

  • 通過私鑰對明文加密,變成密文
  • 通過公鑰對密文解密,變成明文

在這里插入圖片描述

  • 客戶端在本地生成對稱密鑰,通過公鑰加密,發送給服務器.
  • 由于中間的網絡設備沒有私鑰,即使截獲了數據,也無法還原出內部的原文,也就無法獲取到對稱密 鑰
  • 服務器通過私鑰解密,還原出客戶端發送的對稱密鑰.并且使?這個對稱密鑰加密給客戶端返回的響 應數據.
  • 后續客戶端和服務器的通信都只用對稱加密即可.由于該密鑰只有客戶端和服務器兩個主機知道,其 他主機/設備不知道密鑰即使截獲數據也沒有意義.

由于對稱加密的效率比非對稱加密高很多,因此只是在開始階段協商密鑰的時候使用非對稱加密,后續
的傳輸仍然使用對稱加密.
那么接下來問題又來了:

  • 客戶端如何獲取到公鑰?
  • 客戶端如何確定這個公鑰不是黑客偽造的?

五:中間人攻擊

?客可以使用中間人攻擊,獲取到對稱密鑰.

  1. 服務器具有非對稱加密算法的公鑰S,私鑰S’
  2. 中間人具有非對稱加密算法的公鑰M,私鑰M’
  3. 客戶端向服務器發起請求,服務器明文傳送公鑰S給客戶端
  4. 中間?劫持數據報文,提取公鑰S并保存好,然后將被劫持報文中的公鑰S替換成為自己的公鑰M,
    并將偽造報文發給客戶端
  5. 客戶端收到報文,提取公鑰M(自己當然不知道公鑰被更換過了),自己形成對稱秘鑰X,用公鑰M加
    密X,形成報文發送給服務器
  6. 中間人劫持后,直接用自己的私鑰M’進行解密,得到通信秘鑰X,再用曾經保存的服務端公鑰S加
    密后,將報文推送給服務器
  7. 服務器拿到報文,用自己的私鑰S’解密,得到通信秘鑰X
  8. 雙方開始采用X進行對稱加密,進行通信。但是?切都在中間人的掌握中,劫持數據,進行竊聽甚
    ?修改,都是可以的
    ?客可以使用中間人攻擊,獲取到對稱密鑰.

1.證書

服務端在使用HTTPS前,需要向CA機構申領?份數字證書,數字證書里含有證書申請者信息、公鑰信
息等。服務器把證書傳輸給瀏覽器,瀏覽器從證書里獲取公鑰就行了,證書就如?份證,證明服務端
公鑰的權威性
在這里插入圖片描述
這個證書可以理解成是?個結構化的字符串,里面包含了以下信息:

  • 證書發布機構
  • 證書有效期
  • 公鑰
  • 證書所有者
  • 簽名

需要注意的是:申請證書的時候,需要在特定平臺生成查,會同時生成?對兒密鑰對兒,即公鑰和私
鑰。這對密鑰對兒就是用來在網絡通信中進行明文加密以及數字簽名的。

2.數據簽名

簽名的形成是基于非對稱加密算法的,注意,目前暫時和https沒有關系,不要和https中的公鑰私鑰搞
混了
在這里插入圖片描述
當服務端申請CA證書的時候,CA機構會對該服務端進行審核,并專門為該網站形成數字簽名,過程如
下:

  1. CA機構擁有非對稱加密的私鑰A和公鑰A’
  2. CA機構對服務端申請的證書明文數據進行hash,形成數據摘要
  3. 然后對數據摘要用CA私鑰A’加密,得到數字簽名S
    服務端申請的證書明文和數字簽名S共同組成了數字證書,這樣?份數字證書就可以頒發給服務端了

3.通過證書解決中間人攻擊

在客戶端和服務器剛?建立連接的時候,服務器給客戶端返回?個證書.
這個證書包含了剛才的公鑰,也包含了網站的?份信息.
在這里插入圖片描述

當客戶端獲取到這個證書之后,會對證書進行校驗(防止證書是偽造的).

  • 判定證書的有效期是否過期
  • 判定證書的發布機構是否受信任(操作系統中已內置的受信任的證書發布機構).
  • 驗證證書是否被篡改:從系統中拿到該證書發布機構的公鑰,對簽名解密,得到?個hash值(稱為數
    據摘要),設為hash1.然后計算整個證書的hash值,設為hash2.對比hash1和hash2是否相等.如
    果相等,則說明證書是沒有被篡改過的.

4.中間人有沒有可能篡改該證書?

  • 中間人篡改了證書的明文
  • 由于他沒有CA機構的私鑰,所以?法hash之后用私鑰加密形成簽名,那么也就沒法辦法對篡改后 的證書形成匹配的簽名
  • 如果強行篡改,客戶端收到該證書后會發現明文和簽名解密后的值不?致,則說明證書已被篡改,
    證書不可信,從而終止向服務器傳輸信息,防止信息泄露給中間人

中間人整個掉包證書?

  • 因為中間人沒有CA私鑰,所以無法制作假的證書(為什么?)
  • 所以中間人只能向CA申請真證書,然后用自己申請的證書進行掉包
  • 這個確實能做到證書的整體掉包,但是別忘記,證書明文中包含了域名等服務端認證信息,如果整 體掉包,客戶端依舊能夠識別出來。
  • 永遠記住:中間人沒有CA私鑰,所以對任何證書都無法進行合法修改,包括自己的

六:完整流程

左側都是客戶端做的事情,右側都是服務器做的事情
在這里插入圖片描述
總結
HTTPS工作過程中涉及到的密鑰有三組.

  • 第一組(非對稱加密):用于校驗證書是否被篡改.服務器持有私鑰(私鑰在注冊證書時獲得),客戶端持有
    公鑰(操作系統包含了可信任的CA認證機構有哪些,同時持有對應的公鑰).服務器使用這個私鑰對證書
    的簽名進行加密.客戶端通過這個公鑰解密獲取到證書的簽名,從而校驗證書內容是否是篡改過.
  • 第二組(非對稱加密):用于協商生成對稱加密的密鑰.服務器生成這組私鑰-公鑰對,然后通過證書把公 鑰傳遞給客戶端.然后客戶端用這個公鑰給生成的對稱加密的密鑰加密,傳輸給服務器,服務器通過私鑰 解密獲取到對稱加密密鑰.
  • 第三組(對稱加密):客戶端和服務器后續傳輸的數據都通過這個對稱密鑰加密解密. 其實?切的關鍵都是圍繞這個對稱加密的密鑰.其他的機制都是輔助這個密鑰工作的. 第?組非對稱加密的密鑰是為了讓客戶端把這個對稱密鑰傳給服務器. 第?組非對稱加密的密鑰是為了讓客戶端拿到第?組非對稱加密的公鑰.
    在這里插入圖片描述
    如果覺得文章不錯,期待你的一鍵三連哦,你個鼓勵是我創作的動力之源,讓我們一起加油,頂峰相見!!!💓 💓 💓

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

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

相關文章

【web | CTF】BUUCTF [HCTF 2018]WarmUp

天命&#xff1a;這題本地php代碼是無法復現的 首先打開網站&#xff0c;啥也沒有&#xff0c;查看源碼 發現文件&#xff0c;打開訪問一下看看&#xff0c;發現是代碼審計 <?phphighlight_file(__FILE__);class emmm{public static function checkFile(&$page){$whit…

【學習總結】什么是DoS和DDoS

[Q&A] 什么是DoS DoS 是 “Denial of Service”&#xff08;拒絕服務&#xff09;的縮寫&#xff0c;它是一種網絡攻擊方式&#xff0c;其目的是使目標計算機或網絡資源無法為合法用戶提供正常的服務。通過向目標系統發送大量請求、消耗其帶寬、處理器或內存等資源&#…

13 雙口 RAM IP 核

雙口 RAM IP 核簡介 雙口 RAM IP 核有兩個端口&#xff0c;它又分為偽雙端口 RAM 和真雙端口 RAM&#xff0c;偽雙端口 RAM 一個端口只能讀&#xff0c;另一個端口只能 寫&#xff0c;真雙端口 RAM 兩個端口都可以進行讀寫操作。同時對存儲器進行讀寫操作時就會用到雙端口 RAM…

unity-1

創建游戲對象&#xff08;游戲物體&#xff09; 可通過unity中的菜單欄中的Gameobject創建&#xff1b;也可在Hierarchy&#xff08;層級&#xff09;中創建&#xff0c; 雙擊即可居中看到。 在Hierarchy空白處右鍵即可看到&#xff0c;能創建游戲對象。 在Scene框中&#x…

BioTech - ADMET的性質預測 概述

歡迎關注我的CSDN&#xff1a;https://spike.blog.csdn.net/ 本文地址&#xff1a;https://blog.csdn.net/caroline_wendy/article/details/136438192 ADMET&#xff0c;即 Absorption、Distribution、Metabolism、Excretion、Toxicity&#xff0c;吸收、分布、代謝、排泄、毒性…

題目 1629: 藍橋杯算法訓練VIP-接水問題

題目描述: 學校里有一個水房&#xff0c;水房里一共裝有m個龍頭可供同學們打開水&#xff0c;每個龍頭每秒鐘的供水量相等&#xff0c;均為1。現在有n名同學準備接水&#xff0c;他們的初始接水順序已經確定。將這些同學按接水順序從1到n編號&#xff0c;i號同學的接水量為wi。…

Linux shell:補充命令的使用

目錄 一.導讀 二.正文 三.結語 一.導讀 上一篇介紹了腳本的簡單概念以及使用&#xff0c;現在補充一些命令。 二.正文 目前處于全局目錄&#xff0c;通過mkdir創建名我為day01的文件。 通過cd命令day01 切換至day01文件當中。 使用vim文本編輯器文件名&#xff08;firstdir&…

設計模式學習筆記——工廠方法模式

設計模式&#xff08;創建型&#xff09;—— 工廠方法模式 傳統的獲取對象方法&#xff0c;是通過 new 關鍵字獲取一個對象&#xff0c;但是如果多個地方都需要該對象&#xff0c;就需要 new 很多次&#xff0c;這時候如果這個類發生了一些改變&#xff0c;如類名變了&#x…

靜態上下文調用了非靜態上下文

問題描述&#xff1a; static修飾的方法不能調用非static修飾方法 問題原因&#xff1a; 在Java中&#xff0c;靜態方法&#xff08;如main方法&#xff09;可以直接訪問靜態成員&#xff08;包括靜態變量和靜態方法&#xff09;&#xff0c;但不能直接訪問非靜態成員&#…

【Python】進階學習:pandas--query()用法詳解

&#x1f4da;【Python】進階學習&#xff1a;pandas–query()用法詳解 &#x1f308; 個人主頁&#xff1a;高斯小哥 &#x1f525; 高質量專欄&#xff1a;Matplotlib之旅&#xff1a;零基礎精通數據可視化、Python基礎【高質量合集】、PyTorch零基礎入門教程&#x1f448; 希…

劍指offer面試題24 二叉樹搜索樹的后續遍歷序列

考察點 二叉搜索樹&#xff0c;樹的后序遍歷知識點 題目 分析 本題目要求判斷某序列是否是二叉搜索樹的后序遍歷序列&#xff0c;后序遍歷的特點是左右根&#xff0c;因此序列的最后一個元素肯定是根結點&#xff0c;而前面的序列可以分為倆部分&#xff0c;第一部分是左子樹…

LeetCode --- 無重復字符的最長子串

題目描述 無重復字符的最長子串 找到無重復的最長連續字符串。 示例1中 abc | bca | cab 都符合題意。輸出3即可。 代碼 可以使用暴力枚舉 哈希表&#xff0c;哈希表來判斷是否重復&#xff0c;枚舉來判斷每一種情況&#xff0c;需要開兩層for循環&#xff0c;時間復雜度n…

linux高級編程:線程(二)、進程間的通信方式

線程&#xff1a; 回顧線程&#xff08;一&#xff09;&#xff1a; 1.線程間通信問題 線程間共享同一個資源&#xff08;臨界資源&#xff09; 互斥&#xff1a; 排他性訪問 linux系統 -- 提供了Posix標準的函數庫 -- 互斥量&#xff08;互斥鎖&#xff09; 原子操作&#x…

精通Matplotlib:從入門到精通的繪圖指南

在本篇文章中&#xff0c;我們將深入探索Matplotlib庫&#xff0c;這是一個強大的Python繪圖庫&#xff0c;廣泛用于數據可視化。Matplotlib讓我們能夠以簡單而直觀的方式創建各種靜態、動態和交互式的圖表。無論你是數據分析師、科研人員&#xff0c;還是任何需要數據可視化的…

用Redis如何實現延遲隊列?

在Redis中實現延遲隊列可以利用有序集合&#xff08;Sorted Set&#xff09;和定時任務的方式。下面是一個基本的實現思路&#xff1a; 添加延遲任務&#xff1a; 將任務信息作為一個字符串存儲在Redis中&#xff0c;同時將其對應的執行時間作為分數(score)存儲在有序集合中。使…

Bililive-go 實現直播自動監控錄制

前言 最近有直播錄制的需求&#xff0c;但是自己手動錄制太麻煩繁瑣&#xff0c;于是用了開源項目Bililive-go進行全自動監控錄制&#xff0c;目前這個項目已經有3K stars了 部署 為了方便我使用了docker compose 部署 version: 3.8 services:bililive:image: chigusa/bilil…

win環境nginx實戰配置詳解

項目中經常使用nginx做負載均衡&#xff0c;接口路由、文件、文檔的上傳及下載、視頻的代理播放等等&#xff0c;都離不開nginx的支持&#xff0c;今天我們分享一下其個使用場景。 1、配置文件 nd-nginx.conf 全局配置 #全局配置端&#xff0c;對全局生效&#xff0c;主要設置…

leetcode-字符串相加

415. 字符串相加 題目中已經說明不能使用庫函數直接將輸入的字符串轉換為整數。這就需要我們自己實現大數加法的邏輯&#xff0c;我們可以從兩個字符串的最后一位開始&#xff0c;逐位相加&#xff0c;同時記錄進位。如果某一位相加的結果超過10&#xff0c;那么需要向前進位。…

javascript實現的星座查詢

今天在這個網站http://xzxys.wiicha.com/看到查詢星座幸運色的效果&#xff0c;想研究一下代碼&#xff0c;結果右鍵禁用。后來參考了一下別人的代碼&#xff0c;琢磨著先實現了一下星座查詢的功能&#xff0c;輸入月份和日期四位數后&#xff0c;可以查詢屬于哪個星座&#xf…

群體風暴之錘(War3地圖編輯器)

文章目錄 0、大致原理1、創建隱形單位2、新事件開端3、環境→新條件4、動作4.1、單位組4.1.1、圓范圍內單位4.1.2、指定條件 4.2、對單位組內的所有單位釋放風暴之錘 0、大致原理 真MK向目標點釋放風暴之錘時選定&#xff08;以技能釋放點為圓心&#xff0c;設定半徑&#xff0…