TLS協議

目錄

什么是TLS協議?

TLS的基本流程?

兩種密鑰交換算法?

基于ECDHE密鑰交換算法的TLS握手過程?

基于RSA密鑰交換算法的TLS握手過程?

基于RSA的握手和基于ECDHE的握手有什么區別?

什么是前向保密?


什么是TLS協議?

? ? ? ??TLS是(Transport Layer security)的縮寫中文叫傳輸層安全協議,是一種加密協議,用于保護網絡通信的安全。

TLS的基本流程?

? ? ? ? 1)客戶端向服務器索要并驗證服務器的公鑰

? ? ? ? 2)雙方協商生產會話密鑰

? ? ? ? 3)雙方采用會話密鑰進行通信

兩種密鑰交換算法?

? ? ? ? RSA和ECDHE,基于不同的密鑰交換算法的TLS握手過程有些區別。另外,TLS1.3及其以上版本已經不在支持RSA密鑰交換算法。

基于ECDHE密鑰交換算法的TLS握手過程?

????????1)第一次握手是客戶端發送Client Hello消息。(包含TLS版本,支持的密碼套件,以及一個隨機數)

????????2)第二次握手是服務端發送Server Hello消息。(服務器確認的TLS版本號,以及一個隨機數,并選擇了一個合適的密碼套件)。另外服務端為了證明自己的身份,還會發送一個證書給客戶端。除此之外,還會發送給客戶端一個Server Key Exchange(將選擇的橢圓曲線,以及基點G和服務端的橢圓曲線公鑰發送給客戶端),以及還有一個是Server Hello done告訴客戶端我發送完畢了。

????????3)第三次握手是客戶端發送Client Key Exchange消息,將客戶端的橢圓曲線公鑰發送給服務端。并生成一個隨機數作為自己的私鑰。發送change cipher spec消息,告訴服務端之后客戶端要用加密通信。接著客戶端會將之前發送的消息的摘要進行加密發送給服務端。

????????4)第四次握手是服務端向客戶端發送Change Cipher Spec,接著會將之前發送的信息進行加密發送給客戶端。如果雙方的加解密都沒有問題,則握手完成,之后就可以進行加密通信。

基于RSA密鑰交換算法的TLS握手過程?

????????1)第一次握手是客戶端向服務端發送Client Hello消息。(包含TLS版本,支持的密碼套件和客戶端生成的隨機數)

????????2)第二次握手是服務端向客戶端發送Server Hello消息(包含確認的TLS版本,選擇的密碼套件和服務端生成的隨機數)并發送證書(包含服務端的公鑰)

????????3)第三次握手:客戶端驗證證書的可信性后,客戶端會生成一個新的隨機數(pre-master),用服務器的RSA公鑰加密該隨機數,通過Client Key exchange消息發送給服務端。至此客戶端和服務端共享了三個隨機數,客戶端隨機數(Client Random),服務端隨機數(Server Random)以及剛剛生成的隨機數(pre-master)。將三個隨機數進行計算生成會話密鑰。生成會話密鑰后,和發送Change Cipher Spec,告訴服務端開始使用加密的方式發送消息。然后客戶端再發送一個加密消息供服務端解密驗證。

????????4)第四次握手:服務端收到客戶端的加密隨機數(pre-master)后,用私鑰進行解密。計算出會話密鑰,解密服務端的加密消息。之后對客戶端發送change cipher spec,以及再發送一個加密消息供客戶端解密驗證。

基于RSA的握手和基于ECDHE的握手有什么區別?

????????1)ECDHE安全。RSA密鑰協商算法不支持前向保密(服務端的公私鑰是不變的,一旦服務端私鑰泄漏,之前的通信內容全部會被破解),而ECDHE密鑰協商算法支持前向保密。

????????2)ECDHE搶跑。使用了RSA密鑰協商算法,TLS完成四次握手后才能進行應用數據傳輸。而ECDHE算法,客戶端可以不用等服務端的最后一次TLS握手,就可以提前發出加密的HTTP數據,節省了一個消息的往返時間

????????3)在第二次握手中,ECDHE多了一個Server Key Exchange

什么是前向保密?

????????前向保密是密碼學中通訊協議的安全屬性,指的是長期使用的主密鑰泄漏不會導致過去的會話密鑰泄漏。

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

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

相關文章

tp6 v3微信退款

