https 協議

目錄

加密方式

對稱加密

非對稱加密

非對稱加密 + 非對稱加密

非對稱加密 + 對稱加密

AC證書

AC證書內容

數據摘要

數據簽名


在我們前面學習的http協議里面,我們發送的內容都是明文傳輸的,所以在安全上并不安全,但是在現在信息發達的時代里,如果還是使用 http 協議,那么就是很危險的,所以目前我們接觸到的基本上都是 https 協議。

而https協議上也就是在 http 協議里面加了 TLS/SSL 協議,而這兩個協議就是用來加密的。

http協議是明文傳輸的,所以當有中間人修改數據后,我們也是不能被發現的,或者是明文傳輸的話,被黑客看到我們的信息,那么也是很不隱私的。

那么解決方案是什么呢?加密!

加密方式

但是我們下面并不是要談加密,而是談如何加密!

那么加密有哪些方式呢?

  1. 對稱加密

  2. 非對稱加密

  3. 非對稱 + 對稱加密

加密的方式就是這三種,那么這些加密有什么特點呢?

對稱加密

對稱加密:對稱加密相對于非對稱加密比較簡單,舉一個簡單的例子,對稱加密有,假設現在發送的是數據 那么對這個數據異或另一個數字,然后得到帶了一個數據,那么這個數據就是經過加密的數據,當這個數據到達對端主機后,那么將這個數據在異或這個密鑰,那么就可以得到原始的數據。

這就是使用對稱加密,但是對稱加密是有問題的。

如果使用對稱加密,那么第一次的密鑰怎么讓對方主機知道呢?

如果服務器將通信使用的密鑰明文發送的話,那么就會被黑客看到,那么第一次的密鑰協商就是有問題的?那么此就需要一個密鑰的密鑰來解決問題,這就是雞生蛋,蛋生雞的問題了。

非對稱加密

非對稱加密就是首先,服務器有公鑰和私鑰,當客戶端第一次給服務器發送的時候,服務器就會將自己的公鑰交給客戶端,那么客戶端就可以拿公鑰加密,然后發送給服務器,此時就只有拿私鑰的服務器能解密的,后面服務器也就可以拿私鑰加密,然后客戶端手里有公鑰,那么客戶端也就可以看到服務器發送的數據了。

非對稱加密就是這樣,但是非對稱加密也是有問題的,因為不僅僅是客戶端給服務發送數據,服務器也需要給客戶端響應,那么當服務器給客戶端響應的時候,黑客也是可以看到服務器的公鑰的,那么此時黑客就可以看到服務器到客戶端的數據,此時也是不安全的。

那么需要怎么辦呢?

非對稱加密 + 非對稱加密

由于只有一個非對稱加密是不夠的,那么就需要采用雙放都是非對稱加密。

第一次,客戶端訪問服務器,然后服務器給客戶端返回自己的公鑰,此時公鑰是可以被其他人拿到的,然后客戶端拿到服務器公鑰后,拿服務器公鑰對自己的公鑰加密,然后發送給服務器,此時黑客是不能拿到的,因為此時被服務器公鑰加密的數據,只能由服務器的私鑰解密,然后服務器拿到了客戶端的數據后,使用自己的私鑰解密,然后拿到客戶端的公鑰,此時服務器就可以給客戶端發送數據的時候,就可以拿客戶端發送的公鑰加密了,此時發送到網絡中的數據,只有客戶端可以解密。

但是非對稱加密是比較復雜的,而且在解密的時候也是比較浪費世間的,所以非對稱加密+非對稱加密是不好的,其實不光是這樣,而且其實也是可以被中間人拿到數據的!

那么中間人要怎么拿到數據呢?我們下面先看一下如何解決非對稱加密的速度慢的問題。

非對稱加密 + 對稱加密

上面由于雙方都是非對稱,所以比較慢,下面使用非對稱和對稱一起用,前面使用非對稱密鑰協商對稱密鑰,后面就使用對稱密鑰來通信。

首先客戶端訪問服務器,服務器將公鑰發送給客戶端,客戶端使用服務器公鑰對一格對稱密鑰加密,然后對稱密鑰此時是不能被黑客看到的,所以此時數據是安全的,當服務器拿到數據后解密,拿到對稱密鑰,然后后面就是使用對稱密鑰加密解密。

這里我們就來說一下前面說的中間人問題,那么中間人怎么攻擊呢?

假設現在有一個中間人,mid。

當客戶端服務器第一次通信的時候,也就是當服務器給客戶端返回公鑰M的時候,此時中間人將M替換成自己的公鑰H,但是把M保存起來,此時在將數據發送給客戶端,此時客戶端拿到的公鑰就是H,然后客戶端會使用H來加密一個對稱密鑰S,然后發送給服務器,此時中間人拿到該數據,然后使用中間人的私鑰H‘來解密,拿到對稱的密鑰,然后中間人對對稱密鑰S使用M加密,然后發送給服務器,此時服務器也就拿到了對稱密鑰S,在此過程中,客戶端和服務器都不知道中間人的存在,也并不知道中間人修改過數據,在客戶端和服務器協商好密鑰S后就使用密鑰S通信,但是中間人也是知道S密鑰的,所以此時中間人是可以知道客戶端和服務器的數據的。

