密钥用途分离

同一密钥只承担单一用途:签名、加密、密钥协商分别使用不同密钥,可以限制单点泄露的影响面,并满足合规对密钥用途的约束。

加密与证书速查安全更新于 2026-10-13

密钥用途分离

密钥用途分离的原则是「一把密钥只承担一件事」:签名、加密、密钥协商分别使用不同的密钥。这样做可以限制单点泄漏的影响面——签名密钥泄漏不会影响数据机密性,加密密钥泄漏也不会让攻击者伪造签名;同时也满足合规对密钥用途的约束,便于授权管理与审计说明。

基本信息

用途分类签名与验签、加密与解密、密钥协商、密钥派生
协议约束X.509 的 keyUsage 与扩展密钥用途可限制证书密钥用途
存量迁移混用密钥制定替换计划,先减少用途再轮换
审计价值用途清晰便于授权与影响面评估
常见误区用同一密钥同时做签名与加密

典型使用场景

  • 设计新系统的密钥体系时区分用途
  • 审计中发现密钥超范围使用
  • 事故影响面评估:先看泄漏的密钥能做什么
  • 与 HSM 或 KMS 配合时按用途设置策略
  • 存量系统整改:先加限制,再逐步拆分

用途与算法对照

用途与算法对照
签名        Ed25519 / ECDSA P-256 / RSASSA-PSS
加密        AES-256-GCM / ChaCha20-Poly1305 / RSA-OAEP
密钥协商    X25519 / ECDH P-256
派生        HKDF-SHA256 等 KDF
# 原则:不跨用途复用,不跨系统共用同一密钥

用途与约束

用途常见算法约束方式
签名Ed25519、ECDSA、RSASSA-PSSkeyUsage: digitalSignature
加密AES-GCM、RSA-OAEPkeyUsage: keyEncipherment
密钥协商X25519、ECDHkeyUsage: keyAgreement
对称数据加密AES-256-GCM密钥独立于签名密钥
TLS 中 ECDHE 的私钥用于签名,而 RSA 密钥传输场景的私钥用于解密,两类材料不应共用同一个私钥。混用不仅扩大影响面,也让审计时难以说明用途边界,排查问题时同样难以判断泄漏后的真实影响。
补充:拆分存量密钥时,建议先按用途列出清单并标注影响面,再决定拆分顺序;签名与加密混用的密钥通常优先处理,因为它同时影响完整性与机密性两个方向。

易错点

  • 一把密钥同时承担签名与数据加密 → 一处泄漏同时影响完整性与机密性
  • 证书扩展声明与实际用途不一致 → 客户端按用途校验失败,或安全语义被削弱
  • 跨系统共用同一密钥 → 影响面成倍扩大,且无法按系统单独撤销
  • 存量混用密钥直接轮换而不先减少用途 → 影响面不清,替换过程容易引发故障

数据来源与参考

  • NIST SP 800-57(密钥用途)
  • RFC 5280 §4.2.1.3(KeyUsage)
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