2022-07-23 分類: 網(wǎng)站建設(shè)
最近大家在使用百度、谷歌或淘寶的時候,是不是注意瀏覽器左上角已經(jīng)全部出現(xiàn)了一把綠色鎖,這把鎖表明該網(wǎng)站已經(jīng)使用了 HTTPS 進(jìn)行保護(hù)。仔細(xì)觀察,會發(fā)現(xiàn)這些網(wǎng)站已經(jīng)全站使用 HTTPS。同時,iOS 9 系統(tǒng)默認(rèn)把所有的 http 請求都改為 HTTPS 請求。隨著互聯(lián)網(wǎng)的發(fā)展,現(xiàn)代互聯(lián)網(wǎng)正在逐漸進(jìn)入全站 HTTPS 時代。
全站 HTTPS 能夠帶來怎樣的優(yōu)勢?HTTPS 的原理又是什么?同時,阻礙 HTTPS 普及的困難是什么?
為了解答大家的困惑,騰訊TEG架構(gòu)平臺部靜態(tài)加速組高級工程師劉強(qiáng),為大家綜合參考多種資料并經(jīng)過實踐驗證,探究 HTTPS 的基礎(chǔ)原理,分析基本的 HTTPS 通信過程,迎接全站 HTTPS 的來臨。
1.HTTPS 基礎(chǔ)
HTTPS(Secure Hypertext Transfer Protocol)安全超文本傳輸協(xié)議 它是一個安全通信通道,它基于HTTP開發(fā),用于在客戶計算機(jī)和服務(wù)器之間交換信息。它使用安全套接字層(SSL)進(jìn)行信息交換,簡單來說它是HTTP的安全版,是使用 TLS/SSL 加密的 HTTP 協(xié)議。
HTTP 協(xié)議采用明文傳輸信息,存在信息竊聽、信息篡改和信息劫持的風(fēng)險,而協(xié)議 TLS/SSL 具有身份驗證、信息加密和完整性校驗的功能,可以避免此類問題。
TLS/SSL 全稱安全傳輸層協(xié)議 Transport Layer Security, 是介于 TCP 和 HTTP 之間的一層安全協(xié)議,不影響原有的 TCP 協(xié)議和 HTTP 協(xié)議,所以使用 HTTPS 基本上不需要對 HTTP 頁面進(jìn)行太多的改造。
2.TLS/SSL 原理
HTTPS 協(xié)議的主要功能基本都依賴于 TLS/SSL 協(xié)議,本節(jié)分析安全協(xié)議的實現(xiàn)原理。
TLS/SSL 的功能實現(xiàn)主要依賴于三類基本算法:散列函數(shù) Hash、對稱加密和非對稱加密,其利用非對稱加密實現(xiàn)身份認(rèn)證和密鑰協(xié)商,對稱加密算法采用協(xié)商的密鑰對數(shù)據(jù)加密,基于散列函數(shù)驗證信息的完整性。
散列函數(shù) Hash,常見的有 MD5、SHA1、SHA256,該類函數(shù)特點是函數(shù)單向不可逆、對輸入非常敏感、輸出長度固定,針對數(shù)據(jù)的任何修改都會改變散列函數(shù)的結(jié)果,用于防止信息篡改并驗證數(shù)據(jù)的完整性;對稱加密,常見的有 AES-CBC、DES、3DES、AES-GCM等,相同的密鑰可以用于信息的加密和解密,掌握密鑰才能獲取信息,能夠防止信息竊聽,通信方式是1對1;非對稱加密,即常見的 RSA 算法,還包括 ECC、DH 等算法,算法特點是,密鑰成對出現(xiàn),一般稱為公鑰(公開)和私鑰(保密),公鑰加密的信息只能私鑰解開,私鑰加密的信息只能公鑰解開。因此掌握公鑰的不同客戶端之間不能互相解密信息,只能和掌握私鑰的服務(wù)器進(jìn)行加密通信,服務(wù)器可以實現(xiàn)1對多的通信,客戶端也可以用來驗證掌握私鑰的服務(wù)器身份。
在信息傳輸過程中,散列函數(shù)不能單獨實現(xiàn)信息防篡改,因為明文傳輸,中間人可以修改信息之后重新計算信息摘要,因此需要對傳輸?shù)男畔⒁约靶畔⒄M(jìn)行加密;對稱加密的優(yōu)勢是信息傳輸1對1,需要共享相同的密碼,密碼的安全是保證信息安全的基礎(chǔ),服務(wù)器和 N 個客戶端通信,需要維持 N 個密碼記錄,且缺少修改密碼的機(jī)制;非對稱加密的特點是信息傳輸1對多,服務(wù)器只需要維持一個私鑰就能夠和多個客戶端進(jìn)行加密通信,但服務(wù)器發(fā)出的信息能夠被所有的客戶端解密,且該算法的計算復(fù)雜,加密速度慢。
結(jié)合三類算法的特點,TLS 的基本工作方式是,客戶端使用非對稱加密與服務(wù)器進(jìn)行通信,實現(xiàn)身份驗證并協(xié)商對稱加密使用的密鑰,然后對稱加密算法采用協(xié)商密鑰對信息以及信息摘要進(jìn)行加密通信,不同的節(jié)點之間采用的對稱密鑰不同,從而可以保證信息只能通信雙方獲取。
3.PKI 體系 3.1 RSA 身份驗證的隱患
身份驗證和密鑰協(xié)商是 TLS 的基礎(chǔ)功能,要求的前提是合法的服務(wù)器掌握著對應(yīng)的私鑰。但 RSA 算法無法確保服務(wù)器身份的合法性,因為公鑰并不包含服務(wù)器的信息,存在安全隱患:
客戶端 C 和服務(wù)器 S 進(jìn)行通信,中間節(jié)點 M 截獲了二者的通信;
節(jié)點 M 自己計算產(chǎn)生一對公鑰 pub_M 和私鑰 pri_M;
C 向 S 請求公鑰時,M 把自己的公鑰 pub_M 發(fā)給了 C;
C 使用公鑰 pub_M 加密的數(shù)據(jù)能夠被 M 解密,因為 M 掌握對應(yīng)的私鑰 pri_M,而 C 無法根據(jù)公鑰信息判斷服務(wù)器的身份,從而 C 和 M 之間建立了”可信”加密連接;
中間節(jié)點 M 和服務(wù)器S之間再建立合法的連接,因此 C 和 S 之間通信被M完全掌握,M 可以進(jìn)行信息的竊聽、篡改等操作。
另外,服務(wù)器也可以對自己的發(fā)出的信息進(jìn)行否認(rèn),不承認(rèn)相關(guān)信息是自己發(fā)出。
因此該方案下至少存在兩類問題:中間人攻擊和信息抵賴。
3.2 身份驗證-CA 和證書
解決上述身份驗證問題的關(guān)鍵是確保獲取的公鑰途徑是合法的,能夠驗證服務(wù)器的身份信息,為此需要引入權(quán)威的第三方機(jī)構(gòu) CA。CA 負(fù)責(zé)核實公鑰的擁有者的信息,并頒發(fā)認(rèn)證”證書”,同時能夠為使用者提供證書驗證服務(wù),即 PKI 體系。
基本的原理為,CA 負(fù)責(zé)審核信息,然后對關(guān)鍵信息利用私鑰進(jìn)行”簽名”,公開對應(yīng)的公鑰,客戶端可以利用公鑰驗證簽名。CA 也可以吊銷已經(jīng)簽發(fā)的證書,基本的方式包括兩類 CRL 文件和 OCSP。CA 使用具體的流程如下:
a.服務(wù)方 S 向第三方機(jī)構(gòu)CA提交公鑰、組織信息、個人信息(域名)等信息并申請認(rèn)證;
b.CA 通過線上、線下等多種手段驗證申請者提供信息的真實性,如組織是否存在、企業(yè)是否合法,是否擁有域名的所有權(quán)等;
c.如信息審核通過,CA 會向申請者簽發(fā)認(rèn)證文件-證書。
證書包含以下信息:申請者公鑰、申請者的組織信息和個人信息、簽發(fā)機(jī)構(gòu) CA 的信息、有效時間、證書序列號等信息的明文,同時包含一個簽名;
簽名的產(chǎn)生算法:首先,使用散列函數(shù)計算公開的明文信息的信息摘要,然后,采用 CA 的私鑰對信息摘要進(jìn)行加密,密文即簽名;
d.客戶端 C 向服務(wù)器 S 發(fā)出請求時,S 返回證書文件;
e.客戶端 C 讀取證書中的相關(guān)的明文信息,采用相同的散列函數(shù)計算得到信息摘要,然后,利用對應(yīng) CA 的公鑰解密簽名數(shù)據(jù),對比證書的信息摘要,如果一致,則可以確認(rèn)證書的合法性,即公鑰合法;
f.客戶端然后驗證證書相關(guān)的域名信息、有效時間等信息;
g.客戶端會內(nèi)置信任 CA 的證書信息(包含公鑰),如果CA不被信任,則找不到對應(yīng) CA 的證書,證書也會被判定非法。
在這個過程注意幾點:
a.申請證書不需要提供私鑰,確保私鑰永遠(yuǎn)只能服務(wù)器掌握;
b.證書的合法性仍然依賴于非對稱加密算法,證書主要是增加了服務(wù)器信息以及簽名;
c.內(nèi)置 CA 對應(yīng)的證書稱為根證書,頒發(fā)者和使用者相同,自己為自己簽名,即自簽名證書;
d.證書=公鑰+申請者與頒發(fā)者信息+簽名;
本文題目:HTTPS與HTTP有何不同?
本文來源:http://jinyejixie.com/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)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容