区块见闻 区块见闻
Ctrl+D收藏区块见闻
首页 > Ethereum > 正文

TNI:闪电网络安全漏洞技术细节及发现过程_UTP

作者:

时间:

日前,开发者RustyRussell首次对外披露了闪电网络安全漏洞及对应解决方案的技术细节。

以下是技术细节内容:

接受通道的闪电网络节点必须检查交易输出是否确实打开了提议的通道,否则攻击者可声称打开一个通道,然后要么不向对等节点支付,要么不进行全额支付。

一旦交易达到最小深度,其就可从通道中支出资金。只有当受害者试图关闭通道,以及其拥有的任何承诺或相互成交交易都无效时,他们才会注意到这种恶意行为。

而闪电网络客户端并不一定会执行这种检查操作:

c-lightning:v0.7.1以及更高版本的客户端正确地做到了这一点,而以前版本的c-lightning客户端却没法办到。(CVE-2019-12998)

连接对等节点,并用任何交易id声称打开一个通道,就可利用这种漏洞。

LQwD FinTech Corp在德国和新加坡部署闪电网络节点:2月11日消息,为比特币闪电网络(LN)开发支付基础设施的科技公司LQwD FinTech Corp.已宣布在德国和新加坡部署路由节点。部署节点使LQwD能够收取交易费、路由费和处理费,并确保其在LN领域站稳脚跟。(The Fintech Times)[2022/2/11 9:45:43]

lnd:v0.7.1及更高版本的客户端解决了这个问题,但以前版本的lnd没有检查数量。v0.7.0及更高版本客户端正确检查了

scriptpubkey,v0.6.x版本客户端部分强制执行资助

ScriptPubkey,但v0.6.0之前版本的客户端则完全没有进行相关验证。

对所有以前版本的lnd客户端,攻击者都可能通过不正确的数量进行攻击。在v0.7.0版本,攻击者必须使用正确的scriptpubkey,这会烧掉funding输出中的币。

而对于v0.6.0版本之前的客户端,攻击者通过不正确的scriptpubkey都可实现攻击。在v0.6.x客户端中,如果在funding交易达到所需的确认数,在任意一个全节点后端上运行txindex=0,且节点处于离线状态时,此漏洞也可能会被利用。

动态 | 闪电网络节点数量达10654个:1ML.com数据显示,闪电网络节点数量呈持续上升趋势。目前,支撑网络的节点数量达到10654个,在过去的30天中上涨了3.15%,而通道数量为35099,在过去的30天中下降了0.3%。闪电网络承载能力目前为837.19BTC,约合609.44万美元。[2019/12/3]

利用错误outpoint攻击neutrino客户端用户,需攻击者将其假outpoint与BIP158筛选程序中的真实outpoint脚本碰撞。用于创建筛选程序的siphash密钥是从blockhash派生而来的。因此,攻击者在不提前知道区块哈希的情况下,是无法直接进行攻击的。此外,neutrino客户端节点通常不会监听或不具备公告地址,这意味着攻击者必须等至接收到入站连接后才能执行攻击。

eclair:v0.3.1及以上版本的客户端正确解决了安全隐患,如果用户使用了bitcoincore作为后端,则以前版本的eclair客户端就会有安全隐患。而electrum用户只检查脚本,而不会检查数量。

动态 | Bitfury将比特币闪电网络支付集成给更多商家:据coindesk报道,Bitfury Group与商业支付处理商HadePay合作,为美国、加拿大和欧盟的商家提供基于闪电网络的比特币支付。Bitfury已将其基于网络的闪电网络Peach Merchant API与HadePay平台集成,允许企业通过闪电网络接受付款、提高比特币交易的效率并降低成本。Bitfury表示,付款完成后,商家可以通过HadePay的平台立即将比特币转换成另一种货币。[2019/3/15]

攻击Electrum客户端用户,则要求用户主动连接到恶意闪电网络节点,并且攻击者使用正确的scriptpubkey,这会烧掉funding输出中的币。由于Eclair移动端客户端不会中继支付,攻击者在没有带外交互的情况下,是无法进行提款操作的。

解决方案

