当前位置: 首页 > > 天 方 夜 “谈” 第33期 | IPChain

天 方 夜 “谈” 第33期 | IPChain

发表于:2020-03-12 17:51 作者: 方滨兴班 阅读数(11132人)

论文:IPchain:Securing IP Prefix Allocation and Delegation with Blockchain

作者:Jordi Paillisse∗, Miquel Ferriol∗, Eric Garcia∗, 等

时间:May 14, 2018


1 问题描述

域间路由安全性是当今互联网所面临的重大问题。简而言之,域间路由安全性包括如何在Internet的AS(自治系统)中正确发布和传播IP前缀。当前,传播这些声明的协议是BGP(边界网关协议,RFC 4271)。BGP安全也面临着巨大的挑战,错误配置或攻击者恶意控制BGP路由器都可能会将流量转移到不应接收该流量的网络,或者使有效的IP地址范围不可用(导致Internet服务中断),这种攻击通常称为前缀劫持。考虑到这些攻击的严重性,IETF已经设计了一种通过RPKI(资源公钥基础设施,RFC 6480)来解决域间路由安全的问题,RPKI是一个PKI存储库,用于记录IP前缀的合法所有者、AS号和ROAs(路由起源授权)。但是,RPKI的全球部署速度比预期的要慢,在五个互联网注册机构拥有的/24 IPv4地址总数中,只有约9%受RPKI保护(图1)。这些原因主要包括:(i)集中式操作:由证书颁发机构(CA)控制RPKI中的资源,用户和CA之间的权力平衡得不到保障。(ii)管理的复杂性:PKI管理起来很麻烦,例如执行密钥过渡时。另外,部署这些扩展并非易事,需要训练有素的人员和财务投资,以及(iii)通过RPKI中的对等协议也会暴露业务关系。此外,RPKI面临实施和透明度的挑战。

图片.png

图1 ROA覆盖的RIPE IPv4地址空间量,以/24为单位。在五个注册管理机构中,RIPE是RPKI采用率最高的一个

针对这种情况,本文提出了IPchain:一种存储IP地址分配和授权数据的区块链。IPchain利用区块链的某些属性来简化域间路由安全机制的部署。与RPKI相比,IPchain具有三个明显的优势:(i)创建灵活信任模型的能力,在CA和下游用户之间提供不同的权力平衡;(ii)简化管理,尤其是在诸如密钥翻转之类的常见PKI操作方面;(iii)可审核性:即使在修改之前,区块链的分布式账本也可以检测到可能的配置错误。IP地址与币具有一些相同的基本特征,例如唯一性或可分割性。利用这一点,IPchain允许其参与者交换IP前缀,就像在比特币中转移币一样。这样,ISP可以在链中记录其IP地址以及谁可以发布它们。当另一个ISP收到带有这些地址的BGP公告时,可以确定它们是否来自预期的AS。本文已经构建了一个原型,从可伸缩性和性能的角度来证明IPchain适用于这种情况。该原型允许通过区块链交易分配和授权IP前缀,并使用POW共识算法在所有IP地址持有者中随机选择签名者。在实验评估中,重新创建了IP地址的实际分配层次结构,在1 GB的链中存储了约50%的IP前缀。

2 背景:RPKI体系结构

IP地址是按照层次结构分配给Internet域的,通常由三层组成(图2)。互联网数字分配机构(IANA)作为Internet号码的顶级管理者,拥有整个地址空间。首先,IANA将大量地址分配给RIR(Regional Internet Registries)。这些RIR反过来又将地址分配或授权给其用户,通常是ISP。最后,ISP还可以为其用户分配地址。

图片.png

图2 IP地址分配层次结构

RPKI使用数字证书复制此结构,该证书允许对IP前缀和AS编号的分配进行身份验证(图3)。一方通过RC(资源证书)接收IP前缀或AS号,并绑定到公钥。然后,它可以通过发布新的RC(虚线)进一步将该资源分配给其他方。它还可以发出路由源授权(ROA),该授权授权AS号宣布IP前缀。拥有RC的当事方可以发布一个或多个ROA。

图片.png

图3 RPKI证书层次结构示例

网络运营商可以下载证书并使用它们来验证BGP公告。如果BGP消息中的(IP前缀,AS号)对与RPKI中的相应证书不匹配,则认为该公告无效。

3 为什么使用区块链?


灵活的信任模型:一些研究人员认为RPKI的集中特性会阻碍其部署。这是由于其用户(通常是ISP)必须信任RPKI CA,它可以任意撤销任何下游证书。相反,区块链的去中心化信任模型可以缓解这些担忧,因为公钥-私钥对的所有者保留对其资源的最终控制权。