AC證書

我們發現上面的加密都是有問題的,那么我們需要怎么做呢?

AC證書,AC證書是什么呢?AC證書就是一個可以信任的機構,該機構為特定的網站頒發證書,然后每一次通信的時候,網站就將該證書進行hash映射形成摘要,然后通過加密后,形成簽名,然后就將該證書與簽名一起發送過去,如果中間被修改,那么對簽名進行解密后,然后再對證書進行相同的hash映射后,如果形成的摘要和簽名解密后的摘要不同,那么說明數據被中間人修改過,所以就是不可以的。

上面就是如何通過AC證書來檢測數據是否被修改過,如果修改過,那么該數據就是不可信任的。

下面我們介紹一下什么是AC證書:

AC證書內容

AC證書里面包含了一些內容,其中該內容就包含了對應網站的信息,例如:網站的網址、以及該網站的公鑰等...

重要的就是該網站的公鑰,主要是為了讓客戶端看到該公鑰。

數據摘要

數據摘要就是對AC證書進行hash有映射,對證書進行hash隱私后,就形成了摘要,然后對摘要再進行AC機構的私鑰加密后,然后形成數據簽名。

數據簽名

數據簽名就是再通過數據摘要,然后使用AC機構的私鑰加密,只能由AC機構的公鑰解密,但是私鑰只有AC機構擁有,所以想要形成簽名,只能由AC機構來形成。

所以對數據摘要進行加密后就形成了簽名。

有了數據簽名后,此時網站和客戶端通信的時候,就可以將網站的信息和數據簽名放在一起了,然后發送給客戶端。

那么有了數據簽名和證書后,看一下如何加密。

此時當客戶端第一次給服務器發送數據的時候,服務器給客戶端返回了自己的證書和數據簽名放到一起。

如果此時中間人想攻擊的時候,那么中間人將AC證書里面的公鑰切換為自己的公鑰。

那么當該數據到達客戶端的時候,客戶端就會驗證AC證書的真假,客戶端就會對AC證書進行相同的hash映射,然后,形成數據摘要,然后在對數據簽名進行解密,也形成一個數據摘要,如果AC證書美喲被修改,那么這兩個摘要就是相同的,如果被修改了,那么形成的數據摘要就會差別很大,此時客戶端就會意識到數據被修改。

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

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

相關文章

Java高級技術:優化性能與擴展性的最佳實踐

標題:Java高級技術:優化性能與擴展性的最佳實踐 摘要:本文將介紹Java中一些高級技術,以提高性能和代碼的擴展性。本文不包括反射和并發編程,旨在幫助開發者進一步提升Java應用程序的質量和可維護性。 優化性能的最佳實…

面試題目總結(三)

1. Spring、Springboot、springMVC、Spring Cloud 的區別: Spring:Spring 是一個開源的、輕量級的Java框架,提供了豐富的功能和組件,用于構建企業級應用程序。Spring框架包含了很多模塊,包括核心容器、數據訪問、事物…

MATLAB算法實戰應用案例精講-【數模應用】漫談機器學習(七)

目錄 幾個高頻面試題目 機器學習算法工程師需要掌握哪些編程語言? 1.Python 2. C# 3.JavaScript 4. R 5.Java

Linux之Apache服務器安裝及配置

一、Apache服務器簡介 Apache HTTP Server(簡稱Apache)是Apache軟件基金會的一個開放源碼的網頁服務器,可以在大多數計算機操作系統中運行,由于其多平臺和安全性被廣泛使用。Apache曾經是世界使用排名第一的Web服務器軟件&#xf…

VSCODE連接遠程服務器

安裝ssh插件 根據你的操作系統選擇對應的版本進行下載和安裝。 安裝完成之后,啟動vscode,選擇左側Extensions 選項卡,在輸入框搜索 remote ,選擇安裝Remote-SSH插件。 安裝完成之后會在左側新增一個選項卡Remote Explorer&#xf…

肥貓游戲報價器|計價器|王者榮耀代練陪練等游戲報價器軟件介紹說明

目錄 1. 前言2. 軟件著作權3. 軟件使用說明3.1 進入軟件3.2 用戶登錄3.3 首頁3.4 報價器3.4.1 總體介紹3.4.2 王者報價器3.4.3 LOL手游報價器3.4.4 英雄聯盟報價器3.4.5 云頂之弈報價器3.4.7 王者水晶報價器3.4.8 和平精英報價器3.4.9 蛋仔派對報價器3.4.10 穿越火線報價器3.4.…

kafka學習筆記--broker工作流程、重要參數

