ユーザーへのパスワードハッシュとサポート


10

私たちは最近、より良いパスワードストレージ戦略に移行しました。

  • パスワードはbCryptを通過した後に保存されます
  • アカウントの作成時に、アドレスの所有権を確認するためのアクティベーションリンクがユーザーに送信されます
  • セキュリティの質問なしにパスワードを忘れた場合、リンクがメールに送信されます。
  • リンクは24時間後に期限切れになり、その時点で新しいリンクをリクエストする必要があります。
  • アカウントがスタッフから作成された場合、ランダムな強力なパスワードが含まれたメールが送信されます。ユーザーのログイン時に、それを私たちが知らない何かにリセットする必要があり、それはbCryptされます。

現在、これは「ベストプラクティス」に準拠していますが、これを理解していない、ログインしたいだけの一般ユーザーからのサポートリクエストの量が大幅に増加しました。

私たちはしばしば不満を言うユーザーからリクエストを受けます:

  • パスワードが間違っている(リセットする必要があるものから、末尾にスペースを付けてパスワードを貼り付けることが多い)。彼らは彼らが何を使っているかを私たちに伝えますが、私たちは彼らに実際のパスワードが何であるかを伝える方法がありません。
  • Googleから送信されたメールを受け取っていない(アクティベーション、リセットなど)とします。多くのトラブルシューティングの後、通常はメールにタイプミスがあること、彼らが正しいメールアカウントをチェックしていないこと、または単にスパムフォルダーに入っていることを発見した多くのトラブルシューティングの後、これはしばしばそうではありません。

もちろん、パスワードがないので試してみることはできません。失敗した試行をログに記録していますが、それらが使用したパスワードもクリアしています。これは、別のアカウントで使用されているパスワードである可能性が高く、プレーンテキストのログファイルに保存したくないためです。これは、彼らが問題を報告するときに彼らを助けるためにほとんど何も残しません。

ほとんどの人がこれらのような問題にどのように対処するかについて私は興味がありますか?


2
システムがユーザーに送信する電子メールをもう少し詳しく説明することを除いて、ベストプラクティスを維持しながら何ができるかはわかりません。あなたはあなたが愚かなユーザーを平手打ちできることを望むようになります。
バーナード

1
人々は愚かです、あなたのユーザー、他のほとんどの人よりも、私はここに質問を見ませんか?

8
Jarrodはユーザーを侮辱しているだけです。ここで愚かなのはあなたです。ユーザーのコンピュータリテラシーのレベルを理解できません。犯罪者ではないが、あなたはコンピュータオタクではない人々のためのソフトウェアを書いている。疑問がなければ、おそらくそれは実際には必要ないため、そこにいるすべてのユーザビリティ専門家が解雇されることを意味します。それは単に「愚かな人々」の問題なので、私たち-賢い開発者はそれらをWebから禁止するだけで問題はなくなります:)作者だけが使用できるシステムを誰かが書いたとしても、問題はありませんか?
Slawek、2012

2
@Slawek:いいえ、本当に、人々は愚かです。
ブライアンベッチャー、2012

@JarrodRoberson、それは彼のユーザーだけではありません-一般に公開されているWebアプリケーションを扱うとき、それは一般的にあなたが得るものです。とはいえ好むと好まざるとにかかわらず、サポートリソースを消費し、非常に有効な質問です。
GrandmasterB

回答:


7

パスワードが間違っている(リセットする必要があるものから、末尾にスペースを付けてパスワードを貼り付けることが多い)。彼らは彼らが何を使っているかを私たちに伝えますが、私たちは彼らに実際のパスワードが何であるかを伝える方法がありません。

代わりに、ログインしてパスワードをリセットするように強制するワンタイムGUIDのリンクを含めることで修正できます。ユーザーにコピーと貼り付けを強制しないでください。(また、フォームのパスワードの最後にある空白を削除しないでください。)

Googleから送信されたメールを受け取っていない(アクティベーション、リセットなど)とします。多くのトラブルシューティングの後、通常はメールにタイプミスがあること、彼らが正しいメールアカウントをチェックしていないこと、または単にスパムフォルダーに入っていることを発見した多くのトラブルシューティングの後、これはしばしばそうではありません。

送信メールがスパム解除されていることを確認し(おそらくいくつかの一般的なメールサービスでテストアカウントをセットアップします)、発生したことをすべてログに記録し、ユーザーが新しいリセットを要求した場合にユーザーに報告します(johndoee @ gmailへのメールなど)。 .comが失敗し、ユーザーが見つからなかった、それを正しく綴ったか?また、スペルとスパムの問題についてユーザーに明確にしてください。

また、他の人が言ったように、OpenIDや他のサードパーティの認証もオプションです。


一部の人々は自分のパスワードにスペースを入れますか?
soandos

一部の人々は、自動生成されたパスワードをカットアンドペーストし、最初と最後に誤ってスペースを含めます。(質問を読んでください。)
Macke

3

Facebook、OpenID、Googleなどのサードパーティの認証方法を使用すると思います...ユーザーにとって適切なものなら何でも。ただし、ユーザーがパスワードを思い出せない場合、サードパーティの認証システムを使用できない可能性があります...

状況によっては、SSLクライアント証明書などの別のシステムを使用できる場合があります(エンドユーザーにインストールするのは間違いなく困難ですが、これが会社であり、インストールを自動化できる場合は、すばらしいです)、Windows SSO、モバイルアプリなど


クライアント証明書はひどい考えです。それらは安全ではなく、何か問題が発生した場合にリモートで修正するのは悪夢です。OpenIDのはかかわら良いアイデアです
トム・スクワイアーズ

証明書はどのように安全ですか?
バーナード

@bernardそのPCにいる誰もが証明書を持っています。ウイルスとの出会いも非常に簡単です
トムス

1
それらが常駐しているマシンと同じくらい安全であることに私は同意しますが、それはまったく別の問題です。
バーナード

3

あなたもそれをしている必要がありますか?最初に行う必要があることは、何を保護し、誰から保護するかを決定します。たぶん、それはベストプラクティスのコストに見合うだけの価値はないかもしれません。

あなたがNSAに反対していて、彼らが望むものを持っているなら、あきらめて、ユーザーの生活を楽にします。クレジットカード番号を持っている場合は、必要なレベルのセキュリティに必要な問題に耐えなければなりません。それを望む悪意のある人がいて、お金と時間をかけてそれらを入手するからです。それは家族の写真アルバムへのアクセスです、あなたはそのすべてのセキュリティが必要ですか?

セキュリティを理解するための良い出発点として、Buce Scheinersの作品(Secrets and Lies)を読んでください。


3

飛び出す最初の事柄はあなたの電子メールがジャンクメールに入るということです。メールが本物と認識されるように設定するのは簡単ではありません。メールのフラグが正しく設定されないようにする方法を検討することをお勧めします(別の質問ですか?)

私がお勧めする2番目のことは、パスワード回復メールを開始するワンクリックWebサイト/アプリをユーザーに提供することです。電子メール以外の方法でそれを行うことを拒否します。それは安全ではなく、悪い先例を設定します。


電子メールは機密情報を送信するための特に安全な方法ではありません。通常のユーザーだけがGPGとsshキーに悩まされる可能性がある場合...
tdammers '25

@tdammers私はそれがそれほど安全ではないことに同意します。しかし、それはあなたのオンラインIDの重要な要素になっています(良くも悪くも)。現在、より良い実行可能な代替手段はありません。
トムスクワイア、

はいあります。暗号化された電子メール。私はいつもそれを使っており、巨大な企業でさえ、機密性の高い電子メールにpubkey暗号化を提供することに煩わされていないのは不愉快です。実装するのも難しくありません。機密情報にSSLを必須にする法律が(少なくともここオランダでは)存在するのは奇妙ですが、同時に、同じ情報をプレーンSMTP経由で送信することは許容できると見なされます。
tdammers 2012

@tdammers私はそれを自分で推薦するのに十分なほど知りません。反抗的に価値のあるOPを調べてみる
トム・スクワイアーズ

2

彼らがあなたに電話をかけ、彼らのパスワードを大声で伝えようとするという事実は、これらのユーザーにとって、パスワードとそれが保護する情報はそれほど大したことではないことを教えてくれます。銀行のパスワードを使ってこれらのことをすることは決してありません。しかし、本当に価値のないものにパスワードを要求するサイトはたくさんあります。これらすべてに使用する標準パスワードが1つあり、「強力なパスワードではありません」または「パスワードを作成して定期的に変更するよう強制する」などのように、使用したくないそのサービス。私はあなたの人生の「ビジネスバリュー」の人々と短い会話をして、実際に彼らをプレーンテキストでdbに保持し、リクエストに応じて人々にメールすることがより良いアプローチであるかどうかを確認します。

これが実際にこれで安全であれば、私たちがコード化したシステムで私のクライアントの1人が何をしたか試すことができます。人との電話中に、dbに移動し、メールアドレスを自分のものに変更します。次にWebにアクセスして、「パスワードを忘れた」をクリックします。電子メールを待ち、それを使用してログインします。Webサイトを使用して、パスワードをパスワードなど、お客様と口頭で同意する何かに変更します。メールアドレスを自分のアドレスに戻し、「設定が完了しました。新しいパスワードが有効になりました!」幸せなお客様であり、何が起こっているのか説明する必要はありません。


