导语:近日,Troy Hunt在博客上专门针对静态网站是否需要启用HTTPS进行了详细分析。在众多是否使用HTTPS的争论中,有一个话题被讨论的最多,那就是是否使用HTTPS的争论。质疑者会问静态网站需要HTTPS吗?它有什么用吗?它究竟保护了什么?

Google在7月24号发布的Chrome68中,引入了一项重大的安全机制。当加载非HTTPS网站时,该浏览器的处理方式会更加审慎。此时地址栏的非HTTPS网站被显著标记为“不安全(Not Secure)”,也就是说,只要遇到潜在不安全的站点,Chrome都将发出警告信息。

此前,Chrome只会给那些需要记录密码、银行账户信息的HTTP网站标记“不安全”。而现在Google突然加快的步伐,彻底将那些缺失有效安全证书的非HTTPS网站划归到了“潜在不安全”的网站,说明HTTPS的普及情况仍旧不甚理想,遇到了很大的瓶颈。

HTTPS的推广正面临一个“临界点”

去年1月,网络安全专家兼微软区域主管Troy Hunt曾发文表示HTTPS的推广正面临一个“临界点”,也就是说,愿意使用HTTPS的组织已经积极采用了,而不愿意采用HTTPS的组织,则以各种理由进行推脱,其中的主要是因为迁移至HTTPS比较困难,存在一定的技术门槛,而且成本也比较高昂。所以正如Troy Hunt所分析的,HTTPS的使用数量和比例很快就会成为一个常态。按着当时的计算,通过安全连接加载的网页百分比从52%飙升至71%,而世界排名前100万的网站,将用户重定向到HTTPS的比例从20%上升到了50%。其中使用Chrome和Firefox浏览器的组织会更加积极、快速的采用HTTPS,原因是这两个浏览器上会对非HTTPS网站会不断发出警告,而Let's Encrypt和Cloudflare提供的更容易访问的证书,以及对未加密的流量带来的风险日益增强的认识,也推动了HTTPS的迅速普及。就连政府也一直在推动所有网站采用HTTPS,例如,英国国家网络安全中心(National Cyber Security Centre)也曾发出以下呼吁:

所有的网站都应该使用HTTPS,即使它们不包含隐私内容、登录页面或信用卡等信息,也应遵循此原则。

尽管HTTPS是安全的,但在HTTPS的推广中,除了技术门槛和转移成本外,还面临很多专家提出的所谓“HTTPS不安全”理论的挑战。比如Scott Helme,就认为HTTPS的证书机制存在问题,而且会逐渐成为更严重的问题。再比如, Scott Helme 在今年3月分析了Alexa前1百万的网站,他认为使用HTTPS技术的网站虽然很多,但Chrome与Firefox宣布要停止支持的HTTP公共密钥固定(HTTP Public Key Pinning, HPKP),却在这时候呈现明显成长的趋势。

1532425776936048.jpg

大家都知道,相较于HTTP协议,HTTPS使用了SSL/TLS进行加密,基于证书系统的公钥一方面保证用户连接的是正确的网站,另一方面结合私钥,可以保证网络数据不会被盗取。

但根据Scott Helme的这份报告,Let's Encrypt现已成前百万网站最大的CA凭证发放机构,在2017年8月,Let's Encrypt的凭证发放数量就已经逼近Comodo。所以Scott Helme认为,降低成本以及技术门槛,对于提升采用率的确有极大的帮助。如果你单看上图,就会误以为已经要被Google Chrome抛弃的HPKP技术,其采用率正呈直线成长,会出现HTTPS不安全的感觉。

目前像Scott Helme这样否定HTTPS技术的人还有很多,按着Troy Hunt的分析,这些人的正在形成一种强大的负面影响。Troy Hunt怀疑他们有可能会让HTTPS的推广面临困难,且Troy Hunt分析到,其背后的原因很可能是HTTPS的使用,让他们的既得利益受到损害。

为什么必须坚持对HTTPS的推广,在官方页面上,Google是这样说明的:

过去几年中,我们一直主张站点采用HTTPS,以提升其安全性。去年的时候,我们还通过将更大的HTTP页面标记为‘不安全’以帮助用户。

静态网站需要启用HTTPS的原因

经过了数年的推广,Google通过在Chrome浏览器中标记这些网站为不安全链接,从而引起用户和站长的注意。在Google的努力下,目前Chrome上68%的流量都是得到保护的,Top 100网站中已经有81家网站默认使用HTTPS。

而剩下的一些网站(其中包括访问量很大的网站)不使用HTTPS的原因是因为他们认为静态网站不需要启用HTTPS。

