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

付録C. 暗号スイート定義 (Cipher Suite Definitions)

本付録では、TLS 1.2で新規追加または更新された暗号スイートを定義します。

C.1. AES暗号スイート

以下の暗号スイートはAESアルゴリズムを使用します:

CipherSuite TLS_RSA_WITH_AES_128_CBC_SHA      = { 0x00,0x2F };
CipherSuite TLS_DH_DSS_WITH_AES_128_CBC_SHA = { 0x00,0x30 };
CipherSuite TLS_DH_RSA_WITH_AES_128_CBC_SHA = { 0x00,0x31 };
CipherSuite TLS_DHE_DSS_WITH_AES_128_CBC_SHA = { 0x00,0x32 };
CipherSuite TLS_DHE_RSA_WITH_AES_128_CBC_SHA = { 0x00,0x33 };
CipherSuite TLS_DH_anon_WITH_AES_128_CBC_SHA = { 0x00,0x34 };

CipherSuite TLS_RSA_WITH_AES_256_CBC_SHA = { 0x00,0x35 };
CipherSuite TLS_DH_DSS_WITH_AES_256_CBC_SHA = { 0x00,0x36 };
CipherSuite TLS_DH_RSA_WITH_AES_256_CBC_SHA = { 0x00,0x37 };
CipherSuite TLS_DHE_DSS_WITH_AES_256_CBC_SHA = { 0x00,0x38 };
CipherSuite TLS_DHE_RSA_WITH_AES_256_CBC_SHA = { 0x00,0x39 };
CipherSuite TLS_DH_anon_WITH_AES_256_CBC_SHA = { 0x00,0x3A };

C.2. SHA-256を使用するAES暗号スイート

TLS 1.2では、SHA-256を使用するAES暗号スイートが導入されました:

CipherSuite TLS_RSA_WITH_AES_128_CBC_SHA256      = { 0x00,0x3C };
CipherSuite TLS_DH_DSS_WITH_AES_128_CBC_SHA256 = { 0x00,0x3E };
CipherSuite TLS_DH_RSA_WITH_AES_128_CBC_SHA256 = { 0x00,0x3F };
CipherSuite TLS_DHE_DSS_WITH_AES_128_CBC_SHA256 = { 0x00,0x40 };

CipherSuite TLS_RSA_WITH_AES_256_CBC_SHA256 = { 0x00,0x3D };
CipherSuite TLS_DH_DSS_WITH_AES_256_CBC_SHA256 = { 0x00,0x68 };
CipherSuite TLS_DH_RSA_WITH_AES_256_CBC_SHA256 = { 0x00,0x69 };
CipherSuite TLS_DHE_DSS_WITH_AES_256_CBC_SHA256 = { 0x00,0x6A };
CipherSuite TLS_DHE_RSA_WITH_AES_256_CBC_SHA256 = { 0x00,0x6B };
CipherSuite TLS_DH_anon_WITH_AES_128_CBC_SHA256 = { 0x00,0x6C };
CipherSuite TLS_DH_anon_WITH_AES_256_CBC_SHA256 = { 0x00,0x6D };

例えば、TLS_DHE_RSA_WITH_AES_128_CBC_SHA256の暗号仕様パラメータは以下の通りです:

  • 鍵交換: DHE_RSA
  • バルク暗号アルゴリズム: AES_128_CBC
  • MACアルゴリズム: HMAC-SHA256
  • 疑似ランダム関数: PRF (SHA-256)

C.3. NULL暗号スイート

以下の暗号スイートはNULL暗号化を使用します(テスト目的のみ。本番環境では使用すべきではありません (SHOULD NOT)):

CipherSuite TLS_RSA_WITH_NULL_SHA256 = { 0x00,0x3B };

C.4. 暗号スイート命名規則

TLS暗号スイート名は以下の形式に従います:

TLS_{鍵交換}_{認証}_WITH_{暗号アルゴリズム}_{MACアルゴリズム}

例:

  • TLS_DHE_RSA_WITH_AES_128_CBC_SHA256
    • 鍵交換: DHE (Ephemeral Diffie-Hellman)
    • 認証: RSA
    • 暗号アルゴリズム: AES_128_CBC
    • MACアルゴリズム: SHA256

C.5. 実装推奨事項

TLS 1.2実装では、以下を推奨します:

  1. 実装しなければなりません (MUST):

    • TLS_RSA_WITH_AES_128_CBC_SHA
  2. 実装すべきです (SHOULD):

    • TLS_RSA_WITH_AES_256_CBC_SHA
    • TLS_DHE_RSA_WITH_AES_128_CBC_SHA256
    • TLS_DHE_RSA_WITH_AES_256_CBC_SHA256
  3. 実装してもかまいません (MAY):

    • アプリケーション要件に基づくその他の暗号スイート
  4. 実装すべきではありません (SHOULD NOT):

    • 匿名 (DH_anon) 暗号スイート(特定のアプリケーションシナリオで必要でない限り)
    • NULL暗号化暗号スイート(テスト目的のみを除く)

C.6. セキュリティに関する考慮事項

暗号スイートを選択する際は、以下を考慮してください:

  • 前方秘匿性 (Forward Secrecy): DHEまたはECDHE暗号スイートを優先
  • 鍵長: AES-256がAES-128より推奨
  • MAC強度: SHA-256以上がSHA-1より推奨
  • 弱いアルゴリズムを避ける: RC4、DES、MD5など既知の弱点があるアルゴリズムを避ける

注記: 完全な暗号スイート定義と詳細な仕様については、RFC 5246付録Cの完全なテキストを参照してください。