協議_https協議

http

在這里插入圖片描述
http協議是將數據以明文的形式在網絡上傳輸。若是傳輸的數據中包含一些敏感信息比如銀行卡信息等可能會被有心人攻擊造成信息泄露或被篡改。

總結:http協議進行數據傳輸難以保證數據的隱私性以及數據完整性,為了保證數據的準確定引入了https這一協議。

https

簡單來說https就是安全版的http協議。

HTTPS協議也是一個應用層協議,是在http的基礎上使用TLS/SSL(套接字)進行加密,這樣通信就不容易受到攔截和攻擊。

TLS/SSL
  • TLS:傳輸加密協議,規定了如何為網絡中的數據進行加密和解密。
  • SSL:早期由網景公司設計的加密協議,后貢獻給IETF組織,并最終命名為TLS。
  • tips:除了HTPPS外,TLS可以被用于任何基于TCP/IP協議的上層協議或應用程序,如SFTP協議、數據庫間通信加密…

在這里插入圖片描述

常見的加密方式

常見的加密算法有對稱加密、非對稱加密、摘要算法

HTTP加密過程探究
[1] 只使用對稱加密

在這里插入圖片描述
如上圖所示

  • 客戶端發送請求:其中包含了客戶端所支持的TLS版本以及加密算法等信息;
  • 服務端接收請求:從中選取最優的TLS版本以及加密算法 并將這些信息反饋給客戶端
  • 客戶端接收響應:生成一段隨機字符串(這段隨機字符串被稱為預主密鑰),通過服務端指定的加密函數和加密算法將這段隨機字符串生成一對密鑰(被稱為會話密鑰) 用于后續數據傳輸時的加密和解密;
  • 客戶端發送請求:將預主密鑰發送給服務端并告知服務端生成密鑰的算法等信息
  • 服務端接收請求: 接收信息后以同樣的方式生成會話密鑰
  • 此時 客戶端和服務端 就可以 以會話密鑰加解密數據進行通信了

引入對稱加密之后即使數據被截獲, 由于黑客不知道密鑰是什么也就無法進行解密,獲取原始數據了。

問題

如何將預主密鑰傳遞給服務端成為最大的難題

若是預主密鑰以明文的方式傳輸,那么在傳輸過程中 黑客獲取到這個預主密鑰 他完全可以創建出與客戶端相同的會話密鑰,最終導致后面所有的傳輸數據都面臨著被破譯的風險。

解決

通過非對稱加密的方式 來傳輸預主密鑰 確保數據的安全性;

[2] 使用對稱加密+非對稱加密

非對稱加密包含兩個不同的密鑰文件 => 公鑰用于加密私鑰用于解密 公鑰對外公開任何人都可以隨意獲取私鑰則只有擁有者自己知道

與對稱加密不同的是 非對稱加密是不可逆

在這里插入圖片描述
如上圖所示

  • 客戶端發送請求:其中包含了客戶端所支持的TLS版本以及加密算法等信息;
  • 服務端接收請求:從中選取最優的TLS版本以及加密算法 并將這些信息反饋給客戶端 除此之外還會將自己的公鑰發送給客戶端
  • 客戶端接收響應:生成一段隨機字符串(這段隨機字符串被稱為預主密鑰),通過服務端的公鑰將預主密鑰進行加密并傳遞給服務端;
  • 客戶端發送請求:將預主密鑰發送給服務端并告知服務端生成密鑰的算法等信息
  • 服務端接收請求: 接收信息后通過私鑰解密得到預主密鑰
  • 客戶端和服務端:根據預主密鑰通過相同的算法計算得到會話密鑰
  • 此時 客戶端和服務端 就可以 以會話密鑰加解密數據進行通信了

這樣即使黑客截取到數據也不知道密鑰的原始值是什么,就無法獲取后續傳遞的數據了。

問題

若是在最初建立連接的時候就被黑客監聽到 當服務端返回公鑰給客戶端的時候 黑客截取并模仿生成一個公鑰傳輸給客戶端,那么后面無論客戶端發送任何數據都不再安全了
在這里插入圖片描述

