华为RPKI科普

华为RPKI科普

以下内容来自华为RPKI科普

0.简介

RPKI(资源公钥基础设施)是一种基于PKI(公钥基础设施)的技术,专门用于验证BGP发布的路由信息的真实性和合法性,防止路由劫持等网络安全问题。

  • PKI:一种用于管理和验证数字证书的技术,它主要用来保障数据交换的安全性和完整性。
  • RPKI:是PKI的一种应用,专门用于保障BGP路由的安全性。

1.为什么需要RPKI

  • 难以保证每个AS通告的路由信息都是完整的、真实的、可信的
  • BGP前缀劫持
    华为RPKI科普_第1张图片
    • 前缀劫持:在AS1向外通告10.1.0.0/16的基础上,AS4恶意伪造路由通告,即向外谎称自己是10.1.0.0/16的起源AS。AS3收到的10.1.0.0/16的真实路由的AS_PATH长度为2,虚假路由的AS_PATH长度是1,根据BGP最短AS_Path优先原则,AS3将选取该虚假路由,因此原本流向AS1的全部流量被劫持到AS4
    • 子前缀劫持:在AS1向外通告10.1.0.0/16的基础上,AS4恶意构造更为详细的路由通告,即向外发出比10.1.0.0/16更加具体的通告,即10.1.0.0/24,根据BGP最长前缀匹配原则,AS2和AS3到达10.1.0.0/24的流量将会发往AS4。

2.RPKI是如何工作的

  • 重要概念
    • 互联网号码资源分配机构IANA,负责分配IP、AS、域名等;组织架构为IANA->RIR->NIR/LIR->ISP
    • 资源公钥基础设施:RPKI是数字证书系统
    • 证书:RPKI中的证书包括CA(Certificate Authority,证书颁发机构证书)证书和EE证书(End Entity Certificate,终端实体证书);CA证书用来担保IP地址和AS号的分配,EE证书用来验证路由源授权(Route Origin Authorizations,ROA)。
    • ROA:某个IP地址的所有者已经将其持有的IP地址授权给某个AS。
    • RPKI资料库:RPKI资料库是用来存储证书和签名的数据库。
    • RPKI依赖方(Relying Party,RP):是连接RPKI体系和互联网域间路由系统之间的桥梁。RP负责从RPKI资料库中周期性地同步下载证书和签名(ROA),并进行验证,从而获得IP地址前缀与AS号的真实绑定关系。RP会将这一结果下发给路由器,路由器获得这些数据后用于判断BGP路由消息的真实性。
  • 整体架构
    • RPKI整体架构:证书签发体系、证书存储系统以及证书同步验证机制。
      华为RPKI科普_第2张图片
    • 证书签发体系
      1. APNIC签发自签名的根证书[签发者:APNIC,接收者:APNIC,号码资源:10.1.0.0/16,10.2.0.0/16,AS1-AS99],证书生成后,APNIC会将根证书存储在自己的资料库中;
      2. APNIC使用根证书为ISP1签发资源证书[签发者:APNIC,接收者:ISP1,号码资源:10.1.0.0/18,10.2.0.0/20,AS1-AS9],证书生成后,ISP1也会将签发的证书存储在自己的资料库中;
      3. ISP1使用自己的证书签发ROA[签发者:ISP1,绑定关系:10.1.1.0/24 & AS1],通过签发ROA签名来授权某个自治网络对某个IP地址前缀发起路由起源通告。ROA将该自治网络的AS号与该IP前缀绑定在一起。

3.RPKI区域验证

  • 目的:通过验证从外域EBGP对等体收到的路由是否属于本区域路由来控制选路结果,防止域内的路由被域外攻击者劫持,从而确保域内的主机能够安全地访问内部服务。
  • 区域验证
    华为RPKI科普_第3张图片
    • 攻击:在这个网络环境中,AS1、AS2和AS3属于同一运营商,而AS3与另一个运营商网络AS100连接。当一个用户从AS1接入网络,并尝试访问AS2上的一个服务器,其IP地址为10.1.0.0/16。通常情况下,用户的流量会通过AS1-AS3-AS2的路径来到达服务器。然而,如果AS100存在一个攻击者伪造的更详细的路由10.1.0.0/24,并将其发布出去,用户的访问流量可能会被攻击者窃取。
    • 防御:为了应对这种攻击,我们在AS3的边界路由器上部署了区域验证功能,并将AS1、AS2和AS3划分为一个区域1。当AS3从AS100接收到一个攻击路由时,如果该路由的源AS是AS2,尽管它属于本区域1,但由于它是从区域1之外的BGP对等体接收到的,区域验证不会通过,因此该路由被视为无效或者被降低优先级处理。这样,我们可以有效地减少攻击者伪造路由的影响。
  • 区域联盟验证
    华为RPKI科普_第4张图片
    • 攻击:在这个网络环境中,有多个自治系统(AS)属于不同的运营商。AS1、AS2和AS3属于同一运营商,而AS4和AS5属于另一个合作运营商。此外,AS3和AS4都与另一个运营商的AS100连接。当一个用户从AS1接入网络,并尝试访问AS5上的一个服务器,其IP地址为10.1.0.0/16。通常情况下,用户的流量会通过AS1-AS3-AS4-AS5的路径来到达服务器。然而,如果存在一个攻击者伪造了一个更详细的路由10.1.1.0/24,并将其发布出去,用户的流量可能会被这个攻击者窃取。
    • 防御:为了应对这种攻击,我们在AS3的边界路由器上部署了区域验证功能。将AS1、AS2和AS3划分为一个区域1,将AS4和AS5划分为另一个区域2,这两个区域共同组成一个区域联盟1。当AS3从AS100接收到一个攻击路由时,如果该路由的源AS是AS5,尽管它属于本区域联盟1,但由于它是从区域联盟之外的BGP对等体接收到的,区域验证不会通过,因此该路由被视为无效或者被降低优先级处理。这样,我们可以有效地减少攻击者伪造路由的影响。

你可能感兴趣的:(RPKI,华为,网络,笔记,计算机网络)