关注网络安全
和行业未来

《卫报》:我们是如何在2个月内实现全站HTTPS加密的

著名英国媒体《卫报》于近期在其网站上分享了一篇关于网站迁移至HTTPS的博文。在这篇文章中,《卫报》讲述了他们如何在两个月内做到的全站加密并克服种种困难和挑战的过程。

为什么要进行全站迁移?

有关隐私

使用HTTPS时,互联网服务提供商(ISP)无法追踪用户访问的页面。这意味着,当我们的读者访问那些可能暴露他们的政治观点、宗教信仰、性取向以及任何可能用来危害他们的内容的时候,我们可以保护他们的隐私。这与我们的核心价值观相符。我们相信,保护访问者的隐私是我们应该做的事情。

有关安全

一旦使用HTTPS,我们就能阻止恶意第三方在我们的网站上嵌入代码,或是对我们的用户进行追踪。

有关SEO

HTTPS还能给我们其他好处,比如可能提高我们的搜索效果。基于上述原因,谷歌已经宣布,他们将优先收录HTTPS内容。HTTPS还将帮助我们对安全的未知来源数据进行解码。

有关内容制作和完整性

使用HTTPS,浏览器能够确保所展现的内容确实是《卫报》所发布的。如果没有HTTPS,用户浏览器和网站之间的某些人,可能恶意地展示其他内容,或对我们的内容进行修改。

有关新技术

HTTPS能让我们利用一些新兴技术,如service workers、web通知、“添加到主屏幕”以及离线网页等。由于一些用户(如大部分来自南美和印度的用户)不会或不愿意下载app,所以这些新功能对于增强我们和这些用户之间联系至关重要。

当然,还有关收入

使用HTTPS后,网络服务提供商就无法在不给《卫报》任何补偿的情况下在页面中强制插入广告并且从中获利。

那么问题来了,既然HTTPS那么好,为什么我们花了这么久的时间才用上呢?

编辑方面的挑战

当时,我们面临以下几个挑战:

  • 避免在用户和收入方面带来负面影响

很长一段时间以来,广告代理商和广告交换网络都没有采用HTTPS,这损害了那些希望转而采用HTTPS的主流免费网站的收入。尽管谷歌想要并且已经在这个问题上采取了行动,但是任何负面影响的出现,都会让我们冒难以承受的风险。

  • 继续允许在文章中嵌入插件

我们的文章经常会含有多种外部组件,如YouTube视频和Twitter消息等。为此,我们必须要想办法将其安全地嵌入HTTPS页面中,因为一些内容提供方并不支持HTTPS。

  • 让老版本的交互程序继续工作

过去多年来,很多文章中的互动内容使用了多种不同的技术,并不支持HTTPS,当时我们也并未考虑到HTTPS。

方法与技巧

迁移是一个巨大的改变,不可能在一开始就预料到所有可能出现的问题,也无法为每一个问题都找到解决办法。只有当问题出现后,我们才能逐个解决。

为应对这些挑战,我们并没有制定一个大的计划,而是决定对每个问题逐一研究解决:

  • 先将一个小版块迁移到HTTPS
  • 发现问题并对其进行追踪

·在下一次迁移之前,解决那些必须解决的问题

2164

这种策略的好处之一,就是它能让我们探测到真正的问题,而不是去讨论那些自己臆测出来的问题。而且这会逐步提高我们的信心。

我们还补充了3个技巧:

  • 监测

在每个版块迁移之后,我们都会仔细监测用户数量、收入、混合内容警告和各种错误信息。

  • 后台与前台分开迁移

我们先迁移后台系统,再迁移前台系统。我们的内容API会提前为所有内容返回HTTPS链接,然后我们会在早期对内部工具进行升级与整合。这样我们可以在迁移到HTTPS的过程中,将所有问题都限制在网站本身,以便我们迅速发现问题。

  • 早期采用者的使用情况

我们给了用户一个功能,允许他们对整个网站都使用HTTPS。我们对那些愿意向我们报告问题的用户提供这一功能,并鼓励工程师们去使用这一功能。这样,在一些问题暴露给最终用户之前,就被我们发现了。同时,我们确保我们的记者在预览网站时看到的是安全的版本。这使得我们可以发现更多的未知问题并尽早解决。

如何巧妙地完成迁移

有条件的重定向至HTTPS

在每个版块迁移过程中,我们都利用了CDN供应商的力量,让我们可以基于请求的路径来轻松编写快速重定向规则(我们的路径中包含了文章所在的版块)。

我们使用了这个方法,而未使用upgrade-insecure-requests功能主要有两个原因。首要原因是,这个功能并没有被足够多的浏览器所支持。其次,upgrade-insecure-requests的说明过于复杂,与HSTS的交互对我们并不透明,而且与HSTS也不是我们的最终目标。这意味着,upgrade-insecure-requests功能对我们的实际意义不大。

采用report only的Content-Security-Policy

这个功能让我们可以记录所有混合模式警告与错误,并且在日后进行分析。而被动内容依然会显示,从而将对用户的影响最小化。最近我们切换回了block only,因为我们确信几乎产生任何影响。

旧内容的重写

为了迁移此前的互动内容,我们写了一个简单的脚本,将一个预先定义好的要迁移到HTTPS的url列表进行升级。在应用HTTPS之前,我们用这个工具将大部分互动文档进行了迁移。

HSTS

HTTP Strict-Transport-Security响应头能让一个网站通知浏览器不要使用HTTP加载网站,而是自动尝试使用HTTPS请求进行加载。这个功能的目的是保护用户和网站不会受到中间人攻击,例如SSL Stripping。在将所有版块都重定位到HTTPS之后,我们添加了这个头,这是因为我们确信添加这个头并不会产生任何消极影响。

移除短url

在Twitter不再计算url字符长度并强制服务商缩短url之前,短url有一定实用性。但现在情况不同了。我们所使用的短url也对加载时间产生了负面影响,因为它会强制浏览器进行三次重定向。这正是在使用HTTPS的时候你需要避免的事情,因此我们不再使用所有短url。

致谢

这一成果是我们的编辑、商务和计算机技术部门共同努力的结果。我们要感谢参与本次工作的每个人,同时还有几句话要单独对David说:

当我在2013年说出“把我们的网站全面迁移到https需要面临哪些挑战?”的时候,我就知道事情没有那么容易。不过我可能只是猜到了事情的复杂程度。至少大家都同意,当时在斯诺登揭露了很多秘密的情况下,这实际上是我们必须要做的一件好事,但这不像从头开始建立一个网站那样。向HTTPS并最终向HSTS迁移的好处是显而易见的。扩大用户隐私范围并通过网站的真实性建立信任不仅是好的安全实践,也是与你的客户建立更好关系的要素。其他对此博客有贡献者的说明将更有说服力,但重要的是,我们在过去3年中几乎从头开始迁移主机和CMS组件。现在你们看到的网站是设计工作和艰苦努力的成果。所有人都做得很好。(注:David Boxall是《卫报》新闻媒体公司信息安全部门的负责人。)

稿源: The guardian

评论 2

  1. #2

    匿名7年前 (2016-12-12)回复
  2. #1

    http will become a thing of the past.

    匿名7年前 (2016-12-13)回复