付録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実装では、以下を推奨します:
-
実装しなければなりません (MUST):
- TLS_RSA_WITH_AES_128_CBC_SHA
-
実装すべきです (SHOULD):
- TLS_RSA_WITH_AES_256_CBC_SHA
- TLS_DHE_RSA_WITH_AES_128_CBC_SHA256
- TLS_DHE_RSA_WITH_AES_256_CBC_SHA256
-
実装してもかまいません (MAY):
- アプリケーション要件に基づくその他の暗号スイート
-
実装すべきではありません (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の完全なテキストを参照してください。