HTTPS與HTTP有何不同?

2022-07-23    分類: 網(wǎng)站建設(shè)

最近大家在使用百度、谷歌或淘寶的時(shí)候,是不是注意瀏覽器左上角已經(jīng)全部出現(xiàn)了一把綠色鎖,這把鎖表明該網(wǎng)站已經(jīng)使用了 HTTPS 進(jìn)行保護(hù)。仔細(xì)觀察,會(huì)發(fā)現(xiàn)這些網(wǎng)站已經(jīng)全站使用 HTTPS。同時(shí),iOS 9 系統(tǒng)默認(rèn)把所有的 http 請(qǐng)求都改為 HTTPS 請(qǐng)求。隨著互聯(lián)網(wǎng)的發(fā)展,現(xiàn)代互聯(lián)網(wǎng)正在逐漸進(jìn)入全站 HTTPS 時(shí)代。
全站 HTTPS 能夠帶來怎樣的優(yōu)勢(shì)?HTTPS 的原理又是什么?同時(shí),阻礙 HTTPS 普及的困難是什么?
為了解答大家的困惑,騰訊TEG架構(gòu)平臺(tái)部靜態(tài)加速組高級(jí)工程師劉強(qiáng),為大家綜合參考多種資料并經(jīng)過實(shí)踐驗(yàn)證,探究 HTTPS 的基礎(chǔ)原理,分析基本的 HTTPS 通信過程,迎接全站 HTTPS 的來臨。

1.HTTPS 基礎(chǔ)

HTTPS(Secure Hypertext Transfer Protocol)安全超文本傳輸協(xié)議 它是一個(gè)安全通信通道,它基于HTTP開發(fā),用于在客戶計(jì)算機(jī)和服務(wù)器之間交換信息。它使用安全套接字層(SSL)進(jìn)行信息交換,簡單來說它是HTTP的安全版,是使用 TLS/SSL 加密的 HTTP 協(xié)議。

HTTP 協(xié)議采用明文傳輸信息,存在信息竊聽、信息篡改和信息劫持的風(fēng)險(xiǎn),而協(xié)議 TLS/SSL 具有身份驗(yàn)證、信息加密和完整性校驗(yàn)的功能,可以避免此類問題。

TLS/SSL 全稱安全傳輸層協(xié)議 Transport Layer Security, 是介于 TCP 和 HTTP 之間的一層安全協(xié)議,不影響原有的 TCP 協(xié)議和 HTTP 協(xié)議,所以使用 HTTPS 基本上不需要對(duì) HTTP 頁面進(jìn)行太多的改造。


2.TLS/SSL 原理

HTTPS 協(xié)議的主要功能基本都依賴于 TLS/SSL 協(xié)議,本節(jié)分析安全協(xié)議的實(shí)現(xiàn)原理。

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


散列函數(shù) Hash,常見的有 MD5、SHA1、SHA256,該類函數(shù)特點(diǎn)是函數(shù)單向不可逆、對(duì)輸入非常敏感、輸出長度固定,針對(duì)數(shù)據(jù)的任何修改都會(huì)改變散列函數(shù)的結(jié)果,用于防止信息篡改并驗(yàn)證數(shù)據(jù)的完整性;對(duì)稱加密,常見的有 AES-CBC、DES、3DES、AES-GCM等,相同的密鑰可以用于信息的加密和解密,掌握密鑰才能獲取信息,能夠防止信息竊聽,通信方式是1對(duì)1;非對(duì)稱加密,即常見的 RSA 算法,還包括 ECC、DH 等算法,算法特點(diǎn)是,密鑰成對(duì)出現(xiàn),一般稱為公鑰(公開)和私鑰(保密),公鑰加密的信息只能私鑰解開,私鑰加密的信息只能公鑰解開。因此掌握公鑰的不同客戶端之間不能互相解密信息,只能和掌握私鑰的服務(wù)器進(jìn)行加密通信,服務(wù)器可以實(shí)現(xiàn)1對(duì)多的通信,客戶端也可以用來驗(yàn)證掌握私鑰的服務(wù)器身份。

在信息傳輸過程中,散列函數(shù)不能單獨(dú)實(shí)現(xiàn)信息防篡改,因?yàn)槊魑膫鬏?,中間人可以修改信息之后重新計(jì)算信息摘要,因此需要對(duì)傳輸?shù)男畔⒁约靶畔⒄M(jìn)行加密;對(duì)稱加密的優(yōu)勢(shì)是信息傳輸1對(duì)1,需要共享相同的密碼,密碼的安全是保證信息安全的基礎(chǔ),服務(wù)器和 N 個(gè)客戶端通信,需要維持 N 個(gè)密碼記錄,且缺少修改密碼的機(jī)制;非對(duì)稱加密的特點(diǎn)是信息傳輸1對(duì)多,服務(wù)器只需要維持一個(gè)私鑰就能夠和多個(gè)客戶端進(jìn)行加密通信,但服務(wù)器發(fā)出的信息能夠被所有的客戶端解密,且該算法的計(jì)算復(fù)雜,加密速度慢。

結(jié)合三類算法的特點(diǎn),TLS 的基本工作方式是,客戶端使用非對(duì)稱加密與服務(wù)器進(jìn)行通信,實(shí)現(xiàn)身份驗(yàn)證并協(xié)商對(duì)稱加密使用的密鑰,然后對(duì)稱加密算法采用協(xié)商密鑰對(duì)信息以及信息摘要進(jìn)行加密通信,不同的節(jié)點(diǎn)之間采用的對(duì)稱密鑰不同,從而可以保證信息只能通信雙方獲取。

