JNSA「セキュリティしんだん」

 

« 「(2)セキュリティ2012年の回顧」へ   「(4)ネット選挙のサイバーリスクについて考えてみる」へ »



(3)デジタル証明書と暗号への攻撃の実態〜ケーススタディによる〜 (2013年2月26日)

日本ネットワークセキュリティ協会 副会長
日本マイクロソフト株式会社
チーフセキュリティアドバイザー
高橋正和
(編集脚色 「しんだん」編集部)

◆ はじめに

ネットワークの設計や運用管理に携わる人はセキュリティに多かれ少なかれ関わっていると思う。 また、ネットワークセキュリティの専門家もずいぶん人口が増えたように思う。それでもそのような人の中で、デジタル証明書(以下証明書と略記)や暗号について詳しい方をあまり知らない。私自身もその一人なのだが、マイクロソフトに入ってからは、思わぬ形でかかわることが増えている。 最近では、昨年(2012年) 5月に見つかったFlameと呼ばれるマルウェアが、マイクロソフトの証明書を偽装していたことから、この対応に追われることになった。私が関わった事案を踏まえて、今、デジタル証明書とそれを支える暗号技術にどのような攻撃が行われているか、紹介してみたいと思う。
1.デジタル証明書への攻撃の事例:DigiNotar事件
2.デジタル証明書への攻撃の事例:Comodo事件
3.Flameマルウェアによる、証明書の悪用
4.Flameマルウェアにおける、暗号への攻撃
5.RSA1024ビット未満の証明書の無効化
6.むすび
参考資料

  • 1.DigiNotar事件/2.Comodo事件
  • 3.証明書悪用/4.暗号への攻撃
  • 5.証明書無効化
  • 6.むすび/参考資料

1.デジタル証明書への攻撃の事例:DigiNotar事件

 証明書への攻撃は、さまざまな形で行われている。例えば、2011年7月に発生した、デジタル証明書発行事業者DigiNotarの事件では、500枚以上の偽証明書が発行されたと言われている。
ちなみにDigiNotarという名前は、Digitalと、公証人という意味のNotary Publicから来ているそうだ。つまり、公的証明をデジタルに提供する組織という意味があるのだが、この象徴的な会社名の証明書が偽造されたのは、なんとも皮肉な感じがする。
証明書の偽造が発覚したきっかけは、イランのGmailの利用者が、サーバーがいつもと違うIPアドレスなのに、正しい証明書を持っていると指摘したことがきっかけのようだ。いわゆるMan in the Middle(MITM 中間者攻撃)なのだが、イラン国内のDNSサーバーが偽のIPアドレスを指すように設定し、そのサーバーに偽造したサーバー証明書を入れてあるため、利用者が偽のサーバーに接続されていると気づくことは極めて難しい。偽のサーバー上では、SSL通信を復号化して、盗聴が行われていたものと考えられている。
サーバー証明書の偽造は、あわせてDNSなどで偽装したIPアドレスに接続をさせる必要があることから、実際に攻撃を成功させることは難しいと考えられていた。しかし、このケースでは、DNSにより偽の証明書を持つ不正なサイトへの誘導が行われるという、これまで想定されていなかった形態で、悪用が行われていたと考えられている。
DigiNotar証明書が偽造されたことは、8月30日に同社の親会社からの発表によって明らかになった。主要なOSやWebブラウザの提供ベンダは、ほぼ即時にDigiNotarの証明書を全て無効にする措置を取った。その結果、信頼の起点(Trusted Anchor)となる電子証明書を保証するルート証明書が信頼を失い、DigiNotarが発行した証明書はすべて失効した(利用ができない)状況となり、DigiNotarは事業を継続することができず破産することとなった。

2.デジタル証明書への攻撃の事例:Comodo事件

 別の大手認証局事業者であるComodoも、ハッキングの被害に遭い、7ドメイン(9枚)の証明書が発行された。この犯人は通称Comodoハッカーと呼ばれ、本人は犯行声明の中で21歳のイラン人学生だと名乗っている。このハッカーはまた、DigiNotarへの侵入をおこなったのも自分だとの声明を出している。
