中文字幕日韩精品一区二区免费_精品一区二区三区国产精品无卡在_国精品无码专区一区二区三区_国产αv三级中文在线

互聯(lián)網(wǎng)迎來(lái)了“HTTPS加密時(shí)代”

2021-02-11    分類(lèi): 網(wǎng)站建設(shè)

近幾年,互聯(lián)網(wǎng)發(fā)生著翻天覆地的變化,尤其是我們一直習(xí)以為常的HTTP協(xié)議,在逐漸的被HTTPS協(xié)議所取代,在瀏覽器、搜索引擎、CA機(jī)構(gòu)、大型互聯(lián)網(wǎng)企業(yè)的共同促進(jìn)下,互聯(lián)網(wǎng)迎來(lái)了“HTTPS加密時(shí)代”,HTTPS將在未來(lái)的幾年內(nèi)全面取代HTTP成為傳輸協(xié)議的主流。

讀完本文,希望你能明白:

  • HTTP通信存在什么問(wèn)題
  • HTTPS如何改進(jìn)HTTP存在那些問(wèn)題
  • HTTPS工作原理是什么

一、什么是HTTPS

HTTPS是在HTTP上建立ssl加密層,并對(duì)傳輸數(shù)據(jù)進(jìn)行加密,是HTTP協(xié)議的安全版。現(xiàn)在它被廣泛用于萬(wàn)維網(wǎng)上安全敏感的通訊,例如交易支付方面。

HTTPS主要作用是:

(1)對(duì)數(shù)據(jù)進(jìn)行加密,并建立一個(gè)信息安全通道,來(lái)保證傳輸過(guò)程中的數(shù)據(jù)安全;

(2)對(duì)網(wǎng)站服務(wù)器進(jìn)行真實(shí)身份認(rèn)證。

我們經(jīng)常會(huì)在Web的登錄頁(yè)面和購(gòu)物結(jié)算界面等使用HTTPS通信。使用HTTPS通信時(shí),不再用http://,而是改用https://。另外,當(dāng)瀏覽器訪(fǎng)問(wèn)HTTPS通信有效的Web網(wǎng)站時(shí),瀏覽器的地址欄內(nèi)會(huì)出現(xiàn)一個(gè)帶鎖的標(biāo)記。對(duì)HTTPS的顯示方式會(huì)因?yàn)g覽器的不同而有所改變。


二、為什么需要HTTPS

在HTTP協(xié)議中有可能存在信息竊取或身份偽裝等安全問(wèn)題。使用HTTPS通信機(jī)制可以有效地防止這些問(wèn)題,接下來(lái),我們先來(lái)了解下

HTTP協(xié)議存在的哪些問(wèn)題:

  • 通信使用明文(不加密),內(nèi)容可能被竊聽(tīng)

由于HTTP本身不具備加密的功能,所以也無(wú)法做到對(duì)通信整體(使用HTTP協(xié)議通信的請(qǐng)求和響應(yīng)的內(nèi)容)進(jìn)行加密。即,HTTP報(bào)文使用明文(指未經(jīng)過(guò)加密的報(bào)文)方式發(fā)送。

HTTP明文協(xié)議的缺陷是導(dǎo)致數(shù)據(jù)泄露、數(shù)據(jù)篡改、流量劫持、釣魚(yú)攻擊等安全問(wèn)題的重要原因。HTTP協(xié)議無(wú)法加密數(shù)據(jù),所有通信數(shù)據(jù)都在網(wǎng)絡(luò)中明文“裸奔”。通過(guò)網(wǎng)絡(luò)的嗅探設(shè)備及一些技術(shù)手段,就可還原HTTP報(bào)文內(nèi)容。

  • 無(wú)法證明報(bào)文的完整性,所以可能遭篡改

