如何阻止 sslstrip 攻击?

信息安全 tls 网页浏览器 http 中间人 ssls带
2021-08-19 17:11:07

我需要帮助了解 sslstrip 攻击的动态。我正在使用它来测试我拥有的网站的安全性。我可以通过互联网成功地嗅探受害者(在这种情况下是我自己)的凭据,但是当同样的攻击发生在 Gmail 或 MSN 流量上时,我什么也得不到。在这种情况下,它是完全静态的。我正在使用 go-daddy 证书来保护我的 ssl 交换。

这是否意味着他们的 ssl 是安全的而我的不是?就像 sslstrip 生成的流氓 ssl 证书被他们的 ssl 证书安全性捕获和阻止,而我的配置为不安全模式?像 KEMP 负载均衡器这样的设备是否会采取任何措施来防止此类攻击?

我需要做些什么来防止我的网站受到此类攻击?谢谢。

2个回答

IIRC,SSLStrip 不进行传统的 SSL-MITM 攻击。它的作用是监视 HTTP 流量,查找链接并重定向到 HTTPS 流量,并将这些链接/重定向重写为 HTTP。快速浏览他们的网站可以证实这一点。

因此,您必须有一些链接/重定向到 ssl 页面的非 ssl 页面。SSLStrip 看到并将链接/重定向更改为非安全链接/重定向。例如,您可能将 index.php 链接到https://domain.com/login.phpSSLstrip 将其更改为http://domain.com/login.php您可以通过在浏览器中输入https://domain.com/login.php来验证这一点,并查看 SSLStrip 是否仍然可以看到用户名和密码(或者当您单击登录链接时,查看 URL 中是否包含 http 或 https浏览器中的栏)。

你通过以下方式阻止了这次攻击

  1. 使您的网站仅使用 SSL。
  2. 对于您使用的任何网络服务器(Apache、IIS 等),应该有一种方法可以强制某些目录只能通过 SSL 连接访问。使所有经过身份验证的内容仅使用 SSL。一个简单的谷歌搜索应该会揭示如何为给定的服务器软件执行此操作。

IIRC 除非您拥有真正的证书,否则您应该在通过 HTTPS 时收到证书不匹配的警告。

SSLstrip 重写了 HTTPS 以清除 HTTP。

另外,为什么 SSL 剥离使用“流氓”公钥?它使用网站的公钥。

有一种方法可以保护自己,但您的浏览器需要支持它。(往下读)

它不起作用的原因是因为您可能正在使用 Chrome 或 Firefox 或任何其他主要浏览器进行此操作。他们使用HTTP Strict Transport Security

它有两个属性:

  1. 自动将任何不安全的网站链接转换为安全链接。(比如http://example.com/some/page/在访问服务器之前会被修改为https://example.com/some/page/ 。)
  2. 如果无法确保连接的安全性(例如服务器的 TLS 证书是自签名的),则显示错误消息并且不允许用户访问该站点。