溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

怎么深入解析HTTPS 協(xié)議

發(fā)布時間:2021-12-28 16:23:39 來源:億速云 閱讀:122 作者:柒染 欄目:云計算

今天就跟大家聊聊有關(guān)怎么深入解析HTTPS 協(xié)議,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結(jié)了以下內(nèi)容,希望大家根據(jù)這篇文章可以有所收獲。

一、微信小程序接入的困境

農(nóng)歷新年將至,微信小程序也如期發(fā)布,開發(fā)者在接入微信小程序過程中,會遇到以下問題:

小程序要求必須通過 HTTPS 完成與服務(wù)端通信,若開發(fā)者選擇自行搭建 HTTPS 服務(wù),那需要自行 SSL 證書申請、部署,完成 https 服務(wù)搭建,效率低流程冗長;且 HTTPS 的 SSL 加解析,對服務(wù)器的 CPU 有極大的開銷。

不僅僅是小程序,蘋果 iOS 平臺,Google Android 在 2017 也逐步強制要求開發(fā)者使用 HTTPS 接入。HTTPS 似乎是一個繞不開的門檻,讓不少開發(fā)者頭痛不已。

針對以上問題,騰訊云的負載均衡服務(wù)(cloud load balance),希望通過對 HTTPS 的性能優(yōu)化,提供一鍵式的 SSL 證書申請服務(wù),降低 HTTPS 的應(yīng)用門檻和使用成本,讓開發(fā)者能快速接入微信小程序等服務(wù)。首先,先讓我們看看 HTTP 與 HTTPS 的對比,逐一解開您的謎團。

二、為什么要接入 HTTPS—HTTP 的安全風險

HTTP 協(xié)議是一個非常簡單和高效的協(xié)議,互聯(lián)網(wǎng)大部分的主流應(yīng)用默認都是使用的HTTP。由于性能和上個世紀 90 年代使用環(huán)境的限制,HTTP 協(xié)議本身并不是一個為了安全設(shè)計的協(xié)議,既沒有身份認證,也沒有一致性檢驗,最頭疼的是,HTTP 所有的內(nèi)容都是明文傳輸?shù)摹?/p>

另外一方面,互聯(lián)網(wǎng)的發(fā)展也是日新月異,各種 HTTP 應(yīng)用不斷地滲透到人們生活的方方面面。不管是社交、購物、金融、游戲、還是搜索,這些 HTTP 服務(wù)都能帶給人們極大的便捷,提升生活質(zhì)量和效率。

顯然,HTTP 和人們生活及經(jīng)濟利益密切相關(guān),遺憾的是,它不安全。也就意味著這里一 定潛藏著巨大的安全隱患。這些隱患又集中表現(xiàn)在如下兩方面:

1、隱私泄露

由于 HTTP 本身是明文傳輸,用戶和服務(wù)端之間的傳輸內(nèi)容都能被中間者查看。也就是說 你在網(wǎng)上搜索、購物、訪問的網(wǎng)點、點擊的頁面等信息,都可以被「中間人」獲取。由于國人大多不太重視隱私的保護,這里的風險比較隱性,傷害后果也不太好定量評估。已知的一些比較嚴重的隱私泄露事件包括:

  1. QQ 登陸態(tài)被不法分子竊取,然后在異地登陸,進行廣告和欺詐行為。

  2. 用戶手機號和身份信息泄露。

  3. 用戶網(wǎng)上行為泄露。比如搜索了一所醫(yī)院,很快就會有人打電話進行推廣(非效果廣告)。

2、頁面劫持

隱私泄露的風險比較隱蔽,用戶基本感知不到。但另外一類劫持的影響就非常明顯非常直接了——頁面劫持,也就是直接篡改用戶的瀏覽頁面。有很多頁面劫持很簡單粗暴,直接插入第三方廣告或者運營商的流量提示信息。

怎么深入解析HTTPS 協(xié)議

