当前国际主流bgp路由劫持解决方案——RPKI

个人博客地址

http://www.darkghost.life

摘抄自APNIC一段定义

RPKI

资源认证是一种安全框架,用于证明特定 IP 地址块或 AS 号码与这些互联网号码资源 (INR) 的保管人之间的关联。它通过生成称为 PKI(用于公钥基础设施)的公私加密证书来实现这一点。

这些证书提供了使用给定 IPv4、IPv6 和 ASN 资源的证明和授权,并且可以通过密码进行验证。

什么是 RPKI?

资源认证使用称为资源公钥基础设施 (RPKI) 的框架,该框架基于 X.509 PKI 证书标准。使用称为 RPKI 的验证结构,资源持有者可以自信地声明正在传输的信息是正确的并且符合他们的意图。

RPKI 允许网络运营商通过使用私钥和公钥系统对边界网关协议 (BGP) 中的路由广告进行数字加密和签名。信息可以使用私钥加密和签名,并且只能使用匹配的公钥解密或验证其签名。数字签名信息保证了在路由系统中看到的路由通告可以被验证并且是真实的。

RPKI 通过将 INR 信息添加到颁发给资源持有者的 X.509 PKI 证书来工作。这表示有关特定 INR 的保管和其他状态信息。当使用 RPKI 证书时,INR 与数字签名相关联。因此,证明签名可以证明 INR 与已签名的内容相关。您无法根据证书中未包含的 INR 正确签名。

RPKI 通过形成相互签名的证书层次结构来工作。”根”证书在子证书上签名,子证书在其子证书上签名,依此类推。签署证书的行为使您成为证书颁发机构或 CA。RPKI 将 CA 状态分配给委托 INR 的机构,因此委托角色与 CA 角色一致。区域互联网注册管理机构 (RIR) 为直接成员和国家互联网注册管理机构 (NIR) 签署证书,他们都可以就其证书中的资源签署证书和其他 RPKI 产品。

除了签署其他证书(CA 角色)的证书外,证书还可用于签署其他数字对象。这称为终端实体或 EE 证书:它不签署其他 CA 证书,它只签署非证书对象。在 RPKI 中,EE 证书用于对清单(已签名对象的目录)进行签名,并对路由和其他数字对象进行签名。路由中的主要签名对象是路由源授权或 ROA。

RPKI 应用

以下是 RPKI 的两个当前应用:

RPKI 的好处

  • 比手动检查 APNIC Whois 数据库或 IRR 数据库安全得多。
  • 保护前缀或 origin-as 的来源是防止对 BGP 完整性的许多攻击的第一步。
  • 来自资源保管人的指令/信息可以加密验证(例如,授权书签名)

……

具体技术细节参考链接https://www.apnic.net/community/security/resource-certification/

接下来我们了解下国际上一些电信运营商所部属的bgp策略

Arelion

Arelion先根据IRR注册信息来构建前缀过滤器,优先级顺序为RADB、AFRINIC、RIPE、RIPE-NONAUTH、BELL、APNIC、NTTCOM、ALTDB、PANIX、NESTEGG、LEVEL3、LACNIC、REACH、AOLTW、OPENFACE、ARIN、 ARIN-NONAUTH、JPIRR、HOST、RGNET、BBOI、TC 和 CANARIE