简化的管理:RPKI的管理麻烦,例如,用户必须在两种操作模式之间进行选择。有些操作很复杂,例如密钥翻转(RFC 6489在RPKI中专门用于密钥翻转),因为它需要从被替换的证书开始重新签名所有下游证书。相反,区块链中的密钥翻转可以很容易地将硬币/资产转移到新地址(密钥对)。其他操作(例如事务的撤销)不需要专用的子系统(PKI中的证书撤销列表CRL),而只需添加一个新交易。

隐私权:区块链交易不链接到用户的身份,只链接到一个公钥。值得注意的是,RPKI也提供隐私保护,因为它的证书不包含身份信息。

状态一致性:就像在比特币中一样,在RPKI中,我们需要跟踪每个IP前缀(硬币)的所有者,例如:避免将相同的前缀转移给两个不同的用户(双花)。换句话说,我们需要保持状态的一致性。与RPKI相比,在区块链中更容易做到这一点:后者必须通过特定协议更新状态,处理CRL和清单等,而在区块链中,这些机制直接源自其交易性质。

可审核性:鉴于区块链记录的永久性,可以确定新对象是否使使用特定资源(例如IP地址)的对象(例如ROA)是否过时。此外,分布式账本可以避免删除对象不小心影响其他操作员的情况。尽管可以在PKI中进行设计,但是区块链内置了此功能。


4 共识算法

共识算法可能是区块链最重要的组成部分。本节介绍了在用于保护IP地址分配和授权的示例中使用的共识算法:IP前缀分配和授权的权益证明。在权益证明(PoS )区块链中,拥有资产/硬币多的参与者更有可能添加新区块。本质上,PoS算法随机选择一个用户来签名下一个块。根据每个参与者的硬币数量对选择进行随机加权,从而确保拥有更多资产的用户按比例贡献更多。在此前提下,本文主张PoS作为最佳的共识算法。首先,在PoS中,改变区块链的能力仍然存在。这一点在IPchain的上下文中特别重要:拥有大量IP地址的用户更有可能添加新块。本文的关键见解在于,参与者篡改区块链的动机有所降低,因为会导致严重的安全问题。通常,拥有大量IP地址空间的实体在Internet内开展业务,更希望互联网的正确运行和安全。其次,与POW相比,降低了接管的风险:积累大量IP地址通常比积累计算能力更为复杂。与其他基于PoS的区块链相比,并购的风险也得到了降低。在典型的用于金融环境的PoS区块链中,攻击者会从其他方购买代币,后者会获得金钱补偿以参与攻击。但是,在用于IP地址的区块链中,这意味着要从其他方购买IP地址。由于IP地址是一项重要的经济资产,因此这些团体没有明显的动机将其IP地址资源出售给攻击者。最后,PoS算法的优点:低计算成本和不需要专用硬件,这降低了在区块链中进行协作的入门门槛。

5 IPchain的架构

本节描述IPchain的体系结构:一个存储,分配和授权IP地址的区块链。

5.1 IP前缀作为coin

IP前缀与我们在任何区块链中发行的硬币或资产具有一些基本特征:

•明确分配给参与者

•可以在它们之间流通(授权)

•可以划分成一定限制

•不能同时分配给两个参与者

此类相似的属性使得有可能设计一个区块链来交换IP前缀,就像它们是加密货币一样。通过一系列交易,我们可以模拟RPKI在区块链中的分配层次结构,并建立IP前缀合法持有者的一致性视图。图4显示了此操作的示例:首先,Internet注册机构(分配IP地址的实体)将所有地址空间分配给自己(1)。理想情况下,此第一个交易记录在创世块中。其次,注册管理机构将前缀分配给ISP(2),后者又将它们分配给其客户(3)。最后,客户将AS号与IP前缀绑定(4)。由于创世块包含所有可以分配的前缀,因此下载区块链的任何人都可以验证地址分配和授权。如果无法将特定前缀追溯到创世块,则该前缀无效。

图片.png

图4 IPchain的交易流程实例

5.2 概述

图5展示了IPchain的使用场景示例。首先,路由器r1在区块链中写入其合法前缀(1)。现在,考虑BGP通告通过网络传播并由Rogue router进行修改。当路由器r3收到对r2的150/8通告时,它可以在区块链(2)中检查150/8是否实际上是由路由器r2发起的。在这种情况下,150/8应该由路由器r1发起,因此通告是视为无效。

图片.png

图5 IPChain使用场景示例

5.3 PoS共识算法

PoS在本实例中,选择下一个区块签名者的工作方式如下:

1.计算每个参与者拥有的地址数

2.生成一个随机数

3.选择一个参与者,其中参与者的随机数由其地址数加权

此外,在IPchain中,不使用奖励机制(如比特币的区块奖励)或对不当行为惩罚(某些PoS算法中的保证金)。

5.4 支持的操作

IP地址区块链必须提供与RPKI中执行的操作等效的操作。与RPKI的逻辑类似,我们定义了以下操作:

Allocate:将IP前缀块分配给实体,使其可以进一步将其分配或授权给其他实体。