/*** Notes:退款* param $out_trade_no 支付時候訂單號(order表 original_bn)兩個參數選一個這個要選對* param $out_refund_no 退款訂單號* param $total 訂單金額* param $refund 退款金額* Time: 2023-08-10*/public function refundMoney($out_trade…

oracle的異常處理

oracle提供了預定義例外、非預定義例外和自定義例外三種類型。其中: l預定義例外用于處理常見的oracle錯誤; l非預定義例外用于處理預定義所不能處理的oracle錯誤; l自定義例外處理與oracle錯誤無關的其他情況。 Oracle代碼編寫過程中&am…

nginx反向代理與負載均衡

負載均衡依靠反向代理實現。nginx的代理分為七層代理與四層代理: 七層代理:七層代理的就是http請求和響應。七層代理是最常用的反向代理方式,只能配置在nginx配置文件的http模塊。而且配置方法名稱:upstream模塊,不能寫…

提升效率!Go語言開發者不可錯過的必備工具集合!

🌷🍁 博主貓頭虎 帶您 Go to Golang Language.??🍁 🦄 博客首頁——貓頭虎的博客🎐 🐳《面試題大全專欄》 文章圖文并茂🦕生動形象🦖簡單易學!歡迎大家來踩踩~&#x1…

UDP數據報網絡編程(實現簡單的回顯服務器,客戶端)

回顯服務器表示客戶端發的是啥,服務器就返回啥,主要是為了熟悉UDP數據報網絡編程的基本步驟 對于程序的所有分析都寫到了代碼上 UDP回顯服務器代碼 package UdpEcho;import java.io.IOException; import java.net.DatagramPacket; import java.net.Dat…

ClickHouse查看執行計劃(EXPLAIN語法)

1.EXPLAIN 語法示例 EXPLAIN [AST | SYNTAX | QUERY TREE | PLAN | PIPELINE | ESTIMATE | TABLE OVERRIDE] [setting value, ...] [ SELECT ... | tableFunction(...) [COLUMNS (...)] [ORDER BY ...] [PARTITION BY ...] [PRIMARY KEY] [SAMPLE BY ...] [T…

途樂證券-最準確的KDJ改良指標?

KDJ目標是技術剖析的一種重要目標之一,它是利用隨機目標(%R)發展而來的,是一種反映商場超買和超賣狀況的買賣目標。KDJ目標由快線(K線)、慢線(D線)和隨機值(J線&#xff…

RestTemplate HTTPS請求忽略SSL證書

問題描述 使用RestTemplate發送HTTPS請求的時候,出現了這樣的一個問題: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification …

MySQL多表查詢

1.創建student和score表 創建score表 2.為student表和score表增加記錄 向student表插入記錄的INSERT語句如下: 向score表插入記錄的INSERT語句如下: 1.查詢student表的所有記錄 2.查詢student表的第2條到4條記錄 3.從student表查詢所有學生的學號&#…

2023最新影視泛目錄系統,蘋果cms最新下載地址

影視泛目錄系統是指一種集成了電影、電視劇、綜藝節目、動漫等多種影視資源資源的系統,其目的是為用戶提供一個方便快捷的影視資源檢索、瀏覽、分享、評論的平臺。該系統通過對影視資源進行分類、標簽化、評分等方式,為用戶提供更加精準的檢索和推薦服務…

C#多線程學習 生產者和消費者

前面說過,每個線程都有自己的資源,但是代碼區是共享的,即每個線程都可以執行相同的函數。這可能帶來的問題就是幾個線程同時執行一個函數,導致數據的混亂,產生不可預料的結果,因此我們必須避免這種情況的發…

mousedown拖拽功能(vue3+ts)

因為項目有rem適配,使用第三方插件無法處理適配問題,所有只能自己寫拖拽功能了 拖拽一般都會想到按下,移動,放開,但是本人親測,就在div綁定一個按下事件就行了(在事件里面寫另外兩個事件&#x…

爬蟲ip池越大越好嗎?

作為一名資深的程序員,今天我要給大家分享一些關于爬蟲ip池的知識。關于ip代理池的問題,答案是肯定的,池子越大越好。下面跟我一起來盤點一下ip池大的好處吧! 1、提高穩定性 爬蟲ip池越大,意味著擁有更多可用的爬蟲ip…

「C/C++」C/C++搭建程序框架

?博客主頁何曾參靜謐的博客📌文章專欄「C/C」C/C程序設計📚全部專欄「UG/NX」NX二次開發「UG/NX」BlockUI集合「VS」Visual Studio「QT」QT5程序設計「C/C」C/C程序設計「Win」Windows程序設計「DSA」數據結構與算法「File」數據文件格式 目錄 1. 分離職…

Flume原理剖析

一、介紹 Flume是一個高可用、高可靠,分布式的海量日志采集、聚合和傳輸的系統。Flume支持在日志系統中定制各類數據發送方,用于收集數據;同時,Flume提供對數據進行簡單處理,并寫到各種數據接受方(可定制&…

使用阿里云服務器搭建Discuz論壇網站教程基于CentOS系統

阿里云百科分享使用阿里云服務器建站教程,本文是搭建Discuz論壇,Discuz!是一款通用的社區論壇軟件系統,它采用PHP和MySQL組合的基礎架構,為您提供高效的論壇解決方案。本文介紹如何在CentOS 7操作系統的ECS實例上搭建Discuz! X3.4…

Nginx 安裝與部署

文章和代碼已經歸檔至【Github倉庫:https://github.com/timerring/front-end-tutorial 】或者公眾號【AIShareLab】回復 nginx 也可獲取。 文章目錄 虛擬機安裝CentOS7.4Linux配置配置上網配置靜態ip Nginx的安裝版本區別備份克隆 安裝編譯安裝報錯解決 啟動Nginx防…

topo 成績排名

題目描述 每到考試后,學校都會發成績表給每個學生,但是很多同學更關心的是自己在班級里的排名,可惜排名信息并沒有公開。 小雯同學很想知道這次期末考試的全班排名情況,但是她的同學卻不愿意告訴她自己的分數,只告訴她…

分布式 - 消息隊列Kafka:Kafka生產者發送消息的方式

文章目錄 1. Kafka 生產者2. kafaka 命令行操作3. kafka 生產者發送消息流程4. Kafka 生產者的創建5. Kafka 生產者發送消息1. 發送即忘記2. 同步發送3. 異步發送 6. Kafka 消息對象 ProducerRecord 1. Kafka 生產者 不管是把Kafka作為消息隊列、消息總線還是數據存儲平臺&…

wpf控件上移下移,調整子集控件顯示順序

頁面代碼: <!-- 導出A2,自定義導出設置列,添加時間:2023-8-9 14:14:18,作者:whl; --><Window x:Class="WpfSnqkGasAnalysis.WindowGasExportA2"xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"xmlns:x="http:/…