首页/安全/加密与证书速查/GCM nonce 重用的后果
本包目录(305 条)
加密算法基础95 条
TLS 与 HTTPS60 条证书与 PKI30 条OpenSSL 实战30 条证书运维排查49 条密钥管理41 条

GCM nonce 重用的后果

同一密钥下重复使用 nonce,会让两条消息的密钥流量用并暴露认证子密钥,从而可以伪造消息;这是 GCM 使用中的主要实现风险。

加密与证书速查安全更新于 2026-10-12
后果一两条密文异或即得明文异或,机密性受损
后果二GHASH 认证密钥可被恢复,完整性失效
控制手段随机 96 位 nonce 的单密钥调用上限 2^32 次
更大规模改用固定字段+计数器的确定性构造,或频繁换密钥

非安全示例与修正思路

非安全示例与修正思路
反例:restart 后 nonce 计数器归零但密钥未变 → nonce 复用
修正:密钥与计数器绑定(持久化计数器),或每次重启换新密钥
修正:批量场景按设备/会话派生唯一子密钥
即使只泄漏两条相关消息也足以破坏认证;含重启、并发与异常重试的系统要专门审计 nonce 生成路径。

易错点

  • 把 nonce 从 0 开始计数并每次重启重置,会与历史消息冲突,务必持久化或换密钥
  • 多线程/多进程共享同一计数器实现时容易并发重复,建议在密钥层面隔离

数据来源与参考

  • NIST SP 800-38D §8.3(IV 框架与唯一性要求)
  • RFC 5288
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