如上圖

  • 服務端發送公鑰給客戶端 但是中間被黑客攔截了,黑客模擬生成一個類似得公鑰并傳遞給客戶端
  • 客戶端接收到之后認為此公鑰是客戶端的公鑰(實際是黑客傳遞的)=> 客戶端使用該公鑰加密預主密鑰傳輸給服務端(實際被黑克攔截 并將黑客生成的預主密鑰發送給服務端)
  • 后續任何流程都是 客戶端與服務端中間加了一個流程與黑客進行數據傳輸了!
解決

其實上述問題的本質就是客戶端無法確定收到的含有公鑰的數據報文就是?標服務器發送過來的

為了解決這一問題 引入了證書這一概念 。

客戶端獲取的不再是公鑰而是證書 => 證書是由證書頒發機構(CA)簽發的,用于唯一標識一個站點的身份信息。

[3] 將公鑰存放在證書中
證書定義

簡單來說 證書就像網站的身份證和護照用于幫助我們鑒別一個網站的真偽。

證書是用于鑒別網站的真實性和有效性,所有人都可以查看網站的證書。

查看證書

在這里插入圖片描述

在這里插入圖片描述

證書信息

在這里插入圖片描述
證書的指紋用于唯一標識一個證書=>確保證書的完整性!

申請證書

證書是由CA機構辦法的,CA機構分布在全球各處

申請證書:

  • 向某個心儀的機構提交證書申請

  • 申請成功后將其部署到web服務中即可

CA組織機構做了什么呢?

  • CA組織在為申請者申請證書時 會對證書的內容和公鑰分別進行hash計算并將得到的值作為證書指紋附加到證書中,同時說明使用的hash算法 => 內容 + 公鑰 + 由內容和公鑰生成的hash值(證書指紋) + hash算法說明(一般使用hash256)

    客戶端得到證書之后 使用相同的算法對 內容和公鑰進行hash計算 得到的結果與證書指紋進行比對 若是完全一致則表明證書沒有被截獲/篡改從而確保了證書的完整性。

  • CA組織生成好證書后,會使用CA的私鑰進行加密并將加密結果附加到證書

    客戶端在獲取到網站證書后還需要驗證證書的真實性 表明該證書確實是由該證書上描述的CA機構所頒發的!

    通過數字簽名對證書進行加密和解密來驗證真偽的 => 使用私鑰進行加密 使用公鑰進行解密

    客戶端在獲取到網站證書后會使用CA對應的公鑰進行解密 => 解密成功則表示客戶端使用的公鑰與CA加密時使用的私鑰是一對密鑰從而確保該證書確實是由該CA證書所簽發的

問題

現在好像又循環到最初的問題了 => 如何安全的獲取CA的公鑰呢?

答案就是預安裝

其實CA機構在對證書進行簽名的時候 使用的是私鑰+根證書

根證書最主要的作用之一就是對其他證書進行簽名,CA的公鑰也被附加在CA的根證書中

每個操作系統都會維護一個根證書庫并默認安裝好了受信任的全國各地的CA根證書。

當需要認證證書簽名時直接從系統中找到對應的CA根證書即可。=> 避免網絡傳輸 不會被竊聽/碉堡

總結流程

在這里插入圖片描述
如上圖所示: 先通過TCP三次握手建立連接

  • 客戶端發送請求:其中包含了客戶端所支持的TLS版本以及加密算法等信息;

  • 服務端接收請求:從中選取最優的TLS版本以及加密算法 并將這些信息反饋給客戶端 除此之外還會將自己的證書發送給客戶端

  • 客戶端接收響應:獲取證書 => 驗證證書的真實性與完整性,沒有問題在證書中拿到服務器的公鑰

    生成一段隨機字符串(這段隨機字符串被稱為預主密鑰),將預主密鑰使用服務器的公鑰進行加密

  • 客戶端發送請求:將預主密鑰發送給服務端并告知服務端生成密鑰的算法等信息

  • 服務端接收請求: 接收信息后通過私鑰解密得到預主密鑰

  • 客戶端和服務端:根據預主密鑰通過相同的算法計算得到會話密鑰

  • 此時 客戶端和服務端 就可以 以會話密鑰加解密數據進行通信了

tips: 這一過程也被稱為TLS握手