Arelion 于 2018 年加入 MANRS (https://www.manrs.org/),并在所有对等链路上实施了 RPKI

Arelion 对于RPKI不同状态所建议的操作

除了过滤掉 Invalids 之外,Arelion不会做任何deny操作,据我所知这也是大多运营商所选择的策略

也就是如果你的前缀没有做RPKI也不会影响正常发布,一旦ROAs所关联的orginas不一致就会被拒绝接收

RPKI StateDescriptionRecommended Action

Valid

Correct IP/masklength from the correct origin AS according to the ROA.

All good. No need to do anything.

Unknown

No ROA registered.

We recommend customers to register ROAs to protect their address space but it’s not required.

Invalid

Incorrect masklength and/or origin AS according to the registered ROA.

The address space owner should correct the ROA.

PCCW

当前国际主流bgp路由劫持解决方案——RPKI

PCCW和Arelion类似,区别在于RADB的优先级放到了最低

NTT

Attn: NTT GIN enabled RPKI-aware mode on its Internet Routing Registry service (rr.ntt.net) and will suppress IRR information that conflicts with published RPKI ROAs.

This currently affects most databases with the notable exception of RADB. We expect to enable this functionality for RADB no later than October 19, 2022. More information on this functionality can be found at the IRRd RPKI integration documentation.

NTT已经启用RPKI,但RADB除外,预计不晚于2022年10月19日为 RADB 启用此功能

RPKI服务器的搭建和使用

有以下维护良好的开源软件可以使用

我们用rpki-validator来实现,官网查看支持docker方式部署

https://hub.docker.com/r/ripencc/rpki-validator-3
docker pull ripencc/rpki-validator-3
docker run -p 8080:8080 --rm ripencc/rpki-validator-3

需要等待5-15分钟,进行数据库同步

当前国际主流bgp路由劫持解决方案——RPKI

完成后访问http://ServerAddress:8080

当前国际主流bgp路由劫持解决方案——RPKI

可以看到这个镜像只有4大区域,少了arin.tal,需要自行下载放入tals文件夹,否则条目会有缺失

下载链接

wget https://www.arin.net/resources/manage/rpki/arin.tal

直接复制粘贴也行,如下

MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA3lZPjbHvMRV5sDDqfLc/685th5FnreHMJjg8pEZUbG8Y8TQxSBsDebbsDpl3Ov3Cj1WtdrJ3CIfQODCPrrJdOBSrMATeUbPC+JlNf2SRP3UB+VJFgtTj0RN8cEYIuhBW5t6AxQbHhdNQH+A1F/OJdw0q9da2U29Lx85nfFxvnC1EpK9CbLJS4m37+RlpNbT1cba+b+loXpx0Qcb1C4UpJCGDy7uNf5w6/+l7RpATAHqqsX4qCtwwDYlbHzp2xk9owF3mkCxzl0HwncO+sEHHeaL3OjtwdIGrRGeHi2Mpt+mvWHhtQqVG+51MHTyg+nIjWFKKGx1Q9+KDx4wJStwveQIDAQAB

ROAs信息访问http://ServerAddress:8080/roas

当前国际主流bgp路由劫持解决方案——RPKI

配置RTR服务器供路由器使用

$wget https://ftp.ripe.net/tools/rpki/validator3/prod/generic/rpki-rtr-server-latest-dist.tar.gz

$mkdir rpki-rtr-server

$tar xf rpki-rtr-server-latest-dist.tar.gz -C rpki-rtr-server --strip-components 1

$cd rpki-rtr-server

$vim conf/application.properties
#修改rtr.server.address字段,对外提供RPKI-RTR服务的地址
#rtr.server.port=8323 侦听端口
#server.port=8081 RPKI服务器端口,上步所搭建
#server.address=localhost RPKI服务器地址,上步所搭建

$nohup ./rpki-rtr-server.sh > out 2> err &
#启动服务器

路由器配置使用RTR接口,以juniper为例

dark@Test-Route> show configuration routing-options
validation {
    group RPKI {
        session 10.0.3.108 {
            port 8323;
        }
    }
}

dark@Test-Route# show policy-options policy-statement bgp-import
term RPKI-VAL {
    from {
        protocol bgp;
        validation-database valid;
    }
    then {
        validation-state valid;
        next term;
    }
}
term RPKI-INV {
    from {
        protocol bgp;
        validation-database invalid;
    }
    then {
        validation-state invalid;
        reject;
    }
}

配置完成后可以看到validation数据库数据

当前国际主流bgp路由劫持解决方案——RPKI

来模拟下使用peer AS13335通告路由条目

可以对比上图ROAs信息可知只有1.0.0.0/24 AS13335对应关系可以在数据库中匹配到,我们缺失arin库所以,8.8.8.0/24没有对应的记录

1.0.0.0/24

8.8.8.0/24

1.0.4.0/24

当前国际主流bgp路由劫持解决方案——RPKI

当前国际主流bgp路由劫持解决方案——RPKI

通过策略过滤,只有1.0.0.0/24被标记为valid,1.0.4.0/24被标记为invalid,8.8.8.0/24未被标记,根据我们的策略valid是被拒绝掉的,查看路由表印证下

当前国际主流bgp路由劫持解决方案——RPKI

tips

根据页面提示信息,该工具已经停止更新,生产环境中使用可以选择其他工具,如cfrpi 参考 https://github.com/cloudflare/cfrpki

Original: https://www.cnblogs.com/darkchen/p/16827998.html
Author: 奔波的驱魔人
Title: 当前国际主流bgp路由劫持解决方案——RPKI

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/714539/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • 「免费开源」基于Vue和Quasar的前端SPA项目crudapi后台管理系统实战之业务数据增删改查(七)

    基于Vue和Quasar的前端SPA项目实战之业务数据(七) 回顾 通过上一篇文章基于Vue和Quasar的前端SPA项目实战之表关系(六)的介绍,元数据设计功能全部实现了,本文主…

    技术杂谈 2023年7月24日
    088
  • 计算机系统大作业:Hello的一生

    计算机系统 大作业 题 目 程序人生-Hello’s P2P 专 业 计算机科学与技术 学 号 班 级 学 生 江水为竭 指导教师 刘宏伟 计算机科学与技术学院 202…

    技术杂谈 2023年7月11日
    069
  • Golang——命令行参数

    需求 命令行参数多个,以空格间隔输出 实现 实现1——拼接 func main() { var s, tmp string; //隐式赋值, string 赋值 "&qu…

    技术杂谈 2023年5月31日
    090
  • Git 分支管理策略汇总

    原文链接: Git 分支管理策略 最近,团队新入职了一些小伙伴,在开发过程中,他们问我 Git 分支是如何管理的,以及应该怎么提交代码? 我大概说了一些规则,但仔细想来,好像也并没…

    技术杂谈 2023年6月21日
    086
  • 关于极限分割

    科学诸多的思潮都是由哲学引发的,当然,我说的是真正的哲学. 以前,我们探索过关于芝诺悖论问题的一些证明,继续,我们再来深入探索下极限分割的一些思想. 芝诺悖论采用了一种无限分割空间…

    技术杂谈 2023年5月31日
    094
  • 【软考】信息系统开发方法

    1.结构化方法 结构是指系统内各个组成要素之间的相互联系、相互作用的框架。架构化方法也称为生命周期法,是一种传统的信息系统开发方法,由结构化分析(Structured Analys…

    技术杂谈 2023年5月31日
    078
  • HTML+CSS图片大小自适应~PC电脑端、手机端

    写页面的时候经常会遇到需要图片 自适应 容器大小这样的情况: 不管容器有多大,只要将img的宽高设置成100%(这里的100%是相对于父级宽高而言)就能自适应容器大小。 那是不是就…

    技术杂谈 2023年5月30日
    089
  • HIT软构博客2-java异常和final语法

    final的用法: 修饰变量:final关键字修饰的基本数据类型变量称为常量,不可更改。 final修饰的引用类型是不能改变其引用地址的,但可以改变地址内部属性。 修饰方法:fin…

    技术杂谈 2023年7月11日
    078
  • MySQL版本引起的错误

    接上一篇帖子,博主在CentOS上安装了最新版的MySQL容器(版本为8.0.19),在使用本地springBoot项目连接,启动项目后操作登录系统时报错。 请看代码: com.m…

    技术杂谈 2023年7月25日
    068
  • jsp注释<%– — %> 和 <!– –> 的区别?

    jsp页面注释代码推荐用 在jsp中,采用注释代码,浏览器还是会解析注释中的代码,而且用户使用浏览器查看页面源码的时候,注释的代码对于他们是可见的,所以不管是为了提高效率,还是为了…

    技术杂谈 2023年5月31日
    0106
  • 集成电路设计流程

    1.功能设计阶段。SPEC 设计人员产品的应用场合,设定一些诸如功能、操作速度、接口规格、环境温度及消耗功率等规格,以做为将来电路设计时的依据。更可进一步规划软件模块及硬件模块该如…

    技术杂谈 2023年6月1日
    098
  • Docker 打包部署web项目 [Dockerfile方式]

    系统环境 IDE: IDEA 2020.2 Linux: WSL2 Ubuntu 20.04 Docker: 20.10.8 参考资料 博客园: Dockerfile常用指令介绍 …

    技术杂谈 2023年7月10日
    072
  • 面试官:你说你精通Redis,你看过持久化的配置吗?

    前边我们已经介绍了 Redis 五种数据类型的命令与 配置文件的基本配置,今天让我们从理论和配置两个层面来揭开 Redis持久化的神秘面纱。 所谓持久化可以简单理解为将内存中的数据…

    技术杂谈 2023年7月11日
    068
  • 国外钓鱼中奖网站

    无意间发现的国外的诈骗 网站, 虚假的 中奖页面,一步一步引导 输入账号密码; 下面是页面截图: 文章来源:刘俊涛的博客 欢迎关注公众号、留言、评论,一起学习。 若有帮助到您,欢迎…

    技术杂谈 2023年5月31日
    0111
  • 我的回忆录-青年

    与小学同学们分道扬镳,和同村的好朋友道别,拜别了父母,依依不舍地,我终于离开了农村。 当年不知道这一分别,人生从此改变。现在往回一看,留在农村或继续读中学或干脆找工作的,基本上还是…

    技术杂谈 2023年5月31日
    0103
  • flowable 流程的表单设计器 动态表单 ExtJs GridPanel 动态生成表单

    Original: https://www.cnblogs.com/rgqancy/p/15943810.htmlAuthor: 任国强Title: flowable 流程的表单设…

    技术杂谈 2023年6月1日
    0101
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球