Transport Layer Security
暗号スイート > 認証暗号 > 共通鍵暗号

認証暗号に用いる共通鍵暗号として以下のものがある。
| 暗号化> 種類 | 暗号化> アルゴリズム | 暗号化> 暗号強度 (bit) | プロトコルバージョン> SSL 2.0 | プロトコルバージョン> SSL 3.0  | プロトコルバージョン> TLS 1.0  | プロトコルバージョン> TLS 1.1  | プロトコルバージョン> TLS 1.2  | プロトコルバージョン> TLS 1.3 | 状況 |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| ブロック暗号 （暗号利用モード） | AES GCM | 256, 128 | — | — | — | — | 安全 | 安全 | TLS 1.2向けにRFCで定義済み |
| ブロック暗号 （暗号利用モード） | AES CCM | 256, 128 | — | — | — | — | 安全 | 安全 | TLS 1.2向けにRFCで定義済み |
| ブロック暗号 （暗号利用モード） | AES CBC | 256, 128 | — | — | 実装による | 安全 | 安全 | — | TLS 1.2向けにRFCで定義済み |
| ブロック暗号 （暗号利用モード） | Camellia GCM | 256, 128 | — | — | — | — | 安全 | — | TLS 1.2向けにRFCで定義済み |
| ブロック暗号 （暗号利用モード） | Camellia CBC | 256, 128 | — | — | 実装による | 安全 | 安全 | — | TLS 1.2向けにRFCで定義済み |
| ブロック暗号 （暗号利用モード） | ARIA GCM | 256, 128 | — | — | — | — | 安全 | — | TLS 1.2向けにRFCで定義済み |
| ブロック暗号 （暗号利用モード） | ARIA CBC | 256, 128 | — | — | 実装による | 安全 | 安全 | — | TLS 1.2向けにRFCで定義済み |
| ブロック暗号 （暗号利用モード） | SEED CBC | 128 | — | — | 実装による | 安全 | 安全 | — | TLS 1.2向けにRFCで定義済み |
| ブロック暗号 （暗号利用モード） | 3DES EDE CBC | 112 | 安全ではない | 安全ではない | 強度不足、実装による | 強度不足 | 強度不足 | — | TLS 1.2向けにRFCで定義済み |
| ブロック暗号 （暗号利用モード） | GOST 28147-89（英語版） CNT | 256 | — | — | 安全 | 安全 | 安全 | — | RFC草稿で提案中 |
| ブロック暗号 （暗号利用モード） | IDEA CBC | 128 | 安全ではない | 安全ではない | 実装による | 安全 | — | — | TLS 1.2で廃止 |
| ブロック暗号 （暗号利用モード） | DES CBC | 056 | 安全ではない | 安全ではない | 安全ではない | 安全ではない | — | — | TLS 1.2で廃止 |
| ブロック暗号 （暗号利用モード） | DES CBC | 040 | 安全ではない | 安全ではない | 安全ではない | — | — | — | TLS 1.1以降で利用禁止 |
| ブロック暗号 （暗号利用モード） | RC2 CBC | 040 | 安全ではない | 安全ではない | 安全ではない | — | — | — | TLS 1.1以降で利用禁止 |
| ストリーム暗号 | ChaCha20+Poly1305 | 256 | — | — | — | — | 安全 | 安全 | TLS 1.2向けにRFCで定義済み |
| ストリーム暗号 | RC4 | 128 | 安全ではない | 安全ではない | 安全ではない | 安全ではない | 安全ではない | — | 全バージョンにおいて利用禁止 |
| ストリーム暗号 | RC4 | 040 | 安全ではない | 安全ではない | 安全ではない | — | — | — | 全バージョンにおいて利用禁止 |
| 暗号化なし | Null | - | — | 安全ではない | 安全ではない | 安全ではない | 安全ではない | — | TLS 1.2向けにRFCで定義済み |
1 2 3 4  再ネゴシエーション脆弱性への対応のため、RFC 5746 への対応が必要
↑  RFC 5746 への対応はSSL 3.0の仕様を逸脱するが、ほとんどの実装では対応したうえで仕様からの逸脱にも対処している
1 2  SSL 3.0およびTLS 1.0はBEAST攻撃に対して脆弱であり、クライアント側、サーバ側での対応が必要。#ウェブブラウザ節を参照
↑  SSL 3.0はPOODLE攻撃に対して脆弱であり、クライアント側、サーバ側での対応が必要。#ウェブブラウザ節を参照
1 2 3 4 5  GCM、CCMなどのAEAD（認証付き暗号モード）は、TLS 1.2以降のみで利用可能
1 2 3 4 5 6 7 8  CBCモードは、サイドチャネル攻撃への対処が不十分な実装ではLucky Thirteen攻撃に対して脆弱である
↑  3DESの鍵長は168ビットであるが実質的な暗号強度は112ビットであり、2013年時点で最低限必要とされる128ビットに不足している
1 2  IDEA、DESはTLS 1.2で廃止された
1 2 3  40ビットのセキュリティ強度を持つCipher Suiteは、アメリカ合衆国による高強度暗号アルゴリズムの輸出規制を回避するために設計された。これらはTLS 1.1以降では利用が禁止されている。
↑  RFC 7465 により、すべてのバージョンのTLSにおいてRC4の利用は禁止された（RC4攻撃）
↑  認証のみで暗号化は行われない。
AES CBCはTLS 1.0を定義する RFC 2246 には含まれていないが、RFC 3268 で追加された。TLS 1.1を定義する RFC 4346 からは RFC 3268 が参照されており、さらにTLS 1.2では定義である RFC 5246 にAES CBCに関する記述が取り込まれた。また、認証付き暗号によるAES GCM (RFC 5288, RFC 5289)、AES CCM (RFC 6655, RFC 7251) が追加されている。IDEA CBC、DES CBCはTLS 1.2で廃止された（RFC 5469 に解説がある）。
ブロック暗号のCBCモードでの利用については、TLS 1.0以前においてBEAST攻撃と呼ばれる攻撃が可能であることが明らかとなっており、クライアント側、サーバ側での対応が必要とされている。TLS 1.1以降ではこの攻撃への根本的な対処として初期化ベクトルを明示的に指定し、パディングの処理が改善された。ブロック暗号であってもGCM、CCMなどの認証付き暗号を用いる場合にはこれらの攻撃を受けない。
ストリーム暗号であるRC4は前述のBEAST攻撃を受けることはないが、RC4には仕様上の脆弱性が存在する（RC4攻撃）。2015年2月、TLSのすべてのバージョンにおいてRC4の利用を禁止する RFC 7465 が公開された。ストリーム暗号であるChaCha20と認証のためのPoly1305を組み合わせたChaCha20+Poly1305が RFC 7905 として標準化されている。
いくつかの国家標準に基づく暗号化アルゴリズムもTLSで利用可能であり、日本のCRYPTRECによる推奨暗号であるCamellia（CBCモード：RFC 4132、RFC 5932、RFC 6367、GCM：RFC 6367）、韓国の情報通信標準規格に採用されているSEED（CBCモード：RFC 4162）、ARIA（CBCモードおよびGCM：RFC 6209）が追加されている。また、独立国家共同体のGOST規格によって規定された暗号化アルゴリズムであるGOST 28147-89も提案されている。
SSLが設計された当時は、アメリカ合衆国によって高強度暗号アルゴリズムの輸出が規制されていた。そのため、全世界で共通して利用できるアルゴリズムとして、DES・RC2・RC4に関して暗号強度を40ビットに制限したものが導入されていた。これらはTLS 1.1以降では利用が禁止されている。
また、鍵共有のみを行い暗号化は行わないこと (NULL) も可能であるが、平文でのやりとりとなることから安全とはみなされていない。