すべての SSL 記事 SSL と証明書

TLS 1.3とは?変更されたすべて

TLS 1.3はTransport Layer Securityプロトコルの現在のバージョンで、2018年8月にRFC 8446として公開されました。漸進的な更新ではなく根本的な再設計であり、HTTPSを以前のどのバージョンよりも高速、シンプル、安全にします。

2026年時点で、Webサイトの62%がTLS 1.3をサポートしており、すべての主要ブラウザが2018年からサポートしています。

TLS 1.2からの変更点

TLS 1.2TLS 1.3
ハンドシェイク2ラウンドトリップ1ラウンドトリップ(1-RTT)
再開接続1ラウンドトリップ0-RTT(最初のメッセージでデータ)
暗号スイート37(多くが弱い)5(すべて安全)
前方秘匿性オプション必須
RSA鍵交換サポート削除
静的DHサポート削除
CBC暗号サポート削除
RC4, DES, 3DES一部の設定削除
ハンドシェイク内のMD5, SHA-1許可削除
ハンドシェイク内の証明書平文(可視)暗号化
圧縮オプション削除(CRIME防止)
再ネゴシエーションサポート削除

設計哲学:設定ミスの可能性があるものをすべて削除。TLS 1.2は37の暗号スイートがあります — 安全なものも壊れたものもあります。TLS 1.3は5つ、すべて安全です。

TLS 1.3の5つの暗号スイート

TLS_AES_256_GCM_SHA384        ← 最強、最も一般的
TLS_AES_128_GCM_SHA256        ← 広く使用、わずかに高速
TLS_CHACHA20_POLY1305_SHA256  ← ARM/モバイルに最適(AES-NIなし)
TLS_AES_128_CCM_SHA256        ← IoT/組み込み
TLS_AES_128_CCM_8_SHA256      ← IoT/組み込み(短いタグ)

これらを誤設定することはできません — すべてが強い鍵を持つAEAD暗号です。TLS 1.2のような「うっかり弱い暗号を有効にする」リスクはありません。

1-RTTハンドシェイク:なぜ高速か

TLS 1.2ハンドシェイク(2ラウンドトリップ):

Client → Server:  ClientHello (supported ciphers)
Server → Client:  ServerHello, Certificate, KeyExchange
Client → Server:  KeyExchange, ChangeCipherSpec, Finished
Server → Client:  ChangeCipherSpec, Finished
                  [暗号化データが流れる前に4メッセージ]

TLS 1.3ハンドシェイク(1ラウンドトリップ):

Client → Server:  ClientHello + KeyShare
Server → Client:  ServerHello + KeyShare + Certificate + Finished
Client → Server:  Finished
                  [1ラウンドトリップ後に暗号化データが流れる]

クライアントが最初のメッセージで鍵共有パラメータを送信するため、サーバーがアルゴリズムを指定するのを待つ必要がありません。これによりハンドシェイクが2ラウンドトリップから1に短縮されます。

0-RTT再開

再訪問者(以前接続したことがある)の場合、TLS 1.3は0-RTTをサポートします — 最初のメッセージで暗号化されたアプリケーションデータを送信:

Client → Server:  ClientHello + KeyShare + EarlyData (encrypted request)
Server → Client:  ServerHello + response

ハンドシェイク完了前にリクエストが送信されます。トレードオフ:0-RTTデータはリプレイ攻撃に脆弱なため、べき等なリクエスト(GETのみ、POSTではない)にのみ使用すべきです。

必須の前方秘匿性

TLS 1.2ではRSA鍵交換を使用できました — サーバーの長期RSA鍵がプリマスターシークレットを直接復号します。誰かがトラフィックを記録し、後でサーバーの秘密鍵を盗めば、過去のすべての通信を復号できます。

TLS 1.3はRSA鍵交換を完全に削除しました。すべての鍵交換は一時的なDiffie-Hellman(ECDHE)を使用します — 接続ごとに固有の鍵ペアが生成されます。サーバーの秘密鍵を盗んでも過去のセッションの復号には役立ちません。前方秘匿性の詳細 →

暗号化された証明書

TLS 1.2では、サーバーの証明書(ドメイン名を含む)はハンドシェイク中に平文で送信されます。受動的な観察者はどのサイトに接続しているか見ることができます。

