什么是SSL、TLS 加密?| CDN 安全

來源:Cloudflare
作者:Cloudflare
時(shí)間:2021-01-05
4705
緩解漏洞的 CDN 策略包括適當(dāng)?shù)?SSLTLS 加密和專門的加密硬件。

CDN 有哪些安全風(fēng)險(xiǎn)?

與暴露于 Internet 的所有網(wǎng)絡(luò)一樣,CDN 必須防御中間人攻擊、數(shù)據(jù)泄露,以及試圖通過 DDoS 攻擊壓垮目標(biāo)源站服務(wù)器的網(wǎng)絡(luò)的行為。CDN 可以有多個(gè)策略用于緩解漏洞,包括適當(dāng)?shù)?SSL/TLS 加密和專門的加密硬件。

什么是 SSL/TLS 加密?

傳輸層安全(TLS)是用于加密通過 Internet 發(fā)送的數(shù)據(jù)的協(xié)議。TLS 源于安全套接字層(SSL)(首個(gè)被廣泛采用的 Web 加密協(xié)議),目的是修復(fù)大多數(shù)早期協(xié)議的安全漏洞。出于歷史原因,行業(yè)內(nèi)仍然在某種程度上互換使用這兩個(gè)術(shù)語(yǔ)。您訪問的任何開頭為 https:// 而非 http:// 的網(wǎng)站都將 TLS/SSL 用于瀏覽器和服務(wù)器之間進(jìn)行的通信。

為了防止不良行為者訪問重要數(shù)據(jù),必須采取正確的加密方法。由于 Internet 的設(shè)計(jì),數(shù)據(jù)可以在許多位置之間傳輸,因此可以在含有重要信息的數(shù)據(jù)包在全球范圍內(nèi)傳播時(shí)截獲它們。通過使用加密協(xié)議,只有預(yù)期的接收者才能夠解碼和讀取信息,防止中間人對(duì)所傳輸數(shù)據(jù)的內(nèi)容進(jìn)行解碼。

TLS 協(xié)議設(shè)計(jì)為提供 3 個(gè)組件:

身份驗(yàn)證:驗(yàn)證所提供身份標(biāo)識(shí)的有效性

加密:混淆從一臺(tái)主機(jī)發(fā)送到另一主機(jī)的信息

完整性:檢測(cè)偽造和篡改

什么是 SSL 證書?

要啟用 TLS,站點(diǎn)需要 SSL 證書和相應(yīng)的密鑰。證書是包含有關(guān)站點(diǎn)所有者以及非對(duì)稱密鑰對(duì)中公鑰部分的文件。證書頒發(fā)機(jī)構(gòu)(CA)對(duì)證書進(jìn)行數(shù)字簽名,以何時(shí)證書中的信息正確無誤。通過信任證書,您信任證書頒發(fā)機(jī)構(gòu)已進(jìn)行了盡職調(diào)查。

ia_17400000015.png

操作系統(tǒng)和瀏覽器通常具有一份隱式信任的證書頒發(fā)機(jī)構(gòu)名單。如果網(wǎng)站提供的證書是由不受信任的證書頒發(fā)機(jī)構(gòu)簽名的,則瀏覽器會(huì)警告訪問者有問題在醞釀之中。

證書及其實(shí)施方式也可以根據(jù)強(qiáng)度、協(xié)議支持和其他特征進(jìn)行獨(dú)立評(píng)級(jí)。隨著更新、更好的實(shí)施變得可用,或者其他因素導(dǎo)致認(rèn)證實(shí)施的整體安全性降低,評(píng)級(jí)可能會(huì)不時(shí)變化。如果源站服務(wù)器的 SSL 安全性實(shí)施比較舊且等級(jí)較低,那么其評(píng)級(jí)通常會(huì)比較差,而且很容易受到破壞。

CDN 還有一個(gè)好處,使用 CDN 提供的證書可以為訪問其網(wǎng)絡(luò)內(nèi)托管的資產(chǎn)的訪問者提供安全保護(hù)。因?yàn)樵L問者僅連接到 CDN,所以源站服務(wù)器和 CDN 之間使用較舊或較不安全的證書不會(huì)影響客戶端的體驗(yàn)。

ia_17400000016.png

