国产精品主播叶子闺蜜_三级高清精品国产_99久久精品国产麻豆_国产精品无码免费专区午夜

歡迎您光臨深圳塔燈網(wǎng)絡(luò)科技有限公司!
電話圖標(biāo) 余先生:13699882642

網(wǎng)站百科

為您解碼網(wǎng)站建設(shè)的點(diǎn)點(diǎn)滴滴

一篇文章為你深度解析HTTPS 協(xié)議

發(fā)表日期:2017-03 文章編輯:小燈 瀏覽次數(shù):2368

HTTP鏈接面臨頁(yè)面劫持、隱私泄漏等各類風(fēng)險(xiǎn),本文為你深入淺出的解析了如何基于HTTPS實(shí)現(xiàn)身份驗(yàn)證、內(nèi)容加密和一致性驗(yàn)證

作者:羅成 ? ? ? ?騰訊云資深研發(fā)工程師

出處:騰訊云技術(shù)社區(qū)

-----------------------------------------------


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

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

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

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

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

二、為什么要接入 HTTPS—HTTP 的安全風(fēng)險(xiǎn)

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

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

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

1、隱私泄露

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

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

用戶手機(jī)號(hào)和身份信息泄露。

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

2、頁(yè)面劫持

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


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


但換成 HTTPS 訪問(wèn),就沒(méi)有這個(gè)工具頁(yè)面,顯然是被劫持了。

3、劫持路徑及分類

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


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

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


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


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

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

1、身份認(rèn)證—防假冒,防抵賴

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


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

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


3、一致性校驗(yàn)—防篡改

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


四、HTTPS 普及之痛

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

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

1、慢

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

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


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

2、貴

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

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

證書成本。根據(jù)證書個(gè)數(shù)及證書類型,一年可能需要花費(fèi)幾百到幾百萬(wàn)不等的證書成本。

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


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

騰訊云負(fù)載均衡器深針對(duì) HTTPS 推廣應(yīng)用過(guò)程中的痛點(diǎn)進(jìn)行了深度優(yōu)化。接下來(lái)我們?cè)敿?xì)地介紹下這些優(yōu)化方案:

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

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

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

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

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

SSL 協(xié)議優(yōu)化。分布式 session cache, session ticket,F(xiàn)alse start, ocsp stapling file, 動(dòng)態(tài) record size 等。


SSL 協(xié)議優(yōu)化最重要的目標(biāo)還是提升簡(jiǎn)化握手的比例。騰訊云通過(guò)實(shí)現(xiàn)全局 session cache 和全局 session ticket 來(lái)提升 SSL 的簡(jiǎn)化握手比例,節(jié)省用戶訪問(wèn)時(shí)間和計(jì)算資源。

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

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

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

前后端優(yōu)化

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

域名收歸。通過(guò)頁(yè)面資源及性能分析,確實(shí)域名收歸方案,比如移動(dòng)頁(yè)面不超過(guò) 3 個(gè)。

預(yù)建連接。STGW 提供預(yù)連接頁(yè)面,通過(guò)對(duì)熱點(diǎn)頁(yè)面的用戶行為進(jìn)行分析,提前建立連接,減少協(xié)議開銷對(duì)用戶體驗(yàn)的影響。

通過(guò)騰訊云遍布全球的 CDN 及 IDC 節(jié)點(diǎn)就近完成 HTTPS 卸載。

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

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

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

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

對(duì)稱加密計(jì)算過(guò)程也進(jìn)行了場(chǎng)景使用上的優(yōu)化。

下面再詳細(xì)介紹一下:

RSA 異步代理計(jì)算

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

算法分離。就是將最消耗 CPU 資源的算法剝離出來(lái),不讓消耗本地的 CPU 資源。

代理計(jì)算。使用空閑的 CPU 機(jī)器或者專門的 SSL 硬件加速卡來(lái)完成 RSA 計(jì)算。

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

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

對(duì)稱加密算法的自動(dòng)最優(yōu)選擇

騰訊云根據(jù)應(yīng)用場(chǎng)景匹配最優(yōu)的對(duì)稱加密算法:

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

