跳到主要内容

8. 安全考量

关键安全要点

8.1 密钥选择

  • 使用足够长的密钥
  • 遵循特定算法的密钥大小要求
  • RSA: 最小 2048 bits
  • HMAC: 至少与 hash output 大小相同

8.2 随机数生成

  • 使用密码学安全的 random number generator
  • 确保有足够的 entropy

8.3 算法选择

  • 优先使用推荐算法
  • 避免使用已弃用或存在已知弱点的算法
  • RSA1_5 存在 Bleichenbacher attack vulnerability

8.4 Timing Attack 防护

  • HMAC 验证使用 constant-time comparison
  • 避免泄漏 timing information

8.5 "none" 算法警告

  • 默认不接受 Unsecured JWS
  • 仅在明确需要时使用
  • 实现 MUST 要求显式启用

8.6 密钥管理

  • 妥善保护 private key 和 symmetric key
  • 使用适当的密钥分发机制
  • 考虑密钥轮换策略

8.7 加密考量

  • 使用 authenticated encryption
  • 验证 AAD (Additional Authenticated Data)
  • 正确处理 initialization vector

实现建议:

  • 保持库和算法实现更新
  • 遵循最新的安全最佳实践
  • 定期审查安全公告和 errata