欧美free性护士vide0shd,老熟女,一区二区三区,久久久久夜夜夜精品国产,久久久久久综合网天天,欧美成人护士h版

目錄

柚子快報(bào)邀請(qǐng)碼778899分享:【網(wǎng)絡(luò)原理】HTTPS

柚子快報(bào)邀請(qǐng)碼778899分享:【網(wǎng)絡(luò)原理】HTTPS

http://yzkb.51969.com/

?

?

目錄

前言

為什么要使用HTTPS?

HTTPS是如果進(jìn)行加密的

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

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

中間人攻擊

3.證書(shū)

?中間人有沒(méi)有可能篡改證書(shū)?

中間人有沒(méi)有可能整個(gè)調(diào)包證書(shū)?

前言

在上一篇中,我們講解了什么是HTTP,但是在實(shí)際應(yīng)用中,瀏覽器和服務(wù)器之間很少使用HTTP協(xié)議來(lái)進(jìn)行通信。

為什么有了HTTP協(xié)議不用,還要去使用HTTPS呢?

這是因?yàn)槿绻褂肏TTP協(xié)議,那么瀏覽器和服務(wù)器在通信的時(shí)候,就是明文傳輸,只要黑客抓取到HTTP數(shù)據(jù)包,那么就可以獲取到其中的數(shù)據(jù),所以我們就需要對(duì)這個(gè)數(shù)據(jù)進(jìn)行加密,因此就出現(xiàn)了HTTPS。

在這之前,我們來(lái)了解一些概念:

明文:沒(méi)有經(jīng)過(guò)加密的信息,即要傳輸?shù)脑紨?shù)據(jù)密文:經(jīng)過(guò)加密之后的信息。密鑰 :進(jìn)行加密和解密過(guò)程的重要道具。加密:把明文通過(guò)密鑰,生成密文。解密:把密文通過(guò)密鑰,還原成明文。對(duì)稱(chēng)加密:加密和解密使用同一個(gè)密鑰。非對(duì)稱(chēng)密鑰:一對(duì)密鑰,一個(gè)叫公鑰,一個(gè)叫密鑰,使用一個(gè)加密,另一個(gè)解密。

為什么要使用HTTPS?

HTTPS協(xié)議的出現(xiàn)主要是為了解決HTTP協(xié)議在安全上的不足。

HTTPS主要由以下不足:

通信使用明文(不加密),內(nèi)容可能會(huì)被竊聽(tīng);不驗(yàn)證通信方的身份,因此有可能遭遇偽裝;無(wú)法證明報(bào)文的完整性,可能已經(jīng)遭到篡改。

示例:

就像我和我的朋友通過(guò)寫(xiě)信來(lái)進(jìn)行聯(lián)系,那么我們每次寫(xiě)完信,就需要通過(guò)傳信員來(lái)進(jìn)行傳遞信息。如果我們不對(duì)信息進(jìn)行加密的話(huà),那么傳信員就相當(dāng)于中間人,可以打開(kāi)查看信息,甚至修改信息。為了防止這種情況,我們就需要對(duì)信息進(jìn)行加密,約定好加密的方式,從而來(lái)防止中間人看到甚至修改我們的信息。

以臭名昭著的運(yùn)營(yíng)商劫持事件為例

我們不管是公司、學(xué)校還是在家里,網(wǎng)絡(luò)都是由運(yùn)營(yíng)商提供服務(wù)的,我們發(fā)送和接收信息,中間都需要經(jīng)過(guò)運(yùn)營(yíng)商的。

假如我們現(xiàn)在要下載一款軟件,那么我們?cè)跒g覽器中找到對(duì)應(yīng)的下載按鈕后,點(diǎn)擊按鈕后就會(huì)彈出一個(gè)鏈接,那么我們就可以進(jìn)行下載,但在中間我們的數(shù)據(jù)包可能會(huì)被運(yùn)營(yíng)商劫持并更換成別的軟件的下載鏈接。

