0

サインインだけでなく、暗号化にもパスワードを使用しています。また、サインイン パスワードは暗号化された md5 です。パスワードを紛失/忘れた場合。どうすればデータを復号化できますか?

例えば。ユーザーはパスワード = 1234 でサインインします。サインインした場合 => そのパスワードを使用してデータを復号化します。

ユーザーのプライバシーの問題から、パスワードをユーザーデータに保存したくありません。自分のデータは自分でしか読み取れないとユーザーに信じさせたい。

ユーザーがパスワードを変更した場合、暗号化されたデータを復号化するにはどうすればよいですか? パスワードは暗号化/復号化のキーであるためです。

感謝。

4

2 に答える 2

1

パスワードを復号化キーとして使用していて、パスワードを紛失した場合、データを回復する方法はありません。この方法を使用する場合は、パスワードを紛失しないように細心の注意を払う必要があります。

この特定のケースでは、パスワードの MD5ed コピーをブルート フォースしようとする可能性があります。MD5 は非常に弱く、ハッシュ化されたパスワードの保存には適していません

于 2013-08-23T09:02:40.373 に答える
0

現在のスキームでは、これを行うことは明らかに不可能です。ただし、それを回避できる場合があります。必要なのは、アプローチにレイヤーを追加することです。

まず、ランダムに生成されたキーでユーザー データを暗号化します。このキーがデータ暗号化キーになります。これで、このキーを他のキーで暗号化できます。これらのキーの 1 つは、ユーザーのパスワードから生成されます (SSL 経由で送信し、サーバーで PBKDF2 を使用してパスワードからキーを取得します)。

これで、データ暗号化キーを復号化するための代替スキームを考えることができます。1 つは、標準のパスワード回復フレーズ (ペットの名前 + 母親の年齢) から派生したキーを使用することです。もう 1 つの方法は、キーを公開キーで暗号化し、秘密キーをボールトに安全に保管することです。もちろん、暗号化されたデータ キーの安全性は、最も安全性の低いキー暗号化キーと同じです。

かなり大きな一歩を踏み出したデータの暗号化。(Web) アプリケーションを提供するのはあなたであるため、ユーザーはあなたがデータに対して何もしていないことを確信することはできません。したがって、ユーザーがあなたを信頼できるはずがないという考えは、それ自体矛盾しています。攻撃に対するデータの安全性 (データベースのセキュリティ) や盗難防止などについて考えたほうが、おそらくコストに見合う価値があります。

于 2013-08-23T10:44:17.057 に答える