BT

高速ハッシュの 脆弱性

| 作者: Roopesh Shenoy フォローする 0 人のフォロワー , 翻訳者 徳武 聡 フォローする 0 人のフォロワー 投稿日 2012年7月31日. 推定読書時間: 2 分 |

原文(投稿日:2012/07/30)へのリンク

 

MD5やSHA、SHA1のような高速ハッシュアルゴリズムは安全ではない – 特にパスワードのような重要な情報を守るためには、ハッシュアルゴリズムはブルートフォースアタックを受けた場合に意図的に遅くならなければならない。Microsoft MVPであるTroy Hunt氏SqlMembershipProviderでパスワードをハッシュするのがどのようにブルートフォースアタックに弱いのかをデモしている。

SqlMembershipProviderはVS 2010が提供するASP.NETウェブアプリケーションのテンプレートのデフォルトのメンバシッププロバイダだ。Our password hashing has no clothesと題した記事で氏はSqlMembershipProviderを使った、salt値込みのSHA1アルゴリズムでpasswordをハッシュした場合に、GPUとhashkillerと呼ばれる辞書とブルートフォースアルゴリズムを使ってクラック出来てしまう可能性があることをデモしている。実際に使われていた40,000のパスワードのうち、この方法で45分間で24,710がクラックで来てしまった。全体の67%だ。クラックされたパスワードの中には高い強度があるとされるものもある。

“volleyball6”は11文字で英字と数字を含んでいます。さらに、“zaq1@WSX”は大文字、小文字、記号、数字を含んでいます。しかし、このような大抵のセキュリティポリシーに合格する文字列でも、“安全な”ハッシュ値として保存されてしまえば、完全に危険になってしまうのです。

問題はハッシュ値を生成するときのスピードだ。ハードウエアの処理速度はますます速くなっている。

解決策はなんだろう。キーストレッチングで対策する方法が考えられる。ハッシュ処理を繰り返すことで、ハッシュアルゴリズムを遅くして、ブルートフォースアタックをしにくくするのだ。BcryptPBKDF2はこのようなアルゴリズムを採用している。ハードウエアが速くなるにつれて、反復処理の回数が多くなるので、このようなアルゴリズムは適応アルゴリズムと呼ばれる。Bcrypt.NETはBcryptを実装している。DefaultMembershipProviderはPBKDF2を実装している。DefaultMembershipProviderではSHA1の反復処理を1000回行う。VS 2012のASP.NET MVC 4で提供されるデフォルトのプロバイダはこのDefaultMembershipProviderだ。Troy氏の記事Stronger password hashing in .NET..では、これらの代替策を使う方法や、認証処理に問題を起こさずにより強力なハッシュを使うようにアプリケーションを変更する方法が説明されている。

 

この記事に星をつける

おすすめ度
スタイル

こんにちは

コメントするには InfoQアカウントの登録 または が必要です。InfoQ に登録するとさまざまなことができます。

アカウント登録をしてInfoQをお楽しみください。

あなたの意見をお聞かせください。

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

このスレッドのメッセージについてEmailでリプライする
コミュニティコメント

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

このスレッドのメッセージについてEmailでリプライする

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

このスレッドのメッセージについてEmailでリプライする

ディスカッション

InfoQにログインし新機能を利用する


パスワードを忘れた方はこちらへ

Follow

お気に入りのトピックや著者をフォローする

業界やサイト内で一番重要な見出しを閲覧する

Like

より多いシグナル、より少ないノイズ

お気に入りのトピックと著者を選択して自分のフィードを作る

Notifications

最新情報をすぐ手に入れるようにしよう

通知設定をして、お気に入りコンテンツを見逃さないようにしよう!

BT