由于我們通過(guò)網(wǎng)絡(luò)傳輸?shù)娜魏螖?shù)據(jù)報(bào)文都會(huì)經(jīng)過(guò)運(yùn)營(yíng)商的網(wǎng)絡(luò)設(shè)備(如交換機(jī)、路由器等),那么運(yùn)營(yíng)商的網(wǎng)絡(luò)設(shè)備就可以解析出我們要傳輸?shù)臄?shù)據(jù)內(nèi)容,并進(jìn)行修改。

我們?cè)邳c(diǎn)擊“下載按鈕”的時(shí)候,其實(shí)就是會(huì)給服務(wù)器發(fā)送一個(gè)HTTP請(qǐng)求來(lái)獲取下載的連接,而獲取到的HTTP響應(yīng)就包含了該軟件的下載鏈接,但如果被運(yùn)營(yíng)商劫持后,他就可能篡改HTTP響應(yīng)中的下載鏈接,換成別的軟件的下載連接。

當(dāng)然,不止是因?yàn)檫@一個(gè)情況,還是為了保護(hù)用戶(hù)的隱私,防止數(shù)據(jù)外漏或被修改,保證網(wǎng)站的安全性。?

而HTTPS的出現(xiàn)正能夠解決上述這些問(wèn)題:

傳輸過(guò)程進(jìn)行加密保護(hù),防止內(nèi)容被竊聽(tīng);利用證書(shū)來(lái)確定對(duì)方的身份,防止通信方偽裝;保證了報(bào)文的完整性,確保不會(huì)被篡改。

HTTPS是如果進(jìn)行加密的

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

對(duì)稱(chēng)加密就是在加密和解密的時(shí)候使用相同的密鑰的加密方法,通信雙方必須使用同一個(gè)密鑰,這個(gè)密鑰既可以用來(lái)解密 ,也能用來(lái)加密數(shù)據(jù)。

我們來(lái)舉個(gè)例子,大家應(yīng)該都或多或少看過(guò)一些古代/近代戰(zhàn)爭(zhēng),在打戰(zhàn)的時(shí)候,前線(xiàn)和指揮所之間都是通過(guò)通信兵來(lái)進(jìn)行通信的,而通信兵在通信的過(guò)程中一般是騎馬或者走路,這樣是非常不安全,通信兵可能在傳信的路途中遭遇意外,導(dǎo)致前線(xiàn)的戰(zhàn)況不能及時(shí)送到指揮部,并且如果是把信息直接寫(xiě)在信紙上,可能也會(huì)被敵方進(jìn)行篡改,從而傳遞錯(cuò)誤的信息,嚴(yán)重可能導(dǎo)致打戰(zhàn)失敗。

針對(duì)這種傳遞速度慢且不安全的方法,人們發(fā)明出了電報(bào),同時(shí)還有密碼本,通過(guò)密碼本,我們就能解密加密。當(dāng)收到前線(xiàn)發(fā)來(lái)的電報(bào),我們就能夠根據(jù)密碼本,來(lái)解密要傳遞的信息。當(dāng)然,如果中間被敵軍截取到電報(bào)信息,如果他們沒(méi)有密碼本,截取到也沒(méi)有,不能夠解密出其中的信息。

通信雙方需要使用相同的密碼本來(lái)進(jìn)行加密解密。

在HTTPS中,“密碼本”被稱(chēng)為“密鑰”。通過(guò)密鑰,發(fā)送方就可以將要發(fā)送的信息進(jìn)行加密,當(dāng)接收方在接收到信息后,就根據(jù)密鑰來(lái)進(jìn)行解密。?

但這里存在一個(gè)問(wèn)題,我們知道一個(gè)服務(wù)器一般都是為多個(gè)客戶(hù)端服務(wù)的,那么多個(gè)客戶(hù)端和服務(wù)器進(jìn)行通信的時(shí)候,全部是使用相同的密鑰嗎?

顯然不是,如果全部都使用相同的密鑰,那加密也沒(méi)用,只要黑客也搞個(gè)客戶(hù)端訪(fǎng)問(wèn),就能夠知道密鑰是啥了。

