パスワードとハッシュを処理するためのほとんどすべてのガイド、ハウツー、およびリファレンスには、次の行に沿って何かを示す大きなまたは太字の警告があります。
SHA-1とMD5は[〜#〜] not [〜#〜]安全であり、使用しないでください。
十分に公平で、SHA-256やその他のものを使用することはそれほど問題ではありません。しかし、実際に攻撃でうまく使用されていると言われている弱点の例はありますか?これらの脆弱性はアルゴリズムをどれほど弱くしますか?
SHA-1の衝突を使用する既知の攻撃については知りませんが、MD5衝突はおそらく攻撃内ですでに2010年に使用されていました。 2012年に、Flame攻撃からのマルウェアがMicrosoftからの有効な署名を持っていることが発見されました。これは、MD5衝突攻撃が原因で可能でした。 http://blogs.technet.com/b/srd/archive/2012/06/06/more-information-about-the-digital-certificates-used-to-sign-the-flame-malwareを参照してください.aspx 詳細については。
パスワードでMD5またはSHA-1を使用する場合:MD5またはSHA-1で簡単なパスワードをハッシュしてから、googleでハッシュを検索します。例:
password: "secret"
md5 (hex): "5ebe2294ecd0e0f08eab7690d2a6ee69"
sha1 (hex): "e5e9fa1ba31ecd1ae84f75caaa474f3a663f05f4"
MD5ハッシュ でGoogleに最初にヒットすると、パスワードが表示されます SHA1ハッシュ を検索すると、最初のヒットと同じです。したがって、ハッシュがソルト化されていない限り、一般的なパスワードを簡単に検出できます。
それとは別に、SHA-256でもパスワードの選択としては好ましくありません。これらの種類のハッシュアルゴリズムは高速であるように設計されており、ブルートフォースパスワードをより簡単にするだけです。このトピックの詳細については、 sha256 +パスワード保存用のソルトハッシュの安全性 を参照してください。
特にMD5は 非常に正当な理由 のためにクラックと見なされます
2012年にWindows UpdateシステムをハイジャックしたMD5ハッシュコリジョン攻撃は、わずか65 USセント相当のクラウドコンピューティング料金で再現されました
攻撃を行うのに約10時間のCPU時間を要しました。この特定の攻撃では、選択されたプレフィックス攻撃を使用しました。つまり、攻撃が機能しないようにデータをフォーマットできますが、これが実行できるという単なる事実により、ハッシュのセキュリティはハッシュアルゴリズムでは見つからないことが宣言されています。ハッシュするデータ形式(セキュリティを保証するには非常に貧弱な場所です)。
フレームマルウェアは、MD5を使用する偽造されたMicrosoftアップデートシグネチャを使用しました。問題のサーバーは、セキュリティの更新とパッチに関しては無視されており、Flame(sKyWIperとも呼ばれます)の作成者はこれを悪用して、コマンドアンドコントロールサーバーを正規のMicrosoft更新サーバーに見せかけました。次に、そのモジュールでコンピューターを感染させました。その1つはソースコードでFlameと呼ばれていたため、その名前が付けられました。 Crysysラボによるレポートへの link はこちらです。