針對(duì)不支持 aes-ni 硬件加速指令的移動(dòng)終端,使用 chacha20-poly1305 。

針對(duì) IE6 等古董級(jí)別的客戶端,使用 RC4 算法。



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

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

http1.0/http1.1

http2 及前身 spdy3.1

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

websocket 及 secure websocket。

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

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


4、安全

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

CC 攻擊,特別是 HTTPS 計(jì)算型攻擊,HTTPS 的性能會(huì)急劇降低,引入更大的安全風(fēng)險(xiǎn)。

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

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

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


六、零門檻,HTTPS 快速接入微信小程序

騰訊云 CLB 負(fù)載均衡器通過(guò)對(duì)協(xié)議棧及服務(wù)端的深度優(yōu)化,實(shí)現(xiàn)了 HTTPS 性能的巨大提升。同時(shí),我們也通過(guò)與國(guó)際上著名的證書機(jī)構(gòu)合作,極大降低了證書的成本。騰訊云 CLB 在如下幾個(gè)方面,能夠?yàn)槲⑿判〕绦蚪尤霂?lái)非常顯著的收益:

提供一鍵式的 SSL 證書申請(qǐng),CLB 負(fù)載均衡服務(wù)作為 HTTPS 代理,減輕開發(fā)負(fù)擔(dān),讓開發(fā)者可以專注小程序業(yè)務(wù)的開發(fā)。

使用 HTTPS 并不會(huì)降低 client 端的訪問(wèn)速度。HTTP、HTTPS 訪問(wèn)時(shí)延幾乎一致。

集群內(nèi)單臺(tái)服務(wù)器 SSL 加解密性能,高達(dá) 6.5Wcps 的完全握手。相比高性能CPU 提升了至少 3.5 倍,節(jié)省了服務(wù)端成本,極大提升了業(yè)務(wù)運(yùn)營(yíng)及流量突漲時(shí)的服務(wù)能力, 增強(qiáng)了計(jì)算型防攻擊的能力。

支持多種協(xié)議卸載及轉(zhuǎn)換。減少業(yè)務(wù)適配客戶端各種協(xié)議的壓力,業(yè)務(wù)后端只需要支持 HTTP1.1 就能使用 HTTP2,SPDY,SSL3.0,TLS1.2 等各版本協(xié)議。滿足微信小程序,iOS 平臺(tái)等對(duì)協(xié)議的要求。

SSL 證書申請(qǐng)、監(jiān)控、替換。我們和國(guó)際頂級(jí)的證書廠商 comodo,symantec 已有深入合作,服務(wù)體系完善。

防 CC 及 WAF 功能。能夠有效杜絕慢連接、高頻定點(diǎn)攻擊、SQL 注入、網(wǎng)頁(yè)掛馬等應(yīng)用層攻擊。

以上的這些收益,可以幫助開發(fā)者降低 HTTPS 的試用門檻。開發(fā)者還可以通過(guò)訪問(wèn)我們官方網(wǎng)站或點(diǎn)擊「微信小程序解決方案」,查看微信小程序接入的最佳實(shí)踐。




------------------------------------------------------------------------------------------

獲取更多云計(jì)算技術(shù)干貨,可請(qǐng)前往騰訊云技術(shù)社區(qū)

微信公眾號(hào):騰訊云技術(shù)社區(qū)( QcloudCommunity)


本頁(yè)內(nèi)容由塔燈網(wǎng)絡(luò)科技有限公司通過(guò)網(wǎng)絡(luò)收集編輯所得,所有資料僅供用戶學(xué)習(xí)參考,本站不擁有所有權(quán),如您認(rèn)為本網(wǎng)頁(yè)中由涉嫌抄襲的內(nèi)容,請(qǐng)及時(shí)與我們聯(lián)系,并提供相關(guān)證據(jù),工作人員會(huì)在5工作日內(nèi)聯(lián)系您,一經(jīng)查實(shí),本站立刻刪除侵權(quán)內(nèi)容。本文鏈接:http://www.juherenli.com/20405.html
相關(guān)開發(fā)語(yǔ)言