限制 SSL 握手速率

限制 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 請求速率限制或業務介面的訪問控制。