WebサイトのSSL化ってどういう仕組み?HTTPSの暗号化を分かりやすく解説

Web

インターネットでWebサイトを見るとき、URLの先頭に「https://」と表示されているのを見たことがありますよね。この「s」は「Secure(安全)」の頭文字で、そのサイトがSSL化されていることを示しています。

でも、「SSL化って具体的に何をしているの?」と疑問に思う方も多いでしょう。今回は、WebサイトのSSL化の仕組みについて、できるだけ分かりやすく解説していきます。

スポンサーリンク

SSL化とは?暗号化通信で守られるあなたのデータ

SSLとTLSの関係

まず基本的な用語から説明しましょう。SSL(Secure Sockets Layer)は、インターネット上でデータを暗号化して送受信する技術です。現在は、SSLを進化させたTLS(Transport Layer Security)という技術が使われています。

実はSSLには脆弱性が見つかり、現在は使用されていません。TLSがその後継として開発され、より強固なセキュリティを実現しているんです。ただし、「SSL」という言葉が世間に広く浸透していたため、今でも「SSL化」や「SSL証明書」という呼び方が一般的に使われています。

技術的には「TLS」が正確ですが、本記事では一般的な呼称に合わせて「SSL」と表記します。

HTTPSとは何か

HTTPSは「HTTP over SSL/TLS」の略で、HTTPという通信方式にSSL/TLSの暗号化を組み合わせたものです。

HTTPは従来から使われているWebサイトの通信プロトコル(通信のルール)ですが、このままでは通信内容が平文(暗号化されていない状態)で送られてしまいます。つまり、第三者に通信内容を見られてしまう危険性があるんです。

そこでSSL/TLSを使って通信を暗号化し、安全性を高めたものがHTTPSです。

なぜSSL化が必要なの?3つの重要な役割

1. 通信内容の暗号化

SSL化の最も重要な役割は、通信内容を暗号化することです。

たとえば、あなたがオンラインショッピングでクレジットカード番号を入力したとします。SSL化されていないサイトでは、この情報が暗号化されずにインターネットを通って送られるため、途中で第三者に盗み見られる可能性があります。

しかしSSL化されていれば、データは暗号化されて送信されます。もし第三者が通信を傍受しても、暗号化されたデータは解読できません。

無料Wi-Fiを使うときも同様です。カフェや駅などの公共Wi-Fiは便利ですが、ネットワーク管理者や悪意のある第三者が通信内容を盗み見ることが技術的に可能なんです。SSL化されたサイトなら、こうした環境でも安全に通信できます。

2. データの改ざん防止

SSL通信では、データと一緒に「改ざん検知用データ」も送信されています。

これは、送信側が作成したデータと受信側が計算したデータを照合することで、途中でデータが書き換えられていないかをチェックする仕組みです。もし誰かがデータを改ざんしていれば、すぐに検知できます。

たとえば、ECサイトで商品を5個注文したのに、途中で誰かが勝手に50個に書き換えてしまう…なんて事態を防げるんです。

3. なりすまし防止

SSL証明書には、そのWebサイトの運営者の情報が含まれています。

悪意のある人が有名企業のWebサイトを完全にコピーして、偽サイトを作ることは技術的に可能です。しかし、信頼できる認証局(CA:Certificate Authority)が発行したSSL証明書がなければ、そのサイトが本物であることを証明できません。

ブラウザはSSL証明書を確認することで、「このサイトは本当に○○株式会社が運営しているのか」をチェックしています。

SSL化の仕組み:暗号化はどう行われる?

ここからは、SSL化の技術的な仕組みについて見ていきましょう。少し専門的な内容になりますが、できるだけ分かりやすく説明します。

2種類の暗号化方式を組み合わせる

SSL通信では、「公開鍵暗号方式」と「共通鍵暗号方式」という2つの暗号化技術を組み合わせた「ハイブリッド方式」が使われています。

公開鍵暗号方式