犯人は、Comodoの証明書発行サービスの再販業者のサーバーに侵入し、再販業者が使っているComodoに対して証明書発行を依頼するプログラムに、IDとパスワードが平文で書かれていることを見つけ、これを使って正規の発行依頼を行い、証明書の発行を受けた。
この事件では、Comodoの対応が早く、直ちに偽証明書の対象ドメインの所有者と主要ブラウザベンダに知らせるとともに証明書の失効措置を取った。証明書の失効処理は即時に全世界で反映されるとは限らないが、対応も早く件数も限られていたこと、Diginotarのケースとは違い、失効の対象が再販業者の証明書であったことから、大きな影響はなかった模様だ。

3.Flameマルウェアによる、証明書の悪用

 Flameは、Stuxnet、Duquに続く第三のStuxnetと呼ばれるマルウェアで、ファイルサイズも20MB以上と、マルウェアとしては異常に大きい。Stuxnetは制御システムへの侵入に成功したことで注目された。制御システムは、ネットワーク脅威から無縁のものと考えられてきたが、保守や更新のために使用されるUSBメモリを利用することで侵入(感染)したと考えられている。
Flameは2007年(一説には2010年)には存在していたとの報道もあるが、2012年5月に中東での感染が報じられた。Flameが特に注目をされたのは、偽造した証明書を利用して、イントラネット内でWindows Updateを悪用して感染を行ったと考えられている点である。
ちなみに、StuxnetとDuquも偽造された証明書を利用していたが、どちらも台湾の同じビルにある会社の証明書が使われていた。このことから、攻撃者またはその協力者は、Flameとは違って、物理的に侵入をして偽証明書を発行したものと考えられている。

4.Flameマルウェアにおける、暗号への攻撃

 Flameはマイクロソフトの偽証明書を使っているが、これまで紹介をしたような手法とは違っている。マイクロソフトのTechNetブログ(参考資料参照)は、その仕組みを詳しく説明している。今回の攻撃はWindows Vista以降のバージョンのOSに対して行われたもので、いわゆるコリジョンアタックを行ったものと考えられている。そして、Windows XP以前のシステムでは、より簡単な偽装手法があったことも明らかになっている。
ハッシュは、データの一意性(または完全性)を保証するための手法で、電子証明書では正規の証明書(偽装が行われていない)であることの保証に利用される。例えば今回の攻撃に利用された ハッシュ関数MD5の場合は、128biit(16byte)のハッシュ値を生成する。つまり、2の128剰の確率で、同じハッシュ値を持つデータが存在することになる。これはハッシュのコリジョン(衝突)と呼ばれるもので、コリジョンアタックは、データの一部を操作して、同じハッシュ値をもつデータを作成する攻撃である。Flameはマイクロソフトが正規に発行した証明書の内容を目的に沿って改ざんをした上で、正規の証明書と同じハッシュ値を持つように高度な操作を行っていた。この攻撃が論理的に可能であることは以前から指摘されていたが、ついに現実のものになったことに衝撃を受けた専門家も多いようだ。

この問題を受けて、マイクロソフトでは、問題となった証明書のパスの変更、証明書の失効処理専用プログラムの配布、弱い暗号やハッシュを使っている証明書の対処などを行った。これらの一連の対処は、主に2012年6月に行われたことから、6月の月例セキュリティ更新は、難しい対応が必要とされた。
つまり、Flameと同様に偽の証明書を使ったプログラムが、Windows Updateでインストールされていないことをどうやって担保するかという問題である。Trusted Rootと呼ばれる信頼の基盤となる証明書が信用できない場合に、一連の手続きの正当性を担保することは極めて困難な問題である。このため、毎月行っているプレス向けの会見では、正当性を担保するための手順を紹介させていただいた。
幸い、この件に対する問い合わせはなかったのだが、それが良いこととは思えない。Flameが提示した、Trusted Rootが信頼を失った際の厄介さと重要性が理解されているのか、それがとても心配である。

5.RSA1024bit未満の証明書の無効化

 マイクロソフトでは、上記の2012年6月の月例アップデートから2か月後の8月に、RSA1024bit未満の証明書を無効とする更新プログラムをリリースし、10月の月例更新で自動適用を実施した。無効化を行ったRSA1024bit未満の証明書は、いわゆる暗号の2010年問題でも、2010年中に使用を停止すべきとされている。暗号の2010年問題は米国政府が政府内で使用する暗号を2011年以降は、安全なものに切り替えることを指示したもので、日本でもNISCなどから同様の指針が提示されている。
