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

10. Security Considerations (セキュリティに関する考慮事項)

本文書では、セキュリティに関する考慮事項を各所で議論しています。

主要なセキュリティポイント

鍵長

RSA鍵のセキュリティは、剰余のサイズに大きく依存します。推奨される最小鍵長:

  • 2048ビット: 現在の最低推奨長
  • 3072ビット: 高セキュリティアプリケーションに推奨
  • 4096ビット: 長期鍵または極めて高いセキュリティ要件

スキームの選択

  • RSAES-OAEP: 新しいアプリケーションの暗号化スキームは必須 (REQUIRED) でサポート
  • RSASSA-PSS: 新しいアプリケーションに推奨 (RECOMMENDED) される署名スキーム
  • PKCS1-v1_5: 互換性のためのみ保持、既知の弱点が存在

実装に関する注意事項

  1. 乱数生成: 暗号学的に安全な乱数生成器を使用する必要があります
  2. サイドチャネル攻撃: 実装はタイミング攻撃や電力解析を防ぐ必要があります
  3. エラー処理: 復号化および検証操作のエラーメッセージは統一し、情報漏洩を避ける必要があります
  4. パディングオラクル攻撃: RSAES-PKCS1-v1_5はBleichenbacher攻撃に脆弱であり、実装時には特別な注意が必要です

ハッシュ関数

  • 使用を避ける: MD5、SHA-1(既に破られています)
  • 使用を推奨: SHA-256、SHA-384、SHA-512

鍵の使用

  • 単一用途: 1つのRSA鍵ペアは1つのスキーム(暗号化または署名、混用しない)にのみ使用する必要があります
  • 鍵のローテーション: 定期的に鍵を更新します
  • 秘密鍵の保護: 秘密鍵は暗号化して保存し、ハードウェアセキュリティモジュール(HSM)の使用がベストプラクティスです

既知の攻撃と防御

  • 選択暗号文攻撃 (Chosen Ciphertext Attack): RSAES-OAEPが保護を提供
  • 選択メッセージ攻撃 (Chosen Message Attack): RSASSA-PSSが保護を提供
  • Bleichenbacher攻撃: RSAES-PKCS1-v1_5に影響
  • タイミング攻撃: 定数時間アルゴリズムの使用とCRT高速化時には注意が必要

複数のスキームで同じ鍵ペアを使用することを避けることについては、セクション6の議論を参照してください。