在这篇文章中,华纳云将带大家探讨BGP(边界网关协议)——互联网的路由服务,它负责审视所有可用的路径并选择最佳的路线来传输数据。然而,BGP的安全性也面临着威胁,有时会导致重大的网络中断。尽管如此,我们可以通过一些方法来确保BGP的安全。
BGP面临的威胁之一是BGP劫持。要理解BGP劫持,我们首先需要了解BGP用于路由互联网数据包的简化模型。互联网不是由单一实体运营的,而是由数千个自治系统组成,这些系统的节点遍布全球,并以复杂的图谱相互连接。本质上,BGP的工作方式是每个节点都必须仅使用直接连接的节点所了解的信息来确定如何路由数据包。在一个简单的网络A-B-C-D-E中,节点A仅根据从B收到的信息来确定如何到达E,节点B从A和C了解网络情况,以此类推。
如果恶意节点欺骗另一个节点,谎报隔壁节点的路由,就会发生BGP劫持。如果没有安全措施,这种错误信息就会从一个节点传播到另一个节点,直到大量节点被误导并试图使用这些不正确、不存在或恶意的路由。为了保证BGP的安全,应该采取措施阻止这种错误信息的传播。由于互联网的开放和分散特性,我们无法直接阻止恶意节点试图访问其他节点。但我们可以让节点验证所接收的信息,从而自行拒绝这些不受欢迎的路由。
一种解决方案是使用资源公钥基础设施(RPKI),这是一种将路由与自治系统相关联的安全框架方法。RPKI的技术性基本思路是使用加密技术为节点提供验证信息的方法。启用RPKI后,我们可以观察在BGP劫持发生后数据包的情况,以及RPKI是如何通过使恶意路由无效来保护网络的。
RPKI使用数据证书和签名来验证BGP路由的真实性,帮助网络运营商预防路由劫持和相关安全威胁。在RPKI体系中,各个互联网号码资源注册机构如IANA、RIR等都可以作为证书颁发机构(CA)签发资源证书,这些证书证明了某个实体对特定IP地址前缀的所有权或控制权。还有资源声明,包含了IP地址前缀和AS号的绑定关系,证明了某个AS有权限宣告特定的IP地址前缀。
路由起源授权(ROA)授权某个AS对特定的IP地址前缀进行路由通告。ROA将AS号和IP前缀绑定在一起,并发布在RPKI数据库中。RPKI依赖方(RP)负责从RPKI资料库中同步下载证书和签名,并验证其有效性,从而得到IP前缀和AS号的真实授权关系。路由器可以从RP获取这些数据,以判断BGP路由消息的真实性。
RPKI资料库是由多个存储库发布点组成,存储并发布资源证书和ROA签名,形成一个分布式数据库。
通过这些组件,RPKI允许网络运营商验证路由通告的合法性。例如,当一个AS收到一个路由通告时,它可以通过查询RPKI资料库中的ROA来验证通告的AS是否真的有权宣告该IP前缀。如果ROA验证通过,则路由通告有效;反之,如果路由通告可能来自恶意源,它会被标记为无效。RPKI的部署和运行机制已经成为互联网安全的重要组成部分,全球重要的互联网注册机构都已部署自己的RPKI信任锚点,并为会员提供RPKI的CA服务。此外,路由设备服务商、骨干网提供商、ISP和ICP等都在陆续部署RPKI相关工作,以提高互联网的路由安全。