3.PKI 體系 3.1 RSA 身份驗(yàn)證的隱患

身份驗(yàn)證和密鑰協(xié)商是 TLS 的基礎(chǔ)功能,要求的前提是合法的服務(wù)器掌握著對(duì)應(yīng)的私鑰。但 RSA 算法無法確保服務(wù)器身份的合法性,因?yàn)楣€并不包含服務(wù)器的信息,存在安全隱患:

客戶端 C 和服務(wù)器 S 進(jìn)行通信,中間節(jié)點(diǎn) M 截獲了二者的通信;

節(jié)點(diǎn) M 自己計(jì)算產(chǎn)生一對(duì)公鑰 pub_M 和私鑰 pri_M;

C 向 S 請(qǐng)求公鑰時(shí),M 把自己的公鑰 pub_M 發(fā)給了 C;

C 使用公鑰 pub_M 加密的數(shù)據(jù)能夠被 M 解密,因?yàn)?M 掌握對(duì)應(yīng)的私鑰 pri_M,而 C 無法根據(jù)公鑰信息判斷服務(wù)器的身份,從而 C 和 M 之間建立了”可信”加密連接;

中間節(jié)點(diǎn) M 和服務(wù)器S之間再建立合法的連接,因此 C 和 S 之間通信被M完全掌握,M 可以進(jìn)行信息的竊聽、篡改等操作。

另外,服務(wù)器也可以對(duì)自己的發(fā)出的信息進(jìn)行否認(rèn),不承認(rèn)相關(guān)信息是自己發(fā)出。

因此該方案下至少存在兩類問題:中間人攻擊和信息抵賴。


3.2 身份驗(yàn)證-CA 和證書

解決上述身份驗(yàn)證問題的關(guān)鍵是確保獲取的公鑰途徑是合法的,能夠驗(yàn)證服務(wù)器的身份信息,為此需要引入權(quán)威的第三方機(jī)構(gòu) CA。CA 負(fù)責(zé)核實(shí)公鑰的擁有者的信息,并頒發(fā)認(rèn)證”證書”,同時(shí)能夠?yàn)槭褂谜咛峁┳C書驗(yàn)證服務(wù),即 PKI 體系。

基本的原理為,CA 負(fù)責(zé)審核信息,然后對(duì)關(guān)鍵信息利用私鑰進(jìn)行”簽名”,公開對(duì)應(yīng)的公鑰,客戶端可以利用公鑰驗(yàn)證簽名。CA 也可以吊銷已經(jīng)簽發(fā)的證書,基本的方式包括兩類 CRL 文件和 OCSP。CA 使用具體的流程如下:


a.服務(wù)方 S 向第三方機(jī)構(gòu)CA提交公鑰、組織信息、個(gè)人信息(域名)等信息并申請(qǐng)認(rèn)證;

b.CA 通過線上、線下等多種手段驗(yàn)證申請(qǐng)者提供信息的真實(shí)性,如組織是否存在、企業(yè)是否合法,是否擁有域名的所有權(quán)等;

c.如信息審核通過,CA 會(huì)向申請(qǐng)者簽發(fā)認(rèn)證文件-證書。

證書包含以下信息:申請(qǐng)者公鑰、申請(qǐng)者的組織信息和個(gè)人信息、簽發(fā)機(jī)構(gòu) CA 的信息、有效時(shí)間、證書序列號(hào)等信息的明文,同時(shí)包含一個(gè)簽名;

簽名的產(chǎn)生算法:首先,使用散列函數(shù)計(jì)算公開的明文信息的信息摘要,然后,采用 CA 的私鑰對(duì)信息摘要進(jìn)行加密,密文即簽名;



d.客戶端 C 向服務(wù)器 S 發(fā)出請(qǐng)求時(shí),S 返回證書文件;

e.客戶端 C 讀取證書中的相關(guān)的明文信息,采用相同的散列函數(shù)計(jì)算得到信息摘要,然后,利用對(duì)應(yīng) CA 的公鑰解密簽名數(shù)據(jù),對(duì)比證書的信息摘要,如果一致,則可以確認(rèn)證書的合法性,即公鑰合法;

f.客戶端然后驗(yàn)證證書相關(guān)的域名信息、有效時(shí)間等信息;

g.客戶端會(huì)內(nèi)置信任 CA 的證書信息(包含公鑰),如果CA不被信任,則找不到對(duì)應(yīng) CA 的證書,證書也會(huì)被判定非法。

在這個(gè)過程注意幾點(diǎn):

a.申請(qǐng)證書不需要提供私鑰,確保私鑰永遠(yuǎn)只能服務(wù)器掌握;

b.證書的合法性仍然依賴于非對(duì)稱加密算法,證書主要是增加了服務(wù)器信息以及簽名;

c.內(nèi)置 CA 對(duì)應(yīng)的證書稱為根證書,頒發(fā)者和使用者相同,自己為自己簽名,即自簽名證書;

d.證書=公鑰+申請(qǐng)者與頒發(fā)者信息+簽名;

本文題目:HTTPS與HTTP有何不同?
本文來源:http://www.muchs.cn/news27/181677.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供商城網(wǎng)站、網(wǎng)站內(nèi)鏈、小程序開發(fā)靜態(tài)網(wǎng)站、手機(jī)網(wǎng)站建設(shè)網(wǎng)站排名

廣告

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

h5響應(yīng)式網(wǎng)站建設(shè)