與暴露于互聯(lián)網(wǎng)的所有網(wǎng)絡(luò )一樣,CDN?必須防御在途攻擊、數據泄露,以及試圖通過(guò) DDoS 攻擊壓垮目標源服務(wù)器的網(wǎng)絡(luò )的行為。CDN 可使用多種策略來(lái)緩解漏洞,包括適當的?SSL/TLS 加密和專(zhuān)門(mén)的加密硬件。
什么是 SSL/TLS 加密?
傳輸層安全(TLS)是用于加密通過(guò)互聯(lián)網(wǎng)發(fā)送的數據的協(xié)議。TLS 源于安全套接字層(SSL)(首個(gè)被廣泛采用的 Web 加密協(xié)議),旨在是修復大多數早期協(xié)議的安全漏洞。出于歷史原因,業(yè)界仍然在某種程度上互換使用這兩個(gè)術(shù)語(yǔ)。如果您訪(fǎng)問(wèn) web 站點(diǎn)地址開(kāi)頭為 https:// 而非 http://,那么該網(wǎng)站在瀏覽器和服務(wù)器之間進(jìn)行的通信使用 TLS/SSL 加密。
為了防止攻擊者訪(fǎng)問(wèn)重要數據,必須采取適當的加密方法。由于互聯(lián)網(wǎng)的設計方式允許數據在許多位置之間傳輸,因此可以在含有重要信息的數據包在全球范圍內傳播時(shí)截獲它們。通過(guò)使用加密協(xié)議,只有預期的接收者才能夠解碼和讀取信息,防止中間人對所傳輸數據的內容進(jìn)行解碼。
TLS 協(xié)議設計為提供 3 個(gè)組件:
身份驗證:驗證所提供身份標識的有效性
加密:模糊化從一臺主機發(fā)送到另一主機的信息
完整性:檢測偽造和篡改
什么是 SSL 證書(shū)?
要啟用 TLS,站點(diǎn)需要 SSL 證書(shū)和相應的密鑰。證書(shū)是包含有關(guān)站點(diǎn)所有者以及非對稱(chēng)密鑰對中公鑰部分的信息的文件。證書(shū)頒發(fā)機構(CA)對證書(shū)進(jìn)行數字簽名,以核實(shí)證書(shū)中的信息正確無(wú)誤。信任證書(shū)即表示,您信任證書(shū)頒發(fā)機構已進(jìn)行了盡職調查。
操作系統和瀏覽器通常具有一份隱式信任的證書(shū)頒發(fā)機構名單。如果網(wǎng)站提供的證書(shū)是由不受信任的證書(shū)頒發(fā)機構簽名的,則瀏覽器會(huì )警告訪(fǎng)問(wèn)者可能存在某種問(wèn)題。
證書(shū)及其實(shí)施方式也可以根據強度、協(xié)議支持和其他特征進(jìn)行獨立評級。隨著(zhù)更新、更好的實(shí)施變得可用,或者其他因素導致認證實(shí)施的整體安全性降低,評級可能會(huì )不時(shí)變化。如果源服務(wù)器的 SSL 安全性實(shí)施比較舊且等級較低,那么其評級通常會(huì )比較差,而且容易受到破壞。
CDN 還有一個(gè)好處,使用 CDN 提供的證書(shū)可以為訪(fǎng)問(wèn)其網(wǎng)絡(luò )內托管的資產(chǎn)的訪(fǎng)問(wèn)者提供安全保護。因為訪(fǎng)問(wèn)者僅連接到 CDN,所以源服務(wù)器和 CDN 之間使用較舊或較不安全的證書(shū)不會(huì )影響客戶(hù)端的體驗。
實(shí)際上,這種服務(wù)器至邊緣安全的薄弱仍然是一種漏洞,應予以避免,特別是考慮到有可能使用免費源加密輕松升級源服務(wù)器安全性的情況。
適當的安全性對于有機搜索也很重要;加密的 Web 資產(chǎn)在 Google 搜索中的排名更高。
SSL/TLS 連接的運作不同于傳統的 TCP/IP 連接。在完成了 TCP 連接的初始階段后,就會(huì )發(fā)生單獨的交換以建立安全連接。本文把請求安全連接的設備稱(chēng)為客戶(hù)端,并把提供安全連接的設備稱(chēng)為服務(wù)器,就像用戶(hù)加載使用 SSL/TLS 加密的網(wǎng)頁(yè)時(shí)那樣。
首先,通過(guò) 3 個(gè)步驟進(jìn)行TCP/IP 握手:
1.客戶(hù)端向服務(wù)器發(fā)送 SYN 數據包以發(fā)起連接。
2.服務(wù)器接著(zhù)通過(guò) SYN/ACK 數據包對著(zhù)初始數據包做出響應,以便確認通信。
3.最后,客戶(hù)端返回 ACK 數據包以確認接到服務(wù)器發(fā)出的數據包。完成這一系列數據包發(fā)送和接收操作后,TCP 連接將處于打開(kāi)狀態(tài)并且能夠發(fā)送和接收數據。
完成 TCP/IP 握手后,開(kāi)始 TLS 加密握手。TLS 握手實(shí)施背后的詳細過(guò)程不在本指南的討論范疇。我們重點(diǎn)探討握手的核心目的,以及完成該過(guò)程所需的時(shí)間。
從高層次上講,TLS 握手包含三個(gè)主要組成部分:
客戶(hù)端與服務(wù)器協(xié)商 TLS 版本,以及通信中要使用的加密算法類(lèi)型。
客戶(hù)端和服務(wù)器采取相應步驟,以確保彼此進(jìn)行真實(shí)的通信。
交換密鑰,以用于以后的加密通信。
下圖呈現了 TCP/IP 握手和 TLS 握手中涉及的每個(gè)步驟。請注意,每個(gè)箭頭代表一個(gè)單獨的通信,該通信必須在客戶(hù)端和服務(wù)器之間進(jìn)行物理傳輸。由于使用 TLS 加密時(shí)來(lái)回消息總數會(huì )增加,因此網(wǎng)頁(yè)加載時(shí)間也會(huì )增加。
出于說(shuō)明目的,可以說(shuō) TCP 握手大約需要 50 毫秒,TLS 握手可能需要大約 110 毫秒。這主要是由于數據在客戶(hù)端和服務(wù)器之間雙向發(fā)送所花費的時(shí)間。往返時(shí)間 (RTT)的概念,即信息從一個(gè)設備傳輸到另一個(gè)設備并返回所需的時(shí)間量,可用于量化創(chuàng )建連接的“昂貴”程度。如果不進(jìn)行優(yōu)化并且不使用 CDN,額外的 RTT 代表最終用戶(hù)的延遲增加和加載時(shí)間減少。幸運的是,可以進(jìn)行一些優(yōu)化來(lái)改善總加載時(shí)間并減少來(lái)回旅行的次數。
如何改善 SSL 延遲?
SSL 優(yōu)化可以減少 RTT 并縮短頁(yè)面加載時(shí)間。下方列出了可以?xún)?yōu)化 TLS 連接的 3 種方式:
TLS 會(huì )話(huà)恢復:CDN 可以為其他請求恢復同一會(huì )話(huà),使源服務(wù)器和 CDN 網(wǎng)絡(luò )之間的連接保持更長(cháng)的時(shí)間。當客戶(hù)端需要進(jìn)行未緩存的源獲取時(shí),使連接保持活動(dòng)狀態(tài)可以節省重新協(xié)商 CDN 與源服務(wù)器之間連接所花費的時(shí)間。只要源服務(wù)器在保持與 CDN 的連接的同時(shí)收到其他請求,該站點(diǎn)的其他訪(fǎng)問(wèn)者就會(huì )體驗到較低的延遲。
會(huì )話(huà)恢復的總成本不到完整 TLS 握手的 50%,主要是因為會(huì )話(huà)恢復只需要一次往返,而完整的 TLS 握手需要兩次。此外,會(huì )話(huà)恢復不需要任何大的有限域算法(新會(huì )話(huà)需要),因此與完整的 TLS 握手相比,客戶(hù)端的 CPU 成本幾乎可以忽略不計。對于移動(dòng)用戶(hù)而言,會(huì )話(huà)恢復帶來(lái)的性能提升意味著(zhù)更具反應性和電池壽命友好的沖浪體驗。
啟用 TLS 虛假啟動(dòng):訪(fǎng)問(wèn)者首次訪(fǎng)問(wèn)網(wǎng)站時(shí),上文所述的會(huì )話(huà)恢復將無(wú)濟于事。TLS 虛假啟動(dòng)允許發(fā)送方無(wú)需進(jìn)行完整的 TLS 握手,就能發(fā)送應用程序數據。
虛假啟動(dòng)不會(huì )修改 TLS 協(xié)議本身,只會(huì )改變數據傳輸的時(shí)間。一旦客戶(hù)端開(kāi)始密鑰交換,加密確保會(huì )發(fā)生,數據傳輸就可開(kāi)始。這一修改可減少往返總次數,將所需的延遲縮短 60 毫秒。
零往返時(shí)間恢復(0-RTT):0-RTT 允許會(huì )話(huà)恢復,而且不增加連接的RTT 延遲。對于使用TLS 1.3和0-RTT 的恢復連接,連接速度得以改善,從而為用戶(hù)經(jīng)常訪(fǎng)問(wèn)的網(wǎng)站帶來(lái)了更快速、更流暢的Web 體驗。這種速度提升在移動(dòng)網(wǎng)絡(luò )上尤為顯著(zhù)。
0-RTT 是有效的改進(jìn),但并非沒(méi)有安全上的妥協(xié)。為了應對所謂的重播攻擊的風(fēng)險,CDN 服務(wù)可能會(huì )對 HTTP 請求的類(lèi)型和允許的參數實(shí)施限制。要了解更多信息,請瀏覽 0-RTT 簡(jiǎn)介。
CDN 防御 DDoS 攻擊
現代互聯(lián)網(wǎng)上 Web 資產(chǎn)最嚴重的安全漏洞之一是使用分布式拒絕服務(wù) (DDoS) 攻擊。隨著(zhù)時(shí)間的推移,DDoS 攻擊的規模和復雜性都在增加,攻擊者利用僵尸網(wǎng)絡(luò )攻擊具有攻擊流量的網(wǎng)站。大型且配置正確的 CDN 具有潛在的規模優(yōu)勢,可以作為 DDoS 的保護因素;通過(guò)擁有足夠的數據中心位置和相當大的帶寬能力,CDN 能夠承受和減輕大量傳入的攻擊流量,這些流量很容易使目標源服務(wù)器不堪重負。