2017-09-01 8 views
-1

パスワードがハッシングA(片道)で保存されているバックエンドがあります。ハッシングB(片道)に変換します。私はHashing-Aパスワードを削除して、に変更しました。Hashing-Bアプリケーションのパスワードハッシュを変更するにはどうすればよいですか?

バックエンドでは、私は単純に次のログイン時にハッシュ-Bにパスワードを変更することができますが、本当の問題は、アプリケーションである、私のアプリケーションは、ハッシング-でパスワードを送信し、私はそれを変更することができますが、古いアプリケーションが直面していきます同じ問題です、私は単に古いアプリケーションを展開することはできません。

これは、実際には古いアプリケーションでは変更できません。

Hashing-Aをバックエンドに残さないで、可能な限り最良の方法はですか?

+3

残念ながら、私は古いアプリケーションを変更しなければ可能ではないと思います。ハッシュアルゴリズムを交換するためのベストプラクティスがありますが、私が知っているものは、クライアントを変更することができるときだけ動作します。 –

答えて

1

一般に、強化されたパスワードハッシュは、データベースに対するブルートフォースまたは辞書攻撃を回避するために使用されます。攻撃者がサーバーやデータベースを盗むと、パスワードと繰り返し回数がパスワード自体の強度に追加の防御レベルを追加するため、パスワードを取得することは難しくなります。

したがって、すでに格納されているハッシュ値に反復(作業係数)と場合によっては追加の塩バイトを追加することは意味があります。唯一の要件は、元のハッシュが十分に大きな出力で完全に壊れていない(すなわち、暗号的に安全なハッシュである)ことである。

あなたができることは、新しく変更されたハッシュ値に何らかの種類の識別子(プロトコル識別子と可能なパラメータ)を追加することです。そうすれば、ハッシュ値をオンラインでも変更することができます。あなたの場合は直接比較を選択するか、サーバー上でBハッシュを実行することができます。

ハッシングA値が攻撃者に利用できなくなり、ハッシュBを反転してハッシュAにする方法がないため、これをクラックすることはできません。もちろん、輸送中にパスワードやハッシュを安全に保つことが非常に重要です。しかし、それを回避するためにTLS 1.2を単純に導入することができます。

関連する問題