这里有一篇文章,
http://div.io/topic/907 ,说了一种思路可以使用山寨域名来欺骗用户,可以绕开 HSTS ,且不会有证书错误的提示。
但是我认为这种思路是不可行的。
这篇文章说这种手段和 SSLStrip 类似,只是从更改协议变成了干脆更改域名。但是 SSLStrip 是:用户本来就使用 HTTP 协议,中间人保持了和客户端的 HTTP 连接。而这篇文章的办法是:用户访问一个 HTTPS 站点时,让用户跳转到另外一个域名。
我认为,这个跳转是无法做到的,因为:
①如果从 DNS 劫持入手,即使劫持了 DNS ,浏览器需要的还是特定域名的证书,没有证书,就没有办法完成之后的 SSL 握手(所以 HTTPS 不能被 DNS 劫持,只能被 DNS 污染从而无法完成连接)
②如果想在 SSL 握手时跳转,由于此时 SSL 握手还未完成,连接还未建立,中间人给客户端发送的 HTTP 的 302 请求也是不会被接受的。
③在 SSL 握手完成后,客户端与服务器的通信被加密,无法被篡改为 302 跳转的请求。
我没有办法确定我是否对协议理解有误,或者还有什么忽略的点,特此来询问一下,这篇文章的思路可行吗?
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
https://www.v2ex.com/t/324271
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.