但也有一些劫持做得比較隱蔽,比如下面的京東頁面劫持:其中上圖是使用 HTTP 方面的頁面,頂部箭頭所示的地方出現(xiàn)了一個購物推薦,很逼真,就像京東或者瀏覽器官方的工具。

怎么深入解析HTTPS 協(xié)議

但換成 HTTPS 訪問,就沒有這個工具頁面,顯然是被劫持了。

3、劫持路徑及分類

那劫持到底是如何產(chǎn)生的呢?從技術(shù)上來講比較簡單,在內(nèi)容經(jīng)過的地方進行監(jiān)聽篡改就行了。但要想把整個劫持的產(chǎn)業(yè)鏈條摸清楚,需要深入黑產(chǎn)內(nèi)部,比較困難。有一點可以肯定的是,劫持大部分都是在中間的網(wǎng)絡(luò)節(jié)點發(fā)生的,又叫「中間人」(MITM, man in the middle)。如下圖所示:

怎么深入解析HTTPS 協(xié)議

由于信息傳輸都需要經(jīng)過上述的「中間人節(jié)點」,它們又擁有信息的讀寫權(quán)限,如果信息沒有加密,也沒有校驗,那么想要查看隱私,篡改頁面,對于「中間人」來說可謂是輕而易舉。

那劫持又有哪些主要的分類呢?根據(jù)劫持路徑劃分的話,主要是下圖所示的三類:

怎么深入解析HTTPS 協(xié)議

DNS 劫持,客戶端劫持和鏈路劫持。 根據(jù)我們的不完全統(tǒng)計,業(yè)務(wù)遇到的絕大部分劫持 (90%)都屬于鏈路劫持。

三、HTTPS 是解決鏈路劫持的核武器

HTTPS 為什么能很好的解決鏈路劫持呢?主要是三大武器:

1、身份認證—防假冒,防抵賴

每次建立一個全新的 HTTPS 連接時,都需要對身份進行認證,確保用戶訪問的是正確的目的網(wǎng)站。

怎么深入解析HTTPS 協(xié)議

2、內(nèi)容加密—防竊聽

內(nèi)容加密意味端對端的通信內(nèi)容全都是密文,中間人無法直接查看到明文,HTTPS 所有的應(yīng)用層內(nèi)容都是通過對稱加密來實現(xiàn)加密和解密的。

怎么深入解析HTTPS 協(xié)議

3、一致性校驗—防篡改

通過對數(shù)據(jù)和共享密鑰的 MAC 碼來防止中間者篡改消息內(nèi)容,確保數(shù)據(jù)的一致性。

四、HTTPS 普及之痛

事實上 HTTPS 1995 年就誕生了,是一個非常古老、成熟的協(xié)議。同時又能很好地防止內(nèi)容劫持,保護用戶隱私。但是為什么一直到今天,還有大部分(約66%)的網(wǎng)站不支持 HTTPS,只使用 HTTP 呢?

影響 HTTPS 普及的主要原因可以概括為兩個字:「慢」和「貴」。

1、慢

在未經(jīng)任何優(yōu)化的情況下,HTTPS 會嚴重降低用戶的訪問速度。主要因素包括:

  1. 網(wǎng)絡(luò)耗時。由于協(xié)議的規(guī)定,必須要進行的網(wǎng)絡(luò)傳輸。比如 SSL 完全握手,302 跳轉(zhuǎn)等。最壞情況下可能要增加 7 個 RTT。

  2. 怎么深入解析HTTPS 協(xié)議

  3. 計算耗時。無論是客戶端還是服務(wù)端,都需要進行對稱加解密,協(xié)議解析,私鑰計算,證書校驗等計算,增加大量的計算時間。

2、貴

