偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

一文帶你了解 SSL 協(xié)議

網(wǎng)絡(luò) 通信技術(shù)
SSL,全稱(chēng)Secure Sockets Layer 安全套接字協(xié)議,一般我們?cè)趯W(xué)習(xí) SSL 的時(shí)候,都會(huì)和 TLS一起來(lái)學(xué)習(xí)的,為什么呢?

什么是SSL

簡(jiǎn)稱(chēng)是SSL,全稱(chēng)Secure Sockets Layer 安全套接字協(xié)議,一般我們?cè)趯W(xué)習(xí) SSL 的時(shí)候,都會(huì)和 TLS一起來(lái)學(xué)習(xí)的,為什么呢?因?yàn)? SSL 和 TLS 都是為網(wǎng)絡(luò)通信提供安全及數(shù)據(jù)完整性的一種安全協(xié)議。TLS與SSL在傳輸層與應(yīng)用層之間對(duì)網(wǎng)絡(luò)連接進(jìn)行加密。

我們先看 SSL協(xié)議,然后在看 TLS協(xié)議。

SSL協(xié)議位于 TCP/IP 協(xié)議與各種應(yīng)用層協(xié)議之間,為數(shù)據(jù)通訊提供安全支持。SSL 協(xié)議可分為兩層:

  • SSL記錄協(xié)議(SSL Record Protocol):

它建立在可靠的傳輸協(xié)議(如TCP)之上,為高層協(xié)議提供數(shù)據(jù)封裝、壓縮、加密等基本功能的支持。

  • SSL握手協(xié)議(SSL Handshake Protocol):

它建立在SSL記錄協(xié)議之上,用于在實(shí)際的數(shù)據(jù)傳輸開(kāi)始前,通訊雙方進(jìn)行身份認(rèn)證、協(xié)商加密算法、交換加密密鑰等。

要說(shuō) SSL 協(xié)議我們先來(lái)看看結(jié)構(gòu),

SSL的體系結(jié)構(gòu)中包含兩個(gè)協(xié)議子層,其中底層是

  • SSL記錄協(xié)議層(SSL Record Protocol Layer);
  • 高層是SSL握手協(xié)議層(SSL HandShake Protocol Layer)

SSL記錄協(xié)議層的作用是為高層協(xié)議提供基本的安全服務(wù)的,而SSL握手協(xié)議層是用于SSL管理信息的交換,允許應(yīng)用協(xié)議傳送數(shù)據(jù)之間相互驗(yàn)證,協(xié)商加密算法和生成密鑰的。

SSL的工作過(guò)程

SSL 的工作過(guò)程實(shí)際上是分為了兩個(gè)部分,一個(gè)是發(fā)送,而另一個(gè)就是接收,每個(gè)部分所處理的事情也是不一樣的,畢竟一個(gè)是發(fā)送一個(gè)是接收。

發(fā)送過(guò)程:

(1)從上層接受要發(fā)送的數(shù)據(jù)(包括各種消息和數(shù)據(jù));

(2)對(duì)信息進(jìn)行分段,分成若干記錄;

(3)使用指定的壓縮算法進(jìn)行數(shù)據(jù)壓縮;

(4)使用指定的MAC算法生成MAC;

(5)使用指定的加密算法進(jìn)行數(shù)據(jù)加密;

(6)添加SSL記錄協(xié)議的頭,發(fā)送數(shù)據(jù)。

到了這個(gè)位置,發(fā)送過(guò)程就已經(jīng)結(jié)束,接下來(lái)就是接收的過(guò)程了。

接收過(guò)程:

(1)接收數(shù)據(jù),從SSL記錄協(xié)議的頭中獲取相關(guān)信息;

(2)使用指定的解密算法解密數(shù)據(jù);

(3)使用指定的MAC算法校驗(yàn)MAC;

(4)使用壓縮算法對(duì)數(shù)據(jù)解壓縮(在需要進(jìn)行);

(5)將記錄進(jìn)行數(shù)據(jù)重組;

(6)將數(shù)據(jù)發(fā)送給高層。

(7)SSL記錄協(xié)議處理的最后一個(gè)步驟是附加一個(gè)SSL記錄協(xié)議的頭,以便構(gòu)成一個(gè)SSL記錄。SSL記錄協(xié)議頭中包含了SSL記錄協(xié)議的若干控制信息。

如果面試官問(wèn)你,簡(jiǎn)述SSL的工作流程?

如果你這么說(shuō),感覺(jué)就不是那么的給力,你這時(shí)候就可以給他區(qū)分一下了,就是服務(wù)器認(rèn)證階段,和用戶(hù)認(rèn)證的階段了。

服務(wù)器認(rèn)證階段:

(1)客戶(hù)端向服務(wù)器發(fā)送一個(gè)開(kāi)始信息“Hello”以便開(kāi)始一個(gè)新的會(huì)話連接;

(2)服務(wù)器根據(jù)客戶(hù)的信息確定是否需要生成新的主密鑰,如需要?jiǎng)t服務(wù)器在響應(yīng)客戶(hù)的“Hello”信息時(shí)將包含生成主密鑰所需的信息;

(3)客戶(hù)根據(jù)收到的服務(wù)器響應(yīng)信息,產(chǎn)生一個(gè)主密鑰,并用服務(wù)器的公開(kāi)密鑰加密后傳給服務(wù)器;

(4)服務(wù)器恢復(fù)該主密鑰,并返回給客戶(hù)一個(gè)用主密鑰認(rèn)證的信息,以此讓客戶(hù)認(rèn)證服務(wù)器。

用戶(hù)認(rèn)證階段:

在此之前,服務(wù)器已經(jīng)通過(guò)了客戶(hù)認(rèn)證,這一階段主要完成對(duì)客戶(hù)的認(rèn)證。經(jīng)認(rèn)證的 服務(wù)器發(fā)送一個(gè)提問(wèn)給客戶(hù),客戶(hù)則返回(數(shù)字)簽名后的提問(wèn)和其公開(kāi)密鑰,從而向服務(wù)器提供認(rèn)證。

把這玩意給面試官一說(shuō),沒(méi)啥毛病吧。

SSL 的加密方式

說(shuō)到加密,這就有點(diǎn)深入了,加密算法主要分為了兩大類(lèi)。

第一類(lèi):

對(duì)稱(chēng)加密

第二類(lèi):

非對(duì)稱(chēng)加密

什么事對(duì)稱(chēng)加密呢?

對(duì)稱(chēng)式加密實(shí)際上就是加密和解密使用同一個(gè)密鑰,通常稱(chēng)之為“Session Key ”這種加密技術(shù)在當(dāng)今被廣泛采用,如美國(guó)政府所采用的DES加密標(biāo)準(zhǔn)就是一種典型的“對(duì)稱(chēng)式”加密法,它的Session Key長(zhǎng)度為56bits。

而非對(duì)稱(chēng)加密就稍微復(fù)雜了,

非對(duì)稱(chēng)式加密就是加密和解密所使用的不是同一個(gè)密鑰,通常有兩個(gè)密鑰,稱(chēng)為“公鑰”和“私鑰”,它們兩個(gè)必需配對(duì)使用,否則不能打開(kāi)加密文件。這里的“公鑰”是指可以對(duì)外公布的,“私鑰”則不能,只能由持有人一個(gè)人知道。它的優(yōu)越性就在這里,因?yàn)閷?duì)稱(chēng)式的加密方法如果是在網(wǎng)絡(luò)上傳輸加密文件就很難不把密鑰告訴對(duì)方,不管用什么方法都有可能被別人竊聽(tīng)到。而非對(duì)稱(chēng)式的加密方法有兩個(gè)密鑰,且其中的“公鑰”是可以公開(kāi)的,也就不怕別人知道,收件人解密時(shí)只要用自己的私鑰即可以,這樣就很好地避免了密鑰的傳輸安全性問(wèn)題。

如果使用的話,各位想怎么是用呢?

根據(jù)剛才阿粉說(shuō)的服務(wù)器認(rèn)證和用戶(hù)認(rèn)證了,那么就繼續(xù)來(lái)分析一下這個(gè)過(guò)程中 SSL 是如何加密的。

簡(jiǎn)單說(shuō):(1)認(rèn)證服務(wù)器 (2)協(xié)商會(huì)話秘鑰 (3)加密傳輸

但是如果你敢這么說(shuō),你會(huì)被錘死。

強(qiáng)制在分解一下:

第一步:客戶(hù)端給出支持SSL協(xié)議版本號(hào),一個(gè)客戶(hù)端隨機(jī)數(shù)(Client random,請(qǐng)注意這是第一個(gè)隨機(jī)數(shù)),客戶(hù)端支持的加密方法等信息;

第二步:服務(wù)端收到信息后,確認(rèn)雙方使用的加密方法,并返回?cái)?shù)字證書(shū),一個(gè)服務(wù)器生成的隨機(jī)數(shù)(Server random,注意這是第二個(gè)隨機(jī)數(shù))等信息;

第三步:客戶(hù)端確認(rèn)數(shù)字證書(shū)的有效性,然后生成一個(gè)新的隨機(jī)數(shù)(Premaster secret),然后使用數(shù)字證書(shū)中的公鑰,加密這個(gè)隨機(jī)數(shù),發(fā)給服務(wù)端。

第四步:服務(wù)端使用自己的私鑰,獲取客戶(hù)端發(fā)來(lái)的隨機(jī)數(shù)(即Premaster secret);(第三、四步就是非對(duì)稱(chēng)加密的過(guò)程了)

第五步:客戶(hù)端和服務(wù)端通過(guò)約定的加密方法(通常是AES算法),使用前面三個(gè)隨機(jī)數(shù),生成對(duì)話密鑰,用來(lái)加密接下來(lái)的通信內(nèi)容;

這是不是就完成了呢?你學(xué)會(huì)了么?


責(zé)任編輯:武曉燕 來(lái)源: Java極客技術(shù)
相關(guān)推薦

2023-12-06 16:28:56

2023-11-06 08:16:19

APM系統(tǒng)運(yùn)維

2022-11-11 19:09:13

架構(gòu)

2023-11-20 08:18:49

Netty服務(wù)器

2022-02-25 07:34:36

MQTT協(xié)議RabbitMQ

2023-11-08 08:15:48

服務(wù)監(jiān)控Zipkin

2023-10-27 08:15:45

2022-05-16 10:49:28

網(wǎng)絡(luò)協(xié)議數(shù)據(jù)

2022-04-28 09:22:46

Vue灰度發(fā)布代碼

2025-09-12 16:31:04

TiDBMCP ServerAI工具

2020-10-08 14:32:57

大數(shù)據(jù)工具技術(shù)

2022-09-29 13:09:38

DataClassPython代碼

2025-01-15 09:06:57

servlet服務(wù)器Java

2023-08-26 20:56:02

滑動(dòng)窗口協(xié)議

2020-02-02 15:14:24

HTTP黑科技前端

2019-07-09 08:29:51

TCPIP協(xié)議

2021-07-08 12:32:58

2019-08-06 09:00:00

JavaScript函數(shù)式編程前端

2024-05-07 08:49:36

Hadoop數(shù)據(jù)存儲(chǔ)-分布式存儲(chǔ)

2024-05-27 00:00:00

.NET游戲引擎C#
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)