メインコンテンツへスキップ

SSL/TLSとは

この記事は約 2 分で読めます

SSL/TLS (Secure Sockets Layer / Transport Layer Security) とは、インターネット上の通信を暗号化するプロトコルです。 Web ブラウザとサーバー間のデータを暗号化し、第三者による盗聴や改ざんを防ぎます。TLS は SSL の後継にあたるプロトコルですが、慣習的に SSL/TLS と総称されます。 HTTPS の「 S 」はこの技術を指しています。

歴史的背景

SSL は 1994 年に Netscape Communications が開発しました。 SSL 2.0 (1995 年) と SSL 3.0 (1996 年) を経て、 1999 年に IETF が TLS 1.0 を標準化しました。 SSL 3.0 には POODLE 攻撃などの深刻な脆弱性が発見され、現在は使用が禁止されています。 TLS 1.2 (2008 年) が長く主流でしたが、 2018 年に TLS 1.3 が策定され、ハンドシェイクの高速化とセキュリティの強化が実現しました。 Google が 2014 年に HTTPS をランキング要因に含めると発表したことで、 Web サイトの HTTPS 化が急速に進み、 2025 年時点では Web トラフィックの 95% 以上が HTTPS で暗号化されています。主要ブラウザは TLS 1.0 と 1.1 のサポートを完全に終了しており、 TLS 1.3 への移行が標準となっています。

SSL/TLS の仕組み

TLS ハンドシェイクでは、まずサーバーがデジタル証明書を提示して身元を証明します。次に、クライアントとサーバーが共通の暗号鍵を安全に交換し、以降の通信を対称暗号で暗号化します。 TLS 1.3 ではハンドシェイクが 1-RTT (1 往復) に簡略化され、接続速度とセキュリティの両方が向上しています。

実際に使われる組み合わせが決まる場所

通信が暗号化されているかどうかは、サーバーが対応しているバージョンの一覧だけでは決まらない。接続のたびに、双方が使える方式の中から実際に使う組み合わせが選ばれるため、結果はサーバーが何を許可しているかと、接続してきた相手が何を求めるかの重なりで決まる。新しい方式に対応させたとしても、古い方式の許可が残っていれば、古い方式を求める相手との通信ではそれが使われる。この許可の一覧は、増える方向に動きやすい性質を持つ。接続できない相手が出たときの対処として項目が追加され、追加した理由が記録されないまま残るためである。後から取り除こうとすると、なぜ入っているのかという情報が必要になるが、それは設定そのものには書かれていない。結果として、一覧の見直しは技術的な作業というより、判断の材料を探す作業になる。もうひとつの前提は、許可されている組み合わせは外側から接続して確かめる必要があるという点である。設定として書かれている内容と、実際に受け付けている組み合わせが一致しない場合がある。書かれていない項目に既定値が適用されている、経路上で中継する装置が別の設定を持っている、複数ある受付口のうち一部だけ設定が異なるといった理由が考えられる。受付口が複数ある構成では、まとめて同じ状態になっている保証はないため、確認は受付口ごとに必要になる。この領域の管理は、使用するバージョンをひとつ決めれば終わるものではなく、許可されている組み合わせの一覧と、それがすべての受付口で同じかどうかを外側から定期的に確かめる作業として続く。

TLS ハンドシェイクフロー

ClientHello
ServerHello + 証明書
鍵交換
暗号化通信開始

実務での注意点

SSL/TLS はパスワードが送信される際の通信経路を保護します。ログインフォームでパスワードを入力する際、 HTTPS 接続であることを必ず確認しましょう。実務でよくある落とし穴は、証明書の有効期限切れを見落とすことです。 Let's Encrypt の普及により無料で証明書を取得できるようになりましたが、自動更新の設定を怠ると突然サイトが「安全でない」と表示されます。また、古い TLS バージョン (1.0 、 1.1) を有効にしたままにしているサーバーは脆弱性のリスクがあります。どれほど強力なパスワードを設定しても、暗号化されていない通信では傍受されるリスクがあるため、ブラウザのアドレスバーに鍵マークが表示されていることを確認する習慣が重要です。

関連用語

この記事は役に立ちましたか?