深度解析Silent Shard DKLs23阈值签名库的安全审计发现

本文详细记录了Trail of Bits团队对Silence Laboratories的DKLs23阈值签名库Silent Shard的安全审计过程,揭示了15个安全问题(包括2个高危密钥销毁漏洞),并分享了OT协议实现、侧信道防御等关键技术经验。

我们如何审查首批DKLs23库之一——来自Silence Laboratories的Silent Shard

2023年10月,我们审计了Silence Laboratories基于DKLs23阈值签名方案(TSS)的库Silent Shard——这是当时首个采用茫然传输(OT)替代传统Paillier密码学的生产级实现。我们的审查发现了可能导致密钥销毁攻击的严重缺陷,Silence Laboratories已及时修复。

审计三大核心发现

  1. 协议实现的自由度:DKLs23规范赋予实现者选择子协议(基础OT、OT扩展、成对乘法)的极大自由度,需同时研究规范文档和具体实现选择
  2. OT系统的优势:基于OT的系统通常比Paillier系统更不易出错,只需防范选择性中止攻击就能简化安全验证
  3. TSS基础要素:所有TSS方案都需要关注安全P2P通信、广播和共识验证等基础机制

创新库Silent Shard

Silence Laboratories由学术和工业界科学家组成,其开发的Silent Shard库支持包括MetaMask加密货币钱包在内的多种应用场景。该库基于创新的DKLs23协议构建,采用茫然传输(OT)而非Paillier加密系统来实现ECDSA签名,这种OT方案因其性能优势和Paillier系统的脆弱性(如BitForge和TSShock漏洞)近年备受关注。

审计方法论

  1. 文档审查:人工审查技术文档并与开发团队定期沟通
  2. 自动化分析
    • 使用cargo-audit检查依赖漏洞
    • 通过Clippy识别Rust常见错误
    • 采用cargo-llvm-cov分析测试覆盖率
    • 运用定制工具Dylint检测代码质量问题

关键安全发现

高危漏洞

  • TOB-SILA-6:通信通道nonce复用问题
    可能允许恶意方篡改协议消息导致密钥销毁攻击。修复方案:为通道双向通信使用不同密钥。

  • TOB-SILA-12:选择性中止攻击处理缺陷
    错误处理导致程序panic,无法正确识别恶意方。修复方案:明确返回包含被禁方ID的AbortProtocolAndBanReceiver错误。

侧信道分析

代码库通过subtle等crate实现恒定时间操作,有效防御了大多数侧信道攻击。仅在eval_pprf函数中发现存在时序信息泄露风险(实际攻击难度较高)。Silence Laboratories已提交补丁消除该泄漏。

长期建议

  1. 完善文档:特别是关于错误处理的文档,这对TSS系统至关重要
  2. 增强负面测试:可提前发现如TOB-SILA-1/2等问题,覆盖率分析也证实该需求

审计结束后,Silence Laboratories已修复14/15的安全问题,并持续改进文档和测试体系。

关于TSS协议安全

我们的密码学团队现已完成对ECDSA、Schnorr和BLS等所有主流TSS协议的安全评估,并为相关签名方案提供Go/Rust实现服务。如需TSS协议安全审查或工程实现,欢迎联系我们获取免费咨询服务。

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