如果你使用了 CloudFlare,赶紧改密码

CloudFlare 前几天出了一个严重的 bug,会导致经过它的流量都有一定机率泄漏。这个问题很严重,如果你直接或间接使用 CloudFlare 的服务,赶紧修改相关密码,包括重新配置两步验证

Bug 描述

CloudFlare 提供了一个功能,可以重写它缓存的内容,比如压缩 HTML 之类。其中一个用于重写的工具有一个 bug,不能正确处理某些特殊构造的 HTML 内容。在处理那些内容的时候,会错误地把一些随机内存中的内容输出。这些随机内容,包含了 HTTPS 加密的密钥、cookie 等各种非常机密的东西。

这里并不是说,如果你访问的网站,没有输出特殊格式的内容,就不会受影响。CloudFlare 通常在一台主机上分发多个网站的数据,只要同一台主机上出现了特殊的文件,你访问的网站就可能会受影响。

由于 CloudFlare 提供的内容多数是公开的,可以自由访问的。于是这些机密信息有可能已经被其它人访问到了,且已经追踪不到了。更严重的是,有一些搜索引擎可能记下了这些内容,还可供他人随时查询。

事件经过

上周五(2月17日),一个 Google 的工程师在测试某个功能的时候,意外发现了 Google 的爬虫抓到了一些奇怪的内容,看上去不像是正常的网站内容。追根溯源,发现了这些内容来自 CloudFlare,于是立即通知 CloudFlare 的安全部门。CloudFlare 也没闲着,在周末组织人力修 bug,到 21 日就完全修复了。

Google 和 CloudFlare 都发了文章来说明具体的问题:CloudFlareGoogle

CloudFlare 声称这个 bug 最早可能是在 2016 年 9 月 22 日引入的。代码中的 bug 可能已经存在了很长很长时间了,而 CloudFlare 去年推出了一项新功能,这个新功能依赖了出 bug 的代码,才把问题暴露了出来。当然,不管问题出了多久,鉴于 CloudFlare 那么大的访问量,这些机密信息可能已经泄漏得一塌糊涂了。

Google 方面说会在 90 天之后公布 bug 的细节,但是 CloudFlare 的文章里已经全说出来了 -_-

后续补救

已经有人开始收集所有使用 CloudFlare 的网站,并做成一个列表:List of Sites possibly affected by Cloudflare's #Cloudbleed HTTPS Traffic Leak。这个列表非常长,要找到自己用的服务也是需要点时间。

另外有评论说,一些 iOS 应用也受到影响,包括 Dropbox。

对于正在使用的服务,你需要做的事情:

  • 修改密码。
  • 如果开启了两步验证,需要重置两步验证,即关闭再打开。
  • 如果你使用了第三方验证,比如用 Google 的帐号登录第三方网站,也要重新做一遍验证。
  • 任何上传到 CloudFlare 上的 TLS 证书,需要重新签发。

总结

有一个共识是 HTTPS 是安全,使用 HTTPS 传输的流量,不会被第三方破解。CloudFlare 免费提供了 TLS 证书,几乎所有使用 CloudFlare 的网站,都开启了 HTTPS。并且 CloudFlare 还提供了 HTTPS 回源的选项,就是整个 HTTP 访问,都经过加密了。就在大家都认为 CloudFlare 非常安全的时候,偏偏出了这么个事情,继 Heatbleed 之后再出一次严重的 HTTPS 相关的安全性问题。

不由感慨一下,学术界反复论证了 HTTPS 的安全性无懈可击,但是拿到工程领域就不是那么回事了。工程上出问题的机率要比学术上大很多。所以有很多事情,不能只看学术论文,还要把实施者的能力考虑进去。我在说的是什么事,大家应该都能猜到。

在 Debian 中启用 TCP BBR 算法

博客恢复之后第一件事就是升级了一下主机。现在最新的 Linux 内核是 4.9,并且带了一个新的 TCP 算法,称为 BBR (Bottleneck Bandwidth and Round-trip)。

