2012-02-09 6 views
3

次のような本を読んでください:計算的に集中的なバイトシーケンスを得るために繰り返し再ハッシュします。あなたが100回リハッシュすると、それ以外の場合は1ヵ月かかる辞書攻撃には8年かかります。どうして?わかりません。誰でも説明できますか?なぜ再ハッシュ処理でより安全になりますか?

答えて

1

は、あなたがこのようにハッシュ関数があるとします。

ハッシュを考えると
password_hash = MD5(password) 

、5f4dcc3b5aa765d61d8327deb882cf99を言って、お好みの技術は上記の機能を使用して、辞書内のすべての単語のハッシュを生成することと、その後比較しますpassword_hashを逆にしたいパスワードに置き換えます。

は今、あなたは攻撃者として

password_hash = password 
    for i = 1 to 100 
    password_hash = MD5(password_hash) 
    next 

にあなたのハッシュ関数を変更すると仮定し、この時間は、あなたが力をブルートしたい特定のハッシュと比較するために、あなたの辞書に100回を各単語をハッシュする必要があります。したがって、パスワードを複数回ハッシュした場合、攻撃者が所与のハッシュを強制的に強制するのにはかなり時間がかかります。

MD5やSHAファミリのような高速ハッシュアルゴリズムは、パスワードのハッシングにはあまり適していません。 http://codahale.com/how-to-safely-store-a-password/を読むと、bcryptのような低速アルゴリズムがパスワードハッシュにどのように適しているかを把握することができます。

関連する問題