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

網(wǎng)絡(luò)面經(jīng):使用HTTPS就絕對(duì)安全了嗎?

網(wǎng)絡(luò) 網(wǎng)絡(luò)管理
前面學(xué)習(xí)過(guò)HTTP協(xié)議的報(bào)文格式及交互模式,我們知道HTTP傳輸?shù)膬?nèi)容本質(zhì)上就是文本,HTTP/2采用了二進(jìn)制字節(jié)的形式傳輸,但依舊可以進(jìn)行反編譯。

[[421374]]

本文轉(zhuǎn)載自微信公眾號(hào)「程序新視界」,作者二師兄 。轉(zhuǎn)載本文請(qǐng)聯(lián)系程序新視界公眾號(hào)。

朋友面試阿里,關(guān)于HTTPS被問(wèn)了三道題,看看你能回到上幾道題。

第一,為什么使用HTTPS之后,通信就安全了?

第二,HTTPS實(shí)現(xiàn)通信安全的原理是什么?

第三,使用了HTTPS就絕對(duì)安全了嗎?

本篇文章就帶大家一起聊聊HTTPS,順便解答上面三個(gè)問(wèn)題。

關(guān)于HTTPS

前面學(xué)習(xí)過(guò)HTTP協(xié)議的報(bào)文格式及交互模式,我們知道HTTP傳輸?shù)膬?nèi)容本質(zhì)上就是文本,HTTP/2采用了二進(jìn)制字節(jié)的形式傳輸,但依舊可以進(jìn)行反編譯。也就是說(shuō),在通信的過(guò)程中只要攔截對(duì)應(yīng)的請(qǐng)求,就可以獲得通信的報(bào)文信息。從這個(gè)層面來(lái)講,我們說(shuō)HTTP協(xié)議是不安全的。

而HTTPS是身披SSL外殼的HTTP,利用SSL/TLS建立全信道,加密數(shù)據(jù)包。HTTPS的主要目的是提供對(duì)網(wǎng)站服務(wù)器的身份認(rèn)證,同時(shí)保護(hù)交換數(shù)據(jù)的隱私與完整性。

在HTTPS通信過(guò)程中,會(huì)涉及到非對(duì)稱(chēng)加密和對(duì)稱(chēng)加密兩種算法,從而滿(mǎn)足了性能和安全的雙重需要。

HTTPS的特點(diǎn)

HTTPS傳輸?shù)氖羌用苤蟮臄?shù)據(jù),即使被攔截也很難獲得明文。HTTPS有以下特點(diǎn):

  • 內(nèi)容加密:采用混合加密技術(shù)(結(jié)合對(duì)稱(chēng)加密和非對(duì)稱(chēng)加密技術(shù)),中間者無(wú)法直接查看明文內(nèi)容;
  • 驗(yàn)證身份:通過(guò)證書(shū)認(rèn)證客戶(hù)端訪(fǎng)問(wèn)的是自己的服務(wù)器;
  • 保護(hù)數(shù)據(jù)完整性:防止傳輸?shù)膬?nèi)容被中間人冒充或者篡改;

關(guān)于這些特點(diǎn),我們可以在原理層面進(jìn)行逐步分析。

HTTPS協(xié)議實(shí)現(xiàn)原理

采用HTTPS通信的過(guò)程涉及到兩部分:證書(shū)驗(yàn)證和數(shù)據(jù)傳輸。

HTTPS原理

第一階段,證書(shū)獲取及驗(yàn)證過(guò)程:

  • 瀏覽器發(fā)起一個(gè)HTTPS的請(qǐng)求;
  • 服務(wù)器接收到請(qǐng)求,返回一個(gè)HTTPS證書(shū),該證書(shū)內(nèi)包含服務(wù)器私鑰對(duì)應(yīng)的公鑰信息;
  • 瀏覽器驗(yàn)證證書(shū)是否合法,如果不合法(未經(jīng)過(guò)CA認(rèn)證或未添加信任)則進(jìn)行提示。通常位于瀏覽器中URL地址左側(cè)有的小鎖圖標(biāo)處;

