不要让 TEE 破坏你的 MPC 笔记

不要让 TEE 破坏你的 MPC

阈值签名方案(Threshold signature schemes)是一种多方计算(MPC)方法,允许多方联合签名而无需单一私钥,正越来越多地用于可信执行环境(TEEs)中以增强安全性。MPC 将信任分散于多方之间,而 TEEs 则将信任根植于硬件。然而,若在 TEE 中运行 MPC 时未考虑不可信主机,可能会引入漏洞,例如恶意主机回滚文件系统状态,从而导致私钥份额泄露。若将 TEEs 视为纵深防御的一层,而非协议的替代品,则该组合具有益处。这种方法凸显了 TEE 认证在 MPC 部署中的作用、常见的审计陷阱以及最佳实践,如将强认证与 MPC 身份进行绑定。MPC 的安全性依赖于参与者的行为,其安全模型包括半诚实(honest-but-curious)和恶意安全模型。若 TEE 认证全面且完善,可将半诚实协议提升至提供针对某些攻击的恶意安全保证。TEEs 提供机密性、完整性和认证。认证对于分布式系统至关重要,它允许远程验证在 TEE 中运行的代码。该过程涉及 TEE 对其状态密码学哈希值进行签名,形成“引用”(quote),由远程方进行验证。验证需要检查引用签名、证书链,并将测量值与已知良好的值进行比对,通常通过可复现构建和二进制透明度日志实现。一个关键挑战源于信任模型的冲突:MPC 将信任去中心化,而 TEEs 则将信任集中于硬件制造商。TEEs 还颠倒了传统的安全范式,即信任 guest 代码而将主机视为不可信,从而引入了新的攻击面,如回滚攻击。虽然 TEEs 可通过认证确保协议合规性,从而缓解诸如编码歧义、参与者行为不当、参数缺失和输入验证缺失等问题,但它们并不能保证绝对安全。现实世界中的 TEE 实现存在漏洞,且认证过程可能不完整或被错误验证。一个常见的陷阱是认证测量不完整,即排除了关键组件,导致修改无法被检测。另一个问题是缺少验证步骤,例如未检查引用签名或证书链,这会破坏安全模型。这些问题凸显了在将 TEEs 与 MPC 结合时,需要严格的实现和验证实践。
CdXz5zHNQW_OsiM9P6GDU.webp