所以當(dāng)客戶(hù)端和服務(wù)器在建立連接的時(shí)候,就會(huì)事先協(xié)商好使用哪個(gè)密鑰,而在建立連接的過(guò)程中,也是有可能被黑客截取到的,如果黑客截取到建立連接時(shí)的報(bào)文,那么就能夠獲取到密鑰,這樣客戶(hù)端和服務(wù)器之間的通信就全部暴露在黑客眼中。

那可能就有人會(huì)說(shuō):再用一個(gè)對(duì)稱(chēng)密鑰對(duì)密鑰進(jìn)行加密。這種方法其實(shí)是沒(méi)用的,因?yàn)槲覀冞€是需要將這個(gè)對(duì)稱(chēng)密鑰進(jìn)行明文傳遞,這樣黑客也能夠截取到。

為了解決上面這種問(wèn)題,就出現(xiàn)了非對(duì)稱(chēng)加密。

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

非對(duì)稱(chēng)加密使用一對(duì)密鑰:一個(gè)公鑰和一個(gè)私鑰。公鑰可以公開(kāi)分享,但是密鑰必須保密,用于解密數(shù)據(jù)。發(fā)送方使用接收方的公鑰進(jìn)行加密,而接收方使用自己的私鑰來(lái)進(jìn)行解密數(shù)據(jù)。例如RSA算法。

非對(duì)稱(chēng)加密的出現(xiàn)不是為了取代對(duì)稱(chēng)加密,而是為了:輔助。非對(duì)稱(chēng)加密的運(yùn)算開(kāi)銷(xiāo)比較大,比較消耗性能。

在客戶(hù)端和服務(wù)端進(jìn)行通信前,服務(wù)端會(huì)先生成一對(duì)公鑰-私鑰,當(dāng)客戶(hù)端想要和服務(wù)器進(jìn)行通信時(shí),客戶(hù)端會(huì)發(fā)起請(qǐng)求詢(xún)問(wèn)服務(wù)器:密鑰是什么? 服務(wù)器在接收到請(qǐng)求后,就會(huì)將公鑰明文發(fā)送給客戶(hù)端,當(dāng)然在這個(gè)過(guò)程中,公鑰被黑客截取到也沒(méi)事,公鑰是公開(kāi)的。只有通過(guò)服務(wù)器的私鑰對(duì)通過(guò)公鑰加密的數(shù)據(jù)進(jìn)行解密,才能獲取到明文數(shù)據(jù)。而私鑰只有服務(wù)器持有,不會(huì)外傳,所以黑客就算公鑰加密的數(shù)據(jù),也不能進(jìn)行解密。

那么有沒(méi)有一種情況:就是當(dāng)客戶(hù)端生成的對(duì)稱(chēng)密鑰,服務(wù)器已經(jīng)在和另一個(gè)客戶(hù)端在使用了,那么這個(gè)時(shí)候該怎么辦呢?

能不能由服務(wù)器來(lái)生成一個(gè)對(duì)稱(chēng)密鑰,然后再通過(guò)密鑰進(jìn)行加密發(fā)送給客戶(hù)端?

這樣是不行的,如果服務(wù)器使用私鑰來(lái)對(duì)稱(chēng)密鑰加密,那么當(dāng)把數(shù)據(jù)包發(fā)送給客戶(hù)端時(shí),黑客就可以通過(guò)公鑰來(lái)對(duì)這個(gè)數(shù)據(jù)包進(jìn)行解密,從而拿到對(duì)稱(chēng)密鑰,這樣,后面客戶(hù)端和服務(wù)器早通信的時(shí)候,就全部暴露在黑客眼中了。

所以對(duì)于上面這種情況,服務(wù)器就會(huì)返回一個(gè)數(shù)據(jù)包,來(lái)提示客戶(hù)端:

"你生成的對(duì)稱(chēng)密鑰我已經(jīng)在和別的客戶(hù)端在使用了,你重新生成個(gè)”。

