私は世間知らずで、オペレーティング システム メーカー、非 OS ブラウザー開発者、および証明機関 (CA) と呼ばれる検証機能を提供する団体が合意したいくつかの重要な変更により、Web ブラウザー/サーバーのセキュリティを取り巻く多くの問題が解決されるだろうと考えていました。この変更は 2016 年 1 月 1 日に実施されました。
ああ、なんて若くて愚かだったんだろう。しかし、確かな進歩が遂げられ、2016年も終わりに近づき、安全な接続を確立するためにサーバーからブラウザに渡される証明書に問題がある場合に、ブラウザがより詳細な、そしてより具体的な警告を出すようになったことを既にご存知かもしれません。場合によっては、既に接続がブロックされていたり、続行するために例外を承認する必要があったりするかもしれません。
これはすべて良いことです。一つには、あなたの情報が悪意のある第三者に盗まれたり、広範囲にわたる、時には違法な政府による傍受(自国だけでなくどの国でも)に巻き込まれたりすることを防ぐのに役立つからです。また、今年、特に最近起こったことの多くは、メリットを得るために何らかの変更を加える必要がないからです。
単なるスニッフィングではありません。ネットワーク上の適切な位置、例えばローカルネットワーク上のMacやiOS以外のデバイスにインストールされたマルウェアなど、不正なネットワークポジションを持つ悪質な人物は、安全でない接続に侵入し、正規のダウンロードファイルではなくウイルスに感染したダウンロードファイルを送り込むなど、様々な悪質な手口を仕掛けることができます。これは、広く使用されているSparkleアップデートフレームワークで発生しており、その後修正されました。しかし、一部の開発者は依然として、暗号化されていないサーバーでソフトウェアのダウンロードファイルをホストしています。
AppleはCAを削除、他社も同様
ウェブ暗号化には、ブラウザやOSのメーカーがCAを信頼することが不可欠です。CAは保護された暗号要素を用いており、アクセスしたウェブサーバーが特定のドメイン名に関連付けられていることを示す証明書を提示した場合、そのサーバーが正当な関連付けであることを確信できます。これは信頼の輪の一部であり、ブラウザやOSのメーカーとCAは誠実さと透明性をもって行動することが求められます。
一部のCAは、セキュリティ、再販業者による証明書発行のプロセス、あるいは倫理面で、単純なミスを犯します。稀ではありますが、Apple、Google、Mozilla Foundationなどが運営する信頼されたルート証明書プログラムからCAが排除されることもあります。(ルート証明書に関する分かりやすい概要は、Chromium Projectsのサイトをご覧ください。)
2015年4月、私はAppleがセキュリティポリシーに違反していると思われる中国の認証局CNNICを削除しなかったことを批判しました。MozillaとGoogleは迅速に行動し、CNNICを削除しました。一方、AppleとMicrosoftは何もしませんでした。(Microsoftは脆弱なセキュリティノートを発行しました。)
9月に事態が悪化すると、Appleはより迅速に対応しました。Mozilla Foundationは数週間前、認証局WoSignがMozillaのブログ記事で「数々の技術的および管理上の問題」を抱えていることを発見しました。WoSignは独自の名前で運営されており、私がSSL/TLS Web証明書の発行に利用していたStartComも買収していました。(詳細はMozillaのブログ記事をご覧ください。)
こうした「問題」の一つは、SHA-1で署名された証明書の発行と、その証明書の日付の遡及でした。SHA-1は時代遅れの暗号化アルゴリズムであり、Mozillaやその他の信頼できるルート証明書運用者からの長年の働きかけを受けて、認証局(CA)はSHA-1の発行を停止することに合意していました。SHA-1は「壊れている」とみなされており、悪意のある第三者が有効な証明書を偽装する可能性があるため、使用を停止せざるを得ませんでした。(SHA-1の詳細については、2015年12月に記事を書いています。)
Mozillaは、コミュニティ主導の透明性の高い運営スタイルを採用しているため、長文の報告書を提出しました。WoSignはこれに回答し、Mozillaはその回答を容認できないと判断し、10月21日付けでWoSignとStartComを信頼リストから削除しました。
Appleもかなり公的な方法でこれに追随し、10月初旬に自社のWebページ上部に数段落のテキストを掲載し、信頼できるルート証明書の一覧を示した。Googleはさらに時間を要し、10月末にようやく声明と計画を発表した。Microsoftはまだコメントを出していない。
これは良い兆候だが、残念で驚くべきことに、マイクロソフトは18か月前と同様に、依然として不利な立場に置かれている。
Safari、Firefox、Chrome、およびその他の一部のブラウザ(Internet Explorer を除く)では、WoSign または StartCom によって署名され、そのまま残っている証明書で保護されているサイトにアクセスすると、セキュリティ警告が表示されます。
警告が増えれば、心配は減る
ここ数年にわたって私が書いてきたように、ブラウザ開発者は、セキュリティ対策が不十分、あるいは設定が不適切なサイトにアクセスした際に表示される警告の種類と内容を、より強化してきました。これには、SSL/TLSで暗号化された接続を使用するhttpsではなく、ブラウザとサーバー間のすべてのデータを暗号化されていないテキストとして送信するプレーンHTTPを使用するすべてのWebページが含まれます。
Google の今後の Chrome での安全でないすべてのページに関する警告は厳重です。
2017年1月より、Google Chromeは、パスワードまたはクレジットカード情報の収集にフォームを使用していると認識したhttpページのURLの横に、「保護されていません」というテキストを表示します。Googleは、暗号化されていないすべてのページで、赤い警告の三角形と「保護されていません」の表示を段階的に変更する予定です。アイコンではなく「保護されていません」というフレーズに変更したのは、製品マネージャーが、ほとんどのユーザーが警告アイコンの意味を理解していないことに気付いたためです。
さらに静かに、Chrome は、異なる名前で複数の同一バージョンが存在する場合、リクエストをウェブサイトの安全なバージョンにリダイレクトするようになったようです。
Safariをお使いの場合、より頻繁に警告が表示されるようになっているかもしれません。明らかに少し古いサイトにアクセスすると、証明書に関する問題に関する警告が頻繁に表示されます。サイトの所有者が証明書を更新していない、セキュリティ文書に記載されていないドメインの証明書を発行している、その他、何が起こっているのかと思わずにはいられないようなエラーです。以前は、Webの仕組みとしてSafariの不正な証明書をバイパスする方法を使っていましたが、今はそうではありません。Webの所有者に問題を報告するか、他の場所で情報を探すようにしています。
ウェブホスティングサービスや、ウェブ上にコンテンツを投稿するその他の手段は、徐々にデフォルトでhttps接続を提供するように移行し、無料で提供しています。例えば、Squarespaceは先日、カスタムドメインを持つすべての顧客に証明書を提供すると発表しました。これにより、ユーザーはhttps接続を必須の方法で利用できるようになります。(Squarespaceの支援にはLet's Encryptが役立ちました。このプロジェクトは無料の基本証明書を提供しており、私もすべてのSSL証明書をLet's Encryptに切り替えました。)
ブラウザの警告の改善、時代遅れの暗号化の廃止、そしてサイトのコンテンツに関わらずデフォルトでセキュリティ保護されたサイトへの一般的な移行により、httpsの利用が大幅に増加しました。GoogleはChrome経由のセキュリティ保護された接続をプラットフォーム別に追跡しており、10月にデスクトップChromeユーザーが読み込んだページの半分はhttps経由であり、わずか数か月で約10%増加しました。
最終的にはウェブ全体が暗号化されるでしょう。それは単なるパラノイアのためではありません。挿入や盗聴のポイントを減らすことで、他人にあなたの読書習慣や友人、あるいは政治活動を追跡されることなど、オンライン生活をより安全に送ることができるようになります。