2
データベースの直接変更は、それ自体がセキュリティ違反です。つまり、システムを使用しているすべてのユーザーに成り代わることができます。
バーナード

3
私のクライアントには、ユーザーが任意のフィールドを編集できるWindowsアプリがありました。たとえば、新しい電話番号を持っているというファックスを受け取った場合などです。もちろんそれは監査されました。もちろん、この書かれた手順がサポートデスクの近くの壁にテープで貼られているのを見たとき、私は幸せではありませんでした。しかし、私はそれを受け入れるようになり、誰かが電話をかけ、パスワードが同意なしにリセットされたと訴えた場合に何が起こったかを示す監査証跡があります。問題は、すべてがこの安全である必要があるわけではないということです。そして、ユーザーは、これは必要ではないとあなたに言っています。
ケイトグレゴリー

1
残念ながら、ほとんどのユーザーは何もよく知りません。ベストプラクティスを実施するかどうかは、ソフトウェアアプリケーションの開発者次第です。
バーナード

4
これは大きなセキュリティホールであることに同意します。そして、それ最も適切な解決策かもしれないことに同意します。ただし、カスタマーサポートがユーザーのパスワードをリセットするために一時的にカスタマーのメールアドレスを変更する必要があることは、信じられないほどばかげているように思われます。カスタマーサポートにパスワードのリセットを許可する場合は、直接ユーザーに許可してください。
John Bartholomew

4
また、ユーザーが設定したプレーンテキストのパスワードを明らかにすること(実際には、パスワードをプレーンテキストで保存すること)は、ユーザーサポートにユーザーパスワードを直接変更する機能を提供するよりもはるか悪いと私は思います。
John Bartholomew、

2

過去に文盲のユーザーがいるシステムで最後に使用した方法は、電話番号と確認番号が表示される画面にユーザーを誘導することでした。彼らは電話番号に電話し、手動で自分の身元を確認し、確認を読みました。サポート担当者は別のシステムにログインし、番号を入力して、クライアントに返すための2番目の番号を取得しました。クライアントは2番目のコードを使用して、パスワードのリセットページに進みました。クライアントバージョンのページをサポート担当者のサブネットから実行できず、サポート画面をクライアントから実行できませんでした。

サポート担当者がvpnを使用して1つの場所から両端を実行できるため、完全ではありませんが、サポートアカウントがアクティビティの責任者としてログに記録されたため、監査には十分でした


-5

おそらく、狂ってはいないセキュリティルールを実装することによって。これを行うと、システムが非常に使いにくくなり、クライアントがあなたとその友達にパスワードを再確認して機能させるだけになるため、実際に得られるのはセキュリティの低下です。

通常のリンクを送信し、次にパスワードを送信することはできません。リンクがメールクライアントで壊れた場合は、「アクティベーションコード」というフィールドを1つだけフォームに表示します。クレジットカードの場合は数字でも問題ありません。単純なログインには非常に複雑なポリシーが必要ですか。コードが機能しない場合は、TRIMmed文字列でチェックを繰り返しますか?安全性が低下することはないと思いますよね?:)

私にとっても頻繁に発生します...パスワードをダブルクリックすると、末尾のスペースがコピーされます。チェックが失敗したときにpepleが最後の白い文字を削除するだけで理解できず、プロセスを繰り返すことができないのはなぜでしょうか?次に、誤ってCLを押さなかったかどうかを確認するために、大文字と小文字を切り替えます。

あなたはそれをとてもひどく複雑にしています。「パスワードのリセット」や「初期パスワード」ではなく、「確認コード」と「メールで送信した確認番号を入力」、「メールがない場合はxxx@yyy.comに送信されました。確認してください」もう一度あなたのスパム、それを持っていない?確認メールを再送してください。」HTML本文にはリンク。http://xxx.com/conf-12345-mymail-gmail-com.html。これを壊すメールクライアントはありません。


5
彼が述べたセキュリティポリシーは「非常識」であるだけでなく、すべての「正味」アプリケーションの要件であるはずです。電子メールで送信されたこのようなリンクは、パスワードがリセットされるのを防ぐためにしばらくしてから期限切れにする必要があります(リンクを直接盗むか、コンピュータ支援アルゴリズムでつまずく)。ただし、パスワードは検証前に削除する必要があります。ユーザーは愚かです。それは法律です。答えは、セキュリティ対策を減らすことではなく、ユーザーが適切な手順を確実に理解できるように積極的な対策を講じることです。
Dalin Seivewright、2012

7
-1。これは、ほとんどのサイトで使用されている正しい方法です。サイトで「パスワードを忘れた」の場合、パスワードをプレーンテキストでメールで受け取ったら、アカウントを閉鎖します。
Matt Grande、
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.