HTTPS 的貴,主要體現(xiàn)在如下三方面:

  1. 服務(wù)器成本。HTTPS 的私鑰計算會導致服務(wù)端性能的急劇下降,甚至不到 HTTP 協(xié)議的十分之一,也就是說,如果 HTTP 的性能是 10000cps,HTTPS 的性能可能只有幾百 cps,會增加數(shù)倍甚至數(shù)十倍的服務(wù)器成本。

  2. 證書成本。根據(jù)證書個數(shù)及證書類型,一年可能需要花費幾百到幾百萬不等的證書成本。

  3. 開發(fā)和運維成本。HTTPS 協(xié)議比較復(fù)雜,openssl 的開源實現(xiàn)也經(jīng)常發(fā)生安全BUG, 包括協(xié)議的配置,證書的更新,過期監(jiān)控,客戶端的兼容等一系列問題都需要具備專業(yè)背景的技術(shù)人員跟進處理。

五、騰訊云負載均衡器 HTTPS 的性能優(yōu)化

騰訊云負載均衡器深針對 HTTPS 推廣應(yīng)用過程中的痛點進行了深度優(yōu)化。接下來我們詳細地介紹下這些優(yōu)化方案:

1、訪問速度的優(yōu)化

前文提到 HTTPS 非常慢,我們也主要從兩個層面對訪問速度進行了優(yōu)化:協(xié)議棧和前后端資源。

全鏈路協(xié)議棧優(yōu)化

HTTPS 可以認為是 HTTP over SSL,而 HTTPS 又是使用 TCP 協(xié)議進行傳輸,所以整個協(xié)議棧的優(yōu)化涉及到三個層面:

  1. TCP 優(yōu)化。包括擁塞窗口的調(diào)整,tcp fast open,reuseport 的支持,最新的 BBR 擁塞控制算法的支持等。

  2. SSL 協(xié)議優(yōu)化。分布式 session cache, session ticket,F(xiàn)alse start, ocsp stapling file, 動態(tài) record size 等。怎么深入解析HTTPS 協(xié)議

SSL 協(xié)議優(yōu)化最重要的目標還是提升簡化握手的比例。騰訊云通過實現(xiàn)全局 session cache 和全局 session ticket 來提升 SSL 的簡化握手比例,節(jié)省用戶訪問時間和計算資源。

3.應(yīng)用層協(xié)議優(yōu)化。同時支持 SPDY,HTTP2,HSTS 等。

HTTP2 相比 HTTP1.X 最大的優(yōu)勢就是多路復(fù)用,能夠?qū)⒍鄠€ HTTP 請求通過一個 TCP 連接并行發(fā)送,相比 HTTP1.X 的串行發(fā)送,性能無疑是提升很多。

由于 HTTP2 是從 SPDY 繼承發(fā)展出來的,所以部分較老的客戶端只支持 SPDY,不支持 HTTP2。而大部分新客戶端,只支持 HTTP2,不支持 SPDY。為了同時兼容新老客戶端的性能,騰訊云同時支持 SPDY 和 HTTP2,最大化提升新老版本客戶端的性能。

前后端優(yōu)化

HTTP2 及 SPDY 最大的特性和優(yōu)勢就是多路復(fù)用,能夠?qū)⒍鄠€請求通過一個連接并行發(fā)送出來。這個特性雖然很強大,但是如果還使用傳統(tǒng)的 HTTP 優(yōu)化策略,多路復(fù)用的效果會很有限。比如域名分片,pipline 等都會影響多路復(fù)用的效果。于是我們又通過多次的數(shù)據(jù)實驗,調(diào)整了一些前端資源包括后端接入的策略:

  1. 域名收歸。通過頁面資源及性能分析,確實域名收歸方案,比如移動頁面不超過 3 個。

  2. 預(yù)建連接。STGW 提供預(yù)連接頁面,通過對熱點頁面的用戶行為進行分析,提前建立連接,減少協(xié)議開銷對用戶體驗的影響。

  3. 通過騰訊云遍布全球的 CDN 及 IDC 節(jié)點就近完成 HTTPS 卸載。

2、計算性能優(yōu)化

