限制 SSL 握手速率

限制 SSL 握手速率用於控制單個客戶端 IP 地址發起 TLS 握手的頻率,減少異常握手對閘道器 CPU 和連線資源的消耗。該功能屬於 CC 防護的擴充套件連線保護能力。 同一客戶端 IP 地址反覆新建 TLS 連線。 異常客戶端不復用連線,持續消耗 TLS 握手資源。

限制 SSL 握手速率用於控制單個客戶端 IP 地址發起 TLS 握手的頻率,減少異常握手對閘道器 CPU 和連線資源的消耗。該功能屬於 CC 防護的擴充套件連線保護能力。

適用場景

  • 同一客戶端 IP 地址反覆新建 TLS 連線。
  • 異常客戶端不復用連線,持續消耗 TLS 握手資源。
  • 需要在 HTTP 頁面規則生效前限制連線建立頻率。

如果攻擊流量已經完成 TLS 握手並持續請求業務介面,還需要結合限制請求速率等請求層防護能力。

工作原理

OpenResty Edge 按客戶端 IP 地址統計 SSL 握手速率。低於調節閾值的請求不受影響;速率高於調節閾值但低於拒絕閾值時,請求會被延遲;速率高於拒絕閾值時,系統拒絕請求並直接返回 HTTP 503 狀態碼。兩個閾值設定為相同值時,不保留調節區間,超過該速率的請求將直接被拒絕。

目前該功能只支援以客戶端 IP 地址作為統計關鍵字。

配置方法

  1. 在 Edge Admin 中進入目標應用的 SSL 配置頁面。
  2. 找到 SSL 握手速率限制並啟用該功能。
  3. 設定調節閾值、拒絕閾值及其單位。
  4. 儲存配置併發布應用。

應用 SSL 配置頁面

設定 SSL 握手速率閾值

儲存 SSL 握手速率配置

引數說明

  • 調節於:握手速率低於該值時不受限制;高於該值但尚未達到拒絕閾值時,請求會被延遲。
  • 拒絕於:握手速率高於該值後,系統拒絕請求並直接返回 HTTP 503 狀態碼。
  • 單位:可按每秒請求數或每分鐘請求數設定閾值。

驗證方法

在受控環境中從同一客戶端 IP 地址連續發起使用新 TLS 連線的 HTTPS 請求,觀察低於調節閾值時的響應、進入調節區間後的延遲,以及高於拒絕閾值後返回的 HTTP 503 狀態碼。複用現有 TLS 連線不會產生新的握手,不適合用於驗證該功能。

注意事項

  • 多個使用者透過同一 NAT 或正向代理訪問時,會共享同一個客戶端 IP 地址。閾值過低可能同時影響這些使用者。
  • TLS 連線複用率、正常業務峰值和客戶端網路重試都會影響握手速率,應根據監控資料逐步調整閾值。
  • 該功能只控制 TLS 握手,不能替代 HTTP 請求速率限制或業務介面的訪問控制。