8. Security Considerations (セキュリティに関する考慮事項)
主要なセキュリティポイント
8.1 鍵の選択
- 十分な長さの鍵を使用する
- アルゴリズム固有の鍵サイズ要件に従う
- RSA: 最小 2048 ビット
- HMAC: 少なくともハッシュ出力と同じサイズ
8.2 乱数生成
- 暗号学的に安全な乱数生成器を使用する
- 十分なエントロピーを確保する
8.3 アルゴリズムの選択
- 推奨アルゴリズムを優先する
- 非推奨または既知の弱点があるアルゴリズムを避ける
- RSA1_5 には Bleichenbacher 攻撃の脆弱性がある
8.4 タイミング攻撃の保護
- HMAC 検証は定数時間比較を使用する
- タイミング情報の漏洩を避ける
8.5 "none" アルゴリズムの警告
- デフォルトで Unsecured JWS (非セキュア JWS) を受け入れない
- 明示的に必要な場合にのみ使用する
- 実装は明示的な有効化を要求しなければならない (MUST)
8.6 鍵管理
- 秘密鍵と対称鍵を適切に保護する
- 適切な鍵配布メカニズムを使用する
- 鍵のローテーション戦略を検討する
8.7 暗号化の考慮事項
- 認証付き暗号化を使用する
- AAD (Additional Authenticated Data) (追加認証データ) を検証する
- 初期化ベクトルを適切に処理する
実装の推奨事項:
- ライブラリとアルゴリズム実装を最新の状態に保つ
- 最新のセキュリティベストプラクティスに従う
- セキュリティ勧告と正誤表を定期的にレビューする