第二階段,加密秘鑰傳輸及加密報(bào)文傳輸,可以統(tǒng)稱(chēng)數(shù)據(jù)傳輸:

  • 證書(shū)驗(yàn)證合法或可信任,則在瀏覽器端生成一個(gè)隨機(jī)數(shù),該隨機(jī)數(shù)用于通信報(bào)文的對(duì)稱(chēng)加密;
  • 通過(guò)公鑰將隨機(jī)數(shù)加密,傳輸給服務(wù)器;
  • 服務(wù)器獲得加密的隨機(jī)數(shù),使用私鑰進(jìn)行解密,并存儲(chǔ)隨機(jī)數(shù)。此時(shí),雙方都有了對(duì)稱(chēng)加密的秘鑰(隨機(jī)數(shù));
  • 服務(wù)器使用隨機(jī)數(shù)對(duì)要傳輸?shù)臄?shù)據(jù)進(jìn)行對(duì)稱(chēng)加密,并將加密信息返回給客戶(hù)端;
  • 客戶(hù)端獲得加密數(shù)據(jù),使用隨機(jī)數(shù)作為秘鑰,基于對(duì)稱(chēng)加密算法對(duì)報(bào)文進(jìn)行解密,渲染呈現(xiàn)給用戶(hù);

關(guān)于HTTPS的實(shí)現(xiàn)原理總結(jié)一下就三步:

  • 客戶(hù)端向服務(wù)器端索要并驗(yàn)證公鑰;
  • 雙方協(xié)商生成"對(duì)話(huà)密鑰";
  • 雙方采用"對(duì)話(huà)密鑰"進(jìn)行加密通信;

其中前兩步又稱(chēng)作"握手階段"(handshake)。

上述流程看似簡(jiǎn)單,但會(huì)延伸出來(lái)幾個(gè)問(wèn)題,我們來(lái)逐個(gè)看看。

如何保證公鑰不被篡改?

解決方法:將公鑰放在數(shù)字證書(shū)中。只要證書(shū)是可信的,公鑰就是可信的。這也是為什么服務(wù)器返回的是證書(shū),而不是單純的公鑰。

如何減少公鑰加密耗時(shí)問(wèn)題?

解決方法:每一次對(duì)話(huà)(session),客戶(hù)端和服務(wù)器端都生成一個(gè)"對(duì)話(huà)密鑰"(session key),用它來(lái)加密信息。由于"對(duì)話(huà)密鑰"是對(duì)稱(chēng)加密,所以運(yùn)算速度非???,而服務(wù)器公鑰只用于加密"對(duì)話(huà)密鑰"本身,這樣就減少了加密運(yùn)算的消耗時(shí)間。

這也是為什么在HTTPS通信過(guò)程中會(huì)生成一個(gè)隨機(jī)數(shù)的原因,它就是“對(duì)話(huà)密鑰”,用來(lái)數(shù)據(jù)通信的對(duì)稱(chēng)加密,提升算法性能。

另外,一對(duì)公私鑰只能實(shí)現(xiàn)單向的加解密,所以HTTPS中內(nèi)容傳輸加密采取的是對(duì)稱(chēng)加密,而不是非對(duì)稱(chēng)加密。

分析完整個(gè)HTTPS交互的流程,看似已經(jīng)完美的方案中其實(shí)還有一個(gè)漏洞:數(shù)據(jù)在網(wǎng)絡(luò)傳輸中如果被“中間人”掉包了怎么辦?

“中間人”攻擊

我們先來(lái)看一下,在基于HTTPS交互的過(guò)程中,在通信的過(guò)程中公鑰被掉包了會(huì)發(fā)生什么情況。

中間人攻擊

在上圖中,基本原理就是中間人通過(guò)網(wǎng)絡(luò)劫持等,將通信過(guò)程中的公鑰替換成自己的,然后假裝自己是服務(wù)器與客戶(hù)端進(jìn)行通信。從而對(duì)信息進(jìn)行竊取或篡改。