實(shí)際上,這種服務(wù)器至邊緣安全的薄弱仍然代表著漏洞,應(yīng)予以避免,特別是考慮到使用免費(fèi)源站加密可以輕松升級(jí)源站服務(wù)器安全性的情況。

ia_17400000017.png

適當(dāng)?shù)陌踩詫?duì)于自然搜索也很重要;加密的 Web 資產(chǎn)會(huì)可提高其在 Google 搜索中的排名。

SSL/TLS 連接的運(yùn)作不同于傳統(tǒng)的 TCP/IP 連接。在完成了 TCP 連接的初始階段后,就會(huì)發(fā)生單獨(dú)的交換以建立安全連接。本文把請(qǐng)求安全連接的設(shè)備稱為客戶端,并把提供安全連接的設(shè)備稱為服務(wù)器,就像用戶加載使用 SSL/TLS 加密的網(wǎng)頁(yè)時(shí)那樣。

首先,通過 3 個(gè)步驟進(jìn)行TCP/IP 握手:

客戶端向服務(wù)器發(fā)送 SYN 數(shù)據(jù)包以發(fā)起連接。

服務(wù)器接著通過 SYN/ACK 數(shù)據(jù)包對(duì)該初始數(shù)據(jù)包做出響應(yīng),以便確認(rèn)通信。

最后,客戶端返回 ACK 數(shù)據(jù)包以確認(rèn)接到服務(wù)器發(fā)出的數(shù)據(jù)包。完成這一系列數(shù)據(jù)包發(fā)送和接收操作后,TCP 連接將處于打開狀態(tài)并且能夠發(fā)送和接收數(shù)據(jù)。

ia_17400000018.png

完成 TCP/IP 握手后,開始 TLS 加密握手。TLS 握手實(shí)施背后的詳細(xì)過程不在本指南的討論范疇。我們重點(diǎn)探討握手的核心目的,以及完成該過程所需的時(shí)間。

從高層次上講,TLS 握手包含三個(gè)主要組成部分:

客戶端與服務(wù)器協(xié)商 TLS 版本,以及通信中要使用的加密密碼的類型。

客戶端和服務(wù)器采取相應(yīng)步驟,以確保彼此進(jìn)行真實(shí)的通信。

交換密鑰,以用于以后的加密通信。

下圖中視覺化呈現(xiàn)了 TCP/IP 握手和 TLS 握手中涉及的每個(gè)步驟。請(qǐng)注意,每個(gè)箭頭代表一個(gè)單獨(dú)的通信,該通信必須在客戶端和服務(wù)器之間進(jìn)行物理傳輸。由于使用 TLS 加密時(shí)來回消息總數(shù)會(huì)增加,因此網(wǎng)頁(yè)加載時(shí)間也會(huì)增加。

ia_17400000019.png

為便于說明,假設(shè) TCP 握手大約需要 50 毫秒,TLS 握手則可能大約需要 110 毫秒。這在大程度上是因?yàn)榭蛻舳撕头?wù)器之間雙向發(fā)送數(shù)據(jù)所花費(fèi)時(shí)間的結(jié)果。往返時(shí)間(RTT)是信息從一個(gè)設(shè)備傳輸?shù)搅硪辉O(shè)備并再次返回所花費(fèi)的時(shí)間,這個(gè)概念可用來量化連接的“昂貴”程度。如果未進(jìn)行優(yōu)化且未使用 CDN,則額外的 RTT 會(huì)增加延遲,并減少最終用戶的加載時(shí)間。幸運(yùn)的是,可以進(jìn)行一些優(yōu)化來縮短總體加載時(shí)間并減少來回行程的次數(shù)。

如何改善 SSL 延遲?

SSL 優(yōu)化可以減少 RTT 并縮短頁(yè)面加載時(shí)間。下方列出了可以優(yōu)化 TLS 連接的 3 種方式:

TLS 會(huì)話恢復(fù):CDN 可以為其他請(qǐng)求恢復(fù)同一會(huì)話,使源站服務(wù)器和 CDN 網(wǎng)絡(luò)之間的連接保持更長(zhǎng)的時(shí)間。當(dāng)客戶端需要進(jìn)行未緩存的源站獲取時(shí),使連接保持活動(dòng)狀態(tài)可以節(jié)省重新協(xié)商 CDN 與源站服務(wù)器之間連接所花費(fèi)的時(shí)間。只要源站服務(wù)器在保持與 CDN 的連接的同時(shí)收到其他請(qǐng)求,該站點(diǎn)的其他訪問者就會(huì)體驗(yàn)到較低的延遲。