公開鍵暗号方式では、「公開鍵」と「秘密鍵」という2つの鍵を使います。

  • 公開鍵:誰でも入手できる鍵で、データの暗号化に使う
  • 秘密鍵:サーバーだけが持っている鍵で、データの復号化に使う

公開鍵で暗号化されたデータは、対応する秘密鍵でしか復号化できません。これにより、鍵の管理が容易になります。

ただし、公開鍵暗号方式は処理に時間がかかるというデメリットがあります。

共通鍵暗号方式

共通鍵暗号方式では、暗号化と復号化に同じ鍵(共通鍵)を使います。

この方式は処理速度が速いのが特徴ですが、通信する相手ごとに別々の共通鍵が必要で、その鍵をどうやって安全に相手に渡すかが課題になります。

ハイブリッド方式の賢さ

SSL通信では、これら2つの方式の良いところを組み合わせています。

最初に公開鍵暗号方式を使って共通鍵を安全にやり取りし、その後は処理速度の速い共通鍵暗号方式で実際のデータをやり取りします。これにより、セキュリティと処理速度の両立を実現しているんです。

SSL通信が始まるまでの流れ

実際にSSL通信が確立されるまでのプロセスを見てみましょう。これは「SSLハンドシェイク」と呼ばれる手順です。

ステップ1:クライアントからの接続要求

あなたがブラウザでhttps://から始まるURLにアクセスすると、ブラウザ(クライアント)がWebサーバーに「SSL通信をしたい」というリクエストを送ります。

ステップ2:サーバーが証明書と公開鍵を送付

サーバーは、SSL証明書と公開鍵をブラウザに送ります。

SSL証明書には、Webサイトの運営者情報、証明書の有効期限、認証局の署名などが含まれています。

ステップ3:ブラウザが証明書を検証

ブラウザは、受け取ったSSL証明書が本物かどうかを確認します。

主要なブラウザには、信頼できる認証局のルート証明書があらかじめ組み込まれています。ブラウザはこれを使って、サーバーから送られてきたSSL証明書が信頼できる認証局によって発行されたものかをチェックするんです。

証明書に問題があれば、ブラウザは警告を表示します。

ステップ4:共通鍵の作成と送付

証明書の検証が成功すると、ブラウザは「共通鍵(セッションキー)」を作成します。

この共通鍵は、サーバーから送られてきた公開鍵を使って暗号化され、サーバーに送り返されます。公開鍵で暗号化されているため、途中で誰かが傍受しても、秘密鍵を持っていないと中身を読み取れません。

ステップ5:サーバーが共通鍵を取り出す

サーバーは、自分の秘密鍵を使って暗号化された共通鍵を復号化し、共通鍵を取り出します。

これで、ブラウザとサーバーの両方が同じ共通鍵を持つことになりました。

ステップ6:暗号化通信の開始

ここからは、共通鍵を使って実際のデータのやり取りが暗号化されます。

ブラウザとサーバーは、共通鍵でデータを暗号化して送り、受け取った側は同じ共通鍵でデータを復号化します。この共通鍵は、そのセッション(接続)専用の一時的なもので、通信が終われば破棄されます。

次回アクセスしたときには、また新しい共通鍵が作られるんです。

SSL証明書の種類と認証レベル

SSL証明書には、認証の厳格さに応じて3つのレベルがあります。

ドメイン認証(DV:Domain Validation)

最も手軽な認証方式です。ドメインの使用権を持っているかだけを確認します。

認証はメールで行われるため、証明書の発行が早く、費用も比較的安価です。個人のブログや小規模なサイトでよく使われています。

ただし、運営組織の実在性までは確認しないため、なりすまし対策としては限定的です。

組織認証(OV:Organization Validation)

ドメインの使用権に加えて、運営組織の実在性も確認する認証方式です。

認証局が登記簿などを確認し、その組織が実際に存在することを証明します。企業のコーポレートサイトなどでよく使われています。

EV認証(EV:Extended Validation)

最も厳格な認証方式です。

法的な実在証明や電話確認など、認証局による徹底した審査が行われます。金融機関やECサイトなど、高い信頼性が求められるサイトで採用されています。

