如何利用HSTS强制网站HTTPS加密访问
发布日期:2017-07-31什么是HSTS
HSTS全称是HTTP Strict Transport Security,已经被主流的浏览器广泛采用,支持HSTS的服务端可以强制访问它的浏览器使用HTTPS协议,这样就可以最大限度的减少HTTP协议的各种安全问题。
如何实现HSTS
HSTS 的实现也很简单,通过HTTPS 协议访问你站点的时候,在响应头中加上这样一段信息:Strict-Transport-Security "max-age=63072000; includeSubdomains;"
Strict-Transport-Security 是Header 字段名,后面的max-age 代表HSTS 在客户端的生效时间, includeSubdomains 表示对所有子域名生效。
举个例子, 我们在Chrome浏览器中访问Facebook 的主页https://facebook.com, 然后打开开发者工具,可以看到服务端发送这样的响应:
这里面的Strict-Transport-Security 头就是HSTS 的信息了。 其实在服务端上,只需要发送这个头就可以了。具体的实现都在客户端上,也就是你的浏览器。 当浏览器检测到这样的 Header 信息后,就会做一个记录,根据 max-age 的提示,在一定时间内用户再次访问这个站点的时候就直接使用 HTTPS 协议请求,如果 HTTPS 请求失败,也不会降级到 HTTP 而是直接失败。
HSTS 好处
其实大家平时在使用浏览器的时候,一般是直接在地址栏里面输入域名,然后就访问了。 但大家应该知道,大多数浏览器在默认情况下会先用HTTP 发起请求的,也就是说即便你的站点已经支持了HTTPS,但如果不做任何处理的话,用户还是很难触及到。
为什么我们平时访问很多网站的时候自动就跳转到HTTPS站点了也是因为这些站点对这一点做了处理。 最原始的方法就是302 跳转,服务端把所有的HTTP流量跳转到HTTPS 上,但这样做有一个明显的安全漏洞,就是第一次访问站点的时候如果是HTTP 就有可能被中间人劫持,很可能都没到302 跳转的时候就被劫持了,这也就是为什么要引入HSTS 机制的原因了。用户的浏览器一旦得到了HSTS 的信息,下次再访问站点的时候客户端浏览器就会强制使用HTTPS,无论你在地址栏里输入什么,都会以HTTPS 访问,这样就避免了每次服务端跳转可能导致的潜在安全问题。这样就解释了为什么我们使用主流浏览器输入网站域名的时候,都会自动跳转到HTTPS 了。 因为我们访问的大多是主流的大网站,所以用户的感觉就是HTTPS 自动发生了,但实际上并不是这样的。
HSTS本身也有缺陷,假如用户的浏览器从未访问过这个站点,那也就不会得到HSTS 响应头,这个时候依然会有被劫持风险,但相比每次都进行服务端跳转的机制,已经好了不少。针对HSTS 的这个缺陷,主流的浏览器也提供了一些解决方案,比如把一些大流量并且已知支持HSTS 的站点预先内置到浏览器中,这样就更大程度的完善了HTTPS 的安全机制。
写在最后
HTTPS 可以帮助用户保护自己的信息传输安全,但这一切的达成还需要客户端和服务端的共同配合。合理使用HSTS 可以让你的HTTPS 站点触及更多的用户,当然HSTS 也有它自身的缺陷,并且还有一点要注意的,就是如果你的站点的HTTPS 服务没有完全准备好,不要轻易的开启HSTS 响应头。因为一旦浏览器得到这个响应头,就会在规定的 max-age 的时间段内强制使用HTTPS 访问,如果你的服务没准备好,用户就会一直访问失败,并且不能降级。
相关资讯:
HSTS(HTTP Strict Transport Security)是国际互联网工程组织IETF发布的一种互联网安全策略机制。采用HSTS策略的网站将保证浏览器始终连接到该网站的HTTPS...
谷歌宣布域名Google.com支持HSTS机制,HSTS(HTTP Strict Transport Security)是一种帮助网站将用户从不安全的HTTP版本重定向到安全的HTTPS版本的机制,主要...
Google域名支持HSTS机制,强制访问HTTPS安全协议
近日,Google官方博客宣布其域名Google.com支持HSTS。HSTS代表HTTP Strict Transport Security ,是国际互联网工程组织IETE正在推行一种新的Web安全协议,它是...
服务器开启HSTS的方法是,当客户端通过HTTPS发出请求时,在服务器返回的HTTP响应头中包含Strict-Transport-Security字段。浏览器接收到这样的信息之后,在一定期限内对该...
从10月1日开始,英国所有的政府服务网站都将需要确保他们使用HTTPS加密和HSTS保护,避免遭到降级攻击(某些攻击试图采用切换用户的方式去访问HTTP协议站点)。
2016年9月安全事件:雅虎5亿帐号信息泄露,法国OVH遭遇DDoS攻击,采用加密技术保护数据,iOS10漏洞,iOS 10使用HTTPS更新,谷歌Chrome56标记HTTP不安全,HSTS预载入列表。