ia_17400000020.png

會(huì)話恢復(fù)的總成本不到完整 TLS 握手的 50%,主要是因?yàn)闀?huì)話恢復(fù)僅花費(fèi)一次往返,而完整 TLS 握手則需要兩次往返。此外,會(huì)話恢復(fù)不需要任何大型有限域運(yùn)算(新會(huì)話則需要),因此與完整 TLS 握手相比,客戶端的 CPU 成本幾乎可以忽略不計(jì)。對(duì)于移動(dòng)用戶而言,通過恢復(fù)會(huì)話來提高性能意味著可以獲得反應(yīng)更快、耗電更低的上網(wǎng)體驗(yàn)。

ia_17400000021.png

啟用 TLS 錯(cuò)誤啟動(dòng):訪問者首次訪問網(wǎng)站時(shí),上文所述的會(huì)話恢復(fù)將無濟(jì)于事。TLS 錯(cuò)誤啟動(dòng)允許發(fā)送方無需進(jìn)行完整的 TLS 握手,就能發(fā)送應(yīng)用程序數(shù)據(jù)。

ia_17400000022.png

錯(cuò)誤啟動(dòng)不會(huì)修改 TLS 協(xié)議本身,只會(huì)改變數(shù)據(jù)傳輸?shù)臅r(shí)間。一旦客戶端開始密鑰交換,加密確保會(huì)發(fā)生,數(shù)據(jù)傳輸就可開始。這一修改可減少往返總次數(shù),將所需的延遲縮短 60 毫秒。

零往返時(shí)間恢復(fù)(0-RTT):0-RTT 允許會(huì)話恢復(fù),而且不增加連接的 RTT 延遲。對(duì)于使用 TLS 1.3 和 0-RTT 的恢復(fù)連接,連接速度得以改善,從而為用戶經(jīng)常訪問的網(wǎng)站帶來了更快速、更流暢的 Web 體驗(yàn)。這種速度提升在移動(dòng)網(wǎng)絡(luò)上尤為顯著。

0-RTT 是有效的改進(jìn),但并非沒有安全上的妥協(xié)。為了應(yīng)對(duì)所謂的重播攻擊的風(fēng)險(xiǎn),CDN 服務(wù)可能會(huì)對(duì) HTTP 請(qǐng)求的類型和允許的參數(shù)實(shí)施限制。要了解更多信息,請(qǐng)瀏覽 0-RTT 簡(jiǎn)介。

CDN 防御 DDoS 攻擊

現(xiàn)代 Internet 上 Web 資產(chǎn)的最嚴(yán)重安全漏洞之一是使用分布式拒絕服務(wù)(DDoS)攻擊。隨著時(shí)間的流逝,DDoS 攻擊的規(guī)模和復(fù)雜性不斷增加,攻擊者利用僵尸網(wǎng)絡(luò)攻擊對(duì)網(wǎng)站發(fā)送流量攻擊。正確配置的大型 CDN 具有規(guī)模效應(yīng)的潛在優(yōu)勢(shì),可以作為抵御 DDoS 的防護(hù)因素。擁有充足的數(shù)據(jù)中心位置和可觀的帶寬容量,CDN 能夠承受和緩解能夠輕松讓目標(biāo)源站服務(wù)器不堪重負(fù)的大量傳入攻擊流量。

原文鏈接:點(diǎn)擊前往 >
文章來源:Cloudflare
版權(quán)說明:本文內(nèi)容來自于Cloudflare,本站不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。文章內(nèi)容系作者個(gè)人觀點(diǎn),不代表快出海對(duì)觀點(diǎn)贊同或支持。如有侵權(quán),請(qǐng)聯(lián)系管理員(zzx@kchuhai.com)刪除!
掃碼關(guān)注
獲取更多出海資訊的相關(guān)信息
個(gè)人VIP
小程序
快出海小程序
公眾號(hào)
快出海公眾號(hào)
商務(wù)合作
商務(wù)合作
投稿采訪
投稿采訪
出海管家
出海管家