所謂完整性是指信息的準(zhǔn)確度。若無(wú)法證明其完整性,通常也就意味著無(wú)法判斷信息是否準(zhǔn)確。由于HTTP協(xié)議無(wú)法證明通信的報(bào)文完整性,因此,在請(qǐng)求或響應(yīng)送出之后直到對(duì)方接收之前的這段時(shí)間內(nèi),即使請(qǐng)求或響應(yīng)的內(nèi)容遭到篡改,也沒(méi)有辦法獲悉。

換句話(huà)說(shuō),沒(méi)有任何辦法確認(rèn),發(fā)出的請(qǐng)求/響應(yīng)和接收到的請(qǐng)求/響應(yīng)是前后相同的。

  • 不驗(yàn)證通信方的身份,因此有可能遭遇偽裝

HTTP協(xié)議中的請(qǐng)求和響應(yīng)不會(huì)對(duì)通信方進(jìn)行確認(rèn)。在HTTP協(xié)議通信時(shí),由于不存在確認(rèn)通信方的處理步驟,任何人都可以發(fā)起請(qǐng)求。另外,服務(wù)器只要接收到請(qǐng)求,不管對(duì)方是誰(shuí)都會(huì)返回一個(gè)響應(yīng)(但也僅限于發(fā)送端的IP地址和端口號(hào)沒(méi)有被Web服務(wù)器設(shè)定限制訪(fǎng)問(wèn)的前提下)

HTTP協(xié)議無(wú)法驗(yàn)證通信方身份,任何人都可以偽造虛假服務(wù)器欺騙用戶(hù),實(shí)現(xiàn)“釣魚(yú)欺詐”,用戶(hù)無(wú)法察覺(jué)。

反觀HTTPS協(xié)議,它比HTTP協(xié)議相比多了以下優(yōu)勢(shì)(下文會(huì)詳細(xì)介紹):

  • 數(shù)據(jù)隱私性:內(nèi)容經(jīng)過(guò)對(duì)稱(chēng)加密,每個(gè)連接生成一個(gè)唯一的加密密鑰
  • 數(shù)據(jù)完整性:內(nèi)容傳輸經(jīng)過(guò)完整性校驗(yàn)
  • 身份認(rèn)證:第三方無(wú)法偽造服務(wù)端(客戶(hù)端)身份

三、HTTPS如何解決HTTP上述問(wèn)題?

HTTPS并非是應(yīng)用層的一種新協(xié)議。只是HTTP通信接口部分用ssl和TLS協(xié)議代替而已。

通常,HTTP直接和TCP通信。當(dāng)使用ssl時(shí),則演變成先和ssl通信,再由ssl和TCP通信了。簡(jiǎn)言之,所謂HTTPS,其實(shí)就是身披ssl協(xié)議這層外殼的HTTP。


在采用ssl后,HTTP就擁有了HTTPS的加密、證書(shū)和完整性保護(hù)這些功能。也就是說(shuō)HTTP加上加密處理和認(rèn)證以及完整性保護(hù)后即是HTTPS。


HTTPS 協(xié)議的主要功能基本都依賴(lài)于 TLS/ssl 協(xié)議,TLS/ssl 的功能實(shí)現(xiàn)主要依賴(lài)于三類(lèi)基本算法:散列函數(shù) 、對(duì)稱(chēng)加密和非對(duì)稱(chēng)加密,其利用非對(duì)稱(chēng)加密實(shí)現(xiàn)身份認(rèn)證和密鑰協(xié)商,對(duì)稱(chēng)加密算法采用協(xié)商的密鑰對(duì)數(shù)據(jù)加密,基于散列函數(shù)驗(yàn)證信息的完整性。


1.解決內(nèi)容可能被竊聽(tīng)的問(wèn)題——加密

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

這種方式加密和解密同用一個(gè)密鑰。加密和解密都會(huì)用到密鑰。沒(méi)有密鑰就無(wú)法對(duì)密碼解密,反過(guò)來(lái)說(shuō),任何人只要持有密鑰就能解密了。

