8. Security Considerations (安全考虑)
关键安全要点
8.1 密钥选择
- 使用足够长度的密钥
- 遵循算法特定的密钥大小要求
- RSA: 最小 2048 位
- HMAC: 至少与哈希输出大小相同
8.2 随机数生成
- 使用密码学安全的随机数生成器
- 确保足够的熵
8.3 算法选择
- 优先使用推荐算法
- 避免已弃用或存在已知弱点的算法
- RSA1_5 存在 Bleichenbacher 攻击风险
8.4 时序攻击防护
- HMAC 验证使用恒定时间比较
- 避免泄露时序信息
8.5 "none" 算法警告
- 默认不接受 Unsecured JWS
- 仅在明确需要时使用
- 实现必须要求显式启用
8.6 密钥管理
- 妥善保护私钥和对称密钥
- 使用适当的密钥分发机制
- 考虑密钥轮换策略
8.7 加密考虑
- 使用认证加密
- 验证 AAD(额外认证数据)
- 正确处理初始化向量
实施建议:
- 保持库和算法实现的更新
- 遵循最新的安全最佳实践
- 定期审查安全公告和勘误表