加密货币攻击之比特币:已成为可能?

考虑到网络路由攻击可能会对全球的比特币网络产生消极影响。因此,近期我们研究了网络路由攻击(例如BGP劫持)和恶意互联网服务提供商(ISP)对比特币所能产生的影响,并且发现目前有两种攻击技术将有可能影响比特币的安全性:

  1. Partition Attack(分割攻击):任何一家互联网服务提供商都可以通过劫持IP前缀来分割比特币网络。
  2. Delay Attack(延迟攻击):任何一家互联网服务提供商都可以在不被发现的情况下拦截比特币节点的网络流量,并延迟区块更新(延迟20分钟左右)。

这种针对比特币的潜在威胁是十分令人担忧的。这些攻击技术不仅会损害矿工的经济收益,因为挖矿成本会增加,而且还会影响个人用户、商铺以及大型企业的比特币交易。

此次研究的目的是为了告知广大比特币用户以及矿工当前比特币所面临的安全风险,如果你想了解研究的详细内容,请参考我们的研究报告。

比特币托管集中化将导致其易受路由攻击

虽然任何用户都可以是比特币网络中的一个节点,但是目前组成比特币网络的节点在全球范围内并不是均匀分布的。

我们的研究结果表明,当前绝大多数的比特币节点仅托管在少数几家互联网服务提供商:13家ISP(占全球ISP总数的0.026%)托管了整个比特币网络30%的节点。

下图显示的是比特币节点数量(百分比)与ISP之间的函数关系图:

除此之外,比特币节点之间绝大多数的数据交换(网络流量)只会流经少数的ISP。实际上我们的研究结果表明,当前60%的比特币流量都会经过三家ISP。换言之,当前有3家ISP可以查看到全球60%的比特币交易流量。

下图显示的是比特币链接的拦截情况与ISP之间的函数关系图:

总而言之,这两种特性将导致恶意ISP有可能劫持大量比特币的交易流量。

路由攻击无处不在

BGP劫持是一种路由攻击,在这种技术的帮助下,ISP能够向互联网路由系统发送伪造信息。这种攻击是经常发生的,我们的研究表明,每个月都会发生高达数千次的劫持攻击。而其中的某些攻击事件还会影响大量的网络流量目的地:影响大概30000多个IP前缀。数据请看下图:

需要注意的是,这种攻击已经对比特币网络的安全性产生影响了。实际上,根据我们的发现,每个月至少有100个比特币节点会成为BGP劫持攻击的受害者,而仅在2015年11月份就有447个不同的比特币节点(约占比特币节点总数的8%)遭受了此类劫持攻击。数据请看下图:

攻击#1:路由攻击可以分割比特币网络

攻击者可以利用路由攻击来将目标网络分割成多个不相交的单一网络。通过防止单一网络内的节点与外部网络通信,攻击者可以强制创建并行的区块链。攻击完成之后,规模较小的网络中所有的区块的交易信息以及矿工收入信息都将会被丢弃。

攻击步骤:

1. 视频中,左边的节点可以通过比特币链接(蓝色线)来与右边的网络进行通信。 2. 攻击者需要将整个网络分割成两个单独的网路:即左边部分和右边部分。 3. 攻击者通过执行BGP劫持攻击来将流量引入到左边的节点。 4. 劫持攻击完成之后,右边节点发送到左边的所有流量都将会被转发给攻击者(红色线)。 5. 攻击者切断这些连接,并迅速将网络分割成两个部分。 6. 在攻击过程中,每一侧的节点仍然可以继续跟同一侧节点通信。

攻击#2:路由攻击能够延迟区块更新(20分钟)

攻击者可以利用路由攻击来延迟区块更新信息到达目标节点的时间(延迟约20分钟),而且整个操作不会被检测到。在攻击过程中,目标是不会接收到任何区块信息以及交易信息的。需要注意的是,这种攻击方法给不同的目标带来的影响也是不一样的。如果你是比特币交易者,你可能会遇到双重支付的风险。如果你是矿工,那这种攻击将会增加你的挖矿算力。如果目标是普通节点,那么该节点将无法通过更新区块。