我們知道,公私鑰及證書(shū)都是可以自己進(jìn)行生成的,雖然發(fā)起了HTTPS的請(qǐng)求,但如果證書(shū)和公私鑰無(wú)法保證是否被替換,傳輸?shù)陌踩跃蜔o(wú)法保證。此時(shí),就需要拿出終極武器:SSL證書(shū)申購(gòu)。也稱(chēng)作CA證書(shū)申購(gòu)。

CA證書(shū)

CA是證書(shū)的簽發(fā)機(jī)構(gòu),它是公鑰基礎(chǔ)設(shè)施(Public Key Infrastructure,PKI)的核心。CA是負(fù)責(zé)簽發(fā)證書(shū)、認(rèn)證證書(shū)、管理已頒發(fā)證書(shū)的機(jī)關(guān)。有這樣一個(gè)權(quán)威機(jī)構(gòu)來(lái)簽發(fā)證書(shū),就確保了證書(shū)的可信性(合法性)。

瀏覽器會(huì)對(duì)服務(wù)器返回SSL證書(shū)進(jìn)行驗(yàn)證:

  • 驗(yàn)證域名、有效期等信息是否正確;
  • 判斷證書(shū)來(lái)源是否合法:每份簽發(fā)證書(shū)都可以根據(jù)驗(yàn)證鏈查找到對(duì)應(yīng)的根證書(shū),操作系統(tǒng)、瀏覽器會(huì)在本地存儲(chǔ)權(quán)威機(jī)構(gòu)的根證書(shū),利用本地根證書(shū)可以對(duì)對(duì)應(yīng)機(jī)構(gòu)簽發(fā)證書(shū)完成來(lái)源驗(yàn)證;
  • 判斷證書(shū)是否被篡改:需要與CA服務(wù)器進(jìn)行校驗(yàn);
  • 判斷證書(shū)是否已吊銷(xiāo),可用于第3步中,以減少與CA服務(wù)器的交互,提高驗(yàn)證效率。

上述條件完全滿(mǎn)足時(shí),才說(shuō)明該證書(shū)合法。

此時(shí),再回到“中間人”攻擊的問(wèn)題,會(huì)發(fā)現(xiàn),當(dāng)瀏覽器獲取到假公鑰時(shí),通過(guò)比對(duì)驗(yàn)證就會(huì)發(fā)現(xiàn)不合法,進(jìn)而在瀏覽器層面對(duì)用戶(hù)進(jìn)行風(fēng)險(xiǎn)提示。但瀏覽器只會(huì)進(jìn)行風(fēng)險(xiǎn)提示,用戶(hù)仍然可以授權(quán)信任證書(shū)繼續(xù)操作。

使用了HTTPS就絕對(duì)安全了嗎?

通過(guò)上面的學(xué)習(xí)我們已經(jīng)知道HTTPS通信是加密的,常規(guī)抓包手段是無(wú)法獲取報(bào)文內(nèi)容的。但像上面所說(shuō)的“中間人”攻擊的情況,不顧瀏覽器的安全提醒,繼續(xù)進(jìn)行后續(xù)網(wǎng)頁(yè)的訪(fǎng)問(wèn),則會(huì)出現(xiàn)安全問(wèn)題。

在客戶(hù)端授權(quán)的情況下,可以組建中間人網(wǎng)絡(luò),而抓包工具便是作為中間人的代理。通常,HTTPS抓包工具會(huì)生成一個(gè)證書(shū)(類(lèi)比的假證書(shū)),用戶(hù)安裝在客戶(hù)端或添加信任。此時(shí),客戶(hù)端先與抓包工具通信,抓包工具再將請(qǐng)求轉(zhuǎn)發(fā)到服務(wù)器,服務(wù)器返回的信息,抓包工具可進(jìn)行處理或輸出,然后再返回給客戶(hù)端。

因此,HTTPS的安全性更多的體現(xiàn)在用戶(hù)不知情的情況下進(jìn)行的訪(fǎng)問(wèn),如果用戶(hù)已知情或主動(dòng)授信,表明用戶(hù)已經(jīng)明確了風(fēng)險(xiǎn),此時(shí)如果出現(xiàn)中間人攻擊的問(wèn)題,HTTPS還是不安全的。

