URL が https:// なのに暗号化されていないのはどういう時ですか?

「すぐ使えるWebサーバ環境チェッカー」(旧:「すぐ使えるCGI Perl文法チェック&環境調査CGI」)を使ってWebサーバの環境を調査した時に、https:// で始まるURLでアクセスしているのに「暗号化」の欄に「暗号化されていません」と表示されることがあります。

この表示は、お使いのサーバとブラウザの間のどこかに暗号化されていない経路がある事を示しています。

URLが「https」で始まるのに通信が暗号化されていない状況とは

Webサーバの機能の一つとして「プロキシ」(プロクシ、proxy、「代理」の意)と呼ばれるものがあります。この「プロキシ」は、自分以外のWebサーバからコンテンツを読み取り、あたかも、自サーバのコンテンツであるかのように表示する機能です。

広く使われている機能ですが、共有SSLサーバでも、このプロキシ機能を使って http://(暗号化なし)サイトのコンテンツを暗号化して表示している場合があります。

「すぐ使えるWebサーバ環境チェッカー」の表示は、CGIを直接実行しているWebサーバがどのような環境で動いているかを示していますので、「暗号化されていません」と表示される場合、SSLサーバとCGIのあるWebサーバ間は、その経路の一部に暗号化されていない部分がある事を意味しています。

暗号化されていない場合の危険度

「暗号化」の欄に「暗号化されていません」と表示されたら即、守られるべき情報がインターネットに漏れ出しているのかと言えば、必ずしもそうではありません。共有SSLを使っていてこのような結果が表示された場合、可能性としては以下の3つが考えれらます。

  • 共有SSLホストとユーザのWebサーバホストが同じホスト内にある(通常安全)
  • 共有SSLホストとユーザのWebサーバホストは違うホストで、インターネットを介してつながった別の場所にある(危険)
  • 共有SSLホストとユーザのWebサーバホストは違うホストだが、同じデータセンター内にある(状況により危険度が異なる)

この3つのどれに該当するかは、外から調べただけでは確実には分かりません。守らなければならない情報をやりとりしている場合は、直接レンタルサーバ会社にどのような設定になっているか確認して下さい。

共有SSLホストとユーザのWebサーバホストが同じホスト内にある

共有SSLホストとユーザのWebサーバホストが同じとは、同じ建物に入口が2つあるような状態です。暗号化されていないサーバからSSLサーバにプロキシ機能でコンテンツが渡される経路は建物の外、つまりホストの外部を経由しませんので、ホスト自体がきちんと管理されていれば、表示されているデータは秘匿されています。

共有SSLホストとユーザのWebサーバホストは違うホストで、インターネットを介してつながった別の場所にある

共有SSLホストとユーザのWebサーバホストが違うホスト内にある場合は、その間の経路を情報が暗号化されずに流れている事を意味します。これらのホストが遠隔地にありインターネットで接続されているような場合は、その間を流れるデータは読み取られる可能性がありますので、機密情報や個人情報を扱うには不適です。

共有SSLホストとユーザのWebサーバホストは違うホストだが、同じデータセンター内にある

前項と同じく共有SSLホストとユーザのWebサーバホストが違うホストであり、その2つのホストが例えばレンタルサーバ会社などが運営する一つのデータセンター内にあるような場合、2つのホストの間を流れるデータは暗号化されていませんが、インターネットのように完全にオープンなネットワーク空間に出ていくわけでもありません。

この場合の危険性の判断は、Webサーバホストに設定されているファイアーウォールの設定や、同じセグメント(データセンター内の近い場所)に、他のユーザが利用している VPS や専用サーバがあるか、という点に依ります。ユーザに管理者権限を与える VPS や 専用サーバには通信を読み取るソフトウェアもインストール可能ですので、データを読み取られる可能性があります。