首页>安全资讯>转载-为什么WEB服务要尽快升级到HTTPS

转载-为什么WEB服务要尽快升级到HTTPS

HTTPS真的有那么好吗,我的WEB服务需要迁移到HTTPS 吗?对此我的观点是:HTTPS早就不是锦上添花的可有可无项,它已经逐渐成为WEB服务的标配,推荐大家尽早迁移。

HTTPS可以给用户带来更安全、更好隐私保护的网络体验,这些好处大家都耳熟能详,本文不再赘述。目前各大浏览器都在积极推进HTTPS的普及,我们重点来说说这个。

HTTP/2通过引入二进制分帧层,将HTTP的请求和响应报文拆分为二进制帧,从而实现了多路复用、优先级、Server Push 等诸多新特性,大大提升了WEB性能。HTTP/2还引入了基于静态字典和动态字典的头部压缩算法 —— HPACK,有效减少了HTTP 协议头部开销。现阶段,所有浏览器都只支持HTTP/2 Over TLS,也就是说浏览器中的HTTP/2必须基于HTTPS部署。

一些HTML5 API可以用来获取用户地理位置、摄像头音视频等隐私数据。尽管网站在使用这些权限前需要获得用户授权,但由于HTTP很容易被劫持,通过HTTP传输这些隐私数据将会十分危险。于是,Chrome 启用了Deprecating Powerful Features on Insecure Origins计划,今后以下API 必须在安全环境(Secure Contexts)中才能使用:

Geolocation

Device motion / orientation

EME

getUserMedia

AppCache

其中,列表中的Geolocaiton 和getUserMedia 在Chrome 50 中已经只能用于安全环境。也就是说在最新的Chrome 中,要想通过HTML5 API 获取用户位置,或者要用WebRTC 实现视频聊天,都需要先部署HTTPS。

EME全称是Encrypted Media Extensions(加密媒体扩展),它扩展了HTMLMediaElement,提供了一组API用于控制受保护的文档,实现HTML 媒体的数字版权保护能力。EME是一个比较冷门的API。

AppCache功能已经被废弃,不推荐继续使用,类似需求建议用Service Workers 来实现。更多说明请看MDN这篇文档

至于什么是安全环境(Secure Contexts),W3C这份文档进行了详细的解释。简而言之,HTTP 页面一定不是安全环境;HTTPS 页面不一定是安全环境。尤其需要注意的是,在HTTP 页面中打开的HTTPS 页面,如果window.opener 不为空,不属于安全环境。

至于大家担心的本地调试问题,Chrome 也有考虑:

·localhost会被认为是安全的环境,所以可以继续使用localhost域名测试上述API;

·通过 --user-data-dir=/test/only/profile/dir 参数创建一个新的Profile后,可以通过 --unsafely-treat-insecure-origin-as-secure="http://example.com 参数让Chrome 信任指定的网站;

另外,Mozilla公司在一年前也明确表态会逐步淘汰不安全的HTTP,详见:Deprecating Non-Secure HTTP

在往HTTPS迁移的过程中,大家普遍有一些担心,我挑选了一些有代表性的看法进行讨论。

HTTPS会增加系统复杂性

首先,部署HTTPS确实会引入很多新工作,例如证书、SSL配置、全站资源替换等等,确实会给开发和运维同学增加工作量。从HTTP切换到HTTPS 的过程是比较麻烦,但一旦完成了切换,之后就不需要投入太多精力在这上面。通常,部署HTTPS只需要改造直接跟用户打交道的HTTP接入层,内部系统之间的调用无需改造。推荐阅读系列文章:如何正确使用HTTPS加密协议经验分享

HTTPS证书会增加成本

首先,对于个人及小公司来说,有很多免费SSL证书方案可供选择,比如沃通免费SSL证书,starssl免费证书,Let's Encrypt等都还不错。而对于中大型公司来说,相比其他开销,HTTPS证书采购成本基本可以忽略不计。

HTTPS会导致性能下降

HTTPS 增加了TLS 握手环节,再加上HTTPS 应用数据传输需要经过对称加密,HTTPS确实给性能优化提出了更大的挑战。好在随着服务器、浏览器以及 SSL 库在性能上的大幅提升,经过良好优化后HTTPS 带来的性能损耗完全可以接受。更重要的是,部署了HTTPS 意味着可以使用HTTP/2,从而带给用户更好的性能体验。

非敏感内容不需要HTTPS

很多人觉得只有银行、电商等跟钱打交道的网站才需要部署HTTPS,其实不然。首先,非HTTPS 网站很容易被劫持并插入广告,影响用户体验;其次,即使你的网站上没有交易支付等敏感功能,但只要有用户登录,帐号密码被第三方盗取也可以用来社工或撞库;最后,一些流量很大的网站,如果不部署HTTPS很容易被别有用心的人利用,例如2015 年某大型网站的JS 就被人劫持用来DDoS攻击Github。

最后纠正一个误区:并不是说部署了HTTPS,安全方面就可以高枕无忧。HTTPS 解决的只是数据传输过程的安全性和保密性,如果WEB 程序或者服务器有安全漏洞,或者用户电脑中病毒了,那安全性无从谈起。最后,要让HTTPS发挥最大作用,往往还需要结合其它技术一起使用,例如HSTS、HPKP 等。

文章来源:https://imququ.com/post/moving-to-https-asap.html