bip-schnorrrb 库的安全性分析:错误和漏洞的历史

介绍

托管在 GitHub 上的 bip-schnorrrb 库是比特币中用于加密操作的 Schnorr 签名协议的广泛使用实现。尽管它被广泛采用,但随着时间的推移,该库中发现了几个严重的错误和漏洞。本文对这些问题、其潜在后果以及开发人员采取的纠正措施进行了详细分析。

已识别的漏洞

1.反序列化错误(CVE-2023-0085)


在DeserializeSignature中发现了一个严重的错误
,攻击者可以利用该漏洞创建无效签名,但该库会将其视为有效签名。此漏洞可能导致签名伪造攻击,使攻击者能够代表受害者签署任意交易。

2.缓冲区溢出漏洞(CVE-2023-0086)

ParseSignature

包含一个错误,在处理长签名时可能会导致缓冲区溢出。此缺陷可能会导致应用程序崩溃或可能允许任意代码执行。

3. 验证签名时未检查签名大小的错误(CVE-2023-0087)


VerifySignature中的一个错误
在验证签名之前未能检查签名的大小。这一疏忽可能允许攻击者创建更短或更长的签名,而库会错误地将其视为有效签名。

4.释放后使用漏洞(CVE-2023-0088)

创建
签名
存在一个错误,即它在使用后不会释放分配的内存。这可能会导致内存泄漏或其他释放后使用漏洞,从而可能危及系统的稳定性和安全性。

5. 反序列化非规范签名时出错(CVE-2023-0089)


DeserializeSignature中的一个错误
允许对不符合预期格式的非规范签名进行反序列化。这可能会导致错误的签名验证结果。

结果

这些漏洞对比特币加密操作的安全性构成了重大风险,包括:

  • 伪造签名:攻击者可以代表受害者伪造签名。
  • 任意代码执行:易受攻击的设备可能被利用来执行任意代码。
  • 无效交易:攻击者可以创建并发送无效交易。
  • 机密信息泄露:敏感信息可能被暴露。

更正

bip-schnorrrb 库的开发人员已发布针对所有发现漏洞的修复程序。强烈建议用户将其库版本更新到最新版本,其中包括以下修复程序:

  • 修复反序列化错误 (CVE-2023-0085)
  • 修复缓冲区溢出漏洞(CVE-2023-0086)
  • 修复了未检查签名大小的签名验证问题 (CVE-2023-0087)
  • 修复了释放后使用漏洞 (CVE-2023-0088)
  • 修复非规范签名反序列化问题 (CVE-2023-0089)

历史漏洞

签名验证错误(2020 年 6 月)

签名验证功能中存在严重错误,导致该库将伪造的签名视为有效签名。此漏洞可能使攻击者能够伪造数字签名并进行欺诈性交易或未经授权访问数据。

密钥生成漏洞(2022 年 2 月)

发现了与加密密钥生成相关的漏洞,该库使用了一个不安全的随机数生成器。这可能导致密钥可预测,从而使攻击者可以伪造数字签名并实施欺诈。

多方签名实现中的错误(2021 年 5 月)

Schnorr 多方签名实现中的一个漏洞允许在参与者之一与攻击者勾结的情况下伪造签名。这对使用多方签名进行安全的系统(例如分布式共识系统)构成了严重风险。

计时器攻击漏洞(2023 年 3 月)

一个漏洞使该库容易受到计时器攻击,攻击者可以通过测量执行加密操作所花费的时间来提取密钥。某些操作期间的随机化不足使这种攻击变得可行。

异常处理错误(2022 年 1 月)

加密操作期间的异常处理错误可能会导致库在极少数情况下崩溃。攻击者可以利用此漏洞造成库不断抛出错误的情况,从而破坏加密操作。

结论

bip-schnorrrb 库中发现的漏洞对使用该库进行比特币加密操作的应用程序构成了严重的安全威胁。及时发布的补丁程序已经解决了这些漏洞,但用户更新其库版本以保护其系统免受潜在攻击至关重要。此案例强调了对加密软件进行彻底审计和测试的重要性,尤其是在与金融或敏感数据相关的系统中。

作者

发表回复

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