主页 > imtoken如何区分官网 > 比特币钱包地址泄漏漏洞区块链安全

比特币钱包地址泄漏漏洞区块链安全

imtoken如何区分官网 2023-06-18 07:48:46

比特币网络结构:下图说明了比特币网络结构。 运行比特币协议的网络节点可能包括(1)钱包,(2)矿工,(3)完整的区块链数据库,以及(4)网络路由器。 钱包功能为用户提供比特币钱包服务。 此功能控制对用户资金(BTC、比特币货币)的访问,包括管理私钥/公钥和地址、跟踪余额、生成和签署交易。 矿工函数验证附加到比特币区块链的新交易。 完整的区块链数据库功能维护所有比特币区块的完整和最新副本。 网络路由功能允许1个节点与其他节点通信。

威胁模型:在这项研究中,攻击者是对比特币智能手机钱包用户发起远程攻击的个人和组织。 攻击者认为 (1) 他们可以拦截、修改或注入公共通信渠道中的任何信息,并且 (2) 他们遵守所有密码假设。 例如,没有密钥就无法解密加密消息 (3) 他们无法控制受害者的智能手机和比特币网络基础设施。 本文研究了 10 个流行的比特币钱包应用程序,即 Coinbase、BitcoinWallet、BlockchainWallet、Bitcoin..infoWallet、Leko、Mycoliem、Coiviral、NLS、BitPay 和 SimpleBitcoin。 这项研究由两项措施负责。 首先,只使用电话作为受害者。 其次,没有向公众分发恶意比特币应用程序和库。 这项研究试图揭示新的安全漏洞和对比特币钱包应用程序的有效攻击,但漏洞并未加剧。

第一个安全漏洞是钱包应用程序的比特币地址可能会泄露给攻击者。 特别是,BitcoinJ 是一个比特币客户端库,已被用于比特币钱包应用程序(如 BitcoinWallet、Mycoliem)和比特币网络通信,泄露了比特币钱包用户的隐私。 根据比特币标准,SPV客户端(即比特币钱包应用)与比特币OMC(全节点客户端)连接后最开始的比特币钱包,会向OMC发送filterlsetup信息。 此消息用于指定比特币钱包用户对特定交易的兴趣。 事实上最开始的比特币钱包,SPV 客户通常被配置为对来自比特币钱包用户的比特币地址的交易感兴趣。 此消息具有三个重要参数:filter、nResultFektd 和 nTweak。 过滤器本身是一个区域布隆过滤器,因此 OMC 可以了解它所连接的比特币钱包应用程序的地址兴趣。 将数据元素(例如用户的比特币地址)提供给不同的 nResultFektdMurmurhash3 哈希函数,设置布隆过滤器。 这些nResultFektdMurmurResult3哈希函数由nResultNum×0xFBA4C795+nTweak初始化,其中nResultNum是哈希函数的索引(例如1st、2nd、3rd),nTweak是SPV客户端为过滤器选择的随机数。 为了将数据项(如比特币地址)添加到过滤器中,必须通过nResultFektd的哈希函数对数据项进行哈希处理,并根据位置或计算在过滤器中设置相应的位置。 例如,假设第一个和第二个哈希函数的结果分别为 7 (000111) 和 9 (001001),将一个数据项添加到一个干净的 6 位过滤器(值为 00000),使用 2 个不同的哈希函数,将过滤器设置为 00111(000111 或 001011)。

研究表明,为了防止攻击者通过拦截和分析明文filterlsetup信息正确发现比特币钱包用户使用的所有比特币地址,BitcoinJ实现了两种安全机制。 首先,由于布隆过滤器的误报率,一些不属于用户的错误地址会被过滤器过滤掉。 其次,通过只制作一次filterlsetup消息并将其传递给Bitcoin OMC(如果与OMC的TCP连接成功),攻击者无法从一开始就监控到SPV客户端的所有活动,也无法拦截filterlsetup消息。