攻击步骤:

  1. 在演示视频中,节点A和节点B会给目标节点C广播区块信息。
  2. 节点C可通过GETDATA来向节点A请求区块信息,而攻击者可以通过修改GETDATA的内容来给节点C发送已过期的节点A区块信息。
  3. 已过期的区块信息送达。
  4. 在20分钟之后,再将最新的区块信息发送给节点C,整个过程中节点C与节点A的连接不会断开。

总结

本文简单介绍了目前比特币所面临的潜在安全威胁,这些攻击方式不仅会影响个人用户、商铺以及大型企业的比特币交易,而且还会影响矿工的收入,希望本文的内容可以给安全社区未来的研究提供方向。

原文发布于微信公众号 - FreeBuf(freebuf)

原文发表时间:2017-12-03

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏liuchengxu

IOTA 交易,确认和共识

与区块链技术不同,IOTA 并不是一条有着时间序列概念,每个区块前后相连的链,链中的每个块包含一些交易。在 IOTA 中,每笔交易都可以其他交易连接(所谓连接,...

1661
来自专栏java一日一条

基于java开源区块链Blockchain相关项目介绍

对于比特币、莱特币、以太币等加密数字货币大家应该不陌生了,最近一年ico在国内也是备受关注和争议。抛开这些单纯从技术角度看基于java的开源blockchain...

2382
来自专栏场外交易系统开发+V信ruiec2723

数字资产币币交易系统开发技术的后台功能解析

对于数字资产币币交易系统开发技术来说,我们很多人曾一度的认为数字资产交易系统那么简单,会有些什么功能?这种情况其实很普遍,都对于交易所的功能不了解的人也很多。其...

2554
来自专栏Spark学习技巧

入门 | 区块链vs传统数据库:分布式运行有何优势?

作者:Shaan Ray 机器之心编译 参与:路雪、李泽南 区块链(blockchain)这一概念正因比特币等虚拟货币的兴盛而变得火热起来,实际上,这种技术因为...

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

SC(SiaCoin)取出到钱包的图解教程

友情提醒:云币中的SC钱包仍在维护中,暂时还不能取现,先做好准备吧。 中国各大数字货币交易平台将在9月底关闭,为此需要将数字货币提取到自己的钱包中,这是区块链世...

58011
来自专栏极客编程

以太坊智能合约升级策略

本文是对以太坊中可升级智能合约领域的各种实现策略的总结 ,目的是汇总迄今为止的相关资源,以帮助我们在设计智能合约时,考虑如何对其进行升级和更新。

1162
来自专栏汇智网教程

以太坊区块链开发环境搭建指南

1K6
来自专栏极客编程

EOS智能合约开发和测试框架EOSFactory

自2017年秋季以来,Tokenika一直致力于创建基于Python的EOS智能合约开发平台,以便轻松创建,测试和部署智能合约。随着EOS的不断发展,我们已经习...

1211
来自专栏SAP最佳业务实践

SAP最佳业务实践:FI–资产会计(162)-3资产浏览器

4.2 AW01N资产浏览器 资产浏览器允许您分析个别资产主记录的值的更改。它用不同的形式和汇总级别来表示固定资产的已计划和过帐的资产负债表值和折旧值。 资产浏...

3598
来自专栏ytkah

微信帐号被封零钱怎么办?微信针对封停帐号的零钱提取出了一个流程

  之前ytkah和大家讨论了微信解除限制的6个方法,但如果继续“作恶”的话,微信账号就会被封停,那零钱怎么办呢?微信针对封停帐号的零钱提取出了一个流程,以下是...

4756

扫码关注云+社区

领取腾讯云代金券