近日,Troy Hunt在博客上专门针对静态网站是否需要启用HTTPS进行了详细分析。

在众多是否使用HTTPS的争论中,有一个话题被讨论的最多,那就是是否使用HTTPS的争论。质疑者会问静态网站需要HTTPS吗?它有什么用吗?它究竟保护了什么?Troy Hunt则一直在寻找机会回答这些问题,这也是这篇文章诞生的初衷。在阅读Troy Hunt的解释之前,你可以先看一下这个视频。该视频完美地向人们展示了静态网站在使用了HTTPS后,是如何避免视频中所受到的传输层风险的。

静态网站在使用了HTTPS后,会更容易被人们访问

先看4个短视频来了解一下,每个视频大约5分钟,通过重定向到安全连接,几乎任何网站都可以安全的访问到这些视频,这从视频字幕已被翻译成16种不同的语言就可以看出,HTTPS比以往任何时候都更容易被人们访问到。

避免WiFi Pineapple这样的神器自动访问静态网站

The WiFi Pineapple是由国外无线安全审计公司Hak5开发并售卖的一款无线安全测试神器(俗称大菠萝),不仅可以轻松的作为无线热点使用,而且可以欺骗设备,使其认为它是一个已知的网络,且无需任何用户交互即可自动连接。升级为HTTPS后,WiFi Pineapple这样的神器再也无法自动访问静态网站了。

方便了ClippyJS和Cornify这样的个性化操作

Clippy.js是一个纯JavaScript实现的微软Office卡通助手,你可以方便的把它嵌入到任何网页上。静态网站使用了HTTPS后,Troy Hunt用ClippyJS做了测试,如果你真的喜欢个性化,ClippyJS这样的操作在HTTPS中,会有更好的操作空间。

而Cornify则会让所有喜欢独角兽和彩虹图案的网友把任何网页“独角兽化”,且在HTTPS中,网站会提供完整的Cornify按钮。

更好的使用Harlem Shake

Harlem Shake经常被拿来用作在易受攻击的网站上运行脚本的“证明”。例如,查看嵌入在DNS条目的TXT记录中时的使用方式,然后将其加载到未正确输出编码结果的WHOIS服务中

避免被秘密挖矿

Troy Hunt使用了Coinhive进行测试,HTTP状态下,Coinhive会轻松的使用用户的CPU秘密挖矿。而使用HTTPS,则会让秘密挖矿更难以实施。

避免被跨站请求伪造这样的漏洞劫持

比如,Intex N150设备中的路由器固件存在跨站请求伪造漏洞(CVE-2018-12529 ),远程攻击者可利用该漏洞更改用户密码及路由器的设置。Troy Hunt们经常看到针对路由器的CSRF攻击导致DNS劫持,这当然是HTTPS防范的另一个重点。

避免被DNS劫持

在传统的HTTP页面中,很容易发生DNS劫持吗,比如在OnBeforeRequest事件中,只需要使用以下几行FiddlerScript即可完成DNS劫持。

if (oSession.HostnameIs("btlr.com")){
  oSession.hostname = "scripting.com";  
}

如果你使用了如Wifi Pineapple的设备,你可以使用DNSspoof获得相同的结果。此时,用户会重定向到一个完全不同的地址。DNSspoof启用DNS欺骗,如果是请求解析某个域名,DNSspoof会让该域名重新指向另一个IP地址(黑客所控制的主机),如果DNSspoof嗅探到局域网内有DNS请求数据包,它会分析其内容,并用伪造的DNS响应包来回复请求者。如果是反向IP指针解析,DNSspoof也会返回。如果是请求解析某个域名,Dnsspoof会让该域名重新指向另一个IP地址(黑客所控制的主机),如果是反向IP指针解析,dnsspoof也会返回一个伪造的域名。

避免出现超级加农炮(The Great Cannon)这样的攻击

《华尔街日报》曾在2015年29号报道,美国社交编程及代码托管网站GitHub遭到大规模的流量攻击,当时就有人分析,过滤入境流量的防御性的GFW防火墙正逐步演变成进攻性的大炮。他们将这个攻击形象比喻为超级加农炮(The Great Cannon)。这次针对GitHub的DDoS攻击,持续了5天之久,多次导致GitHub宕机。更有甚者认为该攻击疑似来自中国的百度,而Troy Hunt认为只要当时GitHub使用了HTTPS防范机制,就完全可以避免这样的攻击。

避免出现BeEF攻击

对Troy Hunt来说,静态网站启用HTTPS后,最重要的是避免出现BeEF攻击。

