2011-01-19 6 views
0

私はちょうど塩漬けsha1を使用してデータベースのパスワードの暗号化を終了しました。もちろん、私はパスワードを忘れたリンク(電子メールも同様)を実装する必要があります。私はそれらの今のシフト版を悪くしています。暗号化されたパスワードと電子メールの取得に関する推奨事項

私は、暗号化のスタイルのために、ユーザーにパスワードの再設定を促す必要があると想定しています。

私はこれを行うための最も安全な方法を探しています。任意の提案やリソースやチュートリアルへのリンクだけでなく、どのような方法を使用するべきか、非常に感謝します。

ありがとうございました。

+2

新しいランダムパスワードを生成してユーザーに電子メールで送信し、次回ログインするとすぐにパスワードを変更するのは間違っていますか? –

+0

一度パスワードが暗号化されると、それらは機能しなくなると言っていますか? –

答えて

2

sha1は、塩漬けまたはチーズ質のタマネギフレーバーで、暗号化されていないので、ハッシングと呼ばれます。ユニークな出力を持つ一方向関数です。データベースのパスワードの塩漬けハッシュを使用してのアイデアは2つあります。データベースへのアクセス権を持つ誰もが、実際にこれらのパスワードが何であるかを判断することはできませんので

  1. ハッシュは、一方向関数です。非常に良い練習。
  2. あなたがユーザー名+パスワード+いくつかの迷惑メールをハッシュしていると仮定すると、塩味のついた部分は、各ユーザー名+パスワードの組み合わせが一意のハッシュであることを意味します。ほとんどの人にはninefingers:stackoverflow!!:{insertcommonwordhere}の辞書がないので、事前計算されたハッシュによる辞書攻撃/ショートカットが難しくなります。それはそれを生成するのを止めるものではなく、もっと不便にさせるだけです。

これで、ユーザーがパスワードを忘れた場合、ハッシュを元に戻すことができないため、パスワードを電子メールで送信できなくなりました。意図的に。

あなたが探しているのは、ユーザーが安全にパスワードをリセットできるようにすることです。これは、ユーザーが電子メールアドレスを入力すると、パラメータに短時間のウィンドウに有効な一意の一度限りのトークンを含むサイトへのリンクを電子メールで送信するというものです。

他のオプションはありますか?パスワードを生成して電子メールで送信します。英国のUk Gov't Gatewayは非常に興味深いことをしています。ウェブページにはパスワードの半分、メールには半分の半分が含まれています。両方ともログインする必要があります。

今、百万ドルの質問:それは安全ですか?いいえ、安全です。 100%のセキュリティはありません。これまでパスワードを格納するこの特定の方法により、セキュリティが強化されます。

  • DBAはユーザーテーブルへのアクセスを悪用することは容易ではありません。
  • 何らかの理由でselect * from table users;がこれらのパスワードを簡単に読み取ることができないという悪意のある要求。

しかし、すぐにあなたが安全な通信の方法として、ユーザーに電子メールを送ることができることに依存しているとして、あなたがに頼る:

  • 自分のメールアカウントが安全です。
  • 電子メールが監視されていないことを示します。

質問は本当に必要ですか?実際には価値の高いターゲットではないため、電子メールアウトリセットリンクソリューションの実装はほとんどの場合有効です。

+0

これは非常に役に立ちました。私は彼らのpwをリセットするためのプロンプトでそれらを電子メールで送ることが私が必要とするもののためにちょうど十分だと思う。乾杯! – LightningWrist

関連する問題