客戶(hù)端會(huì)在本地生成一個(gè)對(duì)稱(chēng)密鑰,然后通過(guò)先前和服務(wù)器建立連接時(shí)獲得的公鑰來(lái)進(jìn)行加密。就算在這個(gè)過(guò)程中被黑客截取到,他也解密不了,因?yàn)闆](méi)有私鑰。當(dāng)服務(wù)器接收到客戶(hù)端發(fā)送的加密報(bào)文后,就會(huì)通過(guò)私鑰來(lái)解密獲取客戶(hù)端發(fā)送的對(duì)稱(chēng)密鑰。當(dāng)?shù)玫綄?duì)稱(chēng)密鑰之后,服務(wù)器會(huì)將協(xié)商好的對(duì)稱(chēng)密鑰通過(guò)配對(duì)的密鑰進(jìn)行加密,返回給客戶(hù)端,當(dāng)客戶(hù)端得到這個(gè)數(shù)據(jù)后就可以用公鑰進(jìn)行解密,得到協(xié)商好的對(duì)稱(chēng)密鑰。當(dāng)后面通信的時(shí)候,就使用這個(gè)對(duì)稱(chēng)密鑰來(lái)進(jìn)行加密通信。

上面這種 非對(duì)稱(chēng)加密+對(duì)稱(chēng)加密 的方式,就能夠解決網(wǎng)絡(luò)上所有黑客的攻擊嗎?肯定是不可以的,存在著 中間人攻擊 問(wèn)題。

中間人攻擊

HTTPS是通過(guò)使用SSL/TLS對(duì)HTTP進(jìn)行加密,來(lái)保護(hù)網(wǎng)絡(luò)通信中的數(shù)據(jù)傳輸安全。然而,HTTPS協(xié)議其實(shí)也是會(huì)受到 中間人攻擊 的。

中間人攻擊(Man-in-the-Middle Attack,簡(jiǎn)稱(chēng)MITM),是一種會(huì)話(huà)劫持攻擊。攻擊者作為中間人,劫持通信雙方會(huì)話(huà)并操縱通信過(guò)程,而通信雙方并不知情,從而達(dá)到竊取信息或者冒充訪(fǎng)問(wèn)的目的。中間人攻擊只是一個(gè)統(tǒng)稱(chēng),具體的攻擊方式有很多種,如Wi-Fi仿冒(釣魚(yú))、DNS欺騙、SSL劫持等。中間人攻擊常用于竊取用戶(hù)登錄憑據(jù)、電子郵件和銀行賬戶(hù)等個(gè)人信息,是對(duì)網(wǎng)銀、網(wǎng)游等在線(xiàn)系統(tǒng)極具破壞性的一種攻擊方式。

?

假如客戶(hù)端向服務(wù)器發(fā)送請(qǐng)求,詢(xún)問(wèn)服務(wù)器:你的公鑰public key1是什么????

如果在這個(gè)過(guò)程中,黑客截取到了客戶(hù)端要發(fā)送給服務(wù)器信息,那么黑客其實(shí)也可以生成自己的一對(duì)公鑰 public key2和私鑰 private key2。黑客會(huì)根據(jù)客戶(hù)端請(qǐng)求中的服務(wù)器地址,向該服務(wù)器發(fā)送請(qǐng)求:你的公鑰public key1是什么???

當(dāng)服務(wù)器接收到請(qǐng)求后,就會(huì)將生成的公鑰public key1返回給客戶(hù)端,當(dāng)然,返回的時(shí)候會(huì)被黑客截取到,那么黑客就可以獲取到服務(wù)器的公鑰public key 1。然后將自己生成的public key2 返回給客戶(hù)端;

