互联网上连接网络的路由协议固有的不安全性对保护用户和网站之间通信的基础设施构成了直接威胁。
边界网关协议 (BGP) 被计算机网络运营商用来交换有关他们拥有哪些互联网协议 (IP) 地址以及如何路由这些地址的信息,该协议是在互联网规模较小且运营商之间相互信任而没有任何形式的验证的时代设计的。
如果一个运营商或自治系统 (AS) 为其不拥有的一组 IP 地址发布路由,而其上游提供商将该信息传递给其他人,那么发往这些地址的流量可能会被发送给恶意运营商。
此类事件称为 BGP 劫持(由恶意行为者故意实施)或路由泄露(由人为错误或配置错误导致),而且越来越常见。它们的影响可能是局部的,也可能是全球的,具体取决于具体情况。
虽然有最佳安全措施可以防止此类事件,但并非所有全球网络运营商都实施了这些措施。未实施这些安全措施的网络也是最有可能存在易受黑客攻击的边界网关路由器的网络。
周三在拉斯维加斯举行的黑帽安全会议上,有两场演讲专门讨论 BGP 劫持,强调了该主题对安全社区的重要性。在其中一场演讲中,一位名叫 Artyom Gavrichenkov 的俄罗斯安全研究员展示了攻击者如何进行 BGP 劫持攻击,这种攻击只会影响一小片地理区域,但却可以帮助他们欺骗证书颁发机构为他们不拥有的域名颁发有效证书。
为了实现这一目标,攻击者需要选择一个目标网站,其 IP 地址属于位于世界不同地区的 AS。例如,亚洲的攻击者可能决定以 Facebook 为目标。然后,他们需要选择一个非常接近发起攻击的恶意自治系统的本地证书颁发机构 (CA)。
攻击的目的是让证书颁发机构的 ISP 相信 Facebook 的 IP 地址属于流氓 AS,而不是 Facebook 的真实 AS。选择较远的目标的目的是降低真实 AS 注意到劫持的可能性——本质上是让一小部分互联网用户相信 Facebook 属于另一个网络。
获取域名的 TLS 证书的过程涉及证明请求证书的人对域名具有控制权。此检查可以通过多种方式自动完成:通过将 CA 提供的特殊页面上传到托管域名的服务器,以便 CA 检查该域名是否存在,通过向域名 WHOIS 记录中列出的电子邮件地址发送电子邮件,或通过为域名创建域名系统 TXT 记录。仅使用其中一种方法就足以确认所有权。
在托管域名的服务器上创建页面是最容易通过 BGP 劫持攻击的检查。攻击者需要设置 Web 服务器,创建页面,然后为 Facebook 的 IP 地址发布恶意路由。这些路由将在区域范围内传播,影响证书颁发机构,并欺骗其相信该页面实际上托管在 Facebook 的域上。然后,CA 将颁发 SSL 证书。
然后,该伪造但有效的数字证书可用于对世界各地的 Facebook 用户发起中间人攻击,而不仅仅是发生 BGP 劫持的地区。
加夫里琴科夫表示,目前支撑网络安全通信的数字证书基础设施并未将路由缺陷考虑在内。他还表示,由于该基础设施内置于从台式电脑到嵌入式设备和手机等所有设备中,因此很难更改。
根本问题在于互联网路由协议以及未实施推荐的安全措施。然而,BGP 劫持问题早已为人所知,研究人员认为,该问题也不太可能在短期内得到解决。
谷歌提出的证书透明度框架或某些浏览器中实施的证书固定机制等举措可以帮助检测何时颁发恶意证书,但这更多的是一种变通方法而不是解决方案,因为它们尚未被广泛采用。