は2つの異なるハッシュ機能をチェックのためのファイルの完全性?

StackOverflow https://stackoverflow.com/questions/537989

  •  22-08-2019
  •  | 
  •  

質問

いサイトがユーザーをアップロードされたファイルこれらのサーバに格納し、そのメタデータ記録データベース化します。私クセレントカンパニー集団を目指簡単に完全性チェックする"コンテンツはこのファイルの現在のバイトのためのバイトの同一のものとしましたのですか?"

例:コンテンツの userfile.jpg, MD5ハッシュが 39f9031a154dc7ba105eb4f76f1a0fd4 およびSHA-1ハッシュが 878d8d667721e356bf6646bd2ec21fff50cdd4a9. このファイルの内容変更は、同じMD5ハッシュ前後でこSHA-1ハッシュにも滞在"は同一者でもいいですか? (ハッシュ、時に取得でき、ハッシュの衝突こう二つの異なるハッシュアルゴリズムでは一回しか出来ないのですか?)

や計算の異なる二つのハッシュファイルなのでしょ(かべてもらその他のメカニズムの検証の完全性)?


編集:んを心配偶発的な腐敗ものになっていユーザーに変更するファイルと紙(お誕生日の攻撃 やります。

私も一本で行けるハッシュ、SHA-512-行なうことがボトルネックと、とにかく"としてのBruce Schneierばならないで美しく決まるところが、不安定なシステムになっています。–@MichaelGGのコメント".

役に立ちましたか?

解決

MD5はおそらく、あなたがやっている何のために安全ですが、既知の欠陥でハッシュを使い続ける理由はありません。実際には、あなたはいくつかの既知の主要なパフォーマンスのボトルネックを持っていない限り、あなたは、SHA256またはSHA512をusignすべきではない理由はありません。

編集:明確にするために、2つのアルゴリズムを使用する理由はありません。ちょうどあなたが必要なもの合うものを使用します。あなたは、人々があなたにMD5の衝突をやって心配している場合は(のように、これはセキュリティ上の脅威である?)、そのようなSHA256など、弱いではないアルゴリズムを使用します。

編集2:どうやら、まだ一般的な誤解に対処するには、次のハッシュのランダムな衝突を見つけることは1月2日^ n個の確率ではありません。これは、(N / 2)^ 1/2に近いです。だから、128ビットのハッシュは、おそらく2 ^ 64の試みと衝突することができます。詳細については、誕生日攻撃を参照してください。

他のヒント

自身でMD5ハッシュをチェックすることは、ほとんどの目的に十分です。 あなたがしなければならない場合が、ほかにSHA1をチェックしても害はありません。心の中であなただけのMD5チェックが非常に離れていると見逃してしまう何かをキャッチする可能性を維持します。

スケーラビリティの面で、追加のチェックは、サーバー上の不要な負荷を加えることに注意します。

ファイルの完全性など偶然/ランダムに腐敗、ハッシュまいます。128ビット=2-128 確率の未検知エラーでまとめて小さい。

ファイル暗号の完全性など保証人にな不置換された代替ファイルだと思いま話のベルトとサスペンダーです。

MD5る"弱さ"を感じることができる仕組みができるのではな二つの文書と同じハッシュよりはるかに低い金額のCPU時間よりも短いと言えるでしょうか、力任せ検索(ロンドン同時爆破テロ事件が起抵抗"のMD5て).

ものではない(しか)"弱い"の観点からば任意の文書を、X、他の誰かができる文書を作成するYと同じハッシュをする時間、力任せ検索(MD5も"preimage抵抗").の区別などの違う当事者と二人と同じ誕生日前探他の人と同じ誕生日です。)

場合でもMD5破壊したこの点では劣る人ができるアルゴリズムを書類に合わせ、任意のMD5ハッシュ るarbritrary SHA1ハッシュ.

この音などの種類の間の緊張のマキシムズ"なえてくださるということは、卵一つのバスケット"に対"えてくださるということは、卵の一つで、バスケット、バスケット".またはのようにお金をかける二deadboltロックに対す一deadboltロックすると良いと。理想的にしている過CPU時間の計算 一つ 安全では256ビットのハッシュの代わりに 二つの 安全128ビットのハッシュを用い異なるアルゴリズム(そのきっかけをつくっていきた知SHA1は160bit、これがイラスト)いやすくなりますの性能の向こうした希望のレベルの安全保障、 の場合 の256ビットのハッシュな破となりました。であれば、まされておく方が良いかもしれないとのアルゴリズムのアプローチだけでヘッジをごベット.

そんな中、これは完全性の保護のための誤り、MD5ハッシュに影響はありません。

編集:括的かつ有用な資料1 2 3, "MD5と有害の現在", RFC4270, NISTその他の規範の変更にSHA-3の競争, は、 "SHA-3の動物園".

MD5ハッシュが一致しない場合、

一般に、SHA1(または任意の他の同様のハッシュ)のいずれかと一致しないであろう。私は(我々はすべての衝突が両方のアルゴリズムである知っているので)それが起こることができなかった可能性例がないと言うつもりはありませんが、私はそれはおそらくあなたの状況で発生することはありませんと言うでしょう。

私の考えは、1つのハッシュを提供することは、おそらく十分であることです。 複数のハッシュが(、1は十分に問題があることを確認したプラットフォームのために利用できるユーティリティに依存する)を確認するために骨の折れるになり、私は真剣にあなたがファイルとしての、このような素晴らしい破損を確認するつもりだ疑い完璧な衝突につながるます。

注:の検証痛みであることについてのものを無視してください。質問を再読めば、私はこれを改定 - 私は、ファイルをダウンロードするユーザーのためのハッシュ検証する本来の意味を取りました。もちろん、それはを、場合意図されたものをのある、そして私はまだ適用言った、私は考えてます。

2つのハッシュが異なって計算されているので、

、同じMD5ハッシュを持つ2つのファイルはこれ以上の2つのランダムなファイルと同じSHA-1ハッシュを持っている可能性がありません。ハッシュは(球場)2 ^ 128で、両方のランダムな衝突のあなたのチャンスは2 ^ 256のどちらかになりますと、ランダムな衝突のあなたのチャンスもします。

実際には、あなたは非常に低いから行くと非常に、非常に低います。

これは誰かがランダムにあなたの128ビットの鍵を推測するのを避けるために、256ビットの暗号化に128ビットから行くのequivilentです。

は、概算として、MD5偽陽性の可能性は、SHA-1、偽陽性のために1 /(2 ^ 128)、可能性がある1 /(^ 160 2)、両アルゴリズムの偽陽性の可能性1 /(^ 128 2)及び1 /(^ 288 2)との間にあるが、あなたは両方のアルゴリズムを徹底的に統計的にテストされているとして、それは1 /(^ 288 2)の近くにあることをかなり確信することができます。

二つの異なるハッシュを使用した場合、

少なくとも、あなたは、アルゴリズムの一つで、意図的な攻撃から非常によく保護されています。

編集:いくつかの研究の後、私はこのウィキペディアことに注意してくださいMD5の誕生日の攻撃は1分未満で行うことができますので、SHA-1、ここで一緒にMD5など、さまざまなアルゴリズムを使用することが良さそうです。 SHA-1テイク 2 ^ 69回の操作のための誕生日の攻撃は現時点でにます。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top