劫持比特币:对加密货币进行路由攻击

劫持比特币:对加密货币进行路由攻击(Routing Attacks)

在高层次上,比特币是一个随机建立的对等网络(Peer-to-peer network),这一网络由数千个节点和成千上万的依赖泛洪路由(Flooding)传播交易的连接组合而成。作为攻击者,阻止信息在这样的网络中传播似乎是不现实的,甚至可以说是不可能的。

然而,这种对表象的观察并没有考虑到互联网路由的基础结构(即管理网络流量流动方式的一组协议)是出了名的不安全,并且还很容易被攻击者操纵来拦截比特币流量。同时也未考虑到大型互联网服务提供商(ISP,Internet Service Provide),例如那些位于互联网核心的提供商,它们可能已经自然而然地被大量的比特币流量所穿越。由于比特币信息通过明文形式交换,并且不进行完整性检查,因此转发路径上的任何(怀有恶意的)第三方都可以窃听,丢弃,修改,注入或延迟比特币信息。那么问题来了:比特币是否容易受到这样的路由攻击呢?

我们近期完成的论文 “劫持比特币:对加密货币进行路由攻击” 发表在了 IEEE 安全和隐私专题研讨会上,我们从网络路由(Internet routing)的视角对比特币的安全性进行了研究,并将网络攻击者的潜在破坏性影响量化,从而阐明了这些方面。其中,我们的分析表明:

  • 出乎意料的是,从网络路由的角度来看,比特币是如此地集中:不到 100 个 IP 前缀却承载了 20% 的比特币节点(而现今互联网上已公布了接近 600,000 个 IP 前缀)。同时,少数成熟的 ISP(比如,飓风电气 Hurricane Electric)能轻易地看到大部分的比特币流量。综合这两个特征,它们使得大规模的路由攻击出奇地实用。
(横轴表示 ISP 数量,纵轴表示承载比特币节点的百分比)仅 13 个 AS(Autonomous System,自治系统) 就承载整个网络的 30%,而 50 个 AS 承载了比特币网络的 50%。
  • 由于集中化,(攻击者)仅需进行一次小型路由攻击就能将比特币网络分割开来,并隔离其 50% 的采矿算力,这种攻击比现在在网络中常见的攻击小得多。任何能够访问网络路由基础结构的恶意 ISP 都可以执行这种攻击,而这种攻击在几分钟后就能见效(根据我们在现场网络上的测量结果)。
  • 任何传输比特币流量的 ISP 都可以用隐秘的方式来延迟采矿区块的传播(长达20分钟),尽管她看到了流量的一个方向。
  • 比特币流量现今已经受到过路由攻击的影响。我们发现了许多路由攻击的实际例子,它们最终导致比特币流量转移。
  • 虽然多归属(Multi-homing)和端到端加密(BIP 151)降低了网络攻击的风险,但它们不会阻止攻击。我们的研究结果表明,即使是重量级的多归属矿池也容易受到路由攻击。此外,端到端加密不会阻止攻击者丢弃(Dropping)比特币连接。

在本文中,我们将仔细研究这些问题。首先描述我们所考虑的两种可能的网络攻击,即分割法攻击(Partitioning attacks)和延迟攻击(Delay attacks),以及它们对比特币的潜在影响。然后,我们将讨论一些短期和长期的对策,以提升比特币针对网络攻击者的健壮性。更多关于我们所作工作的细节,可以到我们的网站上继续了解。

分割法攻击

采用分割法攻击时,攻击者的目的是将比特币网络分成(至少)两个独立的组成部分,使它们之间无法交换任何信息(如交易信息)。为将网络划分为两个部分,网络攻击者会拦截掉流向其中一部分的所有比特币节点的全部流量,并且断开任何与另一部分的连接。为了拦截流量,网络攻击者依赖于边界网关协议(BGP,Border Gateway Protocol)中的漏洞,这是当前唯一使用的互联网路由协议,而它并不验证路由通告(Routing announcements)的来源。这类攻击通常称为 BGP 劫持,这涉及到让路由器进行虚假通告:它有一个更好的到达某些 IP 前缀的路由。通过对一个部分中的节点有关的所有 IP 前缀进行劫持,攻击者可以有效拦截在这两个组成部分之间交换的所有流量。一旦劫持成功,攻击者就可以有效地切断所有连接,从而将这两个组成部分隔离。在我们的网站上,可以找到一个关于这种攻击的动画演示

