密钥擦除实战(二):如何清除栈与寄存器中的敏感数据

jedisct1 · x · 2026-10-08

Frank Denis 续讲密码学代码中的 zeroization 问题:本意清除密钥的代码反而可能制造更多副本。

核心方案:首选使用专为秘密保护设计的编译器,如 Jasmin——它能自动证明被标记为秘密的值不会被作为公开值返回、以常量时间运行、抵抗部分 Spectre 攻击,甚至能证明内存安全,并在函数返回前自动擦除所有秘密值(无论在寄存器还是栈上)。AEGIS 最快的实现就是用 Jasmin 写的。

通用语言的做法:不必在微观层面逐条清零,而是划定边界——在明确边界内使用临时密钥处理数据,出边界后即不再需要,从更高层面统一清理。

原文链接 →

「安全」频道最新

更多「安全」频道 AI 资讯 →