以對(duì)稱(chēng)加密方式加密時(shí)必須將密鑰也發(fā)給對(duì)方。可究竟怎樣才能安全地轉(zhuǎn)交?在互聯(lián)網(wǎng)上轉(zhuǎn)發(fā)密鑰時(shí),如果通信被監(jiān)聽(tīng)那么密鑰就可會(huì)落人攻擊者之手,同時(shí)也就失去了加密的意義。另外還得設(shè)法安全地保管接收到的密鑰。

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

公開(kāi)密鑰加密使用一對(duì)非對(duì)稱(chēng)的密鑰。一把叫做私有密鑰,另一把叫做公開(kāi)密鑰。顧名思義,私有密鑰不能讓其他任何人知道,而公開(kāi)密鑰則可以隨意發(fā)布,任何人都可以獲得。

使用公開(kāi)密鑰加密方式,發(fā)送密文的一方使用對(duì)方的公開(kāi)密鑰進(jìn)行加密處理,對(duì)方收到被加密的信息后,再使用自己的私有密鑰進(jìn)行解密。利用這種方式,不需要發(fā)送用來(lái)解密的私有密鑰,也不必?fù)?dān)心密鑰被攻擊者竊聽(tīng)而盜走。


非對(duì)稱(chēng)加密的特點(diǎn)是信息傳輸一對(duì)多,服務(wù)器只需要維持一個(gè)私鑰就能夠和多個(gè)客戶(hù)端進(jìn)行加密通信。

這種方式有以下缺點(diǎn):

  • 公鑰是公開(kāi)的,所以針對(duì)私鑰加密的信息,黑客截獲后可以使用公鑰進(jìn)行解密,獲取其中的內(nèi)容;
  • 公鑰并不包含服務(wù)器的信息,使用非對(duì)稱(chēng)加密算法無(wú)法確保服務(wù)器身份的合法性,存在中間人攻擊的風(fēng)險(xiǎn),服務(wù)器發(fā)送給客戶(hù)端的公鑰可能在傳送過(guò)程中被中間人截獲并篡改;
  • 使用非對(duì)稱(chēng)加密在數(shù)據(jù)加密解密過(guò)程需要消耗一定時(shí)間,降低了數(shù)據(jù)傳輸效率;

方法3.對(duì)稱(chēng)加密+非對(duì)稱(chēng)加密(HTTPS采用這種方式)

使用對(duì)稱(chēng)密鑰的好處是解密的效率比較快,使用非對(duì)稱(chēng)密鑰的好處是可以使得傳輸?shù)膬?nèi)容不能被破解,因?yàn)榫退隳銛r截到了數(shù)據(jù),但是沒(méi)有對(duì)應(yīng)的私鑰,也是不能破解內(nèi)容的。就比如說(shuō)你搶到了一個(gè)保險(xiǎn)柜,但是沒(méi)有保險(xiǎn)柜的鑰匙也不能打開(kāi)保險(xiǎn)柜。那我們就將對(duì)稱(chēng)加密與非對(duì)稱(chēng)加密結(jié)合起來(lái),充分利用兩者各自的優(yōu)勢(shì),在交換密鑰環(huán)節(jié)使用非對(duì)稱(chēng)加密方式,之后的建立通信交換報(bào)文階段則使用對(duì)稱(chēng)加密方式。

具體做法是:發(fā)送密文的一方使用對(duì)方的公鑰進(jìn)行加密處理“對(duì)稱(chēng)的密鑰”,然后對(duì)方用自己的私鑰解密拿到“對(duì)稱(chēng)的密鑰”,這樣可以確保交換的密鑰是安全的前提下,使用對(duì)稱(chēng)加密方式進(jìn)行通信。所以,HTTPS采用對(duì)稱(chēng)加密和非對(duì)稱(chēng)加密兩者并用的混合加密機(jī)制。

2.解決報(bào)文可能遭篡改問(wèn)題——數(shù)字簽名

網(wǎng)絡(luò)傳輸過(guò)程中需要經(jīng)過(guò)很多中間節(jié)點(diǎn),雖然數(shù)據(jù)無(wú)法被解密,但可能被篡改,那如何校驗(yàn)數(shù)據(jù)的完整性呢?----校驗(yàn)數(shù)字簽名。

