木星链 木星链
Ctrl+D收藏木星链

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

作者:

时间:1900/1/1 0:00:00

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

以下是技术细节内容:

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

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

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

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

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

Will Clemente:在未来几年内闪电网络会有引人注目的发展:金色财经报道,Reflexivity Research联合创始人Will Clemente在社交媒体发文称,如果我们处于一个新的制度中,由于序数/brc-20而导致更高的比特币传输费用,我认为在未来几年内,闪电网络会有一个非常引人注目的发展。[2023/5/8 14:49:05]

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,且节点处于离线状态时,此漏洞也可能会被利用。

闪电网络LND 0.16.2 beta版本已发布:4月29日消息,GitHub页面显示,闪电网络LND 0.16.2 beta版本已发布。这是v0.16.x的第二个周期版本,这主要是一个热修复版本,用于修复先前次要版本中引入的一些性能退化。

在新版本中,新的内存池逻辑将不再阻塞启动(现在是异步),使用更长的周期计时器运行,并且现在在适用的情况下利用并行化。与清理器交易替换/冲突相关的问题也被修复了。此版本不包含数据库迁移。[2023/4/30 14:35:08]

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

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

比特币闪电网络通道数量为75771个:金色财经报道,1ML数据显示,当前比特币闪电网络节点为15,972个,过去30天减少0.26%;通道数量为75,771个,较一个月前减少了0.5%;网络容量为5,135.78枚BTC,月涨1%。[2022/12/25 22:05:47]

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

解决方案

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

背景

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

闪电网络中比特币数量已经超过1700枚:闪电网络(LN)中的比特币数量今年几乎翻了一番,从2021年初的约1000枚BTC增加到现在的超1700枚,价值 5600万美元。(Trustnodes)[2021/7/9 0:38:02]

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

```

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

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

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

||||

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

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

||||

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

闪电网络节点数量已达14308个:金色财经报道,据1ML.com数据,目前,支撑网络的节点数量达到14308个,相较30天前数据,环比上涨2.12%;通道数量为35451,相较30天前数据,环比下降4.6%;闪电网络承载能力目前为1040.43BTC,约合1435.63万美元。[2020/11/1 11:23:06]

||<-(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

标签:INGUNDDINFUNMARKETING币ARTIC FoundationDigiDinarEAT FUND

火币APP下载热门资讯
BIT:交易所真实交易量报告(上) | TokenInsight

要点总结:1.据报告显示,36%的交易所真实交易量比例高于80%;近50%的交易所真实交易量比例不足一半。值得特别注意的是,超过25%的交易所的真实交易量占其报告成交量的比例低于20%.

1900/1/1 0:00:00
区块链:获得腾讯、富达和乐天等巨头青睐,Everledger终获2000万美元A轮融资

总部位于英国伦敦、区块链供应链公司Everledger宣布,它在由中国腾讯控股牵头的A轮融资中筹集了2000万美元.

1900/1/1 0:00:00
区块链:万向创新聚能城王允臻:打造一个智能城市来测试代币经济

在2016年第二届区块链全球峰会上,万向集团宣布投资2000亿元,携手众多创新机构,在杭州萧山建一座智慧城镇,即万向创新聚能城.

1900/1/1 0:00:00
ETH:网络供不应求、价格“四连阳”,以太坊的春天要来了吗?

OKEx行情显示,北京时间9月17日晚20点,以太坊价格成功突破200美元;截止18日早上9点,ETH暂报212美元,24H涨幅7%。时隔一个月之后,ETH成功站上200美元大关.

1900/1/1 0:00:00
COI:Coinbase领投的初创企业拟开发Dapp开发者中心,构建Web3.0版Github

尽管大多数开发人员使用GitHub来编写和共享开源代码,但CoinbaseVentures、DistributedGlobal和DigitalCurrencyGroup等基金公司正投资开发一种基.

1900/1/1 0:00:00
比特币:比特币真的能拯救世界,接受加密货币捐赠的组织实现100%增长

NonprofitTechforGood的一份新报告显示,加密货币作为一种捐赠资金的方式正在迅速普及.

1900/1/1 0:00:00