狠狠色丁香婷婷综合尤物/久久精品综合一区二区三区/中国有色金属学报/国产日韩欧美在线观看 - 国产一区二区三区四区五区tv

LOGO OA教程 ERP教程 模切知識(shí)交流 PMS教程 CRM教程 開(kāi)發(fā)文檔 其他文檔  
 
網(wǎng)站管理員

[點(diǎn)晴永久免費(fèi)OA]為什么HTTPS是安全的?

admin
2023年3月15日 10:40 本文熱度 951

1. HTTP 協(xié)議

在談?wù)?HTTPS 協(xié)議之前,先來(lái)回顧一下 HTTP 協(xié)議的概念。

1.1 HTTP 協(xié)議介紹

HTTP 協(xié)議是一種基于文本的傳輸協(xié)議,它位于 OSI 網(wǎng)絡(luò)模型中的應(yīng)用層。


HTTP 協(xié)議是通過(guò)客戶端和服務(wù)器的請(qǐng)求應(yīng)答來(lái)進(jìn)行通訊,目前協(xié)議由之前的 RFC 2616 拆分成立六個(gè)單獨(dú)的協(xié)議說(shuō)明(RFC 7230、RFC 7231、RFC 7232、RFC 7233、RFC 7234、RFC 7235),通訊報(bào)文如下:

  • 請(qǐng)求
POST http://www.baidu.com HTTP/1.1
Host: www.baidu.com
Connection: keep-alive
Content-Length: 7
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3578.98 Safari/537.36

wd=HTTP
  • 響應(yīng)
HTTP/1.1 200 OK
Connection: Keep-Alive
Content-Encoding: gzip
Content-Type: text/html;charset=utf-8
Date: Thu, 14 Feb 2019 07:23:49 GMT
Transfer-Encoding: chunked

<html>...</html>

1.2 HTTP 中間人攻擊

HTTP 協(xié)議使用起來(lái)確實(shí)非常的方便,但是它存在一個(gè)致命的缺點(diǎn):不安全。

我們知道 HTTP 協(xié)議中的報(bào)文都是以明文的方式進(jìn)行傳輸,不做任何加密,這樣會(huì)導(dǎo)致什么問(wèn)題呢?下面來(lái)舉個(gè)例子:

  1. 小明在 JAVA 貼吧發(fā)帖,內(nèi)容為我愛(ài)JAVA:


  1. 被中間人進(jìn)行攻擊,內(nèi)容修改為我愛(ài)PHP


  1. 小明被群嘲(手動(dòng)狗頭)

可以看到在 HTTP 傳輸過(guò)程中,中間人能看到并且修改 HTTP 通訊中所有的請(qǐng)求和響應(yīng)內(nèi)容,所以使用 HTTP 是非常的不安全的。

1.3 防止中間人攻擊

這個(gè)時(shí)候可能就有人想到了,既然內(nèi)容是明文那我使用對(duì)稱加密的方式將報(bào)文加密這樣中間人不就看不到明文了嗎,于是如下改造:

  1. 雙方約定加密方式


  1. 使用 AES 加密報(bào)文


這樣看似中間人獲取不到明文信息了,但其實(shí)在通訊過(guò)程中還是會(huì)以明文的方式暴露加密方式和秘鑰,如果第一次通信被攔截到了,那么秘鑰就會(huì)泄露給中間人,中間人仍然可以解密后續(xù)的通信:


那么對(duì)于這種情況,我們肯定就會(huì)考慮能不能將秘鑰進(jìn)行加密不讓中間人看到呢?答案是有的,采用非對(duì)稱加密,我們可以通過(guò) RSA 算法來(lái)實(shí)現(xiàn)。

在約定加密方式的時(shí)候由服務(wù)器生成一對(duì)公私鑰,服務(wù)器將公鑰返回給客戶端,客戶端本地生成一串秘鑰(AES_KEY)用于對(duì)稱加密,并通過(guò)服務(wù)器發(fā)送的公鑰進(jìn)行加密得到(AES_KEY_SECRET),之后返回給服務(wù)端,服務(wù)端通過(guò)私鑰將客戶端發(fā)送的AES_KEY_SECRET進(jìn)行解密得到AEK_KEY,最后客戶端和服務(wù)器通過(guò)AEK_KEY進(jìn)行報(bào)文的加密通訊,改造如下:


