Hebikuzure's Tech Memo

2012年1月7日

Authenticode と弱い証明書チェーン

Filed under: Internet Explorer — hebikuzure @ 6:53 PM

Authenticode and Weak Certificate Chains 
http://blogs.msdn.com/b/ieinternals/archive/2011/08/20/internet-explorer-downloaded-file-was-reported-as-unsafe-by-winverifytrust-when-using-md2-or-md4.aspx


遅くなりましたが、あけましておめでとうございます。今年最初のポストです。
今回も EricLaw’s IEInternals の記事から役立ちそうな記事を私訳しました。 古いソフトウェア パッケージをダウンロードしてインストールや実行しようとする際に起きがちなトラブルについての解説です。Windows 7 SP1 以降の上の Internet Explorer 8 以降のブラウザーでは、証明書チェーン内で MD2 または MD4 アルゴリズムを利用した Authenticode 署名を受け入れないという点がポイントです。 

以下の文章は EricLaw’s IEInternals の 8/19 の記事 Authenticode and Weak Certificate Chains を hebikuzure が私的に試訳したものです。翻訳については Microsoft Corporation および日本マイクロソフト株式会社とは無関係に hebikuzure が公開情報に基づき独自に行ったものであり、この文書の内容についての文責は公開者である hebikuzure にあります。翻訳の内容および技術的内容については正確を期すよう十分な注意を払っておりますが、誤りや不正確な部分が含まれている可能性がありますので、本文書を利用される際には原文も併せてご確認ください。


Authenticode と弱い証明書チェーン

EricLaw [MSFT]

2011年8月19日 午後4時28分

最近の事ですが、ある人が非推奨になっているバージョンの Windows Script debugger をダウンロードしようとしました。このツールは IE8 以降に含まれているような、より強力で現代的なツールが出現するまで、スクリプトのデバッグによく使われていました。このユーザーはその際の非常に驚くような結果について、私にメールで知らせてきました:

Run ボタンをクリックすると、ダウンロードは進行しますが、<filename> was reported as unsafe (<filename> は安全でないと報告されています) というメッセージが表示されました。

明白な疑問は、誰が、または何がこのファイルを安全でないと報告しているのか?” です。

多くの方が、それは SmartScreen の警告だと思われるでしょうが、そうではありません。SmartScreen は既知のマルウェアをブロックすると、以下のスクリーンショットのような表示を出します:

それではこれが SmartScreen ではないとして、では警告はどこからされているのでしょう?

答えは、<filename> was reported as unsafe (<filename> は安全でないと報告されています) というメッセージは WinVerifyTrust API がダウンロードしたファイルのデジタル署名に問題があると報告するために表示されているのです。非常に単純なことです。例えば、不完全なダウンロード ファイルを開こうとした場合にもこのエラーが表示されるでしょう。

ところが Windows エクスプローラーで署名を確認すると、何も問題がないように見えます:

詳しく見ると、署名には問題ないと上部に表示されていますし、下部に表示されているタイムスタンプも、この証明書の期限が切れても署名自体は有効であり続けます。とはいえ、このタイムスタンプは 12 年前のもの…これはとても古いファイルです。

そこで、View Certificate (証明書の表示) ボタンをクリックすると、皆さんが私のブログをよく読まれているのであれば、問題を指摘できるでしょう:

見ましたか?

問題は、証明書自身が署名に MD2 ハッシュ アルゴリズムを利用していた事でした。このアルゴリズムは脆弱である事が知られており、信頼されないコンテンツをセキュアでないネットワークを経由して送受信するためには安全でないのです。そのため、私がこのブログで何度かわたって指摘しているように、Windows 7 SP1 以降の上の Internet Explorer 8 以降のブラウザーでは、証明書チェーン内で MD2 または MD4 アルゴリズムを利用した Authenticode 署名を受け入れなくなりました。(root 自身の MD2 と MD4 については問題ありません。なぜならroot 自体はマシンにインストールされているからです) この制限は WinVerifyTrust の WTD_DISABLE_MD2_MD4 フラグによって制御されており、証明書チェーン内でそれらの弱いアルゴリズムが利用されている署名を拒否するよう指定しています。当分の間、Windows エクスプローラー自体はローカルにインストールされているファイルでの MD2 とMD4 の利用を認めます。これは今日の環境での脅威の多くは Web の利用によりもたらされるコードに起因するからです。

現実的には、推奨されないアルゴリズムを使用した署名のついたダウンロードは極めて珍しいという事が分かるでしょう。それは MD2 と MD4 が利用されていた 1990 年代の末期にソフトウェア パッケージを署名していたソフトウェア ベンダーは相対的に少数だったからです。私たちは Microsoft ダウンロード センターにある少数の古いインストーラは削除されるか、またはデジタル署名をごまかそうとする熟練した攻撃者に対するより強力な防御のために現行の証明書と新しいアルゴリズム (例えば SHA-1) で再署名する必要がある事を、認識しています。

-Eric

広告

コメントする »

まだコメントはありません。

RSS feed for comments on this post. TrackBack URI

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中

WordPress.com Blog.

%d人のブロガーが「いいね」をつけました。