一旦观察到funding交易,对等节点必须检查`funding_created`中所述的outpoint是否为`open_channel`中描述金额的funding交易输出。

金色相对论 | 比太钱包文浩:闪电网络对于未来的区块链生态会有彻底的颠覆作用:在本期金色相对论之“闪电网络:Hello,TPS”上,金色财经合伙人佟扬对话比太钱包创始人文浩,针对闪电网络如果兴起会在比特币经济体系中增加更大的流通性,这将对比特币和加密货币发展有哪些影响的问题,文浩表示,三年前当我第一次和阿彪、东叔深入讨论闪电网络技术的时候,当时我们几个就有了个共识,即“闪电网络白皮书”是数字货币世界里既中本聪白皮书之后第二重要的论文。闪电网络对于比特币和加密货币可以说会有巨大的影响,对于未来的区块链生态会有彻底的颠覆作用。闪电网络的主要场景是支付,我们都知道,区块链上的资源总的来说还是受限的,无论是比特币区块大小之争所导致的BCH分叉事件,还是后来从以太开始到 EOS/TRX 等公链所发展出来的高TPS概念,其实本质上还是为了能更好的满足用户低成本、高效率支付的需求,但链上解决这一需求其实是永远受限的,哪怕是像EOS,仍然要受到链上资源(CPU、内存能)的限制,闪电网络可以说是很牛逼的从另一个角度彻底的解决了这一需求,其意义是革命性的。随着闪电网络的发展,比特币支付将真正接近甚至达到支付宝、微信支付的体验,这样讲大大扩展比特币支付场景的适用范围,并且随着真实支付需求的发展,比特币的流通性将大幅提升,比特币等数字货币将更多的从“炒”的场景进入到“用”的场景,用户行为将从交易所转移到钱包、支付等真实的应用场景,这对于数字货币发展的意义显然是巨大的。另外,由于闪电网络去中心化、无需信任的特点,基于闪电网络模型还可以扩展出跨链去中心化交易的模型,这将从另一个角度对当前的中心化交易所以及单链去中心化交易所产生颠覆式的影响,大家可以设想一下,您未来可以无需信任的通过闪电网络模型跨链的交易 BTC/ETH/EOS/USDT,成本近乎为零,都是瞬时成交的,不用存币,不用提币,不用担心平台跑路,这对于区块链世界的发展显然也将是革命性的。[2019/3/7]

背景

动态 | 瑞士咖啡馆支持比特币及闪电网络自助点单:据Bitcoinist报道,瑞士咖啡馆energyKitchen已成为世界上第一家允许使用比特币和闪电网络(LN)进行自助点单的商店。energyKitchen已开始通过网上商店提供咖啡、饮料和食品,并在其实体商店场所外提供QR码。据悉,该应用只支持用闪电网络钱包付款,不支持链上付款。[2018/9/19]

要打开一个闪电网络通道,funding对等节点发送带有提议`funding_satoshis`的`open_channel`。被资助者则用`accept_channel`回复,提供其希望用于这笔funding交易的密钥。

然后出资人创建这笔funding交易,并发送交易id以及`funding_created`消息中的输出编号。