http與https的區別

http是基于TCP協議以明文方式進行傳遞數據的協議;

不同點httphttps
核心本質信息以明文進行傳輸,沒有任何加密通過http+TLS套接字進行加密數據傳輸
安全性不安全 => 容易被竊聽、篡改或冒充安全 => 提供身份認證,確保連接到的是正確的網站,在信息傳輸過程中數據經過加密、具有校驗機制
協議與端口號基于 TCP,使用端口 80在 HTTP 基礎上加入了 SSL/TLS 加密層,使用端口 443
數字證書不需要由受信任的證書頒發機構 (CA) 頒發的 SSL/TLS 證書=> 存在一定開銷。
工作方式直接與 TCP 通信先與 SSL/TLS 通信,再由 SSL/TLS 和 TCP 通信。相當于在 HTTP 和 TCP 之間加了一個“安全層”。

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

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

相關文章

阿里云 騰訊云 API 自動化查詢指南

文章目錄一、核心思路與架構建議二、經驗與核心建議三、技術方案選型建議四、API使用詳解4.1 阿里云4.2 騰訊云五、進階:與內部系統聯動免費個人運維知識庫,歡迎您的訂閱:literator_ray.flowus.cn 一、核心思路與架構建議 自動化流程可以概括…

【Unity 性能優化之路——概述(0)】

Unity性能優化概述性能優化不是某個環節的極致壓榨,而是所有模塊的協同共進。本文將為你建立完整的Unity性能優化知識體系。很多Unity開發者一提到性能優化,首先想到的就是Draw Call、Batches這些渲染指標。這沒錯,但它們只是性能優化中的一部…

靈碼產品演示:軟件工程架構分析

作者:了哥 演示目的演示靈碼對于整個復雜軟件工程項目的架構分析能力,輸出項目的軟件系統架構圖。演示文檔接口生成能力。演示準備 克隆工程地址到本地(需提前安裝好 git 工具, 建議本地配置 brew): git cl…

銀河麒麟部署mysql8.0并連接應用

?客戶需在國產化銀河麒麟系統中部署軟件應用,使用mysql8.0數據庫。機器放置了兩三年,里面命令工具和依賴都不太全。而且客戶環境不聯網,只能采用離線部署的方式。部署過程中踩了很多坑,也用到很多資源,記錄一下。 過…

GitAgent-面壁智能聯合清華大學發布的大模型智能體應用框架

本文轉載自:https://www.hello123.com/gitagent ** 一、🔍 GitAgent 框架:大模型智能體的工具箱革命 GitAgent 是由面壁智能與清華大學自然語言處理實驗室聯合研發的創新型框架,旨在解決大模型智能體在復雜任務中的工具擴展瓶頸…

靈碼產品演示:Maven 示例工程生成

作者:輕眉 演示主題:由 AI 自動生成 0 到 1 的電商訂單 Java 項目 演示目的 面向 Java 零基礎的用戶,通過靈碼的產品能力(如提示詞、編碼智能體、項目 Rules 和 SQLite MCP 服務、單元測試)自動生成 0 到 1 的電商訂單…

AI編程從0-1開發一個小程序

小伙伴們,今天我們利用AI實現從0到1開發一個小程序!需求交給AI: 我們只要說出自己的開發思路,具體需求交給AI完成!輸入提示詞:個人開發的小程序 能開發哪些好備案,用戶喜歡使用的 AI給出…

DDoS高防IP是什么? DDoS攻擊會暴露IP嗎?

DDoS高防IP是什么?高防IP是指一種網絡安全服務,主要用于防御DDoS攻擊。隨著技術的發展,黑客進行網絡攻擊的強度也在加大,所以我們要做好網絡防護,及時預防DDoS攻擊。DDoS高防IP是什么?DDoS高防IP是指基于IP…

k8s事件驅動運維利器 shell operator

Shell-Operator 概述 Shell-Operator 是 Kubernetes 的一個工具,用于通過 shell 腳本擴展集群功能。它允許用戶編寫簡單的腳本(Bash、Python 等)來響應 Kubernetes 事件(如資源變更、定時任務),無需編譯復…

(二)文件管理-文件權限-chmod命令的使用

