【问题标题】:what actually occurs in SSL strip attackSSL 剥离攻击中实际发生的情况
【发布时间】:2020-06-21 16:13:38
【问题描述】:
我正在研究 SSL Strip。我知道攻击者必须是 MITM,这样他才能拦截来自受害者的所有请求并将它们发送到服务器。但我不明白的一件事是,当攻击者收到来自服务器(https)的响应时,攻击者会将来自服务器的响应从 https 修改为 http 并将其发送给受害者。
“将来自服务器的响应从 https 修改为 http”实际上发生了什么?
攻击者是否创建了一个与原始站点相似但使用 http 而不是 https 的站点?
【问题讨论】:
标签:
security
ssl
man-in-the-middle
websecurity
【解决方案1】:
SSLStrip 是关于拦截初始 HTTP -> HTTPS 重定向。
当用户在浏览器中键入 URL 时,例如“stackoverflow.com”,浏览器默认使用 HTTP 加载它。然后该站点会看到您正在通过纯文本 HTTP 加载它,因此它会重定向到 HTTPS。
初始重定向可以被活跃的 MITM 攻击者拦截。例如,他们可以将初始 HTTP 重定向到 HTTPS 重定向,以重定向到他们拥有的相似 URL。
可以通过 Strict-Transport-Security 缓解攻击。 STS 教导浏览器,“从现在开始,始终以 HTTPS 访问此域(可能还有子域)”。然后浏览器会自动通过 HTTPS 加载它并完全跳过 HTTP 请求。
STS 是一种“首次使用时信任”功能。第一次访问该站点时,仍然会发生初始 HTTP 到 HTTPS 重定向,因为浏览器不知道该站点应该始终由 HTTPS 访问。最后一个问题通过 HSTS 预加载得到缓解,其中域基本上被硬编码到浏览器的源代码中,作为“首先通过 HTTPS 加载”。