HSTS可以用来抵御SSL剥离攻击
HTTP Strict Transport Security (凡是简称为HSTS) 是一个安适成果,它报告浏览器只能通过HTTPS访谒当前资源, 禁止HTTP方法。 Freebuf百科:什么是Strict-Transport-Security?
一个网站接受一个HTTP的请求,然后跳转到HTTPS,用户可能在开始跳转前,通过没有加密的方法和处事器对话,好比,用户输入或者直接foo.com。这样存在中间人打击潜在威胁,跳转过程可能被恶意网站操作来直接接触用户信息,而不是本来的加密信息。网站通过HTTP Strict Transport Security通知浏览器,,这个网站禁止使用HTTP方法加载,浏览器应该自动把所有测验考试使用HTTP的请求自动替换为HTTPS请求。
我们为什么需要开启Strict-Transport-Security?想想这样一种场景:
有的网站开启了https,但为了赐顾帮衬用户的使用体验(因为用户总是很赖的,一般不会主动键入https,而是直接输入域名, 直接输入域名访谒,默认就是http访谒)同时也撑持http访谒,当用户http访谒的时候,就会返回给用户一个302重定向,重定向到https的地点,然后后续的访谒都使用https传输,这种通信模式看起来貌似没有问题,但细致分析,就会发明种通信模式也存在一个危害,那就是这个302重定向可能会被劫持篡改,如果被改成一个恶意的或者垂钓的https站点,然后,你分明,一旦落入垂钓站点,数据还有安适可言吗?
对付篡改302的打击,建议处事器开启HTTP Strict Transport Security成果,这个成果的含义是:
当用户已经安适的登录开启过htst成果的网站 (撑持hsts成果的站点会在响应头中插入:Strict-Transport-Security) 之后,撑持htst的浏览器(好比chrome. firefox)会自动将这个域名插手到HSTS列表,下次即使用户使用http访谒这个网站,撑持htst成果的浏览器就会自动发送https请求(前提是用户没有清空缓存,如果清空了缓存第一次访谒还是明文,后续浏览器接收随处事器响应头中的Strict-Transport-Security,就会把域名插手到hsts缓存中,然后才会在发送请求前将http内部转换成https),而不是先发送http,然后重定向到https,这样就能制止半途的302重定向URL被篡改。进一步提高通信的安适性。
上面是我本身的理解,下面是owasp中文站点关于hsts的描述:
HSTS的感化是强制客户端(如浏览器)使用HTTPS与处事器创建连接。处事器开启HSTS的要领是,当客户端通过HTTPS发出请求时,在处事器返回的超文本传输协议响应头中包罗Strict-Transport-Security字段。非加密传输时设置的HSTS字段无效。
好比,https://example.com/ 的响应头含有Strict-Transport-Security: max-age=31536000; includeSubDomains。这意味着两点:
在接下来的一年(即31536000秒)中,浏览器只要向example.com或其子域名发送HTTP请求时,必需给与HTTPS来倡议连接。好比,用户点击超链接或在地点栏输入 ,浏览器该当自动将 http 转写成 https,然后直接向 https://www.example.com/ 发送请求。
在接下来的一年中,如果 example.com 处事器发送的TLS证书无效,用户不能忽略浏览器警告继续访谒网站。
HSTS可以用来抵制SSL剥离打击。SSL剥离打击是中间人打击的一种,由Moxie Marlinspike于2009年发现。他在当年的黑帽大会上发表的题为“New Tricks For Defeating SSL In Practice”的演讲中将这种打击方法果然。SSL剥离的实施要领是阻止浏览器与处事器创建HTTPS连接。它的前提是用户很少直接在地点栏输入https://,用户总是通过点击链接或3xx重定向,从HTTP页面进入HTTPS页面。所以打击者可以在用户访谒HTTP页面时替换所有https://开头的链接为,到达阻止HTTPS的目的。
HSTS可以很洪流平上解决SSL剥离打击,因为只要浏览器曾经与处事器创建过一次安适连接,之后浏览器会强制使用HTTPS,即使链接被换成了HTTP
此外,如果中间人使用本身的自签名证书来进行打击,浏览器会给出警告,但是许多用户会忽略警告。HSTS解决了这一问题,一旦处事器发送了HSTS字段,用户将不再允许忽略警告。
用户初度访谒某网站是不受HSTS掩护的。这是因为初度访谒时,浏览器还未收到HSTS,所以仍有可能通过明文HTTP来访谒。
解决这个不敷目前有两种方案,
一是浏览器预置HSTS域名列表,Google Chrome、Firefox、Internet Explorer和Spartan实现了这一方案。
二是将HSTS信息插手到域名系统记录中。但这需要保证DNS的安适性,也就是需要部署域名系统安适扩展。截至2014年这一方案没有大规模部署。
温馨提示: 本文由Jm博客推荐,转载请保留链接: https://www.jmwww.net/file/web/30944.html