當(dāng)完成以上的步驟后,那么接下來(lái),客戶(hù)端就會(huì)使用公鑰pub2來(lái)對(duì) 對(duì)稱(chēng)密鑰66666 進(jìn)行加密,再發(fā)給服務(wù)器,但這個(gè)過(guò)程中會(huì)被黑客截獲到,黑客會(huì)使用私鑰pri2來(lái)對(duì)請(qǐng)求密文進(jìn)行解密,獲取到其中的對(duì)稱(chēng)密鑰66666 ,再根據(jù)服務(wù)器發(fā)來(lái)的公鑰pub1 來(lái)對(duì)對(duì)稱(chēng)密鑰進(jìn)行加密,發(fā)送給服務(wù)器。

當(dāng)服務(wù)器接收到來(lái)自客戶(hù)端的請(qǐng)求密文(被黑客修改過(guò)的),就會(huì)給客戶(hù)端返回響應(yīng)密文。當(dāng)然,黑客會(huì)先獲取到響應(yīng)密文進(jìn)行解密,再根據(jù)pri2來(lái)對(duì)獲進(jìn)行加密發(fā)送給客戶(hù)端??蛻?hù)端在接收到響應(yīng)密文后,會(huì)使用pub2來(lái)對(duì)響應(yīng)密文進(jìn)行解密,從而確定了雙方通信時(shí)使用的對(duì)稱(chēng)密鑰是什么。

完成上述步驟,黑客就能夠知道客戶(hù)端和服務(wù)器之間通信使用的對(duì)稱(chēng)密文。在后面客戶(hù)端和服務(wù)器進(jìn)行加密通信的時(shí)候,由于黑客已經(jīng)知道了密鑰,客戶(hù)端和服務(wù)器之間的通信內(nèi)容就全部暴露在黑客眼中,當(dāng)然,客戶(hù)端和服務(wù)器并不知情。

那么,為了解決上述這種中間人攻擊問(wèn)題,靠自證是不可能的,所以我們需要用到第三方作為“公證機(jī)構(gòu)”來(lái)證明這對(duì)密鑰是否是黑客黑客偽造的。

那么這個(gè)證明密鑰是否是由黑客偽造的公證機(jī)構(gòu)就稱(chēng)為證書(shū)。

3.證書(shū)

?HTTPS中的證書(shū)是由受信任的第三方認(rèn)證機(jī)構(gòu)(CA)頒發(fā)的數(shù)字證書(shū),用于驗(yàn)證服務(wù)器身份和安全性。服務(wù)端在使用HTTPS前,需要向CA機(jī)構(gòu)申領(lǐng)一份數(shù)字證書(shū),數(shù)字證書(shū)里包含有證書(shū)申請(qǐng)者信息、公鑰信息、廠(chǎng)商、有效期、數(shù)字簽名等。服務(wù)器把證書(shū)傳輸給瀏覽器,瀏覽器從證書(shū)里獲取公鑰就行,證書(shū)就相當(dāng)于身份證,證明服務(wù)端公鑰的權(quán)威性。

證書(shū)內(nèi)容:

一個(gè)標(biāo)準(zhǔn)的X.509格式的數(shù)字證書(shū)通常包括以下信息:

實(shí)體的身份信息(如名稱(chēng)、電子郵件地址等);公鑰;簽發(fā)證書(shū)的CA的信息;有效期;序列號(hào);使用的簽名算法;數(shù)字簽名

當(dāng)客戶(hù)端向服務(wù)器建立連接的時(shí)候,客戶(hù)端不會(huì)向服務(wù)器請(qǐng)求公鑰,而是會(huì)向服務(wù)端索要證書(shū),證書(shū)必須是“公正機(jī)構(gòu)”,其是使用非對(duì)稱(chēng)加密的,“公正機(jī)構(gòu)”會(huì)有私鑰,通過(guò)私鑰對(duì)證書(shū)進(jìn)行加密,當(dāng)客戶(hù)端通過(guò)配對(duì)的公鑰獲取到這個(gè)證書(shū)之后,會(huì)對(duì)證書(shū)進(jìn)行校驗(yàn)和運(yùn)算(防止證書(shū)是偽造的)。

