URLの「http」に「s」が付いているかいないかというのは、ちょっとした違いのように思われるかもしれませんが、実はかなり重要な違いなんです。

このページを見ていただいている方の中には「http」より「https」の方がセキュリティ的に安全だという事は聞いた事があるけど、具体的にどう安全なのかはちゃんと理解できていないという方もいるでしょう。「http」と「https」の違いを正しく理解すれば、最近話題のフィッシングサイトやなりすましサイトによるリスクを減らすこともできます。

そこで今回はホームページのURLにおける「http」と「https」の違いと、ブラウザでサーバ証明書を確認する方法について紹介します。

HTTPとは

HTTPとは「Hyper Text Transfer Protocol(ハイパーテキストトランスファープロトコル)」の事です。ホームページのデータは文字だけでなく画像や動画などがあります。これらのデータをサーバとクライアントの間で通信するときの通信規約(プロトコル)がHTTPです。

通信規約というと、何やら難しいことのように思えますが、ようするにホームページを構成しているhtmlファイルや画像ファイルなどの「ホームページの部品」を自分のパソコンにデータとしてダウンロードする手順のことを言います。

私たちはインターネットをパソコンで利用したり、スマートフォンで利用したりしています。さらにパソコンと一言でいってもOSはWindowsやMac、そしてLinuxなど様々です。インターネットを利用している環境によってホームページのデータのやり取りをする方法が異なっていたら不便です。そこでHTTPという共通の通信規約を定めることで、インターネットを利用する環境が異なっていても、同じ手順でホームページのデータをやり取りすることができるようにしたのです。

HTTPSとは

HTTPに対してHTTPSには文字列の最後に「S」が付いています。この最後の「S」は「Secure(セキュア)」の「S」です。「Secure」という単語を辞書で調べてみると、

安全な、危険のない、安全で、安定した、心配のない、保証された、確実な、約束された、安心して、心配がなくて

と意味が記載されています。IT業界では「セキュリティがしっかりしている」といった意味で使われている単語です。

HTTPSもHTTPと同じプロトコルの一つですが、HTTPSではSSL(Secure Socket Layer)というプロトコルが使用されています。厳密に言うと現在はSSLではなくTLS(Transport Layer Security)というプロトコルが使われています。SSLという言葉が長い間使われてきたため、現在でもSSLと呼んだり、あるいはSSL/TLSと呼ばれたりする状況になっています。

HTTPとHTTPSの違い

HTTPとHTTPSの主な違いは通信内容が暗号化されていないか、されているかの違いです。HTTPSに対応しているサーバでは、ホームページのデータをやり取りする際に暗号化されて通信するようになります。通信内容を暗号化することで、安全にWebの情報をやり取りすることができます。

また、Google ChromeではHTTPSに対応したホームページを開くとブラウザのURLの左の方に「保護された通信」と表示されます。

また「保護された通信」ではなく、組織名が表示される場合もあります。

このように組織名が表示されている場合も通信は暗号化されています。「保護された通信」と「組織名が表示」の違いはサーバに設定されている証明書の種類が異なっていることから発生しています。組織名が表示されている場合は、暗号化されて通信しているだけでなく、ドメインの所有者が実在する組織であることを表しています。この違いについては後程詳しく紹介します。

HTTPはなぜ安全じゃないのか

HTTPSが通信を暗号化することで安全にデータをやり取りすることができると紹介しましたが、それでは通常のHTTPはどれほど危険なのでしょうか。HTTP通信を脅かす攻撃の一つである「中間者攻撃(Man in the middle attack)」を紹介します。

中間者攻撃とは通信している二者間の経路に不正な手段で割り込むことで、通信内容を盗聴したり改ざんを行ったりする攻撃のことです。MITM攻撃とも呼ばれます。HTTPに限らず、暗号化されていない無線LANやネットワークの中継地点に適切なセキュリティ対策が施されていない場合に対しても行われる攻撃です。

通常のHTTPは通信内容が暗号化されておらず、中間者攻撃によって通信内容の盗聴や改ざんが行われる可能性があります。そのため通常のHTTPは安全ではないとされています。

また、HTTPSのもう一つの役割として、ホームページの所有者の正当性を確認することがあげられます。通信相手のサーバが実在するものであり、ドメインの使用権があることを証明することもHTTPSの重要な役割です。この通信先のサーバが正当な所有者のものであることを保証するものを「証明書(SSLサーバ証明書)」といいます。

「通信の暗号化」して「サーバの所有者の正当性」を証明する。この2つがHTTPSの重要な機能です。

HTTPSは検索順位にも影響

HTTPSという技術が最初に登場したのは1994年のことで、今から20年以上前の出来事です。そのころからHTTPSを利用した通信の暗号化は行われており、特にお問い合わせフォームやネットショップなどでは古くから使われてきました。ただ当時は、暗号化が必要なページのみにHTTPSが使われており、静的なコンテンツのページはHTTPで運用されることが主流でした。これはSSLによる通信はサーバのCPUに高い負荷をかけることになり、暗号化が不要なページはできるだけHTTPで運用することでサーバの負荷にならないようにしていたからです。

ところが、2014年8月7日にGoogleはHTTPSをランキングシグナルに使用することを発表しました。

参考HTTPS をランキング シグナルに使用します

要するにHTTPSで運営されているホームページはSEO対策において有利になりますよ、ということです。この発表でホームページをHTTPSで運用することがSEO対策の一つとなりました。

しかし、ホームページをHTTPSに対応させるにはサーバの使用料金の他に高額なサーバ証明書の取得代金も必要となり、個人で運営しているホームページやブログではサーバ証明書を購入しHTTPS化までする運営者はあまり多くいませんでした。

そこで登場したのが「Let’s Encrypt」という無料で使えるSSLサーバ証明書です。この無料のSSLサーバ証明書は各レンタルサーバの無料オプションとして少しずつ普及していき、独自ドメインで運営しているホームページやブログに対してHTTPS化を推し進めるきっかけとなりました。それと同時に「常時SSL」のサイトが急増し、今では個人でも独自ドメインとHTTPSでホームページやブログを運営する方が増えてきています。

参考Let’s Encrypt
参考Let's Encrypt 総合ポータル(非公式解説サイト)

日本はHTTPSの割合がまだまだ低い

日本国内における、HTTPSの導入は、その他の国と比べると少ないのです。
これは、Googleの「透明性レポート」の「ウェブ上でのHTTPS暗号化」の部分にデータが整理されておりますが、他の国よりもセキュリティの意識が低いことが言えます。

ここまで紹介したように、SSLサーバ証明書によって、https:// というドメインでのアクセスができるようになることにより、「サイトの安心感が増す」「検索順位アップ」などの効果が期待できます。
「Let’s Encrypt」を利用すると無料でSSLサーバ証明書を利用できるようになりますので、サイトを運営しているけれどもまだSSLを導入していないという方は、早めの対応が何かとメリットを得られるかもしれません。

参考透明性レポート - ウェブ上でのHTTPS暗号化

SSLサーバ証明書の詳細を確認する方法

ドメイン認証は確認しよう

HTTPSで通信内容は暗号化されます。しかし、肝心の通信相手が偽物だと暗号化するだけではあまり意味がありません。サーバの証明書を取るだけでしたら、誰でも取得できてしまうからです。

そのため、悪意のある第三者がサーバ証明書を取得して偽物のホームページを作成し、被害者を集めて個人情報を盗んだり、マルウェアに感染させたりするなどの事例があります。

サーバ証明書の中でも「ドメイン認証(DV)」というタイプの証明書はドメインの正当な所有者であることは保証しますが、このドメインを所有している者が、本当の企業や団体であることは保証しません。つまり、ドメイン名を持っている人が偽物でも正当な証明書を持つことができるのです。

サーバ証明書の種類

さきほどサーバ証明書の一つとしてドメイン認証を紹介しましたが、サーバ証明書には他にも2つの種類があります。「企業認証」と「EV認証」です。

ドメイン認証 「ドメイン名の使用権」を認証する
企業認証 「ドメイン名の使用権」「組織の法的実在性」を認証する
EV認証 「ドメイン名の使用権」「組織の法的・物理的実在性」
「組織の運営」「承認者・署名者の確認」を認証する

ドメイン認証からEV認証まで下に行くほど認証レベルが高いです。

自分がアクセスしたホームページが正当なものかどうかを確認する方法として、サーバ証明書をチェックする方法があります。ここではGoogle Chromeを使ってサーバ証明書をチェックする方法を紹介します。まずはサーバ証明書がドメイン認証の場合を紹介します。

怪しいと思ったら証明書を確認!その方法は?

ドメイン認証のサーバ証明書の確認方法

SSLに対応した任意のホームページを開きます。ここではサイバーセキュリティ.com(当サイト)のホームページを取り上げます。

SSLに対応したホームページですとURLの左側に「保護された通信」と表示されるので、そこをクリックします。

「証明書」というメニューが表示されますので、クリックします。

「証明書」のウィンドウが表示されるので「詳細」というタブをクリックします。

「サブジェクト」のフィールドを選択すると、

CN = www.cybersecurity-jp.com

という文字列が表示されていることが確認できます。ドメイン認証の場合、会社は認証されないのですが、ホームページのドメイン名が表示されます。

企業認証のサーバ証明書の確認方法

引き続き企業認証の場合のサーバ証明書の確認方法を紹介します。ここではサンプルとしてYahoo!Japanのサイト(https://www.yahoo.co.jp/)を見てみましょう。

先ほどと同じ手順でサーバの証明書の画面を表示させます。企業認証の場合「サブジェクト」のフィールドに「O = 」で始まる列が存在します。ここでは

O = Yahoo Japan Corporation

と記述されています。企業認証の場合は「O = 」で始まる文字列にホームページを運営している企業名が表示されます。

EV認証のサーバ証明書の確認方法

最後にもっとも厳格な証明書であるEV認証のサーバ証明書を取り上げます。実はこれはさきほど「3.HTTPとHTTPSの違い」で取り上げた楽天銀行のホームページで使われているものです。

EV認証の場合、アドレスバーの左側に緑色の文字で企業名が表示されます。EV認証されたホームページは特別な操作をしなくてもすぐに確認ができて便利ですね。

まとめ

HTTPとHTTPSの違いから、サーバの証明書を確認する方法について解説してきました。フィッシングサイトや詐欺サイトの確認方法として、URLを確認する方法は知られていますが、サーバの証明書を確認する方法はあまり普及していません。特にサーバ証明書がドメイン認証の場合は、ホームページの運営者が身元を詐称している可能性もあり、URLを確認するだけでは不十分な時もあります。

また、ホームページの運営者としてHTTPS対応することは、通信を暗号化させたり、訪問者に安心感を与えたりするだけでなく、SEO上にも有利になるなどのメリットがあります。ホームページを運営しているけど、まだHTTPSでアクセスできないという方は、この機会にHTTPS化を検討してみてはいかがでしょうか。

情報漏洩セキュリティ対策ハンドブックプレゼント

メルマガ登録で、下記内容の「情報漏洩セキュリティ対策ハンドブック」プレゼント

1.はじめに


2.近年の個人情報漏洩の状況


3. 内部要因による情報漏洩
3-1.被害実例
3−2.内部犯行による被害統計情報
3-3.内部犯行による情報漏洩が増え続ける3つの原因
3-4.内部犯行を減らすための対策


4. 外部要因による情報漏洩
4−1.近年の個人情報漏洩の状況
4−2.実際の近年のサイバー攻撃による企業の被害実例
4−3.サイバー攻撃の統計情報
4-4.サイバー攻撃がふえ続ける5つの原因
4-5.急増する日本の企業のWEBサイト改ざんへの対策
4-6.サイバー攻撃の種類を把握しよう
4-7.日本におけるサイバー攻撃に対する国の対応と今後
4-8.外部要因による情報漏洩のセキュリティ対策

無料でここまでわかります!
ぜひ下記より無料ダウンロードしてみてはいかがでしょうか?