HTTP Strict Transport Security (通常简称为HSTS, RFC 6797) 是一项网络安全技术,旨在帮助安全的HTTPS的Web服务器免受降级攻击。虽然HSTS能有效抵御网络攻击,但由于部署它相对困难导致这项技术尚未被广泛采用。CloudFlare的目的是改变这一点。
降级攻击(也称为SSL剥离攻击)是Web应用程序的严重威胁。这种类型的攻击是借助中间人发动攻击,攻击者可以将网页浏览器从一个正确配置的HTTPS Web服务器重定向到受Web攻击者控制的Web服务器。一旦攻击者成功地重定向用户,用户的个人隐私数据,包括Cookies,都可能会受到侵害。因为纯粹的SSL加密办法无法抵御这种攻击,所以才催生了HSTS技术。
SSL剥离攻击: 绕过SSL的保护然后发动攻击。
HSTS工作原理: 强制客户端使用 HTTPS 访问网站。过程如下:
- 用户第一次访问开启了 HSTS 功能的网站
- 在浏览器中留下一个包含
max-age
的HSTS缓存Strict-Transport-Security
- 用户在
max-age
保质期内再次访问网站,浏览器就会根据缓存中的HSTS设置自动跳转到HTTPS页面
CloudFlare提供的HSTS配置参数如下:
- Enable HSTS (Strict-Transport-Security): On/Off.
- Max Age (max-age): 即HSTS缓存的“生存时间”。一般建议设置成6个月,这样才能获得 Qualys SSL Labs 的 A+ 评级。Web浏览器会缓存和执行政策HSTS此值的持续时间。如果你将这个值设置为“0”,将会禁用HSTS功能。
- Apply HSTS Policy to subdomains (includeSubDomains): 将HSTS网站策略应用到每个子域名。
有一点需要注意,一旦该网站的HSTS设置在你的浏览器上生效,你就只能通过HTTPS方式访问该网站。如果HTTPS的433端口被封闭或者安全证书过期,你的网站就无法访问了。所以,你需要建立一个长期稳定的SSL配置。 好在CloudFlare默认的SSL设置与HSTS完美兼容,很多问题也就迎刃而解了。
使用CloudFlare开启HSTS,你只需要登录到您的CloudFlare帐户在控制面板>Crypto>HTTP Strict Transport Security (HSTS) 点击开启HSTS并设置好相关参数就可以了。
测试网站的SSL安全等级: 进入https://www.ssllabs.com/ssltest/
,输入你的网站域名就可以给你的网站做一次全面的SSL检查。
将网站域名提交到 HSTS Preload: 你可以先在CloudFlare开启HSTS Preload功能,然后将你的域名提交到 HSTS Preload List 等待审核通过。审核通过后,你的域名就会跟随此列表被推送到新版本的 Chrome, Firefox/Mozilla 和 Safari 浏览器中,从而实现更安全的HTTPS预加载。
via.https://www.binarization.com/archive/2016/enable-hsts-cloudflare/