图示说明了 AS 级别的攻击者(AS8)是如何通过劫持前缀以拦截比特币流量,从而隔离节点集 P =(A,B,C,D,E) 的。

从互联网的角度来看,比特币的极度集中化使得分割法攻击特别有效,因为只需要劫持少数的 IP 前缀即可实施攻击。的确,我们的测量表明,仅仅 39 个前缀(即占所有互联网前缀的 0.007%)就承载了 50% 的比特币挖矿算力。这就使得攻击者可以通过劫持这 39 个前缀来隔离约 50% 的挖矿算力。而今天在互联网上我们常常会看到更大规模的 BGP 劫持(这涉及到更高数量级的 IP 前缀)。

虽然使用 BGP 劫持来拦截比特币流量是有效的,但在两个组成部分之间的任何未被拦截的比特币连接都会很快导致分割法失效。由于多归属等因素,一些节点间的信息交换无法阻止,它们形成了某种持久的连接。这种连接的存在使得分割法攻击对攻击者来说更具挑战性,但并非不可行。在我们的论文中,我们详细阐述了攻击者如何能够通过减小她试图实现的分割大小,来鉴别并规避这些持续而又顽固的连接。

通过分割网络,攻击者强制创建两个并行的区块链。在攻击完成后,所有由短链一方所开采的区块将被丢弃,这其中包括了所有的交易和相应的矿工的收入。此外,如果在使用完全相同的比特币(冲突交易,Conflicting transaction)的主流分支中存在其他交易,则被丢弃的交易将被永久地取消。

延迟攻击

比特币节点被设计为仅请求来自单个对等体的区块,以避免过度的块传输导致网络过载。只有当发送请求 20 分钟后无应答时,该块才再次被请求(来自另一个对等体)。这样的设计,再加上比特币流量未加密的事实,就使得任何拦截比特币流量的人都可以在相应的连接上延迟区块的传播。为做到这一点,攻击者会对其拦截到的比特币信息的内容进行简单修改。由于比特币信息无法防止篡改,接收方和发送方都发现不了信息中有任何被修改的迹象,从而使攻击者不会被发现。这种攻击所造成的实际影响取决于受害者,影响范围从重复支付(对于商家节点)一直到计算能力的浪费(对于矿工)。点击此处可以观看这种攻击相关的演示动画。

图示说明了一个 AS8 的攻击者是如何自然地拦截受害者(节点 C)的部分流量,并将其区块交付延迟了 20 分钟的。

正如分割法攻击一般,在少数网络和前缀中比特币节点的集中化特性,以及在少数矿池中所聚集的挖矿算力,它们使延迟攻击是可实现的。我们发现三家 ISP 一起看到了 60% 的比特币流量。如果这些 ISP 怀有恶意,它们则可以因此有效地(并且在无形之中)让很多比特币节点不被通知。我们还发现,与分割法攻击不同的是,即使这些攻击者很强大,也无法瓦解整个加密货币。所以,尽管许多节点速度会减慢,但比特币作为一个整体仍然可以发挥作用。

我们对自己的节点执行了一次延迟攻击,以验证其实用性。我们发现只拦截了半数受害者连接的网络攻击者,就能够延迟正常运行时间的 64%。我们还发现,绝大多数比特币节点(70%)目前很容易受到这种攻击。

我们如何预防网络攻击?

