亚洲熟女综合色一区二区三区,亚洲精品中文字幕无码蜜桃,亚洲va欧美va日韩va成人网,亚洲av无码国产一区二区三区,亚洲精品无码久久久久久久

Https詳解

http存在的隱患

HTTP是屬于應(yīng)用層的協(xié)議,它是基于TCP/IP的,所以它只是規(guī)定一些要傳輸?shù)膬?nèi)容,以及頭部信息,然后通過TCP協(xié)議進行傳輸,依靠IP協(xié)議進行尋址,通過一幅最簡單的圖來描述:

Https詳解

客戶端發(fā)出請求,服務(wù)端進行響應(yīng),就是這么簡單。在整個過程中,沒有任何加密的東西,所以它是不安全的,中間人可以進行攔截,獲取傳輸和響應(yīng)的數(shù)據(jù),造成數(shù)據(jù)泄露。

對稱加密

對于這種情況,我們想到的最直接的辦法就是對數(shù)據(jù)加密

Https詳解

這種加密方式叫做:對稱加密。 加密和解密用同一個秘鑰的加密方式叫做對稱加密。但是對稱加密卻解決不了任何問題,比如多個客戶端怎么辦?

Https詳解

為所有的客戶端都應(yīng)用同一個秘鑰A,這種方式很顯然是不合理的,破解了一個用戶,所有的用戶信息都會被盜取。

但是如果每個客戶端 都準(zhǔn)備一個密鑰也不是很現(xiàn)實,服務(wù)端需要維護的太多。

另外對稱加密還存在一個問題就是對稱加密的秘鑰也需要傳輸,如果在傳輸秘鑰的過程中被攔截,秘鑰也會被獲取,也是非常不安全的。

非對稱加密

在對稱加密的路上走不通了,我們換個思路,還有一種加密方式叫非對稱加密,比如RSA。 非對稱加密會有一對秘鑰:公鑰和私鑰。 公鑰加密的內(nèi)容,只有私鑰可以解開,私鑰加密的內(nèi)容,所有的公鑰都可以解開(當(dāng)然是指和秘鑰是一對的公鑰)。

Https詳解

私鑰只保存在服務(wù)器端,公鑰可以發(fā)送給所有的客戶端。

在傳輸公鑰的過程中,肯定也會有被中間人獲取的風(fēng)險,但在目前的情況下,至少可以保證客戶端通過公鑰加密的內(nèi)容,中間人是無法破解的,因為私鑰只保存在服務(wù)器端,只有私鑰可以破解公鑰加密的內(nèi)容。

現(xiàn)在我們還存在一個問題,如果公鑰被中間人拿到篡改呢: MITM:Man-in-the-MiddleAttack

Https詳解

客戶端拿到的公鑰是假的,如何解決這個問題?

第三方認(rèn)證

公鑰被掉包,是因為客戶端無法分辨?zhèn)骰毓€的到底是中間人,還是服務(wù)器,這也是密碼學(xué)中的身份驗證問題。 在HTTPS中,使用 證書 + 數(shù)字簽名 來解決這個問題。

Https詳解

這里假設(shè)加密方式是MD5,將網(wǎng)站的信息加密后通過第三方機構(gòu)的私鑰再次進行加密,生成數(shù)字簽名。

數(shù)字證書 = 網(wǎng)站信息 + 數(shù)字簽名

假如中間人攔截后把服務(wù)器的公鑰替換為自己的公鑰,因為數(shù)字簽名的存在,會導(dǎo)致客戶端驗證簽名不匹配,這樣就防止了中間人替換公鑰的問題。

Https詳解

瀏覽器安裝后會內(nèi)置一些權(quán)威第三方認(rèn)證機構(gòu)的公鑰,比如VeriSign、Symantec以及GlobalSign等等,驗證簽名的時候直接就從本地拿到相應(yīng)第三方機構(gòu)的公鑰,對私鑰加密后的數(shù)字簽名進行解密得到真正的簽名,然后客戶端利用簽名生成規(guī)則進行簽名生成,看兩個簽名是否匹配,如果匹配認(rèn)證通過,不匹配則獲取證書失敗。

為什么要有簽名?

大家可以想一下,為什么要有數(shù)字簽名這個東西呢?

第三方認(rèn)證機構(gòu)是一個開放的平臺,我們可以去申請,中間人也可以去申請呀:

Https詳解

如果沒有簽名,只對網(wǎng)站信息進行第三方機構(gòu)私鑰加密的話,會存在下面的問題:

Https詳解

因為沒有認(rèn)證,所以中間人也向第三方認(rèn)證機構(gòu)進行申請,然后攔截后把所有的信息都替換成自己的,客戶端仍然可以解密,并且無法判斷這是服務(wù)器的還是中間人的,最后造成數(shù)據(jù)泄露。

對稱加密

在安全的拿到服務(wù)器的公鑰之后,客戶端會隨機生成一個對稱秘鑰,使用服務(wù)器公鑰加密,傳輸給服務(wù)端,此后,相關(guān)的 Application Data 就通過這個隨機生成的對稱秘鑰進行加密/解密,服務(wù)器也通過該對稱秘鑰進行解密/加密:

Https詳解

整體流程圖

HTTPS = HTTP + TLS/SSL

Https詳解

HTTPS中具體的內(nèi)容還有很多,可以通過下圖做一個參考:

Https詳解

總結(jié)

HTTPS就是使用SSL/TLS協(xié)議進行加密傳輸,讓客戶端拿到服務(wù)器的公鑰,然后客戶端隨機生成一個對稱加密的秘鑰,使用公鑰加密,傳輸給服務(wù)端,后續(xù)的所有信息都通過該對稱秘鑰進行加密解密,完成整個HTTPS的流程。

好啦!今天分享到這里就結(jié)束了,希望大家持續(xù)關(guān)注馬哥教育官網(wǎng),每天都會有大量優(yōu)質(zhì)內(nèi)容與大家分享!聲明:文章轉(zhuǎn)載于網(wǎng)絡(luò),版權(quán)歸原作者所有,如有侵權(quán)請及時聯(lián)系刪除!

相關(guān)新聞

歷經(jīng)多年發(fā)展,已成為國內(nèi)好評如潮的Linux云計算運維、SRE、Devops、網(wǎng)絡(luò)安全、云原生、Go、Python開發(fā)專業(yè)人才培訓(xùn)機構(gòu)!