我经常浏览的一个网站有时会成为 DoS/DDoS 攻击的受害者,通常他们通过切换到 https 来解决问题。我看不出进攻和防守之间的联系?TLS 加密连接这与消耗服务器资源的连接数有什么关系?
HTTPS 如何帮助遭受 DoS 攻击的网站
切换到 HTTPS 可能有帮助的唯一原因是攻击只针对 HTTP。HTTPS 中没有固有的 DOS 保护。相反,如果您从最小的 SSL 握手开始,以便服务器有事可做,但在服务器发送响应后不再继续 SSL 握手,您可能会更轻松地使用 HTTPS 占用服务器的资源。
这里有两件事可能会有所不同:
如果您从 HTTP 切换到 HTTPS,那么您就是在切换端口和协议。它实际上是一个不同的站点。因此,攻击者必须修改他的攻击以改为针对 HTTPS 站点。许多 DDoS 攻击并没有那么复杂,因此只需切换协议即可。
HTTPS 在客户端需要比 HTTP 更高的复杂性。许多用于此类攻击的机器人并不是特别先进,而且 HTTPS 可能超出了所使用代码的能力。
这里有一些经过深思熟虑的答案。DDoS 可能是几种不同的攻击之一,所有攻击都使用数字来淹没网站:
- 页面生成攻击。使服务器以无法缓存的方式为大量用户生成 CPU 昂贵的页面。这让整个事情变慢了。
- 填充 SYN 队列的洪水攻击
- 带宽耗尽
他们不会“填满”端口 80 并单独留下服务器和网络的其余部分。
鉴于 HTTP 和 HTTPS通常由同一台机器、同一网络、同一路由器后面提供服务……仅使 HTTPS 可用就提供了零保护。这是一个不同的端口,但那又如何呢?
唯一会产生影响的情况是,如果您正在对 HTTP 进行页面生成攻击并解决它,您禁用 :80 HTTP 并仅使用 :443 HTTPS。但:
- 这会破坏所有使用端口 80 的用户(和 Google)。这不是攻击者想要的目标吗?
- 301 自动重定向它们将(可能)重定向攻击
- 即使它不 DDoSes 也不难改变。它们是远程控制的计算机。攻击者可以轻松更改顺序。
这对网络洪水攻击没有帮助。这可能暂时(出于与上述相同的原因)有助于带宽耗尽。
如果您想防御 DDoS,您可以隐藏生成页面的服务器(因此攻击者无法直接与其通信),并且您使用一个非常庞大、非常健壮的平衡代理服务器网络。在全球范围内,这本质上就是 CloudFlare。
HTTPS 使用与常规网站不同的端口,因此许多直接通过端口 80 攻击网站的 DDOS 攻击将不会从期望(并且仅响应)HTTPS 端口(443 而不是端口 80)的站点得到响应