針對 HTTPS 的計算性能,騰訊云主要從三個層面進行了優(yōu)化,包括:

  1. 盡量減少完全握手的發(fā)生,提升簡化握手比例。比如前文提到的全局 sessioncache 和 session ticket。

  2. 對于不可避免的完全握手,騰訊云實現(xiàn)了 RSA 異步代理計算,通過對協(xié)議棧的改造和 SSL 硬件加速卡的使用,大幅度提升了 HTTPS 的計算能力和防攻擊能力。

  3. 對稱加密計算過程也進行了場景使用上的優(yōu)化。

下面再詳細介紹一下:

RSA 異步代理計算

騰訊云針對 HTTPS 性能消耗最嚴重的環(huán)節(jié)——非對稱密鑰交換算法進行了重點優(yōu)化。優(yōu)化思路主要包括如下三部分:

  1. 算法分離。就是將最消耗 CPU 資源的算法剝離出來,不讓消耗本地的 CPU 資源。

  2. 代理計算。使用空閑的 CPU 機器或者專門的 SSL 硬件加速卡來完成 RSA 計算。

  3. 異步執(zhí)行。傳統(tǒng)的 openssl 在進行 RSA 的時候,上層應(yīng)用,比如 NGINX 都需要同步等待。這一步驟也非常影響,必須要進行異步改造,這樣在加速集群進行 RSA 計算的時候,接入服務(wù)器也可以接入其他用戶的請求,提升吞吐能力。

通過對 openssl 握手協(xié)議棧的深度改造以及 SSL 硬件加速卡的 RSA 計算性能,騰訊云 CLB 的 SSL 計算能力提升了 350%。單機 ECDHE_RSA 處理性能達到了 65000 cps。

對稱加密算法的自動最優(yōu)選擇

根據(jù)應(yīng)用場景匹配最優(yōu)的對稱加密算法:

  1. 對于視頻等流媒體內(nèi)容,優(yōu)先使用 aes-gcm。

  2. 針對不支持 aes-ni 硬件加速指令的移動終端,使用 chacha20-poly1305 。

  3. 針對 IE6 等古董級別的客戶端,使用 RC4 算法。

  4. 怎么深入解析HTTPS 協(xié)議

3、協(xié)議的并行卸載

 CLB 支持現(xiàn)在主流的全部 HTTP 類協(xié)議接入和卸載。包括:

  1. http1.0/http1.1

  2. http2 及前身 spdy3.1

  3. https,包括 ssl3.0, tlsv1.0,tlsv1.1,tlsv1.2

  4. websocket 及 secure websocket。

  5. tcp,udp 透明轉(zhuǎn)發(fā)。

CLB 能夠?qū)⑸鲜銎邔訁f(xié)議統(tǒng)一轉(zhuǎn)換成 HTTP1.1,透傳給業(yè)務(wù)。對業(yè)務(wù)的好處也非常明顯: 0 開發(fā)成本就能使用 HTTPS 和 HTTP2,極大減少了適配各種協(xié)議和客戶端的壓力。

怎么深入解析HTTPS 協(xié)議

4、安全

安全涉及的領(lǐng)域和場景非常龐大,HTTPS 雖然能夠徹底解決鏈路劫持,但是對于如下兩類問題卻無能為力:

  1. CC 攻擊,特別是 HTTPS 計算型攻擊,HTTPS 的性能會急劇降低,引入更大的安全風險。

  2. 業(yè)務(wù)安全,包括 SQL 注入,XSS 跨站、網(wǎng)站掛馬等。

上述兩類都是經(jīng)常困擾業(yè)務(wù)的風險極大的安全問題。

針對上述問題,騰訊云也設(shè)計實現(xiàn)了一套針對 HTTPS 的防 CC 和 WAF 的安全系統(tǒng),能夠有效地防御這類安全風險。

怎么深入解析HTTPS 協(xié)議

看完上述內(nèi)容,你們對怎么深入解析HTTPS 協(xié)議有進一步的了解嗎?如果還想了解更多知識或者相關(guān)內(nèi)容,請關(guān)注億速云行業(yè)資訊頻道,感謝大家的支持。

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI