web-dev-qa-db-ja.com

登録時にユーザーパスワードを送信することは良い考えですか?

私は両方の方法を想像できます-送信する/送信しない、それでもアプリケーション内で十分に安全にする。

たとえば、「パスワードを入力してください」フィールドからパスワードを取得し、それをメールテンプレートに保存してから、データベースに安全に(ハッシュのみ)保存します。

  Hi, <username>
  We just registred you at our super awesome page.
  Your password is <entered password during register>
  Yada yada blah blah blah

しかし、考え直してみると、確かに経験豊富ユーザーは、サイトからパスワードがプレーンテキストで送信された場合、そのサイトには明らかにセキュリティ上の問題があることを知っています(=データベースをハッキングすると、ユーザーとそのパスワードを確認する)

  Hi, <username>
  We just registred you at our super awesome page.
  We saved your password in super safe way, so we can only reset it at any given time
  Yada yada blah blah blah 

ユーザーの観点からどちらが優れているかについての洞察を聞きたいのですが。

[〜#〜] edit [〜#〜]スタイル「パスワードプレーンテキストを保存しない」の3番目の回答の後、何かを明確にしたいと思います。

  • 私は最初に電子メールを送信してから、安全な方法でデータベース内のパスワードをハッシュします。暗号化されていない(安全でない)DBにパスワードを保存する方法はありません。これは本当に、パスワードをユーザーに送り返すかどうかだけです。
39
Pavel Janicek

いいえ-それは悪い考えです:

a。個別のソルトでハッシュするのではなく、プレーンテキストとしてパスワードを保存します。詳細 ここ および ここ

b。次のようなパスワードを電子メールで送信します。

b.1。電子メールは暗号化されずにインターネット経由で送信されます。詳細 ここ および ここ

b.2。ユーザーは電子メールを開いて、自分の隣に立っている/カメラの後ろに立っている誰かに誤ってプレーンテキストのパスワードを公開する可能性があります。


また、技術的な観点から、最初にデータベースに保存せずに何かを電子メールで送信しようとして、操作が失敗した場合(ネットワークの問題、サーバーの問題、ソフトウェアの問題)は、データベースからの操作を保留して再試行します。それ以外の場合、システムは不整合な状態のままになります(たとえば、電子メールが送信された、アカウントが作成されなかったか、アカウントが作成された、電子メールが送信されなかった)。

95
Danny Varod

パスワードはプレーンテキストでどこにも保存しないでくださいユーザーの電子メールの受信トレイを含む。メールが侵害された場合、または間違ったメールアドレスを入力して他の誰かがパスワードを受け取った場合はどうなりますか?

34
bendataclear

しないでください。

数年前に(myfirstname)@ gmail.comに引っ掛かりました。私の名を共有する他の人が何人かいて、彼らは時々彼らのメールアドレスが(myfirstname)@ gmail.comではないことを忘れています。その結果、私の名前を持つ他の人の個人情報のコレクションをかなり受け取った。パスワード、カタツムリのメールアドレス、生年月日、社会保障番号(または米国以外の女性の場合は同等)、セキュリティの質問への回答などのデータを受け取りました。私は、ある女性の銀行に電話して、銀行の明細書を私に電子メールで送信するのを止めさせる必要がありました。

ユーザーは自分のメールアドレスを知っていると思うかもしれません。私もそうだと思います。しかし、私が受け取ったNadyneという他のさまざまな女性に関する個人情報の量を考えると、私たちが望むほど正確ではありません。

17
nadyne

ユーザーがサービスに登録するときに、パスワードのコピーをユーザーに送信する理由はありません。

評判の良いウェブサイトはそれをしません。 FacebookまたはStackOverflowに参加しても、参加後にパスワードがメールで送信されることはありません。必要はありません。ユーザーがパスワードを思い出せない場合は、安全なパスワードストレージアプリを使用してパスワードを覚えることができます。

一般的なパスワードリセットオプション(パスワードをリセットするためのリンクをメールで送信するオプション)を提供すれば、問題ありません。

9
Andrew Leader

彼らが過去に岩の下に住んでいなかった場合を除いて、平均的なユーザーは、電子メールが安全な通信形態であると想定すべきではないことを認識しておくべきだと思います。メディア( Snowden revelationsHeartbleed )には、オンラインセキュリティに関連する注目すべきことがたくさんあります。

ユーザーがこれに気づいていない場合、ユーザーはとにかく電子メールでパスワードを予期することはありません。ユーザーがこれに気づいている場合は、このようなパスワードを受け取るのは少しおかしいと思うでしょう。私はこれについては注意を怠り、パスワードを電子メールで送信することは避けます。

5
Franchesca

最初と最後の文字など、パスワードの一部のみを送信するのはどうですか? OMGSWAGpasswordBlazeIt420!!!O***!として返される可能性があります

このようにして、ハッカー/ボットにあまり助けを与えることなく、人々にパスワードのヒントを与えます。同じ量の文字を返さないことを確認してください。

2
Tom

2000年以前のWebサイトは通常、このようにしていた

  • ユーザー名とパスワードを要求します。メールは必要ありません
  • パスワードはプレーンテキストで保存され、登録確認メールにはパスワードが含まれています
  • セキュリティの質問に正しく答えることにより、パスワードを取得できます。

このファッションは2000年頃から放棄されているので、この古いファッションには従うべきではありません。

0
Jhz832

Webサイトにパスワードをリセットするためのリンクを送信するための「パスワードを忘れた」機能があると仮定すると、彼らは私の電子メールシステムより安全ではないため、私のパスワードを私に電子メールで送信しても問題はありません。

パスワードはプレーンテキストとして保存されていると想定する必要がありますなど、Webサイトごとに異なるパスワードを使用することも忘れないでください。

ただし、ランダムなパスワードをメールで送信し、登録時にパスワードの入力を求めないようにしたので、ユーザーがパスワードを再利用することによる問題は少なくなります。

0
Ian

これに関するWeb開発者およびデザイナーとしての私の考え:

  1. セキュリティのためにパスワードを暗号化する必要がありますが、本当に必要な場合は、暗号化されていないパスワードをユーザーに送信できます。暗号化して保存する直前に、プレーンなパスワードでメールを作成して送信することで、これを行うことができます。

  2. 電子メールでプレーンなユーザーパスワードを送信することは、侵害される可能性があるため、最善の方法ではありませんが、チェックマークの形式でユーザーのオプションとして提供すると、ユーザーエクスペリエンスを向上させることができます。また、入力を忘れないように、入力するときにパスワードを書き留めるようユーザーに思い出させることもできます。

0
D G

技術的には、ユーザーが入力するフィールドを除いて、オープンフォーム内のどこにもパスワードが存在してはなりません。

セキュリティシステムは、パスワードの ハッシュ のみで問題ありません。これにより、システムがパスワードが有効であるかどうかを確認できるようになります。

パスワードを未加工の形式でユーザーにメールで送信すると、このパスワードは複数のシステムによって処理され、それぞれが権限のないシステムや人物にパスワードを公開する可能性があります。

ただし、usabilityに関しては、ユーザーが自分の目でパスワードを確認できるようにした方がよい場合があります。そのための一般的な方法は次のとおりです。

  1. 星を表示する代わりにパスワードを表示するオプションをユーザーに提供します。

  2. ユーザーのパスワードを入力した直後に表示します。この方法は、「マスターパスワード」に役立ちます。

これは、「CAPS LOCK」や間違ったキーボードロケールなどの一般的なパスワードの間違いを回避するのに便利です。

ユーザーにパスワードの再入力を求める非推奨のアプローチもありますが、それは機能しません-ほとんどの場合、ユーザーは間違ったロケールまたはCAPSでパスワードを再度入力し、彼が念頭に置いていたパスワードでシステムにログインできなくなります。

0
setec