続 URLの先頭にある https:// は「なぜ入力しなくていいのか」

site-building image

結論から言うと、これは「Webブラウザ(ChromeやSafariなど)が、裏側で補完してくれているから」です。

最後のまとめで、「www」「index.html」「https://」それぞれ省略できる理由をまとめたので、確認してみてください。

目次

ブラウザが「推測」してくれている

私たちがブラウザのアドレスバーに example.com とだけ入力してエンターキーを押したとき、ブラウザは次のような思考プロセスをたどります。

  1. 「これはURLかな? それとも検索ワードかな?」
  2. 「ドメイン形式(.comなど)だからURLだ。でも通信プロトコル(手順)が書いてないぞ」
  3. 「よし、とりあえず http://https:// を頭に付けて接続を試みてみよう!」

このように、ブラウザがユーザーの代わりに「プロトコル(通信の決まりごと)」を書き足してくれているのです。

「http」ではなく「https」が選ばれる理由

昔のブラウザは、省略されるとまず http://(暗号化なし)で接続しようとしていました。しかし、現在はセキュリティ上の理由から、「まずは https://(暗号化あり)で繋いでみる」という動作が一般的になっています。

もしそのサイトが https に対応していなかった場合、ブラウザはエラーを出すか、あるいは http に切り替えて接続し直します。

HSTS(HTTP Strict Transport Security)という仕組み

さらに一歩踏み込んだ技術として HSTS があります。

これは、一度 https:// でアクセスしたサイトに対して、「次からは、ユーザーがもし http:// と手入力したとしても、強制的に https:// で通信してね!」とブラウザに記憶させる仕組みです。

これにより、悪意のある第三者が通信を横取りしようとする「ダウングレード攻撃」を防いでいます。

なぜ「https://」が必要なのか(プロトコルの役割)

そもそも、なぜわざわざ https:// なんて書かなければならないのでしょうか?

それは、インターネットにはWeb(HTTP/HTTPS)以外にもたくさんの通信ルールがあるからです。

  • ftp://:ファイルを送受信するためのルール
  • mailto::メールを送るためのルール

ブラウザは「Webを見るための道具」として進化してきたため、今では https:// を省略しても「Webを見たいんだな」と分かってくれますが、本来は「どのルールで通信するか」を宣言するのがインターネットの基本なのです。

まとめ

www、index.htmlとともにまとめておきます。

省略できるのはなぜか?

  • ホスト名(www): サーバーのニックネームだけど、DNS設定により、解決してくれているから
  • ファイル名(index.html): サーバーの設定により、自動で呼んでくれているから
  • プロトコル(https://): Webブラウザの推測により、「Webを見たいんだな」と忖度してくれているから

こうして見ると、Webとはただの機械的なネットワークではありません。

私たちが『example.com』と一言つぶやくだけで、世界中のサーバーやブラウザが連携して、一瞬で望みの場所へ連れて行ってくれる。

そんな『おせっかいで、とても気が利く執事』のような仕組みが、私たちの日常を支えてくれているんですね。

そう思うと、少しWebが愛おしくなりませんか?

補足 ダウングレード攻撃とは

さきほど、チラッと「ダウングレード攻撃」が出てきたので、補足しておきます。

私たちがブラウザにURLを打ち込むとき、面倒なので example.com とだけ省略して、入力します。

この「省略」という何気ない行動の隙を突くのが、「ダウングレード攻撃」というサイバー攻撃です。

攻撃のシナリオ:通信の「強制格下げ」

通常、Webブラウザは気を利かせて安全な https://(暗号化あり)で繋ごうとします。

しかし、あなたがアクセスボタンを押したその一瞬、悪意のある第三者が通信に割り込んだらどうなるでしょうか。

  1. ユーザー: example.com にアクセス(頭の中では安全な接続を期待)。
  2. 攻撃者: 通信を横取りし、サーバーのふりをして「このサイトは https に対応していません。http(暗号化なし)で繋いでください」とブラウザに嘘の命令を送る。
  3. ブラウザ: 「あ、そうなんだ」と、安全性の低い http:// にダウングレード(格下げ)して接続してしまう。
  4. 結果: 通信が暗号化されていないため、パスワードやクレジットカード情報が攻撃者に丸見えになる。

私たちを守る盾「HSTS」

この攻撃を防ぐために開発されたのが、記事本編でも触れた HSTS(HTTP Strict Transport Security) という仕組みです。

一度でもそのサイトに安全にアクセスすると、Webブラウザが「このサイトは絶対に https 以外では繋がないぞ!」と記憶してくれます。すると、たとえ攻撃者が「http で繋いで」と命令しても、ブラウザが「それは怪しい!」と判断して拒否してくれるのです。

サイト運営者ができること

もしあなたがWebサイトを運営しているなら、単に https 化(SSL化)するだけでなく、この HSTSの設定を有効にする ことが、ユーザーをダウングレード攻撃から守る最後の一手になります。

目次