メインコンテンツまでスキップ

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) (追加認証データ) を検証する
  • 初期化ベクトルを適切に処理する

実装の推奨事項:

  • ライブラリとアルゴリズム実装を最新の状態に保つ
  • 最新のセキュリティベストプラクティスに従う
  • セキュリティ勧告と正誤表を定期的にレビューする