深入解析DKLs23阈值签名库安全审计:关键漏洞与修复方案

本文详细分析了Trail of Bits对Silence Laboratories的DKLs23阈值签名库Silent Shard的安全审计过程,涵盖协议实现风险、密钥销毁攻击漏洞、侧信道分析及修复建议,为密码学协议实现提供重要安全实践参考。

我们审查首批DKLs23库之一从Silence Laboratories中学到了什么

Joop van de Pol、Jim Miller和Joe Doyle
2025年6月10日
密码学, 审计

2023年10月,我们审计了Silence Laboratories的DKLs23阈值签名方案(TSS)库Silent Shard——这是当时使用不经意传输(OT)替代传统Paillier密码学的创新协议的首批生产实现之一。我们的审查发现了可能导致密钥销毁攻击的严重缺陷,Silence Laboratories已及时修复。

我们的审计得出三个关键教训。首先,DKLs23规范赋予实现者选择子协议(基础OT、OT扩展、配对乘法)的显著自由度,需要仔细研究规范及实现选择。其次,基于OT的系统通常比基于Paillier的系统更不易出错,一旦防止选择性中止攻击,只需更简单的验证即可保障安全。最后,所有TSS方案都需要关注安全P2P通信、广播和共识验证等基础要素。

本篇博文中,我们将介绍审计流程,深入分析发现的关键问题,并讨论增强实现安全性和正确性的建议。查看完整的Silence Laboratories DKLs23审查报告获取更多细节!

全新大胆的库——Silent Shard

Silence Laboratories是由学术和工业科学家组成的团队,构建了名为Silent Shard的多功能TSS库。该团队旨在为多种应用和用例提供TSS支持,包括加密货币钱包MetaMask。

为支持ECDSA签名,Silence Laboratories基于当时新颖的DKLs23协议构建了Silent Shard库。许多常见的ECDSA协议(如CGGMP21)依赖Paillier加密系统的同态属性执行特定ECDSA签名操作。DKLs23协议是 fundamentally不同的协议,使用称为不经意传输(OT)的密码学原语替代Paillier。这种基于OT的方法因其竞争性性能和基于Paillier系统的脆弱性(例如最近的BitForge和TSShock漏洞)在过去几年中获得更多关注和势头。

我们如何进行审查

我们与Silence Laboratories的项目从手动审查附带文档开始,并包括与Silence Laboratories的定期咨询以澄清某些问题。实现TSS协议,尤其是DKLs23,是一项非常复杂的任务,因为规范充满复杂符号和许多子协议,每个子协议都有其自身的尖锐边缘和安全问题。为了让您更好地理解,以下是主DKLs23协议的截图,该协议跨越四页文本:

图1: 主DKLs23协议跨越四页密集规范,每个符号(𝓕Com、𝓕RVOLE等)代表其自身复杂的子协议

如果您没有被需要理解和跟踪的所有不同变量淹没,还请记住每个𝓕Com、𝓕RVOLE、𝓕Zero等符号都是其自身复杂的子协议,具有自身的密集符号和安全考虑。其中一些子协议实际上在以前的出版物中定义,因此您还必须进行大量参考文献追踪。

除了手动审查,我们使用相关工具对Rust代码库进行自动化分析。特别是,我们使用cargo-audit和Clippy识别已知易受攻击的依赖项和常见Rust错误。我们还使用cargo-llvm-cov分析代码库的测试覆盖率,并识别额外测试最有价值的热点。最后,我们使用Trail of Bits的自定义Rust工具Dylint,该工具识别Trail of Bits在以前项目中发现的更常见Rust错误和代码质量问题。

关键发现

在项目过程中,我们共识别了15个安全问题。在这15个问题中,我们识别了两个高风险安全问题,可能导致密钥销毁攻击,并可能导致密钥恢复攻击:

TOB-SILA-6: 各方之间的通信通道可以重用随机数。TSS协议有严格的通信要求以保持协议安全。特别是,协议中的各方必须拥有安全配对通道以防止消息被读取或篡改。加密使用的随机数实现中的此错误可能允许恶意方更改两方之间的协议消息,从而阻止他们签名消息。这称为密钥销毁攻击。为解决此问题,Silence Laboratories团队更新了通信通道,为通道中的每个方向使用不同的密钥,这防止了相同加密密钥使用相同随机数两次。

TOB-SILA-12: 实现错误处理选择性中止攻击。这些TSS协议的关键设计之一是正确检测和处理其他方的恶意行为。我们在此恶意行为处理中识别了一个导致恐慌的错误,阻止各方正确识别恶意方。没有正常运作的可识别中止,协议中的各方要么必须指责协议中的每个人(或某些随机子集),这可能导致密钥销毁攻击,要么不指责或惩罚任何人,这可能导致密钥提取攻击。Silence Laboratories修补了实现以返回显式的AbortProtocolAndBanReceiver错误,该错误包括要禁止的方的ID。