本文內容來自尚硅谷B站公開教學視頻,僅做個人總結、學習、復習使用,任何對此文章的引用,應當說明源出處為尚硅谷,不得用于商業用途。 如有侵權、聯系速刪 視頻教程鏈接:【尚硅谷】Kafka3.x教程(從入門到調優…

Linux mc命令教程:如何有效地使用mc命令(附案例詳解和注意事項)

Linux mc命令介紹 mc命令是Linux中的一個視覺文件管理器,全稱為Midnight Commander。它提供了一個用戶友好的界面,使得在Linux環境中的文件和目錄管理變得更加直觀和方便。mc命令支持鼠標操作和顏色顯示,同時也提供了一套菜單接口&#xff0…

TypeScript 常用高級類型

目錄 前言: TypeScript 常用高級類型 基本概念 高級類型 1. 交叉類型(Intersection Types) 2. 聯合類型(Union Types) 3. 映射類型(Mapped Types) 4. 條件類型(Conditional…

GGML 或GGUF的14種不同量化模式說明

查看 TheBloke/Llama-2–13B-chat-GGML 存儲庫中的文件,我們可以看到 14 種不同的 GGML 模型,對應于不同類型的量化。它們遵循特定的命名約定:“q” 用于存儲權重的位數(精度) 特定變體。以下是所有可能的量化方法及其…

Pytorch-Transformer軸承故障一維信號分類(三)

目錄 前言 1 數據集制作與加載 1.1 導入數據 第一步,導入十分類數據 第二步,讀取MAT文件驅動端數據 第三步,制作數據集 第四步,制作訓練集和標簽 1.2 數據加載,訓練數據、測試數據分組,數據分batch…

據房間Id是否存在,判斷當前房間是否到期且實時更改顏色

重點代碼展示&#xff1a; <template><el-col style"width: 100%;height: 100%;"><el-col :span"20"><el-card class"room_info"><avue-data-icons :option"option"></avue-data-icons></el-…

RT-DETR算法優化改進:輕量化自研設計雙卷積重新設計backbone和neck,完成漲點且計算量和參數量顯著下降

??????本文自研創新改進:雙卷積由組卷積和異構卷積組成,執行 33 和 11 卷積運算代替其他卷積核僅執行 11 卷積,YOLOv8 Conv,從而輕量化RT-DETR,性能如下表,GFLOPs 8.1降低至7.6,參數量6.3MB降低至5.8MB RT-DETR魔術師專欄介紹: https://blog.csdn.net/m0_637742…

ubuntu-c++-可執行模塊-動態鏈接庫-鏈接庫搜索-基礎知識

文章目錄 1.動態鏈接庫簡介2.動態庫搜索路徑3.運行時鏈接及搜索順序4.查看可運行模塊的鏈接庫5.總結 1.動態鏈接庫簡介 動態庫又叫動態鏈接庫&#xff0c;是程序運行的時候加載的庫&#xff0c;當動態鏈接庫正確安裝后&#xff0c;所有的程序都可以使用動態庫來運行程序。動態…

Android帝國之日志系統--logd、logcat

本文概要 這是Android系統進程系列的第四篇文章&#xff0c;本文以自述的方式來介紹logd進程&#xff0c;通過本文您將了解到logd進程存在的意義&#xff0c;以及日志系統的實現原理。&#xff08;文中的代碼是基于android13&#xff09; Android系統進程系列的前三篇文章如下…

C#基礎與進階擴展合集-基礎篇(持續更新)

目錄 本文分兩篇&#xff0c;進階篇點擊&#xff1a;C#基礎與進階擴展合集-進階篇 一、基礎入門 Ⅰ 關鍵字 Ⅱ 特性 Ⅲ 常見異常 Ⅳ 基礎擴展 1、哈希表 2、擴展方法 3、自定義集合與索引器 4、迭代器與分部類 5、yield return 6、注冊表 7、不安全代碼 8、方法…

MATLAB中cell函數的用法

cell用法 在MATLAB中&#xff0c;cell 是一種特殊的數據類型&#xff0c;用于存儲不同大小和類型的數據。cell 數組是一種容器&#xff0c;每個元素可以包含任意類型的數據&#xff0c;包括數值、字符串、矩陣、甚至其他的 cell 數組。 以下是 cell 數組的基本語法和示例&…

gitblit自建git倉庫

安裝 java sudo apt-get update sudo apt-get install openjdk-8-jdk # 或者其它你喜歡的版本 驗證&#xff1a; java -version 下載 gitblit https://github.com/gitblit-org/gitblit/releases 解壓/usr/local tar -zxvf gitblit-1.9.3.tar.gz 修改配置文件 nano /usr/local/…

【React】useCallback 使用的說明

文章目錄 useCallback的優缺點優點缺點JavaScript 的內聯優化 使用場景 用了兩年多的react&#xff0c;今天抽空寫點小內容 useCallback的優缺點 緩存了每次渲染時候 inline callback的實例 優點 關鍵點&#xff1a;利用memoize減少無效的re-render&#xff0c;通常配合shouldC…

ElasticSearch之cat trained model API

命令樣例如下&#xff1a; curl -X GET "https://localhost:9200/_cat/ml/trained_models?vtrue&pretty" --cacert $ES_HOME/config/certs/http_ca.crt -u "elastic:ohCxPHQBEs5*lo7F9"執行結果輸出如下&#xff1a; id heap_size …