Nervos Fans

劫持比特币:加密货币的路由攻击

2018-07-27  本文已影响4人  526ba0512193

每晚八点,我们在社区分享知识,等你。

NervosFans 微信公号:Nervosfans

入群请加乐乐微信:sensus113 美果大冰微信:xj73226

备注入群,谢谢!


比特币其实是个随机建立的点对点网络,由数千个节点和数万个连接组成,这些连接依赖于洪泛来传播交易。所以,攻击者在这种网络中阻止信息传播看上去不太现实。

但是,这个论断漏了两个地方:

1.   没有考虑到互联网路由基础设施,即控制网络流量的流动方式的协议集,是公认的不安全,且可以为攻击者所轻易控制来拦截比特币流量。

2.   没有考虑到大型互联网服务提供商(ISP),好比雄踞在互联网核心的那撮,可能已经与大量的比特币流量有过交集了。 有鉴于比特币消息以明文形式交换且不设完整性检查,因此转发路径上的任何(恶意)第三方都可以窃听、中断、修改、插入或延迟比特币消息。

那么,问题来了:比特币易受这种路由攻击吗?

通过从互联网路由角度研究比特币的安全性并量化网络攻击者潜在的破坏性影响,我们得出以下结论:

• 从互联网路由的角度来看,比特币出呈现出了一定的中心化程度:20%的比特币节点托管在不到100个IP前缀中。 要知道,目前互联网上有近60万个IP前缀。 与此同时,大量比特币流量自然而然的经过若干成熟ISP(例如Hurricane Electric)。 这两方面综合在一起的话,大规模路由攻击的可能性极大上升。 

整个网络的30%由13个AS承载,而50%的比特币网络由50个AS承载。

• 由于集中化,小型的路由攻击即可实现对比特币网络分区并隔离50%的网络矿力。小型攻击有多小呢?这么说吧,比当今网络中常见的攻击小好几个数量级。任何能访问网络路由基础设施的恶意ISP都可以发送这种攻击,并且迅速(几分钟内)生效。(根据实时网络测量结果)。

• 任何传输比特币流量的ISP都能以隐蔽的方式延迟广播挖出的区块(最多20分钟)。

• 当今的比特币流量有受到路由攻击的影响。许多攻击多转移了比特币流量。

• 尽管BIP115的多宿主和端到端加密提案能够降低网络攻击的风险,但并不能阻止攻击发生。研究表明,即便是多宿主矿池也易受路由攻击。 此外,端到端加密无法阻止攻击者中断比特币连接。

那么,我们来仔细检查一下这些问题。首先,看看两种可能的网络攻击,即分区和延迟攻击,以及各自对比特币的影响。 然后,讨论一些提升比特币系统稳健型的短期和长期的对策。 有关我们工作的更多详细信息,请访问我们的网站。

分区攻击

分区攻击中,攻击者的目标是将比特币网络分成(至少)两个不相交的部分,之间不能交换任何信息(例如交易)。为将网络分隔成两个部分,比方说A、B,那么网络攻击者需要拦截发往A中所有比特币节点的全部流量,并中断与B的任何连接。

为拦截流量,网络攻击者需要依赖边界网关协议(BGP)中的漏洞。BGP是目前使用的唯一的互联网路由协议,对路由公告的来源并不进行验证。所以这种攻击常被称为BGP劫持,让路由器谎报到某些IP前缀有更好的路径。劫持A部分中与节点有关的所有IP前缀后,攻击者就可以有效地拦截A、B间交换的全部流量。一旦启动,攻击者就可以切断所有连接,进而断开A、B间的连接。

AS级别对手(AS8)劫持前缀来隔离节点集P =(A,B,C,D,E)从而拦截比特币流量的图示。

那么,比特币互联网角度的过集化是特别的分区攻击友好,因为需要劫持的IP前缀很少。 实际的测量结果显示,50%的比特币矿力托管在仅39个前缀中(占互联网所有前缀的0.007%)。 那么,攻击者仅劫持这39个前缀就能隔离约50%的比特币矿力。 要知道,当今互联网上随便一场BGP劫持的数量级都比0.007%大的多。

尽管BGP劫持是拦截比特币流量的一把好手,一旦出现拦截不完全,意思是A、B两部分间有未被拦截的比特币连接,分区会失效。比方说多宿主吧,一些节点间的信息交换就是天然无法阻止的,或者说形成了某种持久连接。 那么此情形下,分区攻击会变得比较困难,但还是可能的。 好比,攻击者可以降低分区范围/规模,来应对这种这些倔强的连接。

网络分区,相当于攻击者将区块链分成了两条平行链,那么攻击后,短链上的区块、区块中的交易,甚至是矿工收入因为没人认,会被丢弃。 更甚者,若有效链中的交易数额恰好与无效链中的交易数额一致,则无效交易被取消不说,还不能恢复。

延迟攻击

为了避免过多的区块传输导致网络过载,比特币节点仅从单一peer处请求区块。 节点向peer请求后20分钟无应答时,可向其他peer再次请求。 该设计决策加之比特币流量未加密这个事实,也意味着任何拦截比特币流量的人都可以延迟相应连接上的区块广播。 攻击者对拦截的比特币消息内容进行简单修改即可。 由于比特币消息没有篡改保护,接收方和发送方不太能知道有人已然改动了消息。如此,攻击者就有点爽了。 延迟攻击的实际影响取决于受害者,影响范围从双重支出(商家节点)到计算能力浪费(矿工)不等。 

AS级别对手(AS8)拦截受害者的部分流量(节点C)后延迟20分钟向其发送一个区块。  

比特币节点网络集中(意思是宿在少数网络和前缀中),加之挖矿集中,不仅分区攻击友好,延迟攻击也友好。研究发现三家互联网服务提供商一起“经眼”比特币60%的流量。 若ISP们起了歹心,完全又能有力“差时”比特币节点于无形。与分区攻击不同,延迟攻击无法破坏整个比特币。 好比,许多节点尽管反应有点慢,系统整体还是在运行的。

对比特币节点实施延迟攻击的实验中,发现网络攻击者截获受害者一半的连接后,节点64%的正常运行时间中保持不知情状态。 此外,实验还发现,当今绝大多数比特币节点(70%)易受延迟攻击。

如何避免网络攻击

所幸,应对网络攻击是有短长期对策的。 首先,peer选择时路由需要上点心。 好比,对比特币节点来说,互联网路径的多样性的最大化,意味着攻击者拦截所有路径的风险的最小化。 此外,节点可以通过监视连接的行为,监测诸如多peer突然断连或区块传送时异常延迟等事件。 而这些事件可以作为路由攻击的早期指标,并触发更为随机的连接创建。 最后,端到端加密,尤其是针对延迟攻击,也会有所帮助。 当然了,仅靠加密不足以预防分区攻击,因为攻击者仍然可以断开加密的比特币连接。


总结

防御路由攻击很重要。

虽说暂时没什么证据证明出现过大规模的比特币路由攻击, 但是上面提到的比特币路由攻击友好的点,可能在将来是个坑。 这些点包括:比特币的高度集中化(挖矿、路由角度来说)、认证和完整性检查缺失以及与节点请求区块等有关的一系列设计选择(设计问题maybe)。

上一篇下一篇

猜你喜欢

热点阅读