インターネットで安全にデータをやり取りするために欠かせないのが「SSL/TLS」という技術です。前回の「HTTP・HTTPS」の記事で解説した通り、HTTPS通信の正体はこのSSL/TLSによって通信内容が保護された状態を指します。
「SSL」という言葉が一般的に使われていますが、現在はより安全な「TLS」へと進化しています。実務でのサーバー構築や、情報処理技術者試験(FE/AP)で問われる暗号化のプロセスについて、その仕組みを詳しく紐解いていきましょう。
SSL/TLSの役割:通信の「盗聴」と「改ざん」を防ぐ
SSL(Secure Sockets Layer)とTLS(Transport Layer Security)は、ネットワーク上の通信を暗号化するためのプロトコルです。
私たちがWebブラウザで入力するパスワードやクレジットカード情報は、そのまま送信すると、通信経路の途中で悪意のある第三者に中身を覗き見られる(盗聴)リスクがあります。SSL/TLSは、データを複雑な数式で暗号化し、仮に盗み見られても中身を解読不能にすることで、情報の安全性を担保します。
名称について: SSLに脆弱性が見つかり、その後に開発された後継規格がTLSです。現在はTLSが主流ですが、慣習的に「SSL」や「SSL/TLS」と併記されることが多くなっています。
SSL/TLSが実現する「3つの安心」
単に暗号化するだけでな、SSL/TLSには重要な3つの機能があります。
- 機密性(暗号化): 第三者に内容を知られないようにします。
- 完全性(改ざん検知): 途中でデータが書き換えられていないことを保証します。
- 真正性(なりすまし防止): 通信相手が「本物の運営者」であることを証明します。
仕組み:共通鍵と公開鍵の「ハイブリッド方式」
SSL/TLSの最大の特徴は、2種類の暗号化方式を組み合わせている点です。試験(FE/AP)でも非常によく狙われるポイントです。
- 公開鍵暗号方式: 「誰でも鍵をかけられるが、特定の本人しか開けられない」方式。通信開始時の「共通鍵」の受け渡しに使用します。
- 共通鍵暗号方式: 「同じ鍵で暗号化と復号を行う」方式。処理速度が速いため、実際のデータ通信に使用します。
この仕組みにより、「安全に鍵を渡し、高速にデータを送る」という理想的な通信を実現しています。
通信開始の手順(ハンドシェイク)
ブラウザとサーバーが通信を始める際、裏側では「ハンドシェイク(握手)」と呼ばれるやり取りが行われます。
- 挨拶(Hello): ブラウザがサーバーに接続し、利用可能な暗号化の種類を伝えます。
- 証明書の提示: サーバーが自身の「デジタル証明書」をブラウザに送ります。
- 鍵の生成と共有: ブラウザが証明書を確認し、公開鍵を使って「共通鍵」の元になる情報を暗号化して送ります。
- 暗号化通信の開始: 以降、共有した共通鍵を使って、高速に暗号化通信を行います。
実務での注意点:プロトコルバージョンの管理
エンジニアとしてサーバーを運用する際、「どのバージョンのTLSを許可するか」という設定が重要になります。
- 古いバージョンの無効化: すでに脆弱性が発見されている「SSL 3.0」や「TLS 1.0/1.1」は、非推奨、あるいは接続遮断の対象となっています。
- 最新のTLS 1.3: 通信の手順(ハンドシェイク)が簡略化され、これまで以上に高速で安全な通信が可能になっています。
まとめ
SSL/TLSは、現代のインターネットにおける「信頼の盾」です。
- 暗号化・改ざん検知・本人確認の3つを担う。
- 共通鍵と公開鍵のいいとこ取りをした仕組みである。
- 安全性を保つため、常に新しいバージョン(TLS 1.2以上)を利用する必要がある。
これらを理解しておくことで、セキュアなネットワーク構築や、証明書の更新作業といった実務に自信を持って取り組めるようになります。


コメント