2009-09-20 9 views
11

パスワードを忘れてパスワードをリセットした場合や、紛失したパスワードを戻す方が良いでしょうか?パスワードをリセットするか、紛失したパスワードを送り返す方が良いですか?

+0

をご覧ください: http://stackoverflow.com/questions/647514/what-is-the-best-way-to-implement-2-way-encryption-with-php – Jacco

+8

元のパスワードは最初は、回復不能にハッシュされる必要があります。 – Stann

答えて

1

第三者が郵送されたパスワードを傍受する可能性があるので、パスワードをリセットする方が安全です。

編集:リセットすると、ユーザーに新しいパスワードを定義するためのトークンを送信するという共通のパターンを意味すると見なします。明らかに新しいパスワードを生成してメールで送信するだけであれば、元のパスワードを送信するのと同じように安全ではありません。もちろん、トークンは1回だけ使用可能でなければなりません。それ以外の場合は、パスワードと同じくらい良いでしょう。ここだけのリスク

は、第三者が、ユーザーが行う前にパスワードを変更トークンを傍受していることです。これはパスワードを送信するよりもリスクが低くなります。なぜなら、盗んだパスワードは、パスワードが使用されている限り有用であり、トークンは一度しか有用ではないからです。誰かがトークンを使用したことを発見します。

リスクが最も高いのは、電子メールトラフィックの盗聴者ではなく、メールを後で見ている人やウェブメールアカウントをハッキングしている人物なので、メールボックスにはまだ有効なパスワードが残っています。

+2

メールが安全でないことを考えれば、リセットされたパスワードはどのように保持されますか? :) – Zed

+0

@Zed:ランダムな使い捨ての値(覚えている)を含むユーザーにリンクを送信します。クリックすると、パスワードをリセットして新しいものを送信できます(https以上)。 –

+1

@Greg:それがポイントです。 「ランダムパスワード」の郵送と「ユーザーが使用できるランダムな値」の間に違いはありません。両方を使用して、_temporarily_ユーザーを識別します。第三者がどちらか一方を改ざんする可能性があります。 – Zed

40

パスワードを紛失したままに送信すると、それらを平文で保管しているか、安全ではない双方向暗号化で暗号化されていることを意味します。

私はパスワードをresetingため、次のWordpressのメカニズムをお勧めしたい:

  1. はランダムなパスワード を生成し、それを送信しますページ へ
  2. フォロー確認リンクをリセット パスワードの確認とのリンクを送信ユーザに
  3. 新しいパスワードでユーザをログインさせ、 をより良いものに変更してください。 思い出してください。
+0

私はリセットパスワードを送信することを考えていましたが、ユーザーが古いパスワードを送り返す方が簡単だと思われました。 –

+2

何かあれば、それは信頼の問題です。使用しているすべてのサイトの管理者が、あなたが選んだパスワードを知りたいと思っていますか?確かに、人々はサイトごとに異なるパスワードを使用するのが理想ですが、実際にはほとんどありません。それは面倒です。 – Amber

+6

Eimantasの返信にちょっと追加してください。セキュリティのため、サーバーは決してユーザーのパスワードをプレーンテキストで保存しないでください。一方向暗号化パスワードを保存する必要があります。ユーザーがログインすると、クライアントはjavescriptでパスワードを暗号化し、暗号化された文字列をサーバーに送信する必要があります。これは、Unixログインがどのように動作するかのようなものです。多くの場合、ユーザーは異なるWebサイトで同じパスワードを使用します。平文のままにしておくと、それらのすべてにアクセスできます。ユーザーとして、私は心配しています。 – user172818

17

最初にパスワードを送り返すべきではありません。あなたの最高のチャンスは、ランダムワンタイムパスワードを生成し、ユーザーの登録された電子メールアドレスに送信することです。

セキュリティに関する質問(「最初の犬の名前」など)やその他の神秘を導入することはできますが、ユーザーはパスワードよりもこれらの回答を忘れて、正方形に戻ってしまう傾向があります。

+1

しかし、セキュリティ上の質問を使用する場合は、バックアップパスワードとして扱うことはできませんが、パスワードリセットメカニズムへのアクセスのゲートキーパーとしてのみ使用してください。そうしないと、あなたが行った高校を調べて「あなたの配偶者とどこで会いましたか」の回答としてメールアカウントを壊してしまいます。 (去年Sarah Palinに起こったように)。 –

+0

しかし、最初の確認メールの後にランダムパスワードを送信することが重要です。あなたがこれを逃した場合、悪意のある人がパスワードを要求ボタンをクリックし、あなたのアカウントにアクセスできないままにあなたのメールアドレスを入力することができます。最初に電子メールを確認せずに元のパスワードでログインする場合は、ログインに失敗します。これは悪いユーザー体験と迷惑です。ボットスクリプトによって使用されるこの手法は、サービスを使用して既知の電子メールアドレスごとにサービス拒否を実行できます。 – DEAD10CC

7

多くのユーザーは、多くのWebサイトで同じパスワードを使用しています。人々のプライバシーを尊重するために、SHA-256やMD5などのハッシュ関数を使用して一方向に暗号化されたパスワードを保存することをお勧めします。しかし、辞書攻撃はこれらのパスワードで簡単に実行できるので、追加の塩なしでそれらを使用すべきではありません。ユーザーのプライバシーを守ることは、あなたとあなたの顧客との間に信頼できる関係の基礎を形成します。

Eimantesに記載されているパスワードリセットメカニズムもお勧めします。確認メールメッセージは、このプロセスの主なタスクです。偽の要求がアクセスできないアカウントにつながるのを避けるため、ユーザーにパスワードリセット要求を確認させてください。

ランダムなパスワードを計算する代わりに、新しいパスワードを入力できるページにユーザーを転送することができます。

また、sslを使用せずにhttp経由でパスワードを送信することは、特にwlanホットスポットなどの公開ネットワークでは非常に安全ではないことに注意してください。 Diffie-Hellman-Key-Exchangeと組み合わせたHMACのようなメッセージ認証方法を見てください。または、ログイン時に少なくとも追加のhash + salt関数を使用します。

+2

SHA-256とMD5は高速すぎて安全とはみなされません。 BCryptまたはPBKDF2をチェックしてください。 –

関連する問題