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

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

以下是技术细节内容:

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

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

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

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

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

李林正式在香港起诉Huobi使用“火币”商标:6月21日消息,李林控制的X-Spot有限公司今天在香港特别行政区高等法院起诉火必(Huobi Global Limited)商标侵权。早先在孙宇晨封锁李林弟弟账户并指责其倾销HT后,火必开始重新使用“火币”商标。

起诉书称,X-Spo有限公司一直保留对“火币”商标的专有权,火必(Huobi Global Limited)在未经X-Spot授权的情况下一直在使用该商标。当原股东将其火币全球站的股份转让给百域资本(About Capital Management)时,他们明确同意保留“火币”商标的专有权,并确保这些权利不会转让给买方或火必,双方股权转让及资产交割协议明确规定,禁止买方使用“火币”商标和品牌。(吴说区块链)[2023/6/21 21:52:14]

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

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

李林:区块链行业发展趋势是合规化:11月1日,在火币集团举行的“火伴同行,遵义征途”合作伙伴大会上,火币集团创始人李林表示,从去年到今年,全球多个国家已经纷纷制定数字货币市场的监管和合规框架,未来这个趋势更加明显,合规化是这个行业重要的趋势,会成为未来三年这个行业的标配。

他还认为,整个行业的中心已经明确的转移,2017年之后,比特币在亚洲的影响力量在衰退,灰度目前持有比特币数量超过火币交易所冷钱包持有比特币数量,在比特币数字资产世界里面,美国所占的市场份额越来越大。美国正在制定监管规则,其他国家也在参考美国的规则,Paypal的上亿用户进入,和灰度嫁接了一个桥梁,让用户合规地进入比特币世界,所以,比特币持有者的机构化趋势越来越强。[2020/11/1 11:21:29]

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

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

李林卸任“海南新易”执行董事:据天眼查显示,火币集团CEO李林已于本月21日卸任“海南新易网络科技有限公司”执行董事一职。(以下简称“海南新易”)

据天眼查,李林为“海南新易”最终受益人,持股90%,人事变更后,该公司高管层成员分别包括执行董事张琳琳、监事高伟、经理朱嘉伟。资料显示,“海南新易”成立于2018年4月,法人代表/经理由现任火币COO朱嘉伟(持股10%),公司经营范围包括提供销售计算机硬件、软件产品与网络产品、计算机软件产品开发与销售等服务。[2020/4/24]

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

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

现场 | 李林:区块链提供了支付行业换道超车的机会:金色财经现场报道,12月5日,由海南省工业和信息化厅主办,海南生态软件园及火币中国承办的“海南自贸港数字经济和区块链国际合作论坛”在海南省海口市举行。火币集团创始人李林表示,从国内的银行与支付基础设施来看,区块链的支付流程不再依赖金融中介机构,用户之间点对点交易,实施成本低,效率高,同时,区块链提供了支付行业换道超车的机会,可以实现信息化、移动化、数字化的一步到位。李林还指出,从跨境金融基础设施来看,举例来说,Libra是一种全球化、无国家数字稳定币,USC是银行跨国结算的数字稳定币,区块链的跨境支付高效、成本低、普惠金融,例如此前中国银行业发展落后于美国。美国普及信用卡支付时,中国连银行卡都还没有普及。但因为移动支付发展,互联网支付的发展,中国直接跳过信用卡支付,实现了全民的移动支付。在金融体系还没有发达国家那么健全的国家和地区,很有可能通过区块链和数字货币技术实现反超。[2019/12/5]

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

公告 | 桐成控股委任李林为执董、董事会主席及首席执行官:桐成控股发布公告称,委任李林为执董、董事会主席及首席执行官。晚间的另一份公告显示,董事会建议将公司英文名称“Pantronics Holdings Limited”更改为為“Huobi Technology Holdings Limited”,而将中文名称“桐成控股有限公司”更改为“火币科技控股有限公司”。[2019/9/10]

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

解决方案

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

背景

要打开一个闪电网络通道,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

郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。

大币网

[0:15ms0-4:775ms