web-dev-qa-db-ja.com

パスワードから個々の文字を要求する最良の方法は何ですか?

多くの場合、セキュリティを特に重視する必要があるサイト(特に銀行)では、パスワードにいくつかの個別の文字を要求します。

通常、私は彼らがこのようにそれをするのを見ました:

mockup

download bmml sourceBalsamiq Mockups で作成されたワイヤーフレーム

もっと良い方法はありますか?

14
alexmuller

私の解決策は、2つのステップでログインプロセスを完了することです。

  • ユーザー名を尋ねます。正しい場合は
  • 次の画面でパスワードのみを要求するパスワードフィールドを生成します。

enter image description here

2
Salman Ehsan

私は実際にこの素晴らしい例を実際に見たので、答えに飛びつきました。ハーグリーブスランズダウンは英国の金融機関です。その方法は次のとおりです。

Password input screenshot with context

ユーザーにコンテキストを与えるという考えは、これを見るまでは思いもしませんでした。実際には、要求された文字が両端からどれだけ離れているかがわかると、パスワードを入力する方がはるかに速く簡単です。

11
alexmuller

サービスがパスワードのn番目の文字が何であるかを検証できる場合は、サービスが安全でない形式でパスワードを格納していることを意味します。どのサービスもあなたのパスワードが何であるかを知るべきではありません。彼らはあなたのパスワードが認証されるかどうかを言うことができるだけであるべきです。

したがって、パスワードのn番目の文字を要求してはならず、これが正しい文字であるかどうかを評価することはできません。

誰かを認証したい場合は、完全なパスワードを使用安全な方法で保存する必要があります。

9
JohnGB

HSBCは、ユーザー名、パスワード、およびセキュリティキーの組み合わせを使用します。

この実装では、最初にユーザー名を入力します。

次に、パスワードとセキュリティキーからランダムな3つの文字を入力するよう求められます。

mockup

download bmml sourceBalsamiq Mockups で作成されたワイヤーフレーム

このアプローチの利点は、パスワードを安全でない状態で保存する必要がないことです。また、インターフェースは、権限のない人にセキュリティキーの長さを伝えません。

要求されていない文字のインターフェイスに無効なテキストボックスを含めることにより、ユーザーはキーの個々の文字を内部で視覚化する必要なく、Wordをより簡単に「スペルアウト」して正しい文字を提供できます。

問題の実装では、ユーザーが単語を視覚化し、場所を数えて文字を取得する必要があるため、認知負荷がはるかに高くなります。

9
Charles Wesley

安全性が高いだけでなく、ユーザー全体のパスワード、特に任意の文字で構成されているパスワード、またはキーボード上の動きによって定義されたパスワードは、筋肉のメモリによってユーザーに要求されるためです。これにより、ユーザーが特定の位置にあるキャラクターを思い出すことが難しくなります。

6

ここではドロップダウンを使用します。通常のドロップダウンを使用しても、キーボード入力で正しい文字をすばやく選択できますが、タッチキーボードのユーザーやマウスの使用を好むユーザーにとっては簡単です。

2
vincent.io