BBR 算法由 Google 提出,原先主要用于 Google 内部网络的速度提升,现在 Google 把它提交到了 Linux 内核,所有人都可以使用了。从 Google 的报告来看,这一新的算法可以明显降低网络延迟。Youtube 全球的延迟比之前的 CUBIC 算法下降了 50% 以上。从大众的讨论来看,这一新的算法主要被用于不可告人的活动。当然,由于我用的是 Google 的主机,现在如果又用了 Google 算法,是不是会更快呢?

开启的方法如下:

1. 先升级到最新的内核(适用于 64 位的 Debian Jessie):

2. 开启 BBR

打开 /etc/sysctl.conf 文件,在文件末尾添加两行:

其中第一行 default_qdisc 指的是默认的 TCP 队列算法,fq 是 Google 推荐的算法,更适用于 BBR。第二行则是开启 BBR 算法。

3. 重启并验证

直接重启主机是可以的。如果不想重启的话,可以使用以下命令来加载新的配置:

然后使用下面的命令来验证 BBR 已生效:

结果会显示 BBR 加一串数字,说明 BBR 算法已启动。

4. 效果

由于我的博客已经很快了(笑),一时半会看不出什么效果。不过启用了之后心理感觉还是不错的。

把电影嵌在网页中

我一直在寻找一种在网页播放视频,但又不过度消耗主机流量的方式。非盈利站点在流量上耗不起,YouTube 多少年了还没怎么盈利,就别说个人站点了。

WebTorrent 项目看上去很有趣,它可以直接在网页上播放一个来自 BT 的视频文件。由于 BT 的点对点特性,主机其实基本没有流量消耗,在播放视频的同时也解决了流问题。

以下视频是一个测试,视频源来自 WebTorrent 首页上的展示视频:寻龙记(Sintel)的宣传片。由于采用了 BT 技术,下载速度取决于你所在的地区和周围 BT 用户的情况,并不能保证流畅的观看体验。如果你可以正常观看视频,请留言。


支持广电总局对英语用词的限制

**本文只讨论语言的使用问题,无关手游审查的新规,也不是给广电洗地,喷子请绕行。

事情的原由是广电对手游中英文用词的限制, 附上 V2EX 的讨论贴。简单来说,广电总局对手机游戏中出现的一些英语用词,比如 "new"、"warning" 等作了限制,一旦使用则不能上架。

这个规定自然会有一大堆人反对了,因为他们的游戏不能上架,不能赚钱了。但撇开商业因素来看,这个规定并没有什么不妥。在一个中文环境中使用英文(或其它语言),无非两个原因。一是觉得英文高大上,二是暂时没有公认的中文翻译。第二点通常出现在专业领域,大量的专业词汇来不及翻译,只好引用原文,这个之后再说。先来说说第一点。

凭什么英语就比中文高大上了,凭什么“new”就比“新”高大上,凭什么“warning”就比“警告/注意”高大上。这种想法是一种直接的崇洋媚外。对于这些已经有公认翻译的词汇,使用中文来表达它们的意思,并不影响理解,也不会产生歧义。非要究其原因,只能是因为使用者觉得英文高大上,而中文不入流。

举个例子,如果博主也实行这种做法,那么本博客很有可能是这样的:

Today 我来和大家 introduce 一个新的 technology,它的名字叫 metadotblahtology。使用了这种新的 methodology,程序员写 code 可以更加 efficient,商业公司也可以更 profitable。

显然,多数人不喜欢阅读这样的文章。如果你不能接受这样的文章,那么为什么你可以接受在一个中文应用出现几个英语单词呢?大概是因为你能读懂那几个英文单词吧。大概是因为你“只”能读懂那几个英文单词吧。如果你觉得大量的英语对你是一种侮辱,那么少量的英语也会对那些完全不懂英语的人造成伤害。五十步和一百步的关系。

至于一些品牌或者缩略语,比如 NBA 和 FIFA,如何译成中文。这也是一部分人喷广电的主要依据,因为译成中文就很别扭。比如 NBA 可能会译成“美职篮”,FIFA 大概就是“世足联”了。这是翻译人员的问题,而非语言本身的问题。有一些国际品牌一样有着优美的中文名,比如 BMW “宝马”、Benz “奔驰”、HP “惠普”等。即使没那么优美,一些常见品牌的中文名也是早已耳熟能详了,比如 KFC “肯德基”、McDonald's “麦当劳”、Coke Cola “可口可乐”等。这说明只要用心想,用力推广,大多数中文译名都是可以被接受的。如果 NBA 足够重视中国市场,FIFA 的下一任老板想多贪一点,他们一定能捣鼓出大家都能接受的名称。