TLS 1.3では、証明書はハンドシェイク鍵が導出されたに送信されます — 暗号化されています。SNI(Server Name Indication)はTLS 1.3ではまだ可視ですが、**Encrypted Client Hello(ECH)**が将来それも暗号化します。

TLS 1.3を有効にする方法

既に有効か確認

echo | openssl s_client -connect yourdomain.com:443 -servername yourdomain.com -tls1_3 2>/dev/null | grep "Protocol"
# 期待値: TLSv1.3

Nginx(1.13以上 + OpenSSL 1.1.1以上)

ssl_protocols TLSv1.2 TLSv1.3;

TLS 1.3は最新のNginxではデフォルトで有効です — 無効にしなければ動作します。

Apache(2.4.37以上 + OpenSSL 1.1.1以上)

SSLProtocol all -SSLv3 -TLSv1 -TLSv1.1

これでTLS 1.2と1.3が有効になります。

OpenSSLバージョンを確認

openssl version
# 必要: OpenSSL 1.1.1+ for TLS 1.3 support

OpenSSLが古い場合は、アップグレードするかOSをアップグレードしてください。

TLS 1.3のみを強制すべきですか?

まだです。 約38%のサイトがTLS 1.3をサポートしておらず、一部のクライアント(企業プロキシ、Java 8、古い組み込みシステム)はTLS 1.2のみをサポートしています。今日TLS 1.2を廃止すると一部のユーザーをロックアウトします。

推奨設定: TLS 1.2と1.3の両方をサポート。最新クライアントにはTLS 1.3の速度を提供しつつ互換性を維持します。これはGoogle、Cloudflare、ほとんどの主要サイトが行っていることです。

よくある質問

TLS 1.3に新しい証明書が必要ですか?

いいえ。同じ証明書がTLS 1.2と1.3で動作します。証明書はプロトコルに依存しません — どのTLSバージョンが使用するかに関係なく、公開鍵とCA署名を含んでいます。

TLS 1.3はパフォーマンスに影響しますか?

はい、プラスの方向に。1-RTTハンドシェイクは初回接続で50〜100ms節約します。0-RTT再開は再訪問者のハンドシェイク遅延を完全に排除します。HTTP/2(HTTPSが必要)と組み合わせると、TLS 1.3サイトは測定可能なほど高速です。

TLS 1.2はまだ安全ですか?

はい、AEAD暗号スイート(AES-GCM、ChaCha20-Poly1305)とECDHE鍵交換を使用すれば。TLS 1.2のCBC暗号は避けてください — 攻撃(BEAST、Lucky13)に脆弱です。TLS 1.3の方が優れていますが、最新暗号を使用したTLS 1.2は安全なままです。

TLS 1.4はありますか?

TLS 1.4の計画はありません。IETFは予見可能な将来にわたってTLS 1.3をターゲットと考えています。次の大きな変更は、既存のECDHEとのハイブリッドとしてポスト量子鍵交換(ML-KEM)を組み込むことです — これはTLS 1.3内で行われ、新しいバージョンとしてではありません。

関連記事

SSL と証明書 2026-05-08
SSL vs TLS:違いは?
SSLは非推奨です。TLSが実際にWebを保護しています。SSL 2.0からTLS 1.3までの完全な歴史、技術的な違い、まだ「SSL」と言う理由、すべきこと(おそらく何もない)を解説します。
SSL と証明書 2026-05-07
SSL/TLSの仕組み:TLSハンドシェイクの解説
TLSハンドシェイクのビジュアルウォークスルー。ブラウザとサーバーがミリ秒で暗号化接続を確立する方法を解説。TLS 1.2、TLS 1.3、セッション再開、前方秘匿性をカバーします。
SSL と証明書 2026-05-08
前方秘匿性(Perfect Forward Secrecy)とは?
前方秘匿性により、すべてのTLS接続が固有の鍵を使用します。サーバーの秘密鍵が侵害されても、過去の通信は復号できません。仕組みと有効化の確認方法を解説します。
SSL と証明書 2026-05-08
公開鍵暗号:SSL暗号化の実際の仕組み
公開鍵暗号は鍵ペア(公開鍵と秘密鍵)を使用してHTTPS接続を保護します。非対称暗号化、デジタル署名、鍵交換がSSL/TLSを可能にする仕組みを解説します。
ブラウザで無料 SSL 証明書を取得
インストール不要、アカウント不要。秘密鍵は常にデバイスに残ります。
証明書を取得