數(shù)字簽名有兩種功效:

  • 能確定消息確實(shí)是由發(fā)送方簽名并發(fā)出來(lái)的,因?yàn)閯e人假冒不了發(fā)送方的簽名。
  • 數(shù)字簽名能確定消息的完整性,證明數(shù)據(jù)是否未被篡改過(guò)。

數(shù)字簽名如何生成:


將一段文本先用Hash函數(shù)生成消息摘要,然后用發(fā)送者的私鑰加密生成數(shù)字簽名,與原文文一起傳送給接收者。接下來(lái)就是接收者校驗(yàn)數(shù)字簽名的流程了。

校驗(yàn)數(shù)字簽名流程:


接收者只有用發(fā)送者的公鑰才能解密被加密的摘要信息,然后用HASH函數(shù)對(duì)收到的原文產(chǎn)生一個(gè)摘要信息,與上一步得到的摘要信息對(duì)比。如果相同,則說(shuō)明收到的信息是完整的,在傳輸過(guò)程中沒(méi)有被修改,否則說(shuō)明信息被修改過(guò),因此數(shù)字簽名能夠驗(yàn)證信息的完整性。

假設(shè)消息傳遞在Kobe,James兩人之間發(fā)生。James將消息連同數(shù)字簽名一起發(fā)送給Kobe,Kobe接收到消息后,通過(guò)校驗(yàn)數(shù)字簽名,就可以驗(yàn)證接收到的消息就是James發(fā)送的。當(dāng)然,這個(gè)過(guò)程的前提是Kobe知道James的公鑰。問(wèn)題的關(guān)鍵的是,和消息本身一樣,公鑰不能在不安全的網(wǎng)絡(luò)中直接發(fā)送給Kobe,或者說(shuō)拿到的公鑰如何證明是James的。

此時(shí)就需要引入了證書(shū)頒發(fā)機(jī)構(gòu)(Certificate Authority,簡(jiǎn)稱(chēng)CA),CA數(shù)量并不多,Kobe客戶(hù)端內(nèi)置了所有受信任CA的證書(shū)。CA對(duì)James的公鑰(和其他信息)數(shù)字簽名后生成證書(shū)。

3.解決通信方身份可能被偽裝的問(wèn)題——數(shù)字證書(shū)

數(shù)字證書(shū)認(rèn)證機(jī)構(gòu)處于客戶(hù)端與服務(wù)器雙方都可信賴(lài)的第三方機(jī)構(gòu)的立場(chǎng)上。


我們來(lái)介紹一下數(shù)字證書(shū)認(rèn)證機(jī)構(gòu)的業(yè)務(wù)流程:

  • 服務(wù)器的運(yùn)營(yíng)人員向第三方機(jī)構(gòu)CA提交公鑰、組織信息、個(gè)人信息(域名)等信息并申請(qǐng)認(rèn)證;
  • CA通過(guò)線(xiàn)上、線(xiàn)下等多種手段驗(yàn)證申請(qǐng)者提供信息的真實(shí)性,如組織是否存在、企業(yè)是否合法,是否擁有域名的所有權(quán)等;
  • 如信息審核通過(guò),CA會(huì)向申請(qǐng)者簽發(fā)認(rèn)證文件-證書(shū)。證書(shū)包含以下信息:申請(qǐng)者公鑰、申請(qǐng)者的組織信息和個(gè)人信息、簽發(fā)機(jī)構(gòu) CA的信息、有效時(shí)間、證書(shū)序列號(hào)等信息的明文,同時(shí)包含一個(gè)簽名。 其中簽名的產(chǎn)生算法:首先,使用散列函數(shù)計(jì)算公開(kāi)的明文信息的信息摘要,然后,采用 CA的私鑰對(duì)信息摘要進(jìn)行加密,密文即簽名;
  • 客戶(hù)端 Client 向服務(wù)器 Server 發(fā)出請(qǐng)求時(shí),Server 返回證書(shū)文件;
  • 客戶(hù)端 Client 讀取證書(shū)中的相關(guān)的明文信息,采用相同的散列函數(shù)計(jì)算得到信息摘要,然后,利用對(duì)應(yīng) CA的公鑰解密簽名數(shù)據(jù),對(duì)比證書(shū)的信息摘要,如果一致,則可以確認(rèn)證書(shū)的合法性,即服務(wù)器的公開(kāi)密鑰是值得信賴(lài)的。
  • 客戶(hù)端還會(huì)驗(yàn)證證書(shū)相關(guān)的域名信息、有效時(shí)間等信息; 客戶(hù)端會(huì)內(nèi)置信任CA的證書(shū)信息(包含公鑰),如果CA不被信任,則找不到對(duì)應(yīng) CA的證書(shū),證書(shū)也會(huì)被判定非法。

