【てぃーえるえす】

TLS とは?

最終更新:
💡 通信の中身と、相手の確認を支える仕組み

通信の機密性・完全性と相手の認証を支えるプロトコル。ハンドシェイク、TLS 1.3の鍵の作り方、HTTPSが守る範囲を解説します。

📌 このページのポイント
TLS 1.3:相手を確かめて通信を保護クライアントサーバーClientHello方式・鍵共有の情報ServerHello方式の選択・鍵共有サーバーの認証と完了の情報証明書などを受け取り検証Finished:ハンドシェイクの確認アプリのデータを鍵で保護利用者のログインや保存先の保護は別下ほど後の段階。左右は送る相手
横の矢印はメッセージの向きです。証明書を使い、クライアント証明書は使わない初回接続を簡略化しています。複数の認証メッセージや、再接続・事前共有鍵など別の手順は省略しています。
ひよこ ひよこ
TLSは、通信の何を守っている?
ペンギン先生 ペンギン先生
通信内容を第三者に読まれにくくする機密性と、改ざんを検出する完全性、相手の認証を支える。HTTPSの通信もTLSを使う。ただし、TLSがあれば端末からサーバー内のデータまで、すべて安全になるという意味ではないよ。
ひよこ ひよこ
TLSとSSLは同じもの?
ペンギン先生 ペンギン先生
TLSはSSLの後継だ。「SSL証明書」という名称が、TLSで使う証明書の呼び方として残っている場合がある。昔のSSLや、TLS 1.0・1.1を使い続けてよいという意味ではない。実際の版と設定を確認することが大切だ。
ひよこ ひよこ
ハンドシェイクでは、何を決めるの?
ペンギン先生 ペンギン先生
クライアントとサーバーが使える版や暗号方式を確認し、共有する鍵の材料を合意する。証明書を使う通常のHTTPSでは、クライアントが接続するサーバーの証明書などを検証する。TLS 1.3でも鍵や認証の方式によって手順は変わるよ。
ひよこ ひよこ
通信に使う秘密の鍵を、そのまま送る?
ペンギン先生 ペンギン先生
TLS 1.3の通常の鍵交換では、公開してよい鍵共有の情報を交換して、それぞれが共有する秘密の材料から鍵を作る。通信を暗号化する鍵をそのまま平文で送るわけではない。あらかじめ共有した秘密を使う方式もある。
ひよこ ひよこ
お互いを確認するなら、ログインも完了?
ペンギン先生 ペンギン先生
通常のHTTPSでサーバーを認証することと、アプリの利用者がログインすることは別だ。TLSのクライアント証明書を使って相手を認証する構成もあるが、いつも双方が証明書を出すわけではない。必要な利用権限はアプリ側でも確認するよ。
ひよこ ひよこ
TLS 1.3対応なら、設定は気にしなくていい?
ペンギン先生 ペンギン先生
対応していても、使える版や方式は設定と交渉で決まる。RFC 9325は1.3を実装した場合に以前の版より優先することなどを定めている。証明書の検証も必要だし、通信先の正当な証明書があっても、サイトの内容や事業者の信頼性まで保証するものではないよ。
もっと詳しく知りたい人へ

TLSは、サーバーに保存したデータも暗号化する?

TLSの保護はTLSで通信する区間のものです。通信を終端した後に平文を扱う処理や、保存先の暗号化、アクセス権限は別に設計します。プロキシでTLSを終端する構成では、プロキシから先の通信も必要な保護を確認します。

TLS 1.2は、1.0・1.1と同じく禁止された?

RFC 8996はTLS 1.0・1.1の使用を禁止しています。RFC 9325はTLS 1.2の設定の推奨事項を含み、TLS 1.3を実装している場合は1.3を優先して交渉すると定めています。版名だけでなく、暗号方式や検証、利用するプロトコル固有の要件を確認します。

ペンギン
まとめ:ざっくりこれだけ覚えればOK!
「TLS」って出てきたら「通信を暗号化し、改ざんの検知や相手の認証を支える仕組み」と思えばだいたいOK!
📖 おまけ:英語の意味
「Transport Layer Security」 = トランスポート層のセキュリティ
💬 TLSはSSLの後継のプロトコルです。「SSL証明書」などの呼び方が残っていても、実際に通信で利用するプロトコルと版は確認する必要があります。

参考資料

← 用語集にもどる