据悉,只要遇到潜在不安全的站点,Chrome都将开始发出警告信息,虽然会对日常使用造成影响,但这确实是对安全很有帮助。比如这个在YouTube上观看量达到5亿次的视频,都开始使用https了。但对有些经常使用的网站,如ESPN,则可能会受到安全提示,尽管它是一个优良网站。

43097DB1941896EB0DC9E8136821F91555CFC561_size52_w700_h637.jpeg

Chrome 68除了标记出不安全的HTTP网站,还附加了很多强大的安全功能堪比小型杀毒软件

两种广告防御机制

从Chrome 69开始(预计今年 9 月发布),如果网页缺乏安全防护,HTTP/HTTPS页面上就只会显示“不安全”的标记了,而HTTPS网页上的“安全”标记则会被移除。

1.png

据Cloudflare推测,全世界流量排在前100万名得网站中,有542605个网站都还没有使用HTTPS,这也就意味着,用户使用Chrome 68访问网页时,见到“不安全”的标记就很常见了。

另外,Chrome 68还增加了两种全新的恶意广告防御机制。

首选,Chrome现在能拦截臭名昭著的iframes(通常会嵌入在网页中)了,iframe会将整个父页面重定向到另一个URL。自Chrome 64以来,Google就开始逐步采取对策了,不过在Chrome 68中才算正式实施。

当然,iframe并没有被Chrome完全禁止,只有当用户直接与iframe交互时,才允许iframe将主页重定向到新网址。这是由于恶意广告中使用的大多数iframe通常都在屏幕外单独出现,因此此防御机制可以阻止恶意广告将用户重定向到新网站,同时仍允许单点登录(SSO)登录页面或类似技术按预期工作。如果用户愿意和它互动,它也可以对页面进行重新定向。不过整体来说,这一改变确实对拦截恶意广告起了巨大作用。

其次,Chrome现在还完全阻止了Tab-under行为。Tab-under是指当用户点击一个链接,网站会用另一个标签页打开新的URL,而老的标签页不但不关闭,并在其中加载包含大量广告的网址,Tab-under技术近年来已经泛滥成灾,急需处理。

去年Google首次公布了tab-under拦截功能,第一个Tab-under拦截机制也随Chrome 65一同被发布。而Chrome 68则正式将这一拦截功能加入到其中,浏览器每次拦截到Tab-under行为,都会在警告用户。

2.png

阻止第三方软件注入Chrome进程

另外,Chrome 68发布的另一个里程碑意义是,它自己本身就具备了杀毒软件的功能。Chrome 68试图阻止第三方软件(大多数为杀毒软件)在Chrome主进程中植入代码,而现在这项工作进入第二阶段了,而第一阶段则是在去年11月实施的。

当时Google就表示Chrome 68将开始阻止第三方软件注入Chrome进程。如果阻止过程妨碍了Chrome的运行,则Chrome将重新启动并允许第三方软件注入,这也与当时这方面的技术成熟度不足有关。不过目前这个阻止第三方软件的计划还不能完全实施,只是会显示警告,建议用户删除企图进行注入的该软件。

按着Google的计划,从2019年1月起,他们会完全阻止第三方软件注入Chrome进程。

API和web开发方面的重大变化

但Chrome 68可不是一次简单的版本升级,你不要以为它只是简单的漏洞修补或是某些细小功能的添加。Chrome 68还对Chrome的底层进行了重新设计和调整,本次最重要的是对API和web开发方面的重大调整。

其中最大的调整是Chrome 68现在支持Payment Handler API了,该API是Google在Chrome 61中添加的付款请求API的附件。它的作用是通过允许浏览器从网站或网络应用程序中减轻一些载荷(以及安全隐患)来简化在线支付的过程,有了Payment Handler API,整个在线支付的过程会简化很多。

3.png

此外,Google表示它专门修改了“添加到主屏幕”(Add to Home Screen)的功能,这些都是为了方便开发者的开发,将弹出功能的控制权下放给开发者后,他们就可以更多地控制这些弹出窗口的显示时间和方式,而这些弹出窗口通常用于基于Chrome的移动应用。

4.png

除此之外,Chrome 68还有增加了新的Page Lifecycle API,这也是全新的Chrome 68功能,此API将是大多数Web开发人员将来使用的重要功能。有了Page Lifecycle API,开发者就能根据用户设备的“生命周期”(CPU暂停状态、电池状态、浏览器标签状态、前台及后台状态等)对网站进行调整,以提升用户体验,Page Lifecycle API的全部信息都在这里了。

源链接

Hacking more

...