幸运的是,我们有针对网络攻击的短期和长期对策。首先,节点选择可以被路由感知(Routing-aware)。例如,比特币节点可以针对性地对其连接可见的网络路径的多样性进行最大限度的利用,以使攻击者可以拦截到所有这些网络的风险降到最低。此外,节点可以监视其连接的行为,从而发现诸如突然与多个对等节点断开连接,或者区块交付中不寻常的延迟,这类事件。这些事件可以作为路由攻击的早期指标(Early indicator),并且可以触发一些保护机制,例如建立额外的随机选择的连接。最后,诸如端到端加密这般解决方案也许会有所帮助(特别是针对延迟攻击)。然而,它并不足以防范分割法攻击,因为攻击者仍然可以丢弃加密的比特币连接。

总结

我们研究的目的,是提高比特币社区对与防止路由攻击破坏加密货币的需求的认识。尽管我们没有证据表明针对比特币的大规模路由攻击已经在暗中进行,但我们认为少数的关键特征使得这些攻击具有实用性,并且可能是极具破坏性的。这些特征包括:比特币的高度集中(从挖矿和路由的角度来看),缺少身份验证和完整性检查,以及一些相关的设计选择(例如节点请求区块的方式)。目前我们正在实施上述所强调的一些对策。显然,我们不会介意有人能来帮忙的!

本文的版权归 StoneDemo 所有,如需转载请联系作者。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏尚国

数字货币钱包安全白皮书

区块链技术的迅速发展,使得数字货币渐渐走入的大众的视线,在2017年底,这股热潮达到顶峰,直接搅动着金融市场与科技市场,大量的数字货币交易流水催生了数字钱包开发...

1213
来自专栏区块链百科,区块链行业报告

分片技术(Sharding):化整为零,分而治之

目前的区块练技术面临着一个巨大的瓶颈,那就是:如何有效地提升区块的吞吐量(TPS)。

1372
来自专栏区块链技术指北

Siacoin 钱包浅谈

这是「区块链技术指北」的第 12 篇文章。 如果对我感兴趣,想和我交流,我的微信号:Wentasy,加我时简单介绍下自己,并注明来自「区块链技术指北」。同时我会...

3287
来自专栏申龙斌的程序人生

用API获取Bigone历史成交记录

Bigone中查看历史交易的功能并不友好,只能按时间范围查询,如果一笔订单分为许多次成交,界面里就列出多少条,而且还混杂着其它币种,想查清楚自己在哪个价格卖出多...

1413
来自专栏申龙斌的程序人生

分叉出来的BCC没地方存放?可以试试yours.org

自从微信关闭了iOS上的赞赏通道,通过微信公众号写文章赚点打赏钱已经越来越难了,随着区块链技术的兴起,现在多了一种数字货币支付的手段,通过写文章赚点数字货币的平...

38913
来自专栏FreeBuf

如何减轻挖矿攻击给企业安全带来的威胁

比特币和其他加密货币越来越受欢迎,引发了安全专家的好奇和担忧。人们发现越来越多的挖矿病毒,这些病毒通常通过僵尸网络安装。作为公司,有必要知道这其中的风险和如何防...

3877
来自专栏区块链大本营

Vitalik Buterin:Casper 权益证明与分片技术最新进展

1736
来自专栏liuchengxu

Tendermint: 共识概览

Tendermint 是一个易于理解,大部分操作为异步的 BFT 共识协议。下图是一个简单的状态机,它展示了协议遵循的规则:

651
来自专栏FreeBuf

Ledger硬件钱包存在漏洞,通过MITM可篡改钱包地址

近日,刚获得7500万美元B轮融资的加密货币硬件钱包“Ledger”被曝存在漏洞,且已经由匿名安全研究员确认,网络犯罪分子可利用该漏洞向Ledger使用者展示欺...

2205
来自专栏黑白安全

研究人员发现了具有僵尸网络功能勒索功能和挖掘加密货币功能的新蠕虫

Palo Alto Networks的Unit 42研究团队发现了一种新的恶意软件类,能够针对Linux和Windows服务器,将加密货币挖掘,僵尸网络和勒索软...

1195

扫码关注云+社区

领取腾讯云代金券