合同会社小村ソフト
第 1 章

導入 — HTTPS は何を守っているか

盗聴・改ざん・なりすましの 3 つの脅威と、それに答える機密性・完全性・真正性の対応関係をつかみ、鍵マークの守備範囲を線引きする。

「鍵マークが付いていれば安全」…と言い切れるか

証明書の警告が出たとき、無視して進んでよいか判断できない。お客様に「HTTPS だから安全です」と説明した直後に、「何がどう安全なんですか」と聞かれて言葉に詰まる。— HTTPS は毎日使っているのに、内側の仕組みは意外と説明しづらいものです。

出発点は、HTTPS ではない通信、つまり平文の HTTP で何が起きるかを正しく想像することです。ブラウザとサーバの間には、同じ Wi-Fi にいる他人、ルータ、プロバイダ、途中のネットワーク機器など、たくさんの「中継者」がいます。平文の HTTP では、この経路上のどこからでも通信の中身がそのまま読めて、しかも書き換えられます。

盗聴(読まれる)
パスワードやクレジットカード番号が、経路上でそのまま見える
改ざん(書き換えられる)
ダウンロードするファイルの差し替え、ページへの広告や偽情報の注入
なりすまし(相手が偽物)
本物そっくりの偽サーバが応答し、利用者は気づかず情報を渡してしまう

TLS(Transport Layer Security)は、この 3 つの脅威にそれぞれ別の道具で答える仕組みの組み合わせです。1 つの魔法で全部を解決しているのではない、という見方が、この講座の出発点です。

盗聴に機密性、改ざんに完全性、なりすましに真正性が対応することを示す図

3 つの脅威と 3 つの保証はきれいに 1 対 1 で対応します。以降の章では、それぞれの保証を実現する道具(暗号・ハッシュ・証明書)を 1 つずつ開けていきます。

3 つの脅威に、3 つの保証

脅威保証実現する道具扱う章
盗聴機密性 — 読まれない鍵合意 + 共通鍵暗号第 2〜3 章
改ざん完全性 — 変えられたら分かるハッシュ + 認証付き暗号第 2 章・第 5 章
なりすまし真正性 — 相手が本物証明書 + デジタル署名第 2 章・第 4 章

大事なのは、この 3 つが独立に成り立ったり欠けたりすることです。たとえば暗号化だけして相手の確認をしなければ、「偽物と秘密の会話をする」ことになります(第 4 章で実際にこの穴を突く攻撃を見ます)。逆に、相手は本物でも暗号化がなければ盗聴されます。3 つの問い — 相手は本物か・内容は秘密か・途中で変わっていないか — を毎回すべて確認する、というのがこの講座の型です。

小問 1-1 — 脅威と保証を対応づける

3 つの脅威と 3 つの保証の対応関係を、具体的な場面で確認します。

Q1. カフェの公衆 Wi-Fi で、HTTP(HTTPS ではない)のサイトのログインフォームにパスワードを入力しました。まず心配すべき脅威はどれですか。

Q2. 3 つの保証のうち、「受け取った内容が途中で書き換えられていないこと」に対応するものはどれですか。

HTTPS は「HTTP over TLS」— 層で考える

HTTPS は HTTP を置き換えた別物ではありません。ブラウザとサーバの会話(HTTP)はそのままに、その下に TLS という層が 1 枚入った構造です。

HTTP(アプリケーション層)
「このページをください」「はい、これです」— 会話の中身。HTTPS でもここは変わらない
TLS(その下の層)
会話の中身を封筒に入れて封をする係。暗号化・改ざん検知・相手確認をここで行う
TCP / IP(輸送の層)
封筒を相手まで運ぶ係。TLS があってもなくても仕事は同じ

層が分かれているおかげで、TLS は HTTP 専用ではなく、メール(SMTPS)や独自の API 通信にもそのまま使えます。逆に言うと、TLS が守るのは「輸送中」だけです。サーバに届いた後のデータの扱いや、サイト運営者が善良かどうかは、TLS の守備範囲の外にあります。

この講座の合言葉: 鍵マークや証明書エラーを見たら問いかけてください — いま欠けているのは、相手の確認か? 秘密か? 改ざん検知か?

小問 1-2 — 鍵マークの守備範囲

鍵マークが「何を保証し、何を保証しないか」を線引きします。ここを誤解したまま実務の説明をすると事故になります。

Q3. ブラウザのアドレスバーに鍵マークが表示されているとき、正しく言えるものはどれですか。

Q4. HTTPS で通信しているとき、経路上の第三者にそれでも見えてしまう情報はどれですか。

Q5. HTTPS の構造の説明として正しいものはどれですか。

この章で持ち帰ること

  • 脅威は盗聴・改ざん・なりすましの 3 つ。それぞれ機密性・完全性・真正性の保証が対応する
  • 鍵マークが示すのは「そのドメインの持ち主と暗号化された経路で話している」ことまで。運営者の善良さは保証しない
  • HTTPS は HTTP over TLS。TLS が守るのは輸送中だけで、接続先ドメイン名などのメタデータは経路上からも見える

次章では、3 つの保証を実現する道具 — 共通鍵・公開鍵・ハッシュ・署名 — を「何を解決する道具か」という視点で 1 つずつ開けていきます。