四、 HTTPS工作流程


1.Client發(fā)起一個(gè)HTTPS(比如https://juejin.im/user/5a9a9cdcf265da238b7d771c)的請(qǐng)求,根據(jù)RFC2818的規(guī)定,Client知道需要連接Server的443(默認(rèn))端口。

2.Server把事先配置好的公鑰證書(shū)(public key certificate)返回給客戶(hù)端。

3.Client驗(yàn)證公鑰證書(shū):比如是否在有效期內(nèi),證書(shū)的用途是不是匹配Client請(qǐng)求的站點(diǎn),是不是在CRL吊銷(xiāo)列表里面,它的上一級(jí)證書(shū)是否有效,這是一個(gè)遞歸的過(guò)程,直到驗(yàn)證到根證書(shū)(操作系統(tǒng)內(nèi)置的Root證書(shū)或者Client內(nèi)置的Root證書(shū))。如果驗(yàn)證通過(guò)則繼續(xù),不通過(guò)則顯示警告信息。

4.Client使用偽隨機(jī)數(shù)生成器生成加密所使用的對(duì)稱(chēng)密鑰,然后用證書(shū)的公鑰加密這個(gè)對(duì)稱(chēng)密鑰,發(fā)給Server。

5.Server使用自己的私鑰(private key)解密這個(gè)消息,得到對(duì)稱(chēng)密鑰。至此,Client和Server雙方都持有了相同的對(duì)稱(chēng)密鑰。

6.Server使用對(duì)稱(chēng)密鑰加密“明文內(nèi)容A”,發(fā)送給Client。

7.Client使用對(duì)稱(chēng)密鑰解密響應(yīng)的密文,得到“明文內(nèi)容A”。

8.Client再次發(fā)起HTTPS的請(qǐng)求,使用對(duì)稱(chēng)密鑰加密請(qǐng)求的“明文內(nèi)容B”,然后Server使用對(duì)稱(chēng)密鑰解密密文,得到“明文內(nèi)容B”。

五、HTTP 與 HTTPS 的區(qū)別

  • HTTP 是明文傳輸協(xié)議,HTTPS 協(xié)議是由 ssl+HTTP 協(xié)議構(gòu)建的可進(jìn)行加密傳輸、身份認(rèn)證的網(wǎng)絡(luò)協(xié)議,比 HTTP 協(xié)議安全。

關(guān)于安全性,用最簡(jiǎn)單的比喻形容兩者的關(guān)系就是卡車(chē)運(yùn)貨,HTTP下的運(yùn)貨車(chē)是敞篷的,貨物都是暴露的。而https則是封閉集裝箱車(chē),安全性自然提升不少。

  • HTTPS比HTTP更加安全,對(duì)搜索引擎更友好,利于SEO,谷歌、百度優(yōu)先索引HTTPS網(wǎng)頁(yè);
  • HTTPS需要用到ssl證書(shū),而HTTP不用;
  • HTTPS標(biāo)準(zhǔn)端口443,HTTP標(biāo)準(zhǔn)端口80;
  • HTTPS基于傳輸層,HTTP基于應(yīng)用層;
  • HTTPS在瀏覽器顯示綠色安全鎖,HTTP沒(méi)有顯示;

六、為何不所有的網(wǎng)站都使用HTTPS

既然HTTPS那么安全可靠,那為何不所有的Web網(wǎng)站都使用HTTPS?

首先,很多人還是會(huì)覺(jué)得HTTPS實(shí)施有門(mén)檻,這個(gè)門(mén)檻在于需要權(quán)威CA頒發(fā)的ssl證書(shū)。從證書(shū)的選擇、購(gòu)買(mǎi)到部署,傳統(tǒng)的模式下都會(huì)比較耗時(shí)耗力。

其次,HTTPS普遍認(rèn)為性能消耗要大于HTTP,因?yàn)榕c純文本通信相比,加密通信會(huì)消耗更多的CPU及內(nèi)存資源。如果每次通信都加密,會(huì)消耗相當(dāng)多的資源,平攤到一臺(tái)計(jì)算機(jī)上時(shí),能夠處理的請(qǐng)求數(shù)量必定也會(huì)隨之減少。但事實(shí)并非如此,用戶(hù)可以通過(guò)性能優(yōu)化、把證書(shū)部署在SLB或CDN,來(lái)解決此問(wèn)題。舉個(gè)實(shí)際的例子,“雙十一”期間,全站HTTPS的淘寶、天貓依然保證了網(wǎng)站和移動(dòng)端的訪(fǎng)問(wèn)、瀏覽、交易等操作的順暢、平滑。通過(guò)測(cè)試發(fā)現(xiàn),經(jīng)過(guò)優(yōu)化后的許多頁(yè)面性能與HTTP持平甚至還有小幅提升,因此HTTPS經(jīng)過(guò)優(yōu)化之后其實(shí)并不慢。

