TLSのしくみ — https の錠前の裏側
アドレスバーの🔒。あれが点いているとき、ブラウザとサーバは数百ミリ秒のあいだに握手(ハンドシェイク)を交わしています。ここまで学んだ鍵交換・証明書と署名・共通鍵暗号の3つが合流し、盗聴もなりすましも改ざんもできない通信路が立ち上がる — その瞬間をアニメーションで追いかけます。
1. TLSが守る3つのこと
インターネットの通信は、途中のルータや Wi-Fi を素通りします。何も守らなければ、パスワードもカード番号も丸見えです。TLS(Transport Layer Security、旧称 SSL)は、この裸の通信路に3つの保証を与えます — ① 認証(本当に本物のサーバか)、② 機密性(盗聴されない)、③ 完全性(改ざんされない)。
下のボタンで TLS を切り替えて、盗聴者に何が見えるかを比べてください。
2. ハンドシェイク — 錠前ができるまでの数往復
暗号化を始めるには、まず共通の鍵と相手が本物だという確信が要ります。それを数回のやりとりで用意するのがハンドシェイクです。ClientHello から始まり、サーバの証明書と鍵交換をはさんで、最後に両者が「準備OK(Finished)」を確認したら、暗号化されたデータ通信が始まります。
下のシーケンス図を1ステップずつ進めて、メッセージが行き来し、最後に錠前が閉じるまでを見てください。
3. 3つの部品が合流する
ハンドシェイクの中身を分解すると、これまでのレッスンがそのまま部品になっています。鍵交換が盗聴されずに共有秘密をつくり(機密性の材料)、証明書と署名が「その相手は本物か」を保証し(認証)、できあがった共有鍵を使う共通鍵暗号が大量のデータを高速に守ります(機密性・完全性)。3つが噛み合って初めて安全な通信路になります。
下のデモで証明書の検証を「失敗」に切り替えて、認証が欠けると何が起きるかを確かめてください。
4. なぜハイブリッド — 公開鍵は遅く、共通鍵は速い
ここで素朴な疑問。「最初から全部を公開鍵暗号で送ればいいのでは?」答えは速度です。公開鍵暗号は鍵配送の問題を解ける代わりにとても重く、大量データには向きません。そこで TLS は、重い公開鍵暗号は最初の鍵づくり(ハンドシェイク)だけに使い、以降の本文は軽い共通鍵暗号で流す。これがハイブリッド暗号です。
共通鍵暗号:とても速い。ただし事前に鍵の共有が必要。
TLS は前者で鍵をつくり、後者で本文を運ぶ。互いの弱点を補い合う、見事な組み合わせです。
5. まとめ — 3つの技術が https に合流する
- TLS は裸の通信に認証・機密性・完全性の3つを与える汎用の暗号層。
- ハンドシェイクで、鍵交換(共有秘密)・証明書(相手の本物性)・Finished(相互確認)を数往復で用意する。
- これまで学んだ鍵交換・署名/証明書・共通鍵暗号がそのまま部品として合流している。
- ハイブリッド暗号:重い公開鍵は鍵づくりだけ、本文は軽い共通鍵。だから速い。
- この一連の握手が、あなたがサイトを開くたびに毎回・自動で走っている。