我们识别的一些其他发现也可能导致密钥销毁攻击和其他问题。所有安全问题的详细列表可在我们的完整报告中访问。

我们的报告还包括我们的代码质量建议,旨在增强代码可读性、可维护性和鲁棒性。一些建议涉及使用特定类型以提高可读性和一致性,公共库函数参数的全面文档,以及减少不必要的不安全代码使用。更多信息请参阅报告附录C。

侧信道分析

Silence Laboratories的Silent Shard DKLs23库的安全审查涉及分析实现以查找潜在的侧信道漏洞。我们发现代码库通过在使用subtle等crate的适当位置使用恒定时间代码,很大程度上防止了侧信道攻击。然而,有一个函数eval_pprf,时序信息可能披露有关秘密值的一些信息。如我们在报告中所述,我们认为与此问题相关的风险非常低,因为实际攻击即使不完全不可行也很困难。但为了深度防御,我们包括了使此函数恒定时间从而不披露任何不必要信息的建议。针对此问题,Silence Laboratories提交了一个补丁以移除此时序泄漏。更多细节请参阅报告附录D。

建议

除了提供解决我们识别的15个安全问题和代码质量问题的建议外,我们在项目结束后向Silence Laboratories提供了两个长期建议。对DKLs23实现的第一个建议是改进文档,特别是错误处理,鉴于处理恶意行为在TSS系统中的重要性以及我们识别的错误处理问题。

我们的另一个主要建议是向代码库引入额外的负面测试。特别是,负面测试本可以检测和防止我们识别的一些问题,如TOB-SILA-1和TOB-SILA-2。额外负面测试的需求也由我们的cargo-llvm-cov分析确认。

自我们的项目结束以来,我们很高兴地说Silence Laboratories已解决15个安全问题中的14个,并部分解决了剩余的信息性问题。Silence Laboratories还根据我们的长期建议投资了额外的文档和测试。

保护TSS协议

我们赞扬Silence Laboratories在此项目上的高效协作工作以及对我们发现和建议的及时响应。像此类的审计展示了增强代码库安全性的主动方法,是提供多功能TSS工具包的重要一步。

随着此项目的结束,我们的密码学团队现已对ECDSA、Schnorr和BLS签名的所有主要TSS协议执行了多次安全评估。此外,所有主要TSS协议都聘请我们提供工程服务,为所有相关签名方案构建Go和Rust实现。如果您需要任何TSS协议的安全审查或工程,请联系我们!我们提供免费的办公时间会话,我们可以基于对这些系统的广泛经验提供有影响力的建议。

如果您喜欢此文章,请分享: Twitter LinkedIn GitHub Mastodon Hacker News

关于我们

自2012年以来,Trail of Bits帮助保护了世界上一些最受针对的组织和产品。我们结合高端安全研究和真实世界攻击者心态以降低风险并加固代码。 阅读更多:www.trailofbits.com 社交 Twitter LinkedIn GitHub Mastodon Hacker News 近期文章 使用Deptective调查您的依赖项 系好安全带,Buttercup,AIxCC的评分回合正在进行中! 使您的智能合约超越私钥风险成熟 Go解析器中意外的安全隐患 我们审查首批DKLs23库之一从Silence Laboratories中学到了什么 类别 aixcc  8apple  13应用安全  19攻击  14审计  14认证  6基准测试  1binary-ninja  15区块链  90c/c++  1夺旗赛  11职业  3codeql  6编译器  33会议  33机密计算  1容器  3密码学  78crytic  4网络大挑战  8darpa  27设计审查  1动态分析  14ebpf  6echidna  1生态系统安全  10教育  17empire-hacking  7工程实践  23事件  8漏洞利用  30模糊测试  51go  10指南  15实习项目  42不变量开发  3iverify  5java  1内核  1kubernetes  3linux  8llvm  5机器学习  36恶意软件  7manticore  17mcp  4mcsema  11内存安全  2meta  12缓解措施  11mlir  2开源  28操作安全  1osquery  23论文审查  11人员  8播客  1政策  14新闻稿  29隐私  9产品  8程序分析  22提示注入  3递归  1研究实践  40逆向工程  18rust  8safedocs  1semgrep  9sinter  1slither  4快照模糊测试  1赞助  12稳定币  1静态分析  37供应链  11符号执行  18测试手册  6威胁建模  4阈值签名  1工具发布  7培训  3vast  2漏洞  4漏洞披露  22windows  3在Trail of Bits工作  4年度回顾  6零知识  12© 2025 Trail of Bits. 使用Hugo和Mainroad主题生成。

comments powered by Disqus
使用 Hugo 构建
主题 StackJimmy 设计