我理解使用HSTS运行网站可以帮助防止攻击者使用K架降低网站的等级以服务HTTP请求。
如果我们的web服务器不支持HSTS怎么办?
IIS为网站设置了一个只能要求SSL请求的设置。
这是否足以防止攻击者使用SSLstrip将HTTPS降级为HTTP?我假设the服务器将无法提供非HTTPS流量,对吗?
发布于 2017-10-17 16:42:22
这是否足以防止攻击者使用SSLstrip将HTTPS降级为HTTP?
不是的。
我假设the服务器将无法提供非HTTPS流量,对吗?
不是的。
MitM将与您的服务器和http与客户端对话。
。
根据https://www.tbs-certificates.co.uk/FAQ/en/hsts-iis.html,您可以通过“”对话框使用IIS设置HSTS。
注意:只有在首次成功访问https之后,HSTS才是活动的。为了保护第一次访问,您可以使用预加载机制:https://hstspreload.org/,但是要小心,它不能被禁用!
发布于 2017-10-17 20:32:12
在这种情况下,只使用HTTPS无助于保护您。这个其他问题应该有助于说明原因。简而言之,如果攻击者可以强迫客户端通过HTTP进行通信,那么攻击者就可以在您和客户端之间进行通信,并充当中继器--在HTTP中与客户端进行对话,在HTTPS中充当服务器。
如果有一种方法可以迫使客户机永远不要尝试对您的服务器进行HTTP调用,那就太好了--谢天谢地,您可以使用HSTS。但是,典型的HSTS配置保护您的用户,只有当您可以在尝试攻击之前建立安全连接的情况下。这是因为HSTS依赖于第一次使用时信任或豆腐模型。如果您可以在客户端计算机上获得任何攻击之前的HSTS报头,则客户端将是安全的。如果攻击者已经就位,那么他们可以删除HSTS报头并继续攻击客户端。
如果预加载HSTS报头,这是可以避免的.预读HSTS意味着您向浏览器供应商注册您的域,他们将硬编码他们的浏览器,使其永远不允许不安全的连接到您的服务器。这使得SSLstrip攻击非常困难,因为客户端永远不会向服务器发送HTTP请求。但是要小心,HSTS预加载有它自己的一套风险。这个其他问题有一些很好的参考HSTS和HSTS预压,请阅读问题和前3答案的所有细节。
正如Tom在他的答案中提到的,您可以使用自定义的HTTP响应头来设置HSTS。您也可以在您的Web.Config文件中这样做:
<configuration>
<system.webServer>
<httpProtocol>
<customHeaders>
<add name="Strict-Transport-Security" value="max-age=31536000" />
</customHeaders>
</httpProtocol>
</system.webServer>
</configuration>注意:这不包括preload属性。它还排除了您可能需要的includeSubDomains属性。同样,对这两个属性都要非常小心。不要天真地实现它们。
https://security.stackexchange.com/questions/171533
复制相似问题