2017-03-06 6 views
0

パスワードマネージャのリセットパスワード機能を実装するにはどうすればよいですか?私は現在、ハッシュ+塩漬けマスターパスワードを保存しており、マスターパスワード自体でパスワードを暗号化していますが、ユーザーがマスターパスワードを紛失した場合、これはパスワードを解読できないことを意味します。パスワードマネージャのリセットパスワードを実装する方法

マスターパスワードで暗号化されたバージョンのパスワードと、ユーザーの電子メールで暗号化されたバージョン+ユーザーがアカウントを作成したときに生成されるランダムトークンを保存することを考えましたが、これは安全でしょうか?これを行うときにベストプラクティスはありますか?

ユーザーの電子メールもハッシュとして保存されます。

私の質問を明確にするために、パスワードが失われた場合にパスワードで暗号化されたデータを復旧するためのベストプラクティスがありますか?

+1

ハッシュ関数を使用するだけでは不十分で、単に塩を追加するだけでセキュリティを向上させることはほとんどありません。代わりに、約100msの持続時間の間、ランダムな塩でHMACを繰り返し、塩をハッシュで保存してください。 'PBKDF2'、' password_hash'、 'Bcrypt'などの関数を使用します。要点は、攻撃者が無差別にパスワードを見つけるのに多くの時間を費やすことです。 – zaph

+0

@zaph私は現在、ハッシュを生成してパスワードを検証するためにPBKDF2を使用していますが、ユーザがパスワードを忘れた場合はそれほど重要ではないと見ていますが、引用符では言及しませんでした。とにかくありがとう。 –

+0

*質問、見積もり –

答えて

3

セキュリティは "ランダムトークン"をどのように格納するかに減少し、私はそれがまったく安全ではないと思います。ベストプラクティスはありません。あなたは紙の上にマスターパスワードを書いて、それを銀行などのセーフティボックスに入れておくことができます。

さらに短く:他の人物を信頼することなく、ローカルパスワードマネージャのパスワードリセット機能を使用することはできません。

関連する問題