可以看到這種情況下中間人是竊取不到用于AES加密的秘鑰,所以對(duì)于后續(xù)的通訊是肯定無(wú)法進(jìn)行解密了,那么這樣做就是絕對(duì)安全了嗎?

所謂道高一尺魔高一丈,中間人為了對(duì)應(yīng)這種加密方法又想出了一個(gè)新的破解方案,既然拿不到AES_KEY,那我就把自己模擬成一個(gè)客戶端和服務(wù)器端的結(jié)合體,在用戶->中間人的過(guò)程中中間人模擬服務(wù)器的行為,這樣可以拿到用戶請(qǐng)求的明文,在中間人->服務(wù)器的過(guò)程中中間人模擬客戶端行為,這樣可以拿到服務(wù)器響應(yīng)的明文,以此來(lái)進(jìn)行中間人攻擊:


這一次通信再次被中間人截獲,中間人自己也偽造了一對(duì)公私鑰,并將公鑰發(fā)送給用戶以此來(lái)竊取客戶端生成的AES_KEY,在拿到AES_KEY之后就能輕松的進(jìn)行解密了。

中間人這樣為所欲為,就沒(méi)有辦法制裁下嗎,當(dāng)然有啊,接下來(lái)我們看看 HTTPS 是怎么解決通訊安全問(wèn)題的。

2. HTTPS 協(xié)議

2.1 HTTPS 簡(jiǎn)介

HTTPS 其實(shí)是SSL+HTTP的簡(jiǎn)稱,當(dāng)然現(xiàn)在SSL基本已經(jīng)被TLS取代了,不過(guò)接下來(lái)我們還是統(tǒng)一以SSL作為簡(jiǎn)稱,SSL協(xié)議其實(shí)不止是應(yīng)用在HTTP協(xié)議上,還在應(yīng)用在各種應(yīng)用層協(xié)議上,例如:FTP、WebSocket。

其實(shí)SSL協(xié)議大致就和上一節(jié)非對(duì)稱加密的性質(zhì)一樣,握手的過(guò)程中主要也是為了交換秘鑰,然后再通訊過(guò)程中使用對(duì)稱加密進(jìn)行通訊,大概流程如下:


這里我只是畫(huà)了個(gè)示意圖,其實(shí)真正的 SSL 握手會(huì)比這個(gè)復(fù)雜的多,但是性質(zhì)還是差不多,而且我們這里需要關(guān)注的重點(diǎn)在于 HTTPS 是如何防止中間人攻擊的。

通過(guò)上圖可以觀察到,服務(wù)器是通過(guò) SSL 證書(shū)來(lái)傳遞公鑰,客戶端會(huì)對(duì) SSL 證書(shū)進(jìn)行驗(yàn)證,其中證書(shū)認(rèn)證體系就是確保SSL安全的關(guān)鍵,接下來(lái)我們就來(lái)講解下CA 認(rèn)證體系,看看它是如何防止中間人攻擊的。

2.2 CA 認(rèn)證體系

上一節(jié)我們看到客戶端需要對(duì)服務(wù)器返回的 SSL 證書(shū)進(jìn)行校驗(yàn),那么客戶端是如何校驗(yàn)服務(wù)器 SSL 證書(shū)的安全性呢。

  • 權(quán)威認(rèn)證機(jī)構(gòu)

在 CA 認(rèn)證體系中,所有的證書(shū)都是由權(quán)威機(jī)構(gòu)來(lái)頒發(fā),而權(quán)威機(jī)構(gòu)的 CA 證書(shū)都是已經(jīng)在操作系統(tǒng)中內(nèi)置的,我們把這些證書(shū)稱之為CA根證書(shū):


  • 簽發(fā)證書(shū)

