1

現在、パスワードを保護するために特定のスキームを使用していますが、改善すべき点がいくつかあると思います。実装は Java であるため、暗号化形式として SHA-2 512 を使用することを好みます。

現在、クライアントサーバーモデルを使用しているため、次のことが発生する可能性があります。

  • クライアントはログインを希望し、パスワードをネットワーク経由で通常の SHA-2 512 暗号化で 1 回送信します。
  • サーバーには、SHA-2_512(SHA-2_512(パスワード) + ソルト) などのデータベースにパスワードが格納されており、内部の SHA-2_512(パスワード) は、ネットワーク経由で受信した「暗号化された」パスワードです。
  • パスワードチェックはサーバー側で行われ、サーバーから何かが漏れることはありません.

これらの質問があります:

  • 攻撃者は通常、パスワードをハッキングしたいときに衝突攻撃を作成します。しかし、衝突攻撃はどのように十分でしょうか? Outlook.com や Facebook などの他のアプリケーション (私のアプリケーションとは関係がないため、別のソルトを使用する可能性が高い) でパスワードを使用する必要がある場合、衝突攻撃で十分でしょうか? 本当のパスワードは必要ありませんか?

  • SHA-2 512 はすでに反復を使用していますか? その場合でも、暗号化方法を変更して、反復回数に加えて優先される反復回数を自動的に使用する必要がありますか? (範囲内の) 乱数の反復の使用についても読みましたが、どのようにランダム係数を決定論的に保存しますか?

  • サーバーコードの反復ごとにシステムシークレットを保存する必要がありますか? http://blog.mozilla.org/webappsec/2011/05/10/sha-512-w-per-user-salts-is-not-enough/を参照してください。n 番目のシークレットは n 番目の反復用であり、反復ごとに静的シークレットを保持する配列を格納できます。誰も秘密を知ることはできません。それらは一度計算され(ランダムな文字列を暗号化すると思います)、基本的にサーバーのRAMに保存されます。

  • 現在、入力したパスワードをクライアントからサーバーに SHA-2_512(パスワード) として送信していますが、このプロセスを改善する必要がありますか? クライアントが使用可能なソルトを持っていないため、ソルトを使用できません。

よろしく。

4

1 に答える 1