文章目錄1. 命令格式2. 基本用法2.1 符號模式2.2 八進制數字模式3. 高級用法3.1 遞歸操作3.2 參考權限3.3 特殊權限位(Setuid, Setgid, Sticky Bit)3.4 X 特殊執行權限4. 注意事項4.1權限與所有權4.2 Root 權限4.3 安全風險4.4 -R 的風險4.5 目錄的執行權限1. 命令格式 chmod …

醫院預約掛號腳本

醫院預約掛號腳本 功能介紹 本腳本是一個用 Python 編寫的醫院預約掛號程序,支持以下功能: 自動預約:通過api交互選擇醫院、科室、醫生和時間段。自動監控:持續檢查指定醫生的號源狀態,發現可預約時段時自動嘗試預約。…

.NET駕馭Word之力:理解Word對象模型核心 (Application, Document, Range)

在使用MudTools.OfficeInterop.Word庫進行Word文檔自動化處理時,深入理解Word對象模型的核心組件是至關重要的。Word對象模型提供了一套層次化的結構,使開發者能夠通過編程方式控制Word應用程序、文檔以及文檔內容。本章將詳細介紹Word對象模型中最核心的…

Kotlin在醫療大健康域的應用實例探究與編程剖析(上)

一、引言 1.1 研究背景與意義 在當今數字化時代,醫療行業正經歷著深刻的變革。隨著信息技術的飛速發展,尤其是人工智能、大數據、物聯網等新興技術的廣泛應用,醫療行業數字化轉型已成為必然趨勢。這種轉型旨在提升醫療服務的效率和質量,優化醫療資源配置,為患者提供更加…

AI智能體的應用前景

AI智能體的應用前景正從技術探索邁向規模化落地的關鍵階段,其發展動力源于大模型能力的突破、行業需求的深化以及商業化模式的創新。以下是基于最新技術動態和行業實踐的深度解析: 一、技術突破:從「有腦無手」到「知行合一」 大模型的進化顯著提升了智能體的多模態交互與…

高系分四:網絡分布式

目錄一、我的導圖和思考二、大模型對我導圖的評價優點可優化之處三、大模型對這章節的建議一、網絡知識范疇(一)網絡基礎理論(二)局域網與廣域網(三)網絡安全(四)網絡性能優化&#…

Day24_【深度學習(1)—概念】

一、AI、ML、DL基本關系 機器學習是實現人工智能的途徑,深度學習是機器學習的一種方法。人工智能 (AI)↓ 機器學習 (ML) —— 讓機器從數據中學習規律↓ 深度學習 (DL) —— 使用深層神經網絡的機器學習方法二、深度學習與機器學習概念深度學習(Deep Lea…

VTK基礎(01):VTK中的基本概念

VTK中的基本概念 1.三維場景中的基本要素 三維場景的基本要素包含:燈光、相機、顏色和紋理映射 (1)燈光vtkLight 光的本質是特定頻段的電磁波,所以燈光的本質是特定頻段(可見光頻段)的電磁波發射器;依據發射可見光頻段…

LeetCode 2348.全0子數組的數目

給你一個整數數組 nums ,返回全部為 0 的 子數組 數目。 子數組 是一個數組中一段連續非空元素組成的序列。 示例 1: 輸入:nums [1,3,0,0,2,0,0,4] 輸出:6 解釋: 子數組 [0] 出現了 4 次。 子數組 [0,0] 出現了 2 次。…

【wpf】從 DataContext 到依賴屬性:WPF 自定義控件 ImageView 的優化之路

從 DataContext 到依賴屬性:WPF 自定義控件 ImageView 的優化之路 最近我在做一個 WPF 項目,需要封裝一個 ImageView 控件,用來顯示圖像并處理鼠標交互。 在實際開發中,我遇到了一系列和 數據綁定 有關的問題: 控件需要…

人力資源管理的思維方式學習筆記2

戰略人力資源管理的思維方式——北京師范大學政府管理學院——王建民 教授3.1.理念:人力資源是第一戰略資源 我們先來了解海爾集團公司實施發展戰略的情況。海爾集團創立于1984年,根據官方網站的介紹,目前是一家全球領先的美好生活解決方案服…