```

+-------++-------+

||--(1)---open_channel----->||

||<-(2)--accept_channel-----||

||||

|A|--(3)--funding_created--->|B|

||<-(4)--funding_signed-----||

||||

||--(5)---funding_locked---->||

||<-(6)---funding_locked-----||

+-------++-------+

其中节点A是“出资人”,节点B是“被资助者”

有了这些信息,“被资助者”可在第一笔“承诺交易”上创建签名,并将其发送到一则

`funding_signed`消息中,以便在出现问题时,资助者可取回他们的资金。这样,出资人就可以安全地签署并广播这笔opening交易。经过一定数量的确认后,通道就开始运作(`funding_locked`)了。

规范清楚地描述了检查所交换的各种签名,是否确实允许创建有效承诺交易的要求,并描述了等待确认的要求。

但是,它并不要求接收者实际检查交易是否是出资人承诺的交易:包括金额和实际的scriptpubkey。

漏洞发现过程

RustyRussell(Blockstream)在为规范本身进行协议测试时发现了这一漏洞。

在编写测试时,通道开启者在`funding_created`消息中提供了不正确的`funding_output_index`,Russell意识到C-Lightning客户端不会拒绝它,因为C-Lightning只检查`funding_txid`的确认计数,甚至连`funding_output_index`是否存在都不会进行检查!

而这个要求在规范中是没有被提到的,因此Rusty立即向其它被广泛使用的客户端的作者揭示了这一问题。经过调查后,他们发现的确是存在这样的问题。

于是,几个团队一起做出决定,先在新版本客户端中悄悄地解决这些问题,然后再经过8周,就可揭示问题本身,接着再过四周后,他们就全面披露漏洞。

值得庆幸的是,这一长期存在的漏洞并没有被广泛利用,其确实提供了一个测试整个闪电网络生态系统通信和升级方法的机会。

漏洞时间表

2019-06-27:RustyRussell发现漏洞,并通知LND和Eclair客户端作者;2019-06-28:CVE漏洞编号被分配完毕;2019-07-02:lndv0.7.0-beta客户端发布;2019-07-03:Eclair0.3.1客户端发布;2019-07-04:c-lightning0.7.1客户端发布;2019-07-06:RustyRussell等人开始向其他客户端(rust-lightning,ptarmigan,BLW)作者披露漏洞.2019-07-30:lndv0.7.1-beta客户端发布;2019-08-17:2019-08-30:对外披露CVE漏洞存在,劝告使用旧版本客户端的用户进行升级。2019-09-07:首次发现有人企图利用这种漏洞;2019-09-27:全面披露CVE漏洞细节;2019-09-27:根据规范要求提交PR;

https://github.com/lightningnetwork/lightning-rfc/blob/v1.0/02-peer-protocol.md#the-funding_created-messagehttps://github.com/lightningnetwork/lightning-rfc/blob/v1.0/03-transactions.md#funding-transaction-outputhttps://github.com/lightningnetwork/lightning-rfc/blob/v1.0/02-peer-protocol.md#the-open_channel-messagehttps://github.com/lightningnetwork/lightning-rfc/blob/v1.0/02-peer-protocol.md#requirements-2https://github.com/lightningnetwork/lightning-rfc/blob/v1.0/02-peer-protocol.md#the-funding_locked-messagehttps://github.com/ElementsProject/lightning-rfc-protocol-test

标签:UNDTNITPSUTPSQUIDBOUND价格CatNIPhttps://etherscan.ioOutpost

Ethereum热门资讯
NBA:The Block最新研究:哪些投资机构从Coinbase的上币中受益?_BAS

QUICKTAKE ??Coinbase有一个惯例,会在资产上线交易前发布一份该资产的调查研究报告。??目前为止,Coinbase已公布了58个进行考察的资产,其中19个已经上架交易.

比特币:CME不打算推出实物结算的比特币期货_KKT币

芝加哥商品交易所全球股票指数主管TimMcCourt最近在接受MarketsMedia采访时称,实物结算的比特币期货目前不在CME的考虑之内.

SOLA:去中心化稳定币的货币政策与财政政策治理_有人靠区块链4天就挣了30万块钱

前言:如何实现去中心化的稳定币?其中的货币政策和财政政策应该如何制定和实施?本文提出了一个框架,试图消除人力参与的需要,以实现程序化的去中心化的稳定币.

区块链:中国区块链专利申请数破万:阿里巴巴居首位_RES

中国区块链专利申请数破万。9月26日,互链脉搏根据“区块链”关键词,在innojoy平台进行检索,观察到截至目前已有10005项中国发明专利被申请,中国的区块链专利申请量正式破万.

HARE:德国发布区块链战略,聚焦证券数字化_以下哪项不是区块链目前的分类

科技日报柏林9月21日电?德国联邦政府于18日通过了区块链战略,拟采取44项措施在德国推广使用区块链技术,焦点是计划中的证券数字化.

LIBRA:欧元区债务危机会对比特币产生影响吗?_比特币

前言:宏观经济对比特币的价格会产生影响吗?比特币是避险资产吗?迄今为止还是有争议的。本文认为一旦欧元区国家出现债务危机,资产为了避险会流向黄金,而其中流向黄金的2%左右资金可能会流向比特币,从而.