SSブログ

「SSL証明書の偽造」に研究者らが成功 [脆弱性]

詳細がだいぶん分かったので、ちょっと修正します。

SSL認証を行う認証局から発行された証明書が偽造される可能性が出てきました。

いわゆるMD5の弱衝突耐性の一部が突破されたことになります。

PS3は1つのCPUの中に9個のプロセッサコアをもち、1個の汎用的なプロセッサコアと、
8個のシンプルなプロセッサコアを組み合わせたマルチなCPUのようです。

これが200台で20時間弱とか。

詳細は不明ですが、今後、CAの証明書はSHA1、SHA256とかに完全に移行していくんでしょうか。


内容は、下記の
http://www.win.tue.nl/hashclash/rogue-ca/downloads/alignment.pdf
の図と、
http://www.phreedom.org/research/rogue-ca/md5 -collisions-1.0.ppt
から分かります。


手順は、上記資料を読んだところ下記の通りだと思います。

1.上位のCA局から一度正規の手続きで証明書を発行してもらいます。
  このとき、自分の公開鍵は2,048ビットの値を付与します。

2.上位CA局からは、発行した有効期間とシリアル番号が付与され、
  上位CA局の公開鍵で署名された値を付与して証明書をもらいます。
  このときのハッシュ値がMD5です。

3.上位CA局から受け取った証明書から、未来の発行日にもらう
  シリアル番号を推測します。

4.そして必要な情報は上部に詰め、コメント部分にコリジョンとなるように
  調整します。

5.このとき、偽証明書は1,024ビットの公開鍵暗号を付与します。

6.申請した2,048ビットの公開鍵と、未来の日時とその時に取得する
  推定したシリアル番号から証明書のハッシュ値と同じになるように
  偽証明書を作成します。このとき、たぶん時間がかかるのがBirthday Bits
  と呼ばれる96ビットの部分です。上記pdfファイルの8ブロック後に
  付与されます。

7.できあがった偽証明書と同じハッシュ値を持つように証明書を上位CAに
  申請し、予測した時刻とシリアル番号が取得できた場合には、偽証明書が
  完成です。


たぶん、こんな感じだと思います。


Here are the MD5 Intermediate Hash Values:
IHVreal certificaterogue CA certificate
IHV00123456789ABCDEFFEDCBA98765432100123456789ABCDEFFEDCBA9876543210
IHV1058484A77F07A36382AAECF2DFE207A2713F764E78B5C9B03F8878F7A440551B
IHV2D52743425C3DAC23A9E62C6C9670622E2AC9681DDB3B72D29A1422A515C9E4F4
IHV37789E58E3B45621A3E46A64CA9D7AC3A104DD09F9F651E554C528578AC1F6885
IHV4CDA2CB5673D3D32092C7F1EF80CE572915ADC95447929A2AC0EACF9E618E14EB
IHV5F08E24604482508B959A0B5762207A3FD6D6E59C0BDB1F701CB04C29A0573EA0
IHV6A83EA6CCCC50B41A4BFADBC6D856B3383AAB0CE98F1E9B2AC270A5A2C60FF605
IHV70B42EAAB4258AACA8C30BDB8192A1BC0DE3CCC11526732CA0FD8B9F5992A7673
IHV8D21CED8CC56726B6BF2AE4A93D742C3AD21CED8CCE3D7EB4C82ADCA94674243A
IHV9DC1EDBFFF3C3E9E7BCEB3F9E2D0705BDDC1EDBFFF49941E8BDEB379E2E07FDBC
IHV10F0D655805A71A74EF8A6A630D11977D8F0D655805A479F4EF8A69E30D1196FD8
IHV119808B5471E7130CC5A30A2ABF2BE4B4D9808B5471E7130CC5A30A2ABF2BE4B4D
IHV12AA1F57B21A8732130CB0CAEF4BB9C746AA1F57B21A8732130CB0CAEF4BB9C746
IHV13151754FA2FCC5914E72B71B4300B6485151754FA2FCC5914E72B71B4300B6485
IHV14271EECDC4DAC9E9C471C34C833917E26271EECDC4DAC9E9C471C34C833917E26
IHV159ED7B966BD815C141B899DC64B5285649ED7B966BD815C141B899DC64B528564
MD59ED7B966BD815C141B899DC64B5285649ED7B966BD815C141B899DC64B528564


Here are the XOR differences of the MD5 Intermediate Hash Values:

IHVXOR difference
IHV000000000000000000000000000000000
IHV174BBF2E907B26AD3BD2294057BA252B9
IHV2FFEE2B5F8706DEF133F20EC983B986DA
IHV367C43511A4207C4F7214233405C8C4BF
IHV4D80F02023441490A522D3E71E14043C2
IHV52658C1FC4F594FFB892A477EC277449F
IHV69295AA25434E2F30898A7E641E59453D
IHV7D57E26BA103F980083E8044D80006DB3
IHV8000000000B5A5802770038007B000800
IHV900000000075AA80F010008000300F801
IHV1000000000003638000000380000001800
IHV1100000000000000000000000000000000
IHV1200000000000000000000000000000000
IHV1300000000000000000000000000000000
IHV1400000000000000000000000000000000
IHV1500000000000000000000000000000000
MD500000000000000000000000000000000



攻撃者はpdfファイルの右側の偽証明書を作成します。

上記の最初の表は、真と偽の証明書のの各ブロックのMD5の結果を表示し、
次の表は各ブロックの差を比較しています。

MD5が64バイトを1ブロックとしてハッシュを生成し、それを元に次のブロックを
計算するので、上記pdfファイルの8ブロックの次にBirthday bitsの96ビット分が
衝突を発生させるための一番キーになる部分です。

このBirthday bitsをうまく設定することによりが次の9,10,11ブロックで完全に
コリジョンを発生させることに成功するように設定されます。


証明書データがpdfファイルの左のReal Certificateとなり、ここに添付
されているpublic keyは、自分が偽CAとなるための公開鍵です。

そして、発行されるシリアル番号と有効期限を変化させて、
右のrogue CA Certificateデータを作成します。


攻撃者は、上位CAから一度証明書を発行してもらいます。

そして、シリアル番号は、取得するたびに1ずつ増加するだけなので、
そこから取得する際のシリアル番号が判明します。

パワーポイントでは21枚目にシリアル番号が643004を取得し、
643015を取得する時の日時を予測しています。

とういうことで、攻撃者は、643015を取得する日時を2008年11月3日07時52分02
秒に取得することを想定して、偽証明書を作成し、その時刻に上位CAから証明書
を発行していもらいます。このとき、1秒でも異なっていたら、偽証明書は使え
ません。


上位CA側の対策としては、シリアル番号をランダムに変更するとか、有効日時を
ミリ秒まで付与するとかすれば、この攻撃を防止できるような気がします。


日経PC
http://pc.nikkeibp.co.jp/article/news/20090105/1010963/

マイクロソフト
http://www.microsoft.com/technet/security/advisory/961509.mspx

原文
http://www.win.tue.nl/hashclash/rogue-ca/

SSLが破られる -- ハッカーがMD5の衝突を利用してCA証明書の偽造に成功
http://japan.zdnet.com/sp/feature/07zeroday/story/0,3800083088,20386042,00.htm
コメント(0)  トラックバック(0) 
共通テーマ:パソコン・インターネット

コメント 0

コメントを書く

お名前:[必須]
URL:
コメント:
画像認証:
下の画像に表示されている文字を入力してください。

※ブログオーナーが承認したコメントのみ表示されます。

トラックバック 0

この広告は前回の更新から一定期間経過したブログに表示されています。更新すると自動で解除されます。