この用語をシェア
TLSとは
TLS(Transport Layer Security)は、インターネット上でデータを暗号化して安全に通信するためのプロトコルです。1999年にIETF(Internet Engineering Task Force)によって標準化され、それ以前のSSL(Secure Sockets Layer)の後継として開発されました。
TLSは、Webブラウザとサーバー間の通信(HTTPS)、メールの送受信(SMTPS、IMAPS)、VPN接続など、インターネット上のあらゆるセキュアな通信で使用されています。現在の最新バージョンはTLS 1.3(2018年標準化)で、パフォーマンスとセキュリティが大幅に向上しています。
TLSの仕組み
TLSは、通信を開始する前に「ハンドシェイク」と呼ばれるプロセスを実行します。このプロセスで、クライアントとサーバーは以下の処理を行います:
- 暗号スイートの合意:使用する暗号アルゴリズムを決定
- サーバー認証:サーバーの証明書を検証
- 鍵交換:セッション鍵を安全に共有
- 暗号化通信開始:共有された鍵でデータを暗号化
AIエンジニアとしての実体験
AIエンジニアとして、TLSの設定は日常的な作業です。特に機械学習モデルをAPIとして公開する際、TLSの適切な設定は必須となります。
あるプロジェクトでは、オンプレミスでLLM推論サーバーを構築し、外部からのAPIアクセスを許可する必要がありました。このとき、Let's Encryptで取得した証明書を使用してTLS 1.3を設定しました。Nginxの設定例:
server {
listen 443 ssl http2;
server_name api.example.com;
ssl_certificate /etc/letsencrypt/live/api.example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/api.example.com/privkey.pem;
# TLS 1.3のみを許可(セキュリティ重視)
ssl_protocols TLSv1.3;
ssl_prefer_server_ciphers off;
location / {
proxy_pass http://localhost:8000;
}
}
TLS 1.2 vs TLS 1.3
TLS 1.3は、TLS 1.2と比較して以下の改善があります:
| 項目 | TLS 1.2 | TLS 1.3 |
|---|---|---|
| ハンドシェイク往復 | 2往復 | 1往復(0-RTTも可能) |
| 旧暗号スイート | サポート | 削除(RC4、3DESなど) |
| Perfect Forward Secrecy | オプション | 必須 |
最新動向(2026年)
TLS 1.2の非推奨化
主要なブラウザベンダーは、TLS 1.0/1.1のサポートを既に終了しており、TLS 1.2についても段階的な非推奨化が進んでいます。新規システムではTLS 1.3のみをサポートすることが推奨されます。
ポスト量子TLS
量子コンピュータの発展に備え、TLSへのポスト量子暗号アルゴリズムの統合が進んでいます。GoogleやCloudflareは、実験的にハイブリッド鍵交換(従来の楕円曲線 + ポスト量子)をテストしています。
トラブル事例と対策
⚠️ 証明書の期限切れ
症状:突然HTTPSアクセスができなくなる
対策:証明書の自動更新を設定し、監視システムで期限を監視する。certbotのcronジョブを確認。
⚠️ Mixed Content警告
症状:HTTPSページでHTTPリソースを読み込み、ブラウザが警告
対策:すべてのリソースをHTTPSで配信するか、相対URLを使用する。
権威あるリソース
- RFC 8446 - TLS 1.3仕様書
- SSL Labs - SSL Server Test
- Mozilla - Server Side TLS
- Cloudflare - What is TLS?
関連用語
よくある質問(FAQ)
Q. TLS(Transport Layer Security)とは何ですか?
TLS(Transport Layer Security)はネットワーク通信を暗号化・認証するプロトコルです。旧来のSSLプロトコルの後継で、HTTPS・SMTPS・IMAPS・FTPSなど多くのセキュアプロトコルの基盤です。現在はTLS 1.2(最低限)とTLS 1.3(推奨)が使用されており、TLS 1.0・1.1は廃止されています。
Q. TLS 1.2とTLS 1.3の違いは何ですか?
TLS 1.3(2018年)はTLS 1.2(2008年)と比べて:①ハンドシェイクが1-RTTに短縮(TLS 1.2は2-RTT)②0-RTT再接続をサポート(ただしリプレイ攻撃リスクあり)③弱い暗号スイートを削除④Perfect Forward Secrecyが必須⑤ハンドシェイクが暗号化されプライバシー向上しています。パフォーマンスとセキュリティの両面でTLS 1.3が優れています。
Q. NginxでTLS 1.3を設定するにはどうすればよいですか?
nginx.confで ssl_protocols TLSv1.2 TLSv1.3; と設定します。TLS 1.3はOpenSSL 1.1.1以降で対応しています。ssl_ciphers設定でTLS 1.3の暗号スイートは別途管理されるため、TLS 1.2用の暗号スイートの設定とは独立しています。SSL Labsのテスト(ssllabs.com/ssltest)でA+評価が得られることを確認してください。