ちなみに、2013年となる現在では、RSA512bitは確実に解読可能な状況だと考えられている。RSA暗号は、素因数分解を応用し、鍵が十分大きな値である場合に逆算により解読するのに要する時間が、実用的に無意味なほど大きくなることを利用した仕組みである。コンピュータの進歩と共にそのしきい値は下がるので、安全性が低下する。既に1024bit未満のRSA暗号は、十分安全に使うことができない領域に入っていると考えるべきだろう。

一方で、この対応により大きなトラブルが発生することも懸念された。このため、証明書に関わるトラブルやアップデートを調べてみると、思わぬところで影響が確認された。 もっとも社会的なインパクトが大きかったのは、航空会社のチケッティングシステムのトラブルで、証明書の期限切れによりシステムが停止し、終日飛行機が飛べなかった。このケースではトラブルの切り分けに時間がかかり、影響が大きくなってしまったようだ。
マイクロソフトのOfficeシステムのコード署名の期限が切れたことから、RMSと呼ばれる技術で暗号化されたドキュメントが開けなるという事例、Web向けのミドルウェアで証明書の期限切れから暗号処理が行えなくなる事例や、無停電電源装置のコンソール(Webページ)のコード署名の期限切れでアクセスができなくなるといった事例も確認された。
加えて、日本では、古い携帯電話が、RSA512bitまでしか対応していないことから、携帯電話向けとPC向けを同じWebサーバーでホストしている場合、PCからのアクセスができなくなる可能性も懸念された。

このように、証明書の無効化による影響の大きさが懸念されたことから、積極的にコミュニケーションをとった。幸いにもマイナーな問題は報告されたが、大きな問題は発生しなかった。

なお、2010年問題は、デッドラインが条件付きで2013年に延長されているが、粛々と対応が進められていることが確認できた。2010年問題の対応が予想以上に進んでいるようである。

6.むすび

 ネットワークセキュリティにおいては、証明書などの暗号関連技術を直接扱うことは少ないのだが、実際にはいたるところで利用されており、信頼を構築するための基盤として重要な役割を担っている。

ここ数年、今回紹介した事件のように、暗号や証明書といったセキュリティの基盤技術に対する攻撃が目につくようになっている。攻撃側では、証明書で守られた安全の網を破るために、証明書に対する偽造や欺発行が行われており、2010年問題で取り上げられた脆弱な暗号は、現実の問題となっている。

証明書が破られた場合の対応は、思いのほか厄介である。事前に、余裕をもって十分な強度を持つ証明書や暗号を利用するとともに、適切な運用を行うことが重要な時代となっている。


参考資料

グーグルのサーバー証明書が第三者の手に(1)〜イランで「中間者攻撃」発生
グーグルのサーバー証明書が第三者の手に(2)〜対応に追われるベンダ
ブラウザだけでなく一部クラウドでもアップデートを
DigiNotarの不正証明書問題、その影響は

Comodo事件はどのようにして起こったのか? - セキュリティは楽しいかね?
「Windows Update」をハッキングする「Flame」マルウェア、
制作には世界トップクラスの暗号解析技術が必要と研究者
−Flameに未知のMD5衝突攻撃亜種が用いられていたことが明るみに−

Flame マルウェア - 中東で発生している標的型サイバー攻撃の詳細について
2012 年 6 月のセキュリティ情報 (月例) MS12-036 〜 MS12-042
セキュリティ アドバイザリ 2718704: Flame の攻撃と WU の強化
Flame malware collision attack explained
NIST Special Publication 800-57 (March, 2007) 第2版
Recommendation for Key Management Part 1: General

政府機関の暗号アルゴリズムに係る移行指針の改定概要
政府機関の情報システムにおいて使用されている暗号アルゴリズムSHA-1及びRSA1024に係る移行指針





« 「(2)セキュリティ2012年の回顧」へ   「(4)ネット選挙のサイバーリスクについて考えてみる」へ »