HTTP Strict Transport Security,HTTP强制安全传输用来确保终端用户只有在使用安全的HTTPS连接时才能与服务器连接。在浏览器向服务器发送请求时,每接收一个标题就添加一个标志,这样HSTS就能确保接下来与网站的连接都经过一种广泛使用的HTTPS协议的加密。由于之后的所有连接都要被加密,HSTS能保护用户不受降级攻击,也就是黑客将已加密的连接再转换回纯文本HTTP。由于传输过程已经加密,因此它可以防范中间人攻击,降低信息泄露的风险。
HSTS可以用来抵御SSL剥离攻击。SSL剥离攻击是中间人攻击的一种,由Moxie Marlinspike于2009年发明。他在当年的黑帽大会上发表的题为“New Tricks For Defeating SSL In Practice”的演讲中将这种攻击方式公开。SSL剥离的实施方法是阻止浏览器与服务器创建HTTPS连接。它的前提是用户很少直接在地址栏输入https://,用户总是通过点击链接或3xx重定向,从HTTP页面进入HTTPS页面。所以攻击者可以在用户访问HTTP页面时替换所有https://开头的链接为http://,达到阻止HTTPS的目的。
HSTS可以很大程度上解决SSL剥离攻击,因为只要浏览器曾经与服务器创建过一次安全连接,之后浏览器会强制使用HTTPS,即使链接被换成了HTTP。
另外,如果中间人使用自己的自签名证书来进行攻击,浏览器会给出警告,但是许多用户会忽略警告。HSTS解决了这一问题,一旦服务器发送了HSTS字段,用户将不再允许忽略警告。