限制 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 请求速率限制或业务接口的访问控制。