这个27年前的互联网协议让数据任由劫持,搞定它就可以搞定整个互联网
三张餐巾协议
那是在1989年,当两名工程师在共进午餐的时候,互联网的扩展日益严重,一些问题已经变得可怕起来,曾经是计算机科学家眼中新奇事物的网络,如今已膨胀成庞然大物,越来越逼近互联网最基本协议中那堵坚硬的数学壁垒。
随着系统崩溃的预期隐约出现,两人开始在被番茄酱弄脏的餐巾背面粗略梳理解决方案火花,一张写不下又接着画上了第二张、第三张。这被发明人昵称为“三张餐巾协议”的东西,将迅速引发互联网革命。尽管还有挥之不去的问题,工程师们将自己弄出的东西视为一种临时的快速修补,一旦出现更好的选择便立马更换的那种。
27年后,智能手机占领人类世界,黑客活动泛滥成灾。但“三张餐巾协议”依然在导引着全球网络上的长距离通信流量——尽管关键安全问题的警告逐年紧张。三张餐巾协议虽然只是一个临时弥补方案,但却成丝毫没有看到被替换的迹象。
发明人之一雅科夫·雷西特说:“短期解决方案很容易伴随我们很长时间,长久解决方案几乎从不会出现。这是我的经验总结。”
雅科夫·雷西特
将我们沉浸在视听消费世界中时,互联网看起来设计得跟赛车一样优雅。但其实它更像是科学怪人弗兰肯斯坦拼出来的怪物而不是法拉利,更接近一堆临时部件拼凑成的大杂烩——因为至少还能用,所以苟延残喘。
其后果每时每刻都在网络空间中上演,黑客们利用老旧的防护脆弱的系统来诈骗、盗取、监视以前根本不敢想的广大领域。他们利用的漏洞,从技术上说都是众所周知的古早漏洞,仅仅因为业界喜欢追着问题修复而不是直接替换掉腐朽东西的爱好而存活。
专精路由安全的计算机科学家兰迪·布什说:“来到互联网,你就来到了黑客城。长期以来,所有这些东西都缺乏正式的规范,就是一堆修修补补的油漆和腻子。”
这就是“三张餐巾协议”的故事,更正式的叫法是“边界网关协议”,或BGP。
存在重大安全隐患的BGP
在最基本层次上,BGP帮助路由器决定怎么将大量数据在组成互联网的连接巨网中传送。可能的路径千千万,有的又慢又曲折,有的快速而直接,BGP干的,就是为路由器挑一条路走提供信息——甚至在没有互联网完整地图也没有导引流量的交警存在的情况下。
依赖单个网络持续共享可用数据连接信息的BGP的诞生,帮助互联网不断膨胀成了今天这个全球性网络。但BGP也让大量数据流任人劫持,只要有所需的技术和接入点就行。
造成这种情况的主要原因在于,BGP与互联网上很多关键系统一样,是自动信任用户的——小网络上可行,但全球性的网络就根本是在坐等攻击了。
帮助路由器决定怎样在互联网上发送数据的规则。网络依赖于BGP消息的传输,来决定数据包在亿万可能路径中到达指定目的地的最佳路径。BGP中存在重大安全缺陷,有待其升级版协议BGPSEC的修复。
劫持已经成了专家都难以解释的网络日常:丹佛市两台计算机之间的通信怎么就绕道走了7000英里之外的冰岛路线?巴基斯坦一家公司是怎么让YouTube崩溃的?为什么五角大楼敏感数据会流经北京?
对于这些问题,技术上就可以解决,但全都归结到了一个事实:BGP在信誉系统(honor system)上运行,让数据以奇怪的方式在神秘人的控制下全球流动。
对BGP固有风险的警告自该协议诞生之初就存在了。哥伦比亚大学计算机科学家史蒂夫·贝罗文说:“路由安全是个问题,从概念上就很容易看穿。但从工程上解决那是相当的难。”
(责任编辑:安博涛)