TLS暗号スイート
すべての TLS 接続は、暗号スイート (鍵交換、認証、暗号化、整合性のために使用されるアルゴリズムの特定の組み合わせ) をネゴシエートします。名前はアルファベットのスープ (TLS_AES_256_GCM_SHA384、ECDHE-ECDSA-CHACHA20-POLY1305) のように見えますが、接続のセキュリティ プロパティをエンコードしています。これらを読むと、ブラウザに南京錠が表示されたときに実際に何が起こっているのかがわかります。
記事全文は以下に英語で記載されています。
A TLS 暗号スイート は、TLS 接続を保護するために使用される暗号化アルゴリズムの名前付きの組み合わせです。 TLS ハンドシェイク中に、クライアントとサーバーは、それぞれがサポートしている内容に基づいて、どの暗号スイートを使用するかをネゴシエートします。この選択により、残りの接続のキー交換、認証、暗号化、整合性が決まります。
TLS 1.2 暗号スイート名の読み取り
形式は次のとおりです:TLS_KEXAUTH_WITH_CIPHER_MAC または OpenSSL 規約KEX-AUTH-CIPHER-MAC.
例: TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 は次のように分解されます:
- ECDHE — キー交換は使用します楕円曲線 Diffie-Hellman エフェメラル (前方機密性を提供)
- RSA — サーバーは RSA 証明書を使用して認証します
- AES_256_GCM — 一括暗号化は GCM モードで 256 ビット キーを持つ AES を使用します (認証済み)暗号化)
- SHA384 — ハンドシェイク MAC および KDF は SHA-384 を使用
TLS 1.3 の簡略化
TLS 1.3 では、暗号スイートの名前が大幅に整理されました。暗号スイートは対称暗号とハッシュのみを指定するようになりました。キー交換と認証は個別にネゴシエートされます。名前は次のようになります。
TLS_AES_256_GCM_SHA384— AES-256-GCM と SHA-384TLS_AES_128_GCM_SHA256— AES-128-GCM とSHA-256TLS_CHACHA20_POLY1305_SHA256— ChaCha20-Poly1305 と SHA-256TLS_AES_128_CCM_SHA256— CCM モードの AES-128 とSHA-256TLS_AES_128_CCM_8_SHA256— 8 バイト MAC と同じ、主に制約のあるデバイス用
TLS 1.3 には合計 5 つの標準暗号スイートしかありません。 TLS 1.2 には何百もの組み合わせがありました。
各部分の意味
キー交換:
- RSA — サーバーの RSA キーはキーの認証と交換の両方を行います。前方秘密保持はありません。 TLS 1.3.
- DHE で削除されました — 一時的な Diffie-Hellman。前方秘匿性はい。 TLS 1.2 で使用されます。 TLS 1.3.
- ECDHE のハンドシェイクに統合されました — 一時的な楕円曲線 Diffie-Hellman。前方秘匿性はい。速い。最新のデフォルト。
Authentication (TLS 1.2):
- RSA — サーバーには RSA 証明書があります
- ECDSA — サーバーには楕円曲線証明書があります
- DSS — DSA 証明書 (ほとんどの場合)歴史的)
- PSK — 事前共有キー (まれ; IoT および一部の VPN シナリオ用)
Bulk cipher:
- AES_128_GCM、AES_256_GCM — 128 または256 ビット キー、認証済み暗号化
- CHACHA20_POLY1305 — Poly1305 MAC を使用した ChaCha20 ストリーム暗号、AES
- AES_128_CBC、AES_256_CBC — 別の HMAC を使用した AES-CBC、古いパターン (徐々に段階的) out)
- 3DES_EDE_CBC — トリプル DES、非推奨
- RC4 — 破損したストリーム暗号、最新のスイートには含まれなくなりました
Hashハンドシェイク:
- SHA256、SHA384 — SHA-2 ファミリ、最新の標準
- SHA — SHA-1、非推奨
- MD5 — 長い間非推奨
の推奨スイート2026
Mozilla の TLS 構成ガイドは、業界標準のリファレンスです。現在の最新のプロファイルは次のように示唆しています:
- TLS 1.3 のみ。 クライアント ベースがサポートしている場合 (基本的に最新の機能すべて)、TLS 1.2 フォールバックはありません。
- Cipher スイート: TLS_AES_128_GCM_SHA256、TLS_AES_256_GCM_SHA384、TLS_CHACHA20_POLY1305_SHA256.
- TLS 1.2 をサポートする必要がある場合: ECDHE+AES-GCM および ECDHE+ChaCha20 スイートのみ。
古いクライアントとの互換性を確保するには、Forward Secrecy を持たないスイートも含め、より多くのスイートが必要です。 Mozilla の「中間」プロファイルは、適度なセキュリティを維持しながら、最大 95% のクライアントをカバーします。
削除される内容と削除される理由
最新の TLS 構成が削除する:
- 非一時的なキー交換 (プレーン RSA、静的 DH)。 前方秘匿性なし。
- CBC モード暗号 (再ネゴシエーションを伴う TLS 1.2)。 攻撃の履歴 (BEAST、Lucky 13)。
- 3DES、 RC4. 暗号が壊れているか、遅すぎます。
- MD5、ハンドシェイク用の SHA-1。 衝突攻撃。
- 匿名スイート。 サーバー認証なし、MITM に対して脆弱です。
- EXPORT グレードsuites. 暗号通貨輸出規制の歴史的成果物。
2015 年の FREAK 攻撃と Logjam 攻撃では、互換性を確保するために EXPORT グレードのスイートの交渉がまだ行われているブラウザが悪用されました。その後、主流のサーバーはそれらを削除しました。
サーバー暗号サポートの確認
Tools:
- SSL Labs SSL Server Test (ssllabs.com) — パブリック サイトの TLS の包括的な分析configuration.
- testssl.sh — コマンドラインスキャナー.
- nmap --script ssl-enum-ciphers — クイック列挙.
- OpenSSL s_client (手動用のさまざまなフラグ付き) testing.
独自のサーバーの場合は、これらを定期的に実行してください。パッケージが更新されると、構成は時間の経過とともに変化します。
よくある質問
- ユーザーとして暗号スイートについて心配する必要がありますか?
- 最新のブラウザがネゴシエーションを処理します。南京錠をクリックして証明書を検査すると、選択した暗号スイートが表示されます。ほとんどのユーザーにとって、それは舞台裏で行われます。
- TLS 1.3 の暗号スイートが非常に少ないのはなぜですか?
- TLS 1.2 の何百もの組み合わせにより、脆弱な構成ミスが容易になりました。 TLS 1.3 は、よく理解されている少数の組み合わせに意図的に切り詰められ、すべて前方機密性と認証された暗号化が備えられています。
- AES-128-GCM と AES-256-GCM の違いは何ですか?
- キーの長さ。 128 ビット AES は高速であり、従来の敵対者に対して無期限に安全であると考えられています。 256 ビットは、将来の暗号化の進歩や量子を認識する敵に対して余裕を提供します。どちらも現状の使用には問題ありません。
- ChaCha20-Poly1305 と AES-GCM をいつ使用する必要がありますか?
- ChaCha20 は、AES-NI アクセラレーションのないハードウェア (古いモバイル、IoT) では高速です。 AES-GCM は、AES-NI を備えた最新のハードウェアでは高速です。ブラウザは最適なものをネゴシエートします。サーバーは両方を提供する必要があります。
- 暗号スイートはパフォーマンスに影響しますか?
- 控えめに。ハードウェア アクセラレーションによる AES-GCM は、最新の CPU では基本的に無料です。ハンドシェイク オーバーヘッド (キー交換) は、短い接続の場合、一括暗号化よりも優先されます。存続期間が長い大容量接続の場合、バルク暗号の選択は多少重要になります。