至于一些极端的例子,比如“道具 x 1”中的“x”也被算作是英文。这个只好认为是矫枉过正过程中的误伤。“矫枉过正”虽然指的是不好的事情,但实际操作中却又经常发生。举个例子,把一张有折痕的纸捋平,常见的做法是沿着折痕向反方向折一下,再回正。而“向反方向折一下”折一下这个动作,即为“矫枉过正”,要不然纸永远不会躺平。

从广电的角度来说,如果它不严格一些,摆出“矫枉过正”的态度,势必会有人偷工减料,懒得把一些英文改回来。而在矫正的过程中,广电躺枪也是必然。

总结,我支持在纯中文环境中使用纯粹的中文,也支持大家在纯英文的环境中学习英语,但请不要学了一两个英语单词就出来显摆。我希望中文能重现唐宋时期的辉煌,而不是像现在一样常用词都要向外语借。

Blacklane 的专车预定服务

Blacklane 是一个专车服务,于 2011 年上线,专业提供高质量的专车服务。虽然这项服务已经存在了几年时间,但似乎不太红火的样子。相关介绍也只有区区几篇博文,比如前一阵子坛子兄免费试乘了一次

之前对 Blacklane 的总体映象是比较贵,不是一般人可以体验的服务。不过最近这个想法有所改变。

点击查看[Blacklane 的专车预定服务]的详细内容

瑞士的移动支付现状

最近的一个热门事件是 Apple Pay 正式进入中国了,使用 iPhone 在支持“闪付”的 POS 机上可以直接付款,不需要像往常一样刷卡。对于经常需要拿出钱包付款的人们来说,Apple Pay 可以极大地减化付款流程。

我一直在等待 Apple Pay 进入瑞士,这样出门就可以只带个手机了。只不过事实是,瑞士的市场太小得不到 Apple 的重视,而瑞士本土的移动支付技能树似乎点歪了。

点击查看[瑞士的移动支付现状]的详细内容

StrongVPN 的用户反馈摘录

StrongVPN 是一家自 1994 家就成立的公司,它可以活到现在并依然有着很好的用户体验,足以表明它家的实力。以下是一些用户反馈的摘录,取自 StrongVPN 的用户反馈页面。原文都是英文的,附上我自己的翻译。


Jingui L.:主要使用 StrongVPN 上 YouTube、Facebook 和收发邮件。日本的服务器是我目前用过最好的 VPN 服务。它从来没有出过问题并且非常快。虽然它只在 Deluxe 套餐中才有,有点小贵但非常超值。


Zhongjie W.:主要使用 StrongVPN 访问国外站点。VPN 连接的速度很快并且非常稳定。连接配置方便,很容易就可以更换服务器。每当我遇到了连接问题,客服人员总能快速地帮我解决。


Nursat Y.:我在工作和生活中都使用 VPN。StrongVPN 的服务令我非常满意。物有所值,连接速度比其它大多数 VPN 提供商都快。StrongVPN 在工作和生活中都起到了很大的作用。


Margus M.:使用 VPN 来访问世界其它地区的网站。StrongVPN 已经没有瑕疵地为我服务了三年。即使在中国地区这么烂的网络环境下,StrongVPN 依然能提供最稳定的连接。更好的是,它家的客服非常高效。


Dominik J.:StrongVPN 是目前世面上最好的 VPN,没有之一。我和 Nathan 一起使用了四年 StrongVPN,它家的客服总是及时地出现在我需要帮助的时候,并且总能帮忙解决各种连接问题,让我访问到包括 Google 在内所有重要的网站。每当一个网站在中国被墙的时候,我只要提交一个工单,就可以获得及时的服务。我觉得已经没什么可以挑剔的了。

如果你也对 StrongVPN 的服务感兴趣,可以点击这里购买。它家现在有一个特价套餐,仅售不到 $5 一个月,非常合算。

注册过程中有任何困难的话,可以参考《StrongVPN 的详细购买攻略》,或联系 StrongVPN 的客服