以前は、EV証明書を使ったサイトではブラウザのアドレスバーに組織名が緑色で表示されていましたが、現在は仕様が変更されています。

ブラウザでSSL化を確認する方法

自分がアクセスしているサイトがSSL化されているかは、簡単に確認できます。

URLの確認

アドレスバーを見て、URLが「https://」で始まっていればSSL化されています。「http://」のままであれば、暗号化されていません。

鍵マークの確認

SSL化されたサイトでは、アドレスバーに鍵マークが表示されます。

この鍵マークをクリックすると、接続の詳細やSSL証明書の情報を確認できます。

ブラウザの警告

SSL証明書に問題がある場合や、SSL化されていないサイトにアクセスしようとすると、多くのブラウザは警告を表示してくれます。

たとえば、証明書の有効期限が切れている場合や、自己署名証明書(認証局を通さずに自分で作った証明書)が使われている場合などです。

こうした警告が表示されたら、個人情報の入力は避けた方が安全です。

常時SSL化が当たり前の時代に

全ページSSL化の重要性

以前は、ログインページやクレジットカード入力ページなど、個人情報を扱うページだけをSSL化するのが一般的でした。

しかし現在は、Webサイト全体をSSL化する「常時SSL化」が標準になっています。

Googleの推奨とSEOへの影響

Googleは2014年から、SSL化されているかどうかを検索順位の決定要因の一つにすると発表しました。

同じ内容のページであれば、SSL化されているサイトの方が検索結果で上位に表示されやすくなります。また、ChromeブラウザではSSL化されていないサイトに「保護されていない通信」という警告を表示するようになりました。

これらの動きにより、Web全体のSSL化が急速に進んだんです。

詐欺サイトもSSL化している?

注意すべき点として、SSL化されているからといって、そのサイトが必ずしも安全とは限りません。

近年は、フィッシング詐欺サイトでもSSL証明書を取得しているケースが増えています。特に、取得が簡単なドメイン認証の証明書であれば、詐欺サイトでも入手できてしまうんです。

SSL化は「通信が暗号化されている」ことを示すだけで、「そのサイトが信頼できる」ことを保証するものではありません。不審なサイトにはアクセスしないよう、日頃から注意が必要です。

SSL化の限界も知っておこう

SSL通信にも限界があります。

通信先のIPアドレスは隠せない

SSL通信では、通信の内容は暗号化されますが、どのIPアドレスと通信しているかまでは隠せません。

たとえば会社のネットワーク管理者は、あなたがどのサイトにアクセスしたか、どれくらいのデータ量を送受信したかを見ることができます。動画サイトのIPアドレスに大量のデータ通信があれば、業務時間中に動画を見ていることがバレてしまう可能性があるんです。

通信先を隠す技術も登場

こうした課題に対応するため、DNS over HTTPS(DoH)という技術も登場しています。これはDNS(ドメイン名とIPアドレスを変換するシステム)の問い合わせも暗号化する技術です。

まとめ:SSL化でより安全なインターネットへ

SSL化は、インターネットをより安全に使うための重要な技術です。

公開鍵暗号方式と共通鍵暗号方式を組み合わせたハイブリッド方式により、セキュリティと処理速度を両立しています。通信の暗号化、データの改ざん防止、なりすまし防止という3つの役割を果たし、私たちの大切な情報を守ってくれているんです。

Webサイトを運営している方は、もしまだSSL化していなければ、できるだけ早く対応することをおすすめします。無料のSSL証明書も提供されているので、以前よりもハードルは低くなっています。

また、Webサイトを利用する側としても、アクセスするサイトがSSL化されているか確認する習慣をつけましょう。特に個人情報を入力する際は、必ずhttps://で始まるURLか、鍵マークが表示されているかをチェックしてください。

SSL化は完璧な解決策ではありませんが、インターネットのセキュリティを高める大きな一歩です。私たち一人ひとりがSSLについて理解し、適切に活用することで、より安全なインターネット環境を作っていけるでしょう。

コメント

タイトルとURLをコピーしました