本地隨機(jī)數(shù)的安全

最后,還有一方面的安全需要我們留意,那就是本地隨機(jī)數(shù)的安全。在HTTPS內(nèi)容傳輸時(shí)采用的是對(duì)稱(chēng)加密,因此秘鑰在客戶(hù)端和服務(wù)器端均存儲(chǔ)的有。針對(duì)本地存儲(chǔ)是隨機(jī)數(shù),HTTPS并不能保證它的安全,HTTPS重點(diǎn)關(guān)注的是傳輸過(guò)程中的安全。

也就是說(shuō),本地的安全屬于另一安全范疇,應(yīng)對(duì)的措施有安裝殺毒軟件、反木馬、瀏覽器升級(jí)修復(fù)漏洞等。

小結(jié)

最后,再來(lái)看看那三個(gè)問(wèn)題:

第一,為什么使用HTTPS之后,通信就安全了?

HTTPS利用SSL/TLS建立全信道,加密數(shù)據(jù)包,保證了傳輸安全,防止傳輸過(guò)程被監(jiān)聽(tīng)、防止數(shù)據(jù)被竊取,可以確認(rèn)網(wǎng)站的真實(shí)性。

第二,HTTPS實(shí)現(xiàn)通信安全的原理是什么?

HTTPS實(shí)現(xiàn)安全通信主要通過(guò)多種加密方式和身份驗(yàn)證實(shí)現(xiàn),主要分三步:(1)客戶(hù)端向服務(wù)器端索要證書(shū)并驗(yàn)證公鑰;(2)雙方協(xié)商生成"對(duì)話(huà)密鑰";(3)雙方采用"對(duì)話(huà)密鑰"進(jìn)行加密通信;

其中,證書(shū)保證了公鑰的可信與安全,公鑰保證了“對(duì)話(huà)秘鑰”傳輸?shù)陌踩?ldquo;對(duì)話(huà)秘鑰”保證了通信報(bào)文的安全。

第三,使用了HTTPS就絕對(duì)安全了嗎?

HTTPS重點(diǎn)關(guān)注傳輸過(guò)程中的安全,在用戶(hù)不知情的情況下進(jìn)行網(wǎng)站訪(fǎng)問(wèn),瀏覽器會(huì)給出安全提示。但如果用戶(hù)繼續(xù)訪(fǎng)問(wèn)或設(shè)置授信,則會(huì)發(fā)生“中間人”攻擊的可能性。在某些國(guó)家可以控制CA根證書(shū)的情況下,中間人攻擊一樣可行。中間人攻擊常發(fā)生在公共WIF或路由上。

在本地隨機(jī)數(shù)(秘鑰)安全方面,HTTPS也無(wú)能為力,只能借助殺毒軟件、漏洞升級(jí)等來(lái)防護(hù)。同時(shí),在黑客攻擊、拒絕服務(wù)攻擊、服務(wù)器劫持等方面,HTTPS幾乎起不到作用。

 

責(zé)任編輯:武曉燕 來(lái)源: 程序新視界
相關(guān)推薦

2015-11-05 12:02:10

2010-11-03 10:49:04

面試

2020-07-22 14:30:29

JavaHTTPS加密

2012-04-19 09:29:48

2010-08-26 10:47:05

2021-08-26 06:58:14

CookieSession應(yīng)用

2019-08-20 13:45:01

阿里巴巴面試Java

2024-05-11 07:48:46

騰訊抽象耦合度

2019-08-05 15:05:35

2011-05-13 12:37:30

2022-08-18 17:44:25

HTTPS協(xié)議漏洞

2015-10-16 11:38:40

2021-07-23 07:54:06

網(wǎng)絡(luò)安全熊貓燒香

2022-09-22 12:03:14

網(wǎng)絡(luò)安全事件

2013-04-12 11:16:28

2009-11-26 10:25:09

招聘外企

2018-09-03 15:11:45

2023-11-14 14:38:53

2013-03-20 09:44:34

2009-08-14 14:58:12

點(diǎn)贊
收藏

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