区块链网站|NFTS Zcash(ZEC) Zcash屏蔽地址漏洞或泄露全节点IP地址(附解决方案)

Zcash屏蔽地址漏洞或泄露全节点IP地址(附解决方案)

广告位

Zcash屏蔽地址漏洞或揭示全节点IP地址(附解决方案)

声明:本文旨在传递更多市场信息,不构成任何投资建议。文章仅代表作者& # 039;s的观点,不是火星财经的官方立场。

边肖:记得要集中注意力。

投资区块链,戳:火星财经App下载

资料来源:巴比特

匿名币的技术之争很有意思。比如KMD的核心开发者杜克勒托刚刚发表了一篇博文,揭露了Zcash及其大部分分叉币的漏洞,而这个漏洞可能会泄露所有使用掩码地址(zaddr)的节点的IP地址。

它还分配了一个通用漏洞披露(CVE)代码CVE-2019-16930来跟踪该问题。

(以下是其具体披露)

太长不能看:自从Zcash和Zcash协议建立以来,所有屏蔽的地址都存在一个漏洞。它出现在所有的Zcash源代码分叉中,使得攻击者能够找到所有带有掩码地址(zaddr)的节点的ip地址。换句话说,如果Alice给Bob一个支付的屏蔽地址(zaddr ), Bob实际上可以找到Alice & # 039s IP地址,这与Zcash协议的设计是相悖的。

受影响的群体:

所有使用屏蔽地址(zaddr)并与第三方共享的人,例如:

如果你在社交媒体上公开发布你被屏蔽的地址(Zaddr);如果你在github/email/IRC的漏洞报告中给出了你被屏蔽的地址(ZADDR);如果你把你的屏蔽地址(zaddr)告诉了交易所、矿池或企业;如果您曾经在阻止备忘录中回复过您的阻止地址(ZADDR );不受漏洞影响的群体:如果您从未使用过zaddr,该漏洞将不会影响您:

如果你只给其他用zaddr的人寄钱,但从来不收资金,你是安全的;如果使用Tor/TAILS,IP元数据泄漏对攻击者来说不是有价值的信息。

受影响的加密货币(非详尽列表):

Zcash (ZEC) Hush(嘘)Pirate (ARRR) All Komodo (KMD)智能链带zaddr(默认启用)Horizen(Zen)Zero(ZER)vote coin(VOT)snow gem(XSG)Bitcoinz(BTCZ)litecon(LTZ)Zecash(zel)y cash(yec)arrow(vrsc)verus(vrsc)Bitcoin rivate(btcp)z classic(zcl)Anon(Anon)需要澄清的是虽然比特币黄金(BTG)使用了Equihash PoW共识机制附加说明:KMD以前使用屏蔽地址(zaddr ),但后来禁用了该功能。Safecoin (SAFE)走的也是类似的路线,目前也禁用了屏蔽地址(zaddr)。

缓解措施首先,预防这种& quot元数据泄漏攻击& quot就是在使用你最喜欢的加密货币的同时使用Tor through -onlynet=onion,或者更好的是使用TAILS操作系统。

其次,用户可以使用全新的zaddr创建一个全新的wallet.dat(钱包文件),然后将所有资金发送到这个地址。如果用户保持这个新的zaddr私有,就不会受到这种攻击。

Zcash在这里发布了一个应急源代码(没有二进制文件)。

如果你不& # 039;如果你不想让知道你地址的人知道你的IP地址,我建议你创建一个新的钱包,并在软件更新之前停止使用旧的钱包。

此时,普通用户或许可以停止阅读。

更多建议如果你运行一个支持zaddr的矿池,你不& # 039;不需要提供所有矿工和zaddr的公开名单。由于目前的元数据泄露攻击等原因,这严重消除了矿工的隐私。这在过去很常见,但由于隐私问题,大多数矿池已经停止了这种做法。

唐& # 039;不要在github中给出zaddr & # 039;的错误报告!许多工具不断地从所有公共代码库中提取潜在的敏感数据和开源信息。

为了提高安全性,如果你必须给出一个屏蔽地址(zaddr),你可以把它们隔离到一个单独的wallet.dat,这个wallet . dat通常是不用的,保持离线状态,而另一个带有屏蔽地址(zaddr)的wallet可以用来发送资金。因为送钱的钱包从来不发zaddr,所以这种类型的漏洞无法被这个节点利用。

代码分析该漏洞是在原Zcash代码库中引入的,相关提交时间为2016年:

"介绍新的& quotlibzcash”zcash协议API和围绕zkSNARK电路的加密结构。"

该提交将漏洞代码添加到旧版本的屏蔽地址,并且新版本的屏蔽地址代码复制它。该漏洞存在于Zcash(继承自比特币)的P2P层,节点与对等节点交换数据。

攻击的解释:

攻击者将无效事务转发给它的对等方& # 039;s mempool;此事务对加密备忘录字段的序列化无效;没有私钥和查看密钥的掩码地址的节点通常对这种无效事务作出反应;具有私钥(或视图密钥)的节点将生成C异常;这种C异常会导致不同的网络行为,从而暴露出& quot身份& quot节点的;区块链或浏览器上没有此类攻击的记录;修复漏洞的代码在这里:https://github . com/z cash/z cash/commit/C1 fbf 8 ab 5d 73 cf 5 E1 f 45236995857 c 75 ba 4128d核心修改如下:

– CDataStream ss(SER_NETWORK,PROTOCOL _ VERSION);-ss pt . get();-saplingnotplaintext ret;-ss ret;试试{ CDataStream ss(SER_NETWORK,PROTOCOL _ VERSION);ss pt . get();ss retassert(ss . size()==0);} catch(const boost:thread _ interrupted){ throw;} catch(.){ return boost:无;}以下代码行中缺少try/catch是该漏洞的核心原因:

ss pt . get();由于pt是由攻击者控制的数据,它被写入本地CDataStream ss对象,因此需要更加小心地处理。现在我们可以看到,只有boost:thread_interrupted类型的异常冒泡,所以其他所有异常都& quot消灭了& quot、和boost:都不会返回。这使得具有zaddr地址私钥的节点和所有其他节点一样,可以防止元数据泄漏。

作者注意到,这里仍然有易受攻击的代码来查找旧的Sprout地址。

有些人可能认为这种攻击只能针对节点的对等点,而不是整个网络。但增加最大对等点计数意义不大,通过一个或几个节点来研究整个网络是可行的。

高级攻击者会有一个他们想要连接到IP的zaddr数据库,然后运行密集连接到整个网络的节点,定期向所有对等节点的mempool发送无效事务,从而建立(时间戳,Zaddr,IP地址)的三重数据历史。然后,他们可以利用这些数据,通过定量分析和时序分析,将其与其他数据联系起来,从而彻底揭开交易的匿名性,直接与IP地址和地理位置绑定。

广告位
本文来自网络,不代表区块链网站|NFTS立场,转载请注明出处:https://www.qklwz.com/jzb/zec/21367.html
上一篇
下一篇

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

返回顶部