Delegate:类似于分配,但无权向其他实体分配前缀。

Metadata:将其他数据绑定到前缀,例如,将AS号与IP前缀绑定。

5.5 部署

本文提议的区块链的部署模仿了当前用于分配IP地址的过程,该过程通常由三层组成(图1)。作为互联网数字的顶级监管者,IANA拥有创世区块密钥。首先,IANA将大量地址分配给RIR。这些RIR又将地址分配或委派给其客户,通常是ISP。最后,ISP还可以为其用户分配地址。

5.6 弹性信任:Revocation

由于区块链交易的不可逆性,一旦将一个IP地址块分配给一个实体,与CRL相反,就无法对其进行修改或删除。但是,由于操作问题(密钥损坏或丢失,人为失误,持有人行为不端等),提供一种恢复地址块的方法至关重要。此外,由于IP地址是有限的公共物品,它们不会丢失:丢失只会对其所有者造成损害,而不会损害整个社区。如果认为区块链可以执行其参与者同意的任何规则,那么可以设计出一些机制来维持区块链固有的去中心化,但为处理这些特殊情况敞开大门。一种可能的方法(但不是唯一的方法)如下:如果RIR与客户之间有争议,则第三方(例如IANA)将发出撤销交易,以重新分配资源。

5.7 其他考虑

重置密钥:重置密钥是RPKI中的常见操作,包括使用新密钥对所有下游证书重新签名。此操作在区块链中大大简化了:只需要添加一个新交易,即可将IP前缀重新分配给自己控制的新密钥对。此外,由于交易彼此独立,因此可以单独执行重新输入密钥操作,而不会影响其他用户。隐私:由于IP地址已链接到其所有者的公钥,因此无法仅通过区块链中的数据来识别所有者。从这个意义上讲,区块链提供了与RPKI相似的隐私度。支持IPv6:由于当前使用的是IPv4和IPv6地址前缀,因此IPchain需要同时支持这两种。但是,IPv6地址(128位)比IPv4(32位)多,在PoS区块链中,从两个地址池中随机选择会在v6和v4所有者之间造成权力失衡(第一个将创建比后者更多的区块)。最后,由于v6地址空间的巨大规模,其中很大一部分仍未分配,并且仍由IANA拥有(不到0.5%的v6地址空间已分配给RIR)。应该忽略(不计算)此空间,以避免IANA几乎对所有v6块进行签名,从而防止IANA垄断。

6 实施

本文已经构建了一个开源原型,并使其公开可用。链接地址如下:https://github.com/OpenOverlayRouter/blockchain-mapping-systemIPchain原型是用Python编写的(图6),并执行所有典型的区块链操作。为了简化用户交互,该原型从文件中读取新交易,进行签名并将其发送到网络,并提供集成的密钥库来加密用户的密钥。

图片.png

图6 IPChain原型架构

该原型还具有与Open Overlay Router(简称OOR)通信的接口。OOR是一种开源软件路由器,可实现the Locator/ID Separation Protocol (LISP,RFC 6830)。简而言之,OOR部署了可编程覆盖网络,以动态传输通过底层网络的流量。通过此接口,OOR可以从IPChain中检索与IP地址相关联的数据。数据结构:IPchain建立在以太坊的帐户系统上,该系统将成对的区块链地址与相关的IP地址进行映射。交易被编码为对帐户的修改。选择此模型而不是比特币的UTXO,因为它需要较少的存储空间,并且数据访问更容易。修改了PyEthereum8 Trie,DB,Utils和Transactions class以满足需求,并将块大小限制为2 MB。PoS共识算法:为简单起见,使用NIST的随机信标选择下一个区块的签名者。该信标每60秒更改一次,因此我们将此间隔设置为block time。这种小的block time使得通过网络时间协议(NTP)来维护网络中节点之间的同步。当断开连接时,超时机制将选择新的签名者。Peer-to-Peer网络:P2P模块以广播的形式实现所有通信功能,利用Python的Twisted10库进行网络通信。由于它没有连接它们之间的所有节点,因此分布式哈希表会跟踪最后一个块号,因此,如果节点错过了某些块,则可以向其他节点请求它们。

7 Conclusion

在本文中,引入了IPchain,一个使用PoS共识的区块链来存储IP地址的分配和授权。并且讨论了它相对于现有系统的优点,例如简化的管理或灵活的信任模型,以及在这种特定环境下PoS算法的优点。

关于 天 方 夜 “谈”

天方夜谈原意讲不切实际的东西,而这里想要 “脚踏实地”真正弄懂并感受一篇文章的思想。

方班人有自己的浪漫,

我们探讨知识,谈论理想,

采摘科研的繁星,

脚下是星辰大海。

天:代表我们的理想犹如天空般浩荡

方:代表方班

夜:代表代码人的冷静与静谧

谈:代表方班愿与您,就领域内的经典思想和前沿成果“秉烛夜谈”