

哈希游戏
哈希游戏| 哈希游戏平台| 哈希游戏APP哈希游戏- 哈希游戏平台- 哈希游戏官方网站

利用场景:攻击者可利用签名可锻造性在区块链(如 Bitcoin、Ethereum)或协议中制造问题。例如,在 Bitcoin 交易中,攻击者可修改交易签名的 s 值生成新签名,改变交易 ID (txid),导致交易被拒绝或引发双花风险。此外,在某些智能合约或多重签名协议中,未规范化签名可能被用来绕过验证逻辑,造成资金损失或协议失效。2013 年,Bitcoin 网络曾因签名可锻造性引发交易可塑性(malleability) 攻击,影响 Mt. Gox 等交易所。
描述:LadderLeak 是一种存在于 ECDSA 实现中的侧信道漏洞,攻击者可以通过缓存时序分析获取签名过程中使用的随机数(nonce) 的最高有效位信息,但泄露概率低于 100%(即不到 1 比特的信息)。该漏洞存在于 OpenSSL 1.0.2 和 1.1.0 分支以及 RELIC 工具包 0.4.0 版本中,特别影响了基于曲线 的 ECDSA 实现。该漏洞源于 Montgomery 梯形算法实现中坐标处理不当导致的微小时间差异。攻击者可以观察到这种时间差异,并利用统计方法推断出随机数 k 的最高位。即使这种泄露率低于 100%(如对 P-192 为 99%,对 sect163r1 为 97.3%),攻击者仍然可以通过改进的 Bleichenbacher 傅立叶分析方法,收集足够数量的签名后完全恢复私钥。
描述:在 Filecoin 的 Lotus 实现中发现了 BLS 签名验证存在可延展性漏洞。BLS 签名可以以序列化(serialized) 和压缩(compressed) 这两种不同的形式表示,这两种形式都可以通过 BLST 库的 VerifyCompressed 方法成功验证。但 Lotus 的区块验证逻辑使用包含签名的区块头 CID 来识别区块唯一性,这导致了以下安全问题:同一个区块如果使用两种不同形式的 BLS 签名,将被视为两个不同的区块,因为它们的 CID 不同。攻击者可以通过提交包含相同内容但签名格式不同的区块来利用这一漏洞,绕过重复区块检测,可能导致区块链分叉、双花攻击或共识故障。
描述:研究人员在四个主流 BLS (Boneh-Lynn-Shacham) 加密库和 BLS 标准草案中发现了一系列与零值处理相关的严重安全漏洞,被统称为splitting zero(零值分裂)攻击。这些漏洞源于对加密算法中特殊值0处理的缺陷,可能导致签名验证绕过、私钥恢复、拒绝服务和其他严重安全问题。特别值得注意的是,GitHub 报告还提到了一些额外的零值相关漏洞,包括:在 supranational/blst 库中,零长度签名或零长度消息会导致程序崩溃;在模 p 运算中,inverse(0) mod p = 0,但 inverse(p) mod p = 1 的处理错误。BLS 签名方案因其独特的聚合特性而广泛应用于区块链和分布式系统,这些漏洞可能对依赖这些库的大型系统产生重大安全影响。
漏洞示例:假设使用 MD5 哈希函数(128 位输出),攻击者可以通过生成约 2^{64} 个变体消息来找到碰撞。例如,攻击者创建两个不同合同文件 A 和 B(A 是合法的,B 是篡改的),使得 MD5(A) = MD5(B)。如果系统使用 MD5 验证签名,攻击者可以用 A 的签名伪造 B,导致如 2004 年 Flaming 攻击中 MD5 碰撞用于生成假证书,或 2012 年 Flame 恶意软件利用碰撞绕过 Windows 更新验证。
描述:哈希函数长度扩展攻击(Length Extension Attack) 是一种针对使用 Merkle-Damgård 结构的哈希函数(如 MD5、SHA-1和 SHA-2 系列)的密码学攻击。攻击者利用这类哈希函数的内部工作机制,在知道 H(message) 和 message 长度的情况下,无需知道 message 本身,就能够计算出 H(messagepaddingextension) 的值,其中 extension 是攻击者选择的任意数据。这种攻击之所以可行,是因为 Merkle-Damgård 结构的哈希算法将输入分割为固定长度的数据块,并且每个块的哈希值依赖于前一个块的哈希状态。这意味着攻击者可以从一个已知的哈希状态继续计算,添加更多数据块,而无需知道产生该状态的原始数据。这类漏洞在 Web 应用、API 验证、身份认证系统和区块链应用中尤为危险,特别是当系统使用形如 H(secretmessage) 的简单验证模式时。
描述:Fiat-Shamir 变换是将交互式的零知识证明协议转化为非交互式的证明协议的一个重要方法,它将证明者和验证者中的随机挑战替换成散列函数的输出。冰心漏洞(Frozen Heart) 是指在实现 Fiat-Shamir 变换时,使用了弱 Fiat-Shamir变换,即只对证明者的部分消息进行散列而不散列公开信息(如参数、公开输入等)。这导致攻击者可以在不知道秘密值的情况下,通过预计算公钥 A 来伪造证明,欺骗验证者。该漏洞影响了多个主流零知识证明系统,包括 Bulletproofs、Plonk、Spartan 和 Wesolowski 的 VDF 等。