1

パスワード セキュリティのために暗号化を実装したい ASP.Net Web アプリケーションがあります。私はSSLを使用していません。

そのために、パスワード認証用の CRAM-MD5 アルゴリズムを調べて選択しました。http://pajhome.org.uk/crypt/md5/で入手可能な javascript cram-md5 アルゴリズムを実装しました。

ここで、誰かがそれを使用していて、CRAM-MD5 認証がハッカーによって解読されていることに直面していることを知りたいですか?

CRAM-MD5認証を解読する可能性は何ですか?

4

7 に答える 7

4

MD5 は安全とは見なされなくなりました。 MD5 の脆弱性を参照してください。より安全に実装するには、別のハッシュ アルゴリズム ( SHA-256以上など) を選択します。

于 2009-08-19T13:24:17.753 に答える
4

確かに MD5 はもはや安全とは見なされていませんが、彼に影響を与える暗号解読の脆弱性は HMAC-MD5 には影響しません。まったく別の獣です。

CRAM-MD5 が最善の推奨事項ではないことに同意しますが、実際には MD5 のセキュリティの悪さとは何の関係もありません。

何が違うのかを学びましょう。

See http://www.openauthentication.org/pdfs/Attacks%20on%20SHA-1.pdf, https://www.rfc-editor.org/rfc/rfc6151 and http://cseweb.ucsd.edu/~mihir/papers/hmac-new.html

于 2011-05-13T23:17:54.033 に答える
3

他の人が言っているのとは裏腹に、CRAM-MD5は標準で安全に使用できます。SASL で IMAP/SMTP 認証に広く使用されています。CRAM-MD5 を使用してメールを読んでいる可能性があります。他の標準的なハッシュ アルゴリズムは、PPP で使用される HTTP ダイジェスト認証と CHAP ですが、歴史的な理由により、すべて MD5 を使用します。より安全な SHA1 ベースのハッシュを選択できますが、独自のチャレンジ スキームを作成する必要があります。

チャレンジ/レスポンス スキームを使用するため、MD5 ハッシュの脆弱性に対する脆弱性が低くなります。特別なセキュリティ要件がない限り、標準アルゴリズムのいずれかを使用してください。

于 2009-08-19T14:27:34.847 に答える
2

ハッシュアルゴリズムを自己実装しないでください。System.Securityには十分にテストされた実装があります。前述のように、MD5は使用しないでください。

さらに、ハッシュを塩漬けにする必要があります。たとえば、パスワードフィールドを持つユーザーテーブルがある場合は、単純な整数、GUID、またはタイムスタンプであるが、何か一意のソルトフィールドを追加できます。ソルトは、データベース内でハッシュの衝突が発生しないことを保証します。これが塩漬けについての議論です。

于 2009-08-19T13:32:10.320 に答える
2

独自の暗号化を実装することは、一般的に悪い考えと見なされています。

暗号化アルゴリズムには多くの非常に具体的な要求があり、そのうちの 1 つでも満たされない場合 (そして、それは通常、人々が独自に行うときに発生します)、通常、暗号化をまったく行わないよりもはるかに安全ではありません。

納得できない場合は、この Google Tech Talkが役に立ちます。

于 2009-08-19T13:29:27.403 に答える
1

ウィキから:

プロトコルの弱点

 - 相互認証なし。クライアントはサーバーを検証しません。
 - 成功した CRAM-MD5 プロトコル交換をキャプチャした後に実行可能なパスワードを回復するためのオフライン辞書攻撃。
 - MD5 の使用が不十分です。
 - 可逆的に暗号化されたパスワードを保存するためのサーバー要件を備えています。

パスワードが十分に長くない場合、ハッシュから元のパスワードを取得するのは数秒でできるため、md5ハッシュアルゴリズムを使用するのは怖いでしょう(実際、md5レインボーテーブルをグーグルで検索できます。デコードするサイトがありますそのようなハッシュを数秒で実行し、結果を返します ;) )。

于 2009-08-19T13:26:53.583 に答える
0

他の人がアドバイスしたように; MD5は絶対に使用しないでください。

しかし、実際の答えに関しては、それはどれほどひどく壊れていますか:

まあ、どのワンハッシュでも、それは一方向なので、その意味で「デコード」することはできません。ただし、実行できることは、許容範囲よりもはるかに高速に衝突を生成することです。これにより、攻撃者は、他の方法では一致しないものに強制的に一致させることができます。タイプ'md5(this)= md5(that)の推論の検証を行うため、this=that'は間違っています。これにより、デジタル署名やその他のあらゆる種類のものが壊れます。

どんな形であれ、MD5に近づかないでください。

- 編集

ああ、そしてただの注意点として、パスワードのハッシュはSSLの代わりにはなりません。SSLは、クライアントが閲覧しているサイトがあなたのものであることを確認し、データの一般的な送信を保護するために使用されます。

ハッシュとは、データベースを潜在的な侵害から保護することです。(そして、常にソルトでハッシュする必要があります。データベースのユーザー名のすぐ隣にソルトを格納します)。

于 2009-08-19T13:36:19.410 に答える