不给互联网换一个“看门人”,我们都得玩完

2015-07-23 15:33


一切都崩坏了。只要问任何一个安全工程师就能知道。回到 1998 年,当年黑客组织 L0pht 曾经向美国国会作证,说明他们可以在 30 分钟之内让整个互联网停止工作。他们使用的方法是滥用 BGP——边界网关协议(Border Gateway Protocol),这是一个不为人知但颇为重要的路由系统。这是在 17 年前的事。时至今日,BGP 和当年一样脆弱。一切都太可怕了。

嗯,那坦白讲,这 17 年来互联网毕竟还是存活下来了不是?——但比起设计巧妙,这更像是侥幸。理论上任何一个互联网服务提供商(ISP)都可能因之遭遇大破坏。去年有人利用了 BGP 的弱点从比特币矿工手中窃取了 10 万美元。两年前,著名的间谍软件作者,一个黑客团队使用 BGP 劫持了它本身不拥有的 IP 号频繁报告出现,说明大量互联网流量以一种可疑的路径通过远方服务器。在 2008 年,巴基斯坦无意中由于错误配置 BGP 导致 YouTube 在该国下线两小时。这样的例子简直举不胜举。

不只是 BGP。域名系统(DNS)用来把域名指向 IP 地址。这个系统自从诞生之日起就存在基础性的弱点,因此遭受了多轮袭击从 90 年代开始人们就致力于保护它的安全。安全的 DNS,巧妙的被命名为 DNSSEC,这是一个真实存在的东西,而……仅被全球范围内少于 13%的 DNS 验证系统使用。它的对应物,BGPSEC,现在……仍在等待最终的标准化进程,尚未投入运行。

再说一次,DNS 和 BGP 是从上世纪开始,其高度脆弱性就广为人知。

等等,事情更糟糕了!甚至就连对系统漏洞的修补也是充满毛病。不管是 DNSSEC 还是 BGPSEC 都依赖由 SSL 和 TLS 证书和证书签署者信任的同一种等级信任系统。至少,对浏览器而言,这个系统是“毫无希望地千疮百孔”。你的浏览器信任各种各样的“根证书”,而其中任何一种都可能被劫持或者损坏。

固定证书前向安全有所帮助,但根源上的问题仍旧未改变:等级信任系统是,理所当然是,分等级给予信任的。如果一个证书授权被损坏——这并不是一个理论上需要考虑的情况——接下来信任这个授权方的每一个人都某种程度上陷入危险。

觉得糟透了对吗?等等!我才刚开始说。这些都是巨大的深不见底的陷阱,随时将互联网自身的安全性置于不利境地,让人们的操作看起来就像是在纸板和胶带粘成的独木桥上走猫步那么危险。但就算你已经做到了安全连接到想要访问的网站,这才刚刚引申出一堆新的问题。你在浏览器安装和运行了 Flash 对不对?你这个大,傻,冒!

甚至,你可能还安装有 Java。你真不应该这么做。但就算以上陷阱你全都没有踏入,最终连接到正确的服务器上,依然有吓人的高几率可以让一切安全措施看起来都想幼儿园小孩搭的枕头堡垒一般可笑。在我们现在身处的这个时代,在 2015 年,次主流互联网站点们依然以纯文本存储用户的密码,而不是加盐和 hash 处理它们——这本来应该是最最基础的常识。(注:一位身为专家的朋友告诉我,hash 和加盐都是老黄历了;应该使用 bcrypt 更好些。)而且,自然了,这些密码中一大堆都会是“wodemima”或者“12345678”。请至少使用复杂点的密码——可以的话,请用一个密码管理器

在线安全是一个经典的潘多拉魔盒——但请不要忘记神话中潘多拉发现的魔盒最底部的最后一样东西。那就是,希望。

你可以关掉 Flash。你可以关掉 Java。你可以使用密码管理器。我们可以最终,令人信服地,把分等级的证书提供商替换为去中心化的,成块链接的安全服务。我们知道如何促进网络的整体安全。我们只是不会像过去 20 年那样始终受其烦扰,因为安全过程很艰难,而且需要把其他所有配套的事情全都做好。尽管如此,我更想保留希望,我们最终每个人都会开始意识到,一次的安全投资,带来的是十倍不止的回报,还有——真正意义上的安全。

我太乐观了?那好:就让我们在一系列安全大灾难到来之前,期待每个人能够唤起安全意识吧。在 1998 年干掉整个互联网还不算什么大事。但是现在是网络主宰一切的时代,安全的代价是每年都在变大的。