判定證書(shū)的有效期是否過(guò)期判定證書(shū)的發(fā)布機(jī)構(gòu)是否受信任(操作系統(tǒng)中已內(nèi)置的受信任的證書(shū)發(fā)布機(jī)構(gòu)).驗(yàn)證證書(shū)是否被篡改: 從系統(tǒng)中拿到該證書(shū)發(fā)布機(jī)構(gòu)的公鑰, 對(duì)簽名解密, 得到一個(gè) hash 值(稱(chēng)為數(shù)據(jù)摘要), 設(shè)為 hash1. 然后計(jì)算整個(gè)證書(shū)的 hash 值, 設(shè)為 hash2. 對(duì)比 hash1 和 hash2 是否相等.如果相等, 則說(shuō)明證書(shū)是沒(méi)有被篡改過(guò)的.

客戶(hù)端驗(yàn)證數(shù)字簽名 1.客戶(hù)端把證書(shū)中的各個(gè)字段,再算一次校驗(yàn)和,得到 checksum1 2.客戶(hù)端使用公正機(jī)構(gòu)的公鑰,對(duì)數(shù)字簽名進(jìn)行解密,得到 checksum2 3.對(duì)比 checksum1 == checksum2 如果相等,視為當(dāng)前證書(shū)的各個(gè)字段,就是和服務(wù)器這邊發(fā)出來(lái)的證書(shū)是一模一樣的,此時(shí)就可以認(rèn)為這是合法證書(shū). 如果不相等,意味著證書(shū)上的內(nèi)容,被中間的黑客篡改過(guò)了~~ 此時(shí)瀏覽器往往就會(huì)彈出警告頁(yè)面,提示用戶(hù),該網(wǎng)站不安全。

?中間人有沒(méi)有可能篡改證書(shū)?

由于中間人沒(méi)有CA機(jī)構(gòu)的私鑰,所以無(wú)法hash之后使用私鑰加密形成簽名,那么也就沒(méi)有辦法對(duì)篡改之后的證書(shū)形成匹配的簽名如果強(qiáng)行篡改,客戶(hù)端在收到該證書(shū)之后,會(huì)發(fā)現(xiàn)明文和簽名解密后的值不一樣,則說(shuō)明證書(shū)已經(jīng)被篡改過(guò)了,證書(shū)不可信,從而終止與服務(wù)器之間的通信,防止信息泄露給中間人。

中間人有沒(méi)有可能整個(gè)調(diào)包證書(shū)?

因?yàn)橹虚g?沒(méi)有CA私鑰,所以?法制作假的證書(shū)(為什么?)所以中間?只能向CA申請(qǐng)真證書(shū),然后???申請(qǐng)的證書(shū)進(jìn)?掉包這個(gè)確實(shí)能做到證書(shū)的整體掉包,但是別忘記,證書(shū)明?中包含了域名等服務(wù)端認(rèn)證信息,如果整體掉包,客?端依舊能夠識(shí)別出來(lái)。永遠(yuǎn)記?。褐虚g?沒(méi)有CA私鑰,所以對(duì)任何證書(shū)都?法進(jìn)?合法修改,包括自己的。

以上就是本篇所有內(nèi)容咯~

若有不足,歡迎指正~

?

柚子快報(bào)邀請(qǐng)碼778899分享:【網(wǎng)絡(luò)原理】HTTPS

http://yzkb.51969.com/

推薦鏈接

評(píng)論可見(jiàn),查看隱藏內(nèi)容

本文內(nèi)容根據(jù)網(wǎng)絡(luò)資料整理,出于傳遞更多信息之目的,不代表金鑰匙跨境贊同其觀點(diǎn)和立場(chǎng)。

轉(zhuǎn)載請(qǐng)注明,如有侵權(quán),聯(lián)系刪除。

本文鏈接:http://gantiao.com.cn/post/19823322.html

發(fā)布評(píng)論

您暫未設(shè)置收款碼

請(qǐng)?jiān)谥黝}配置——文章設(shè)置里上傳

掃描二維碼手機(jī)訪(fǎng)問(wèn)

文章目錄