【ネットワーク基礎】SSL / TLSの仕組み
はじめに
インターネットでは、ログインIDやパスワード、クレジットカード番号や個人情報のようなデータを日々やりとりしています。
もしこれらが暗号化されずに送られていたら、通信の途中で盗聴や改ざんができてしまいます。
そんな危険を防ぐために使われているのが、SSL/TLSです。
本記事では、SSLとTLSについてわかりやすくまとめていきます。
SSL・TLS
イメージ
SSL(Secure Sockets Layer)は、インターネット上のウェブブラウザとウェブサーバ間でのデータの通信を暗号化し、送受信させる仕組み(プロトコル)です。
TLS(Transport Layer Security):SSLの後継バージョン。現在はこちらが主に使われています。
SSL/TLSの役割は、通信内容の暗号化・改ざん防止・通信相手の認証を行なう仕組みを提供することです。
通信の流れ:TLSハンドシェイクの仕組み
SSL/TLSは、通信を始める前に「ハンドシェイク(握手)」というやりとりを行ないます。
流れを追ってみましょう
ステップ1: 「Client Hello」メッセージ(クライアント → サーバーへ)
クライアント(ブラウザ)は
・サポートするTLSのバージョン
・対応可能な暗号スイート(方式)
・ランダムな値(Client Random
をサーバーへ送ります。
ステップ2:「Server Hello」メッセージ(サーバー → クライアントへ返事 + 証明書)
サーバーは
・TLSバージョンと暗号スイートの選択結果
・ランダムな値(Server Random)
・サーバー証明書(公開鍵含む)
をクライアントへ返します。
この証明書により、「このサーバーは本物で、正しい公開鍵を持っている」と証明されます。
ステップ3:共通鍵(セッション鍵)の生成と共有
方法① RSA方式(古い方法)
クライアントがセッション鍵を生成し、サーバーの公開鍵で暗号化して送信します。
サーバーは秘密鍵で復号してセッション鍵を取得する方法です。
方法② DHE/ECDHE方式(現在の主流)
双方が「鍵交換アルゴリズム(Diffie-Hellmanなど)」でセッション鍵を安全に合意します。
鍵そのものは送らず、「計算結果」だけを交換するため盗聴されにくいのが特徴です。
ステップ4:暗号化通信の開始
双方が同じ共通鍵を持つことで、通信の暗号化が可能になります。
この暗号化には、高速な「共通鍵暗号方式(AESなど)」が使われます。
ステップ5:通信内容の暗号化・送受信
通信データは共通鍵で暗号化され、改ざんされていないかチェックも行われます(MAC付き)。
以降の通信はすべて暗号化され、安全にやり取りできるようになります。
まとめ
SSL/TLSは、安全な通信を実現するための暗号化プロトコルで、Webブラウザとサーバの間で、誰にも盗み見られず・改ざんされないように通信するための“ルール”を定めています。
HTTPSやVPNなど、さまざまな場所でTLSは使われており、インターネットの土台を支える重要な技術であるため、しっかり基本を押さえておきましょう!
最後までお読みいただき、ありがとうございました。
参考・画像引用元URL
Discussion