除此之外,想要節(jié)約購(gòu)買(mǎi)證書(shū)的開(kāi)銷(xiāo)也是原因之一。要進(jìn)行HTTPS通信,證書(shū)是必不可少的。而使用的證書(shū)必須向認(rèn)證機(jī)構(gòu)(CA)購(gòu)買(mǎi)。

最后是安全意識(shí)。相比國(guó)內(nèi),國(guó)外互聯(lián)網(wǎng)行業(yè)的安全意識(shí)和技術(shù)應(yīng)用相對(duì)成熟,HTTPS部署趨勢(shì)是由社會(huì)、企業(yè)、政府共同去推動(dòng)的。

參考文章與書(shū)籍

  • 圖解HTTP
  • 珠峰架構(gòu)課(推薦)
  • 數(shù)字簽名是什么?(推薦)
  • HTTPS工作原理
  • HTTPS 原理詳解
  • 詳解HTTPS是如何確保安全性的?
  • HTTPS工作流程
  • 為什么HTTPS比HTTP更安全

網(wǎng)頁(yè)名稱(chēng):互聯(lián)網(wǎng)迎來(lái)了“HTTPS加密時(shí)代”
文章出自:http://www.rwnh.cn/news/100338.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供靜態(tài)網(wǎng)站外貿(mào)網(wǎng)站建設(shè)、搜索引擎優(yōu)化微信公眾號(hào)、企業(yè)網(wǎng)站制作、網(wǎng)站設(shè)計(jì)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶(hù)投稿、用戶(hù)轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話(huà):028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

成都定制網(wǎng)站網(wǎng)頁(yè)設(shè)計(jì)
阜新市| 鸡东县| 秦安县| 财经| 云安县| 石楼县| 新沂市| 南召县| 寻乌县| 昭通市| 洛川县| 衢州市| 泾阳县| 北宁市| 古丈县| 龙州县| 佛教| 六盘水市| 汤阴县| 阜南县| 弋阳县| 津南区| 洞头县| 扶余县| 临泽县| 乐陵市| 白玉县| 铁岭县| 钦州市| 芜湖市| 沽源县| 绵竹市| 云和县| 北川| 彭山县| 平利县| 开原市| 营口市| 晋江市| 油尖旺区| 吴江市|