はじめに
目的
本ドキュメントは、検索キーワード「SSL 12」に関する意図を分析し、それに基づいてTLS1.2(誤って「SSL1.2」と呼ばれることがある)について分かりやすく解説するために作成しました。初心者にも理解しやすい言葉で、仕組みや安全性を丁寧に説明します。
背景と誤解について
多くの人が「SSL」と「TLS」を混同します。例えるなら、古い名前と新しい名前の違いです。本記事では用語の違いを簡潔に示し、TLS1.2が現代の通信で何を守るかを示します。
対象読者
- ウェブ利用者や開発者で、TLSの基本を知りたい方
- 言葉の混乱(SSLとTLS)を整理したい方
専門的な前提知識は不要です。インターネットでの通信に関心があれば読み進められます。
本書の構成と読み方
第2章でTLSの役割を説明し、第3章でTLS1.2の通信全体像を俯瞰します。第4章でハンドシェイクの4つのフェーズを順を追って解説します。実務的な詳細は段階的に扱いますので、順に読むと理解が深まります。
SSL/TLSとは何か? ― インターネットの「安全な通路」を作る技術
簡単な定義
SSL/TLSは、インターネット上でやり取りする情報を見えなくし、改ざんを防ぎ、相手が本当にその相手か確かめるための仕組みです。例えばオンラインショッピングでカード番号を入力しても、第三者が盗み見できないのはこの仕組みが働いているからです。
主な役割(3つ)
- 機密性(暗号化):データを暗号にして盗み見を防ぎます。公共のWi‑Fiでも安全に通信できます。
- 完全性(改ざん防止):途中で内容を書き換えられていないかチェックします。送信した内容と受信した内容が一致するかを確認します。
- 認証(なりすまし防止):接続先が本物かを証明します。例えば銀行のサイトなら本物の銀行であることを証明する電子証明書を用います。
証明書と認証局(CA)について
ウェブサイトは証明書というデジタルの身分証を提示します。ブラウザはこの証明書を第三者である認証局(CA)に照らして確認します。正しい証明書があれば、ブラウザは鍵マークや「HTTPS」で安全だと示します。自己署名の証明書は信頼されにくく、一般のサイトでは認証局の署名が必須です。
SSLとTLSの違い
歴史的にはNetscapeが作ったSSLが始まりです。現在は設計改良されたTLSが標準で、実際の現場では”SSL対応”と呼ぶことが多くても意味するのはTLSです。現行の正確な呼び方はTLS(例えばTLS1.2)です。
TLS1.2通信の全体像 ― 何をしているのかを俯瞰する
TLS1.2が目指すもの
TLS1.2は、インターネット上で安全にデータをやり取りするための仕組みです。目的は三つです。通信内容を盗まれないようにする(機密性)、途中で改ざんされていないか確かめる(完全性)、相手が本物か確認する(認証)。
大まかな流れ(俯瞰)
- 握手(ハンドシェイク)で通信条件を決めます。使う暗号やバージョンを両者が合意します。例えると、どの言語で会話するかを決める場面です。
- サーバ証明書の提示と検証で相手の身元を確かめます。証明書は身分証のようなもので、信頼できる第三者が発行しています。
- 鍵交換で共通鍵を安全に作ります。ここで使われる鍵は、その後の暗号化通信に使う「会話用の鍵」です。例として、店で使う合い鍵を安全に作るイメージです。
- 暗号化通信を開始し、以後の通信は共通鍵で暗号化・検査されます。通信データは第三者には読めず、改ざんも検出できます。
どうして安全になるのか
証明書で相手を確認し、鍵交換で安全な鍵を作ることで、盗み見・改ざん・なりすましを防ぎます。具体的な手順やメッセージのやり取りは次章で詳しく見ていきます。
TLSハンドシェイクの4つのフェーズ
フェーズ1:挨拶と暗号方式のすり合わせ
クライアントが「こんにちは(ClientHello)」を送り、使える暗号方式やバージョンを提示します。サーバは受け取って最適な方式を選び「こんにちは(ServerHello)」で回答します。例えると、どの言語で会話するかを最初に確認する場面です。
フェーズ2:サーバの身元確認(証明書提示と検証)
サーバは自分の公開鍵を含む証明書を送ります。クライアントは証明書を受け取り、発行者や有効期限を確認して正当性を検証します。ここで身元が確認できなければ先に進みません。
フェーズ3:共通鍵の生成(マスターシークレットの共有)
クライアントはランダム値(プレマスターシークレット)を作り、サーバの公開鍵で暗号化して送ります。サーバは自分の秘密鍵で復号し、両者が同じマスターシークレットを導出します。そこから通信で使う共通鍵(対称鍵)を生成します。
フェーズ4:暗号化通信の開始(確認と切替え)
双方は準備ができたことを知らせる短いメッセージを交換します(Finished)。これをもって暗号化されたデータの送受信を開始します。以後は共通鍵で高速に安全な通信を行います。