我們的應(yīng)用服務(wù)器如果想要使用 SSL 的話,需要通過(guò)權(quán)威認(rèn)證機(jī)構(gòu)來(lái)簽發(fā)CA證書(shū),我們將服務(wù)器生成的公鑰和站點(diǎn)相關(guān)信息發(fā)送給CA簽發(fā)機(jī)構(gòu),再由CA簽發(fā)機(jī)構(gòu)通過(guò)服務(wù)器發(fā)送的相關(guān)信息用CA簽發(fā)機(jī)構(gòu)進(jìn)行加簽,由此得到我們應(yīng)用服務(wù)器的證書(shū),證書(shū)會(huì)對(duì)應(yīng)的生成證書(shū)內(nèi)容的簽名,并將該簽名使用CA簽發(fā)機(jī)構(gòu)的私鑰進(jìn)行加密得到證書(shū)指紋,并且與上級(jí)證書(shū)生成關(guān)系鏈。這里我們把百度的證書(shū)下載下來(lái)看看:



可以看到百度是受信于GlobalSign G2,同樣的GlobalSign G2是受信于GlobalSign R1,當(dāng)客戶端(瀏覽器)做證書(shū)校驗(yàn)時(shí),會(huì)一級(jí)一級(jí)的向上做檢查,直到最后的根證書(shū),如果沒(méi)有問(wèn)題說(shuō)明服務(wù)器證書(shū)是可以被信任的。

  • 如何驗(yàn)證服務(wù)器證書(shū)

那么客戶端(瀏覽器)又是如何對(duì)服務(wù)器證書(shū)做校驗(yàn)的呢,首先會(huì)通過(guò)層級(jí)關(guān)系找到上級(jí)證書(shū),通過(guò)上級(jí)證書(shū)里的公鑰來(lái)對(duì)服務(wù)器的證書(shū)指紋進(jìn)行解密得到簽名(sign1),再通過(guò)簽名算法算出服務(wù)器證書(shū)的簽名(sign2),通過(guò)對(duì)比sign1和sign2,如果相等就說(shuō)明證書(shū)是沒(méi)有被篡改也不是偽造的。


這里有趣的是,證書(shū)校驗(yàn)用的 RSA 是通過(guò)私鑰加密證書(shū)簽名,公鑰解密來(lái)巧妙的驗(yàn)證證書(shū)有效性。

這樣通過(guò)證書(shū)的認(rèn)證體系,我們就可以避免了中間人竊取AES_KEY從而發(fā)起攔截和修改 HTTP 通訊的報(bào)文。

總結(jié)

首先先通過(guò)對(duì) HTTP 中間人攻擊的來(lái)了解到 HTTP 為什么是不安全的,然后再?gòu)陌踩シ赖募夹g(shù)演變一直到 HTTPS 的原理概括,希望能讓大家對(duì) HTTPS 有個(gè)更深刻的了解。


該文章在 2023/3/15 10:40:37 編輯過(guò)
關(guān)鍵字查詢
相關(guān)文章
正在查詢...
點(diǎn)晴ERP是一款針對(duì)中小制造業(yè)的專業(yè)生產(chǎn)管理軟件系統(tǒng),系統(tǒng)成熟度和易用性得到了國(guó)內(nèi)大量中小企業(yè)的青睞。
點(diǎn)晴PMS碼頭管理系統(tǒng)主要針對(duì)港口碼頭集裝箱與散貨日常運(yùn)作、調(diào)度、堆場(chǎng)、車(chē)隊(duì)、財(cái)務(wù)費(fèi)用、相關(guān)報(bào)表等業(yè)務(wù)管理,結(jié)合碼頭的業(yè)務(wù)特點(diǎn),圍繞調(diào)度、堆場(chǎng)作業(yè)而開(kāi)發(fā)的。集技術(shù)的先進(jìn)性、管理的有效性于一體,是物流碼頭及其他港口類企業(yè)的高效ERP管理信息系統(tǒng)。
點(diǎn)晴WMS倉(cāng)儲(chǔ)管理系統(tǒng)提供了貨物產(chǎn)品管理,銷售管理,采購(gòu)管理,倉(cāng)儲(chǔ)管理,倉(cāng)庫(kù)管理,保質(zhì)期管理,貨位管理,庫(kù)位管理,生產(chǎn)管理,WMS管理系統(tǒng),標(biāo)簽打印,條形碼,二維碼管理,批號(hào)管理軟件。
點(diǎn)晴免費(fèi)OA是一款軟件和通用服務(wù)都免費(fèi),不限功能、不限時(shí)間、不限用戶的免費(fèi)OA協(xié)同辦公管理系統(tǒng)。
Copyright 2010-2025 ClickSun All Rights Reserved