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

本文详细记录了Trail of Bits对Silence Laboratories的DKLs23阈值签名库Silent Shard的安全审计过程,揭示了15个安全漏洞,包括可能导致密钥销毁攻击的高危问题,并提供了修复建议与密码学协议实施的最佳实践。

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

背景介绍

2023年10月,我们对Silence Laboratories的DKLs23阈值签名方案(TSS)库Silent Shard进行了安全审计。这是首批采用不经意传输(OT)替代传统Paillier密码学的生产级实现之一。我们的审查发现了可能导致密钥销毁攻击的严重漏洞,Silence Laboratories已及时修复。

审计方法

手动审查与工具分析

我们采用手动审查文档并结合自动化工具对Rust代码库进行分析:

  • 使用cargo-auditClippy识别已知漏洞依赖和常见Rust错误
  • 通过cargo-llvm-cov分析测试覆盖率,定位需要加强测试的热点区域
  • 运用Trail of Bits自定义工具Dylint检测代码质量问题

协议复杂性挑战

DKLs23协议规范包含大量复杂符号和子协议(如$\mathcal{F}{Com}$、$\mathcal{F}{RVOLE}$、$\mathcal{F}_{Zero}$等),每个子协议都有独立的安全考量,需要跨文献追踪参考。

关键发现

高危安全漏洞

TOB-SILA-6:通信通道Nonce复用漏洞

  • 实现中加密Nonce复用可能导致恶意方篡改协议消息
  • 可能引发密钥销毁攻击,阻止消息签名
  • 修复方案:通信通道双向使用不同密钥,避免同一加密密钥重复使用Nonce

TOB-SILA-12:选择性中止攻击处理不当

  • 恶意行为处理缺陷导致程序panic,无法正确识别恶意方
  • 可能引发密钥销毁或密钥提取攻击
  • 修复方案:明确返回AbortProtocolAndBanReceiver错误,包含被禁方ID

其他安全问题

共发现15个安全漏洞,详细列表参见完整报告。代码质量建议包括:

  • 使用特定类型增强可读性和一致性
  • 完善公共库函数参数文档
  • 减少不必要的unsafe代码使用

侧信道分析

代码库通过subtle等crate实现常数时间代码,有效防御侧信道攻击。唯一存在风险的eval_pprf函数可能通过时序信息泄露秘密值,但实际攻击难度较高。Silence Laboratories已提交补丁消除此时序泄漏。

长期建议

  1. 加强文档建设:特别是错误处理文档,这对TSS系统的恶意行为处理至关重要
  2. 增加负面测试:负面测试可提前发现TOB-SILA-1和TOB-SILA-2等问题,cargo-llvm-cov分析也确认了此需求

项目成果

审计结束后,Silence Laboratories已解决15个安全问题中的14个,部分解决剩余信息类问题,并按照建议加强了文档和测试投入。

关于TSS协议安全

我们已完成对所有主要TSS协议(ECDSA、Schnorr、BLS签名)的安全评估,并为所有相关签名方案提供Go和Rust实现服务。如需TSS协议安全审查或工程服务,欢迎联系我们获取基于丰富经验的免费咨询。


本文基于实际安全审计案例,为密码学库开发提供实践指导。关注我们获取更多安全研究洞见。

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