Googleは、2014年9月にGoogle ChromeのSHA-1取扱いに関する指針を公開しました。
さらに2015年に入り、バージョン45および46からアドレスバーの表示を変更したり、メッセージを出して閲覧できなくする等、サイトのセキュリティに関する仕様を変更しました。
SSLサーバ証明書で利用されているハッシュアルゴリズムSHA-1について、CAブラウザフォーラムは、有効期限が2017年1月1日以降のSHA-1を使用したSSLサーバ証明書は利用しないという方針を発表しました。最新のGoogle Chromeを使用している場合、2017年1月1日以降の有効期限を持つ、SHA-1ハッシュアルゴリズムを利用したSSLサーバ証明書を設定してるウェブサイトを表示させた場合に、警告マークを表示させるという、より踏み込んだ対応を行いました。
このChromeの措置もあり、弊社では正しくSSLサーバ証明書の設定をしているにも関わらず、SSLに関する警告が表示されるといったお問い合わせをいただいております。
ブラウザが表示するSSLに関する警告は様々な理由で発生します。前述のGoogle Chromeの対応同様にInternet ExplorerやFirefoxといった他のブラウザでも、いつセキュリティの仕様を変更し現在より厳しい形で警告表示をするようになるかわかりません。
今回はあらためて、代表的なSSLに関する警告表示の原因と解決策について振り返りたいと思います。
HTTPとHTTPSのコンテンツが混在
ウェブサイトを制作する際にウェブサーバにSSLサーバ証明書を正しく設定したにもかかわらず、コンテンツ内に非SSLのコンテンツを使用している場合に警告表示がされます。
具体的には、コンテンツ内の画像を非SSLのウェブサーバから読み込んでいたり、サードパーティが提供するコンテンツがSSLに対応していないなどです。この場合、ブラウザは鍵マークを表示しなかったり、閲覧者に警告を表示することになります。
例:ソースを開いた際に画像がhttpにて指定されている。
<img src="http://
Firefox42 警告表示の追加
『この接続は安全ではありません。このページの一部(画像など)は安全ではありません。』
モジラによると、灰色の錠前アイコンにオレンジ色の警告アイコンが付く場合は暗号化されていないコンテンツがあり、その部分に対して盗聴者の攻撃を防ぐ事が出来ない事を示します。
Internet Explorerでの表示例
IE10
httpsとなっていますが錠マークが表示されません。
Google Chromeでの表示例
Chrome47
緑色表記ではなく、httpと同じ色表記となります。Googleによると、この表記はセキュリティがない状態として扱っています。
上記のような状態は意外と散見する事も多いかと思います。混在サイトになっているだけで閲覧者は不安を抱きますし、せっかく導入した証明書が正しく表示されなくなってしまうので、サイト管理者はページ内のコンテンツの見直しを行うなど対策が必要です。
SHA-1証明書を利用している
CAブラウザフォーラムでは、2017年1月1日を越える有効期限を持つSHA-1証明書を発行すべきではないと定めており、フォーラムに参加している認証局は一律で同じ対応を行っています。
しかしながら、Google Chromeでは2017年より前の有効期限であっても、すでに警告を表示させています。さらに、Google Chromeのバージョンによって表示のされ方も異なっています。
バージョン | SHA-1証明書有効期間 | ||
---|---|---|---|
2016年1月〜5月まで | 2016年7月〜12月まで | 2017年1月〜 | |
39 | |||
40〜41 | |||
42〜45 | |||
46 |
これに対し、Internet ExplorerやFirefoxでは、現時点でSHA-1証明書使用サイトに対して特に警告表示はしていません。ただ、警告表示に関してはセキュリティ次第で急に方針が変わる可能性もあります。
脆弱性が指摘されている暗号アルゴリズム、SSLプロトコル設定時
ストリーム暗号であるRC4はHTTPSの通信にも使われています。Internet Explorer、Firefox、Google Chromeといった主要ブラウザでは、2016年より随時リリースされるブラウザ上でRC4を無効にすると表明しています。Firefoxでは現在、暗号スイートにRC4を使用している通信を意図的に行うと脆弱な暗号を使用していますと警告が表示されます。
Firefox43 警告表示例
『技術情報
このWebサイトへの接続に使用されている暗号は強度が弱くプライベートではありません。
他者があなたの情報を見たりWebサイトの動作を変更できます。暗号化せずにインターネットに送信された情報は他人に傍受される可能性があります。』
同様にSSL3.0以前のプロトコルは脆弱性が露呈し、主要なブラウザでは現在、標準状態で無効としており、既にFirefox42では非対応となっております。 速やかにSSLプロトコルのバージョン設定を見直していただき、脆弱性が指摘されているバージョンからのアップデートの実施とクライアント側では最新の暗号方式が利用できるOS/ブラウザに更新していただくことが必要となります。ただし、一部のフィーチャーフォンなどSSLプロトコルの最新バージョンに対応していない機種や環境では、HTTPS通信が行えないという事象が発生します。
証明書のコモンネームとURLの不一致
証明書のコモンネームと、アクセスしてるURLが異なる場合も以下のようなエラーが表示されます。
Internet Explorer
『このWebサイトのセキュリティ証明書には問題があります。』
このWebサイトで提示されたセキュリティ証明書は、別のWebサイトのアドレス用に発行されたものです。セキュリティ証明書の問題によって、詐欺や、お使いのコンピューターからサーバに送信される情報を盗み取る意図が示唆されている場合があります。
Google Chrome
『この接続ではプライバシーが保護されません』
攻撃者が、XXXX上のあなたの情報(パスワード、メッセージ、クレジット カード情報など)を不正に取得しようとしている可能性があります。
NET::ERR_CERT_COMMON_NAME_INVALID
Firefox
『接続の安全性を確認できません。』
通常の使い方をしている場合は、設定間違えがない限りあまり発生しない事象ですが、SSLサーバ証明書のコモンネームとウェブサーバのURLを一致させることで防ぐ事ができます。wwwあり・なしも識別しますのでご注意ください。
まとめ
HTTPS接続時に警告表示された場合、警告表示の内容を確認する事でおおまかな内容は理解する事ができます。また、警告の原因が、上記で述べたコンテンツの問題・証明書の問題・サーバ設定の問題など様々なため、コンテンツ管理者やサーバ管理者を中心に、サイト公開前に入念にチェックする必要があります。
暗号アルゴリズムは日々更新が行われております。過去にはRSA512、1024やMD2またはMD5を使用した証明書も使用されていましたが、既にRSA2048やSHA-1に置き換えられているかと思います。
今回のGoogle Chromeのセキュリティ仕様変更、並びにグローバルサインを含む各CAベンダーが、SHA-1証明書の発行を終了することにより、2016年以降はSHA-1証明書からSHA-2証明書への移行がさらに進むかと思われます。
EV証明書が登場して以後、ブラウザ側のSSLに関する表示が多様化しております。将来的にはより細分化されるのか、昔のようにシンプルになるのか、引き続き注視していきたいと思います。