メインコンテンツへスキップ
見出し画像

HTTPSとは?Webサイトとの通信を安全にする仕組みを初心者向けに解説

    ネット通販で買い物をしたり、会員サイトへログインしたりするとき、ブラウザのURLは多くの場合「https://」から始まっています。

    では、HTTPSは何をしているのでしょうか。

    「通信を暗号化するもの」と説明されることが多いですが、それだけではありません。HTTPSは、WebブラウザとWebサーバの間で情報を安全にやり取りするための仕組みです。

    この記事では、暗号方式や鍵の詳しい話へ入る前に、HTTPSが必要な理由と、Web通信がどのように守られるのかを順番に整理します。

    最初に結論

    HTTPSは、Webで使われるHTTP通信を保護したものです。

    HTTPSを利用すると、主に次の三つを実現できます。

    • 通信内容を第三者に読まれにくくする

    • 通信途中の書き換えを検知する

    • 接続相手が目的のサーバか確認する

    つまりHTTPSは、ブラウザとWebサーバの間に「安全な通信経路」を用意し、その中でWebの情報をやり取りする仕組みだと考えると分かりやすくなります。

    そもそもHTTPとは

    HTTPSを理解するには、まずHTTPの役割を短く押さえる必要があります。

    HTTPは、ブラウザとWebサーバが情報をやり取りするための決まりです。

    例えば、利用者が商品ページを開くときは、次のようなやり取りが行われます。

    1. ブラウザがサーバへ「この商品ページを見せてください」と要求する

    2. サーバが商品名や価格などのデータを返す

    3. ブラウザが受け取ったデータを画面に表示する

    ブラウザから送る要求を「HTTPリクエスト」、サーバから返る応答を「HTTPレスポンス」と呼びます。

    HTTPは、何を要求し、どのように応答するかを決めています。しかし、それだけでは通信を安全に守る仕組みが十分ではありません。

    画像

    保護されていない通信には何が起こり得るのか

    ブラウザとサーバの間では、さまざまなネットワーク機器や通信経路を通ってデータが運ばれます。

    通信が保護されていなければ、途中にいる第三者によって、次のような被害を受ける可能性があります。

    盗み見される

    送信したログイン情報や個人情報、閲覧している内容を読み取られる可能性があります。

    書き換えられる

    サーバから届くはずの内容を途中で変更され、偽の案内や不正なプログラムを表示される可能性があります。

    偽サーバへ誘導される

    本物のサイトへ接続したつもりでも、攻撃者が用意したサーバと通信してしまう可能性があります。

    暗号化だけを行っても、接続相手が偽物なら、偽サーバとの通信を安全に続けることになってしまいます。そのため、通信内容だけでなく、接続相手の確認も必要です。

    画像

    HTTPS通信の大まかな流れ

    ブラウザで次のURLを開く場合を考えます。

    https://shop.example.com/login

    HTTPS通信の流れを簡略化すると、次のようになります。

    1. ブラウザがshop.example.comへの接続を始める

    2. ブラウザが、接続相手が目的のサーバか確認する

    3. ブラウザとサーバが、安全に通信するための準備を行う

    4. 保護された経路の中で、HTTPリクエストを送る

    5. サーバが、同じ経路を使ってHTTPレスポンスを返す

    例えばログイン画面では、利用者が入力したIDやパスワードも、準備が完了した後の保護された経路を通って送られます。

    ここで大切なのは、HTTPSがHTTPをなくす仕組みではないことです。商品ページを要求したり、サーバがページのデータを返したりする役割は、HTTPSでもHTTPが担っています。

    画像

    TLSという言葉はどこで関係するのか

    HTTPSで安全な通信経路を作るために使われている技術がTLSです。

    役割を分けると、次のようになります。

    • HTTP:Webの情報を要求し、応答するための決まり

    • TLS:通信相手を確認し、通信内容を保護する仕組み

    • HTTPS:TLSで保護された経路を使うHTTP通信

    そのため、HTTPSの仕組みを詳しく調べると、サーバ証明書、公開鍵、秘密鍵、共通鍵といった用語が登場します。これらは、主にTLSが安全な通信経路を作る過程で使うものです。

    最初からすべてを一度に覚える必要はありません。まずは「HTTPSはWeb通信全体の呼び方」「TLSはその通信を守るために内部で働く仕組み」と整理すれば十分です。

    TLSの詳しい処理は、別の記事で「相手を確認する→安全に共通鍵を作る→共通鍵でデータを守る」という順番に沿って解説しています。
    ▶TLSとは?はこちらを参照

    HTTPSでも保証できないこと

    HTTPSで通信できていても、そのWebサイトの内容まで正しいとは限りません。

    例えば、詐欺サイトがHTTPSを使用することもあります。HTTPSによって確認できるのは、主に「URLで指定した接続先との通信が保護されていること」です。販売されている商品や掲載情報、運営者の良心まで保証するものではありません。

    また、HTTPSが守るのは通信中のデータです。サーバに保存された個人情報や、利用者の端末内にあるファイルまで自動的に守るわけではありません。

    「https://だから何も確認せず安全」ではなく、URLが正しいか、ブラウザが証明書の警告を表示していないかも確認する必要があります。

    画像

    まとめ

    • HTTPは、ブラウザとWebサーバが情報をやり取りするための決まり

    • HTTPSは、HTTP通信を安全に行う仕組み

    • HTTPSは、盗み見の防止、改ざん検知、接続先の確認を行う

    • HTTPSの内部では、通信を保護するためにTLSが使われる

    • HTTPSでも、Webサイトの内容や運営者の信頼性までは保証しない

    まずHTTPSで「何を守りたいのか」を理解し、その後でTLS、サーバ証明書、証明書内の名前へ進むと、用語同士の関係を整理しやすくなります。

    あわせて読みたい関連記事

    そもそもHTTPとは何者かを知りたい方はこちらです。

    HTTPSの内部で、安全な通信経路をどのように作るのかを知りたい方はこちらです。

    TLSで接続相手を確認するときに使う、サーバ証明書とFQDNの関係はこちらで解説しています。

    証明書の中にある名前の構造を詳しく知りたい方はこちらです。

    参考資料


     
     
    情報処理試験、セキュリティ・Webアプリ開発を学ぶ現役SE。初心者目線で、つまずいたIT用語や仕組みを整理しています。心理・セルフケア、本から学んだことも発信。Amazonのアソシエイトとして、Yotsuhaは適格販売により収入を得ています。

    あなたへのおすすめ