Windowsで「不正なCAルート証明書」を確認して削除する:Tech TIPS
「Superfish」事件では一緒にインストールされたCAルート証明書のせいで、通信の暗号化などが「骨抜き」になる事態に発展してしまった。そうした「不正なCAルート証明書」の削除方法と注意点を、Windows向けに解説する。
対象ソフトウエア:Windows 7/Windows 8/Windows 8.1/Windows Server 2008 R2/Windows Server 2012/Windows Server 2012 R2
解説
2015年2月中旬、レノボ製の個人向けPCの一部にプレインストールされた「Superfish」というソフトウエアが、深刻なセキュリティ上の問題を引き起こす危険性があることが報道された。
- LenovoのノートPCに不正なアドウェア、SSL通信を傍受(ITmediaエンタープライズ)
- Lenovo、「Superfish」プリインストールについて公式見解を発表(ITmedia PC USER)
- Lenovo、不正ソフトの削除ツール公開 他のアプリに影響も(ITmediaエンタープライズ)
このソフトウエアは、一緒にインストールされた「CAルート証明書」を利用して、同じコンピューター上でWebブラウザーがHTTPSで暗号化した通信内容を傍受・解読し、さらには広告を挿入・表示させたりしていたとのことだ。
●SSLによる暗号化や出所の証明が「骨抜き」になった!?
深刻な事態に発展した原因は、本来は絶対秘匿しなければならない、このCAルート証明書の「秘密鍵」が漏えいしたことだ(これはSuperfishの作りがずさんだったのが原因とのことだ)。その結果、このCAルート証明書がインストールされたコンピューターに対し、悪意のある攻撃者が容易に(少なくとも)次のようなことを実行できるようになってしまった。
- Webブラウザーが警告しない「真っ当な」HTTPS対応のサイトに似せたフィッシングサイトを構築する
- 暗号化されたHTTPSでの通信内容を傍受したり改ざんしたりする
これでは、そのコンピューターからインターネットを信頼して利用することは、もはや不可能だ。
●レノボ社は対策済みだが、Superfish以外にも影響あり
この問題に対してレノボ社は、問題のCAルート証明書を含むSuperfishを自動的に削除するツールを配布するなど、すでに対策を実施している。
- SUPERFISHの脆弱性(レノボ)
しかし同様の問題はSuperfish以外にも報告されている。
- Komodia Redirector with SSL Digestor fails to properly validate SSL and installs non-unique root CA certificates and private keys[英語](CERT Division of the SEI)
●根本的な対策は「不正なCAルート証明書」を削除すること
本来、Windowsに配布(インストール)されるCAルート証明書は、Microsoftによって厳重に管理されている。だが今回の事件では図らずも、それをかいくぐって「不正なCAルート証明書」がコンピューターに入り込む危険性の1つを見せつけることになった。では、どのように対策すればよいのだろうか?
まず、こうした事件の発生を素早くキャッチアップすることが重要だろう。そして、早急に「不正なCAルート証明書」を見つけて削除して、攻撃者に悪用されないようにすることだ。そこで本稿ではWindowsを対象に、CAルート証明書の削除方法とその際の注意点を説明する。
操作方法
CAルート証明書を削除する場合、どれが不正なものなのか判断する必要がある。だが、コンピューターに格納されている証明書自身が持つ情報だけから、それを判断することは難しい(可能な場合もあるが、誤って正規のものを削除してしまう危険性もある)。
そこで本稿では、不正な証明書の名称がすでに判明しているという前提で、対象のCAルート証明書を見つけて削除する手順を説明する。通常は上述のレノボ社のように、CAルート証明書を配布したベンダーがその名称を明示しているはずだ。
●対象のCAルート証明書を確認する
まずは、Windowsの証明書を管理するツールを起動して、削除すべきCAルート証明書を見つける。それには「certmgr.msc」というマイクロソフト管理コンソールをベースとしたツールを利用する。
対象のCAルート証明書を確認する(その1)
これは証明書を管理するツール「certmgr.msc」を起動するところ。管理者権限を持つユーザーアカウントでWindowsにログオン/サインインしてから、以後の操作を行うこと。
(1)スタートメニューの[プログラムとファイルの検索]に「certmgr.msc」と入力する。[Windows]+[R]キーを押して[ファイル名を指定して実行]ダイアログを開き、これを入力・実行してもよい。
(2)見つかった証明書の管理ツール。クリックして起動する。
対象のCAルート証明書を確認する(その2)
起動した証明書の管理ツール「certmgr.msc」で、対象のCAルート証明書を見つける。
(3)[信頼されたルート証明機関]−[証明書]を選ぶ。
(4)「発行先」列に注目し、対象のCAルート証明書の名称と合致する項目を探す。見つかったらダブルクリックしてプロパティを開く。
対象のCAルート証明書を確認する(その4)
対象のCAルート証明書の拇印(Thumbprint)が明示されている場合は、それも合致するか確認しよう(拇印が明らかでない場合は、この手順をスキップする)。
(7)[詳細]タブを選ぶ。
(8)[<すべて>]または[プロパティのみ]を選ぶ。
(9)[拇印]を選ぶ。
(10)この証明書の拇印(Thumbprint)。提示されている対象のCAルート証明書の拇印と合致することを確認する。
●対象のCAルート証明書をバックアップ(エクスポート)する
削除すべきCAルート証明書を確定できたら、削除する前に、いちおうバックアップを取っておこう。それには対象の証明書を右クリックして、メニューから[すべてのタスク]−[エクスポート]を選ぶ。
対象のCAルート証明書をバックアップ(エクスポート)する
後で必要になる可能性もなくはないので、いちおうバックアップしておく。ただし、証明書によっては、この方法でも完全にはバックアップできないこともあるので、過信しない方がよい。
(1)先ほどの手順で確認したCAルート証明書を右クリックして、メニューを開く。
(2)[すべてのタスク]−[エクスポート]を選ぶと、証明書をエクスポートするためのウィザードが起動する。いずれもデフォルトのまま進めて、保存先のファイル名のみ指定すればよい。
万一、再び証明書が必要になったら、インポートして復元する。それには[信頼されたルート証明機関]−[証明書]を選んでから右クリックし、[すべてのタスク]−[インポート]を実行後、ウィザードの指示に従って、エクスポートしておいたファイルを指定してインポートする。
逆に、不要であることが確定したら、エクスポートした証明書のファイルを削除する。
●対象のCAルート証明書を削除する
以上の手順を済ませたら、対象のCAルート証明書を削除しよう。それには、以下の画面で対象の証明書を右クリックして[削除]をクリックする。その際、くれぐれも間違って別の証明書を選ばないように注意すること。
対象のCAルート証明書を削除する(その1)
削除すべきCAルート証明書を確定したら、以下の手順で削除する。
(1)先ほどの手順で確認したCAルート証明書を右クリックして、メニューを開く。
(2)[削除]を選ぶ。
対象のCAルート証明書を削除する(その2)
CAルート証明書の削除について警告するダイアログ。
(3)削除するには[はい]を押す。ただし、例えばMicrosoft提供のCAルート証明書を誤って選択していた場合、これを押した瞬間に削除されてしまう(次の警告ダイアログは表示されない)。くれぐれも、選んだ証明書が先ほど確認したものなのか、間違ってはいないか、十分に注意すること。
対象のCAルート証明書を削除する(その3)
これから削除する証明書の概要が表示される。
(4)「サブジェクト」が、対象のCAルート証明書の名称と合致しているか、再度確認しよう。その他、明示されているなら拇印も確認しておきたい。
(5)[はい]ボタンをクリックすると、選択した証明書は完全に削除される。
削除が完了したら、いちおうコンピューターを再起動しよう。これは、対象のCAルート証明書によるSSLの通信を完全に止めるためだ。
●Windows OSとは別個に証明書を管理しているアプリケーションもある
以上の手順は、Windows OS標準の証明書ストア(格納場所)を対象としている。これを利用しているアプリケーションについては、上記手順で対象のCAルート証明書を参照できなくなる。Webブラウザーとしては、Internet ExplorerやGoogle Chrome、Operaが該当する。
しかしアプリケーションによっては、Windows OSの証明書ストアを利用せず、独自に証明書を管理していることがある。
その代表例はMozilla Firefox/Thunderbirdだろう。これらからCAルート証明書を削除するには、アプリケーションの設定を変更する必要がある。具体的には、[Alt]キーを押して表示されるメニューバーから[ツール]−[オプション]を選び、[詳細]アイコン−[証明書]タブ−[証明書を表示]ボタン−[認証局証明書]タブとクリックしていく。するとCAルート証明書の一覧が表示されるので、該当するものを選択してから[削除または信頼しない]ボタン−[OK]ボタンを押していって削除する。
■この記事と関連性の高い別の記事
- Windowsの証明書サービスでサーバ証明書を発行する(TIPS)
- SSLテスト用にサーバ証明書を自己発行する(IIS 5.0編)(TIPS)
- Windowsにインストールされている電子証明書を確認する(GUI編)(TIPS)
- Windowsでリモートデスクトップ接続のサーバに「正しい」証明書を割り当てる(TIPS)
- WebサーバーにSSLの証明書が正しくインストールされているか確認する(TIPS)
- メーラにデジタル証明書を設定する(Thunderbird編)(TIPS)
- WindowsでWebサイトのデジタル証明書を確認する(自己発行されたデジタル証明書に注意)(TIPS)
- メーラにデジタル証明書を設定する(Outlook Express編)(TIPS)
- メーラにデジタル証明書を設定する(Outlook編)(TIPS)
- Windows上で、証明書や秘密鍵をPEM形式に変換してエクスポートする(TIPS)
筆者紹介
島田広道
学生時代から電子回路設計の仕事に携わる。1993年より月刊スーパーアスキーの連載記事を執筆。大学卒業と同時に月刊スーパーアスキー編集部に参画。主にハードウェア製品評価記事を担当する。2000年に(株)アスキーを退社し、デジタルアドバンテージに参加。
関連記事
- Windowsの証明書サービスでサーバ証明書を発行する
- SSLテスト用にサーバ証明書を自己発行する(IIS 5.0編)
- Windowsにインストールされている電子証明書を確認する(GUI編)
- Windowsでリモートデスクトップ接続のサーバに「正しい」証明書を割り当てる
- WebサーバーにSSLの証明書が正しくインストールされているか確認する
- メーラにデジタル証明書を設定する(Thunderbird編)
- WindowsでWebサイトのデジタル証明書を確認する(自己発行されたデジタル証明書に注意)
- メーラにデジタル証明書を設定する(Outlook Express編)
- メーラにデジタル証明書を設定する(Outlook編)
- Windows上で、証明書や秘密鍵をPEM形式に変換してエクスポートする
Copyright© Digital Advantage Corp. All Rights Reserved.