パスワードは隠すべきか?
Webユーザビリティの第一人者と言われているJacob Nielsen(ヤコブ・ニールセン)氏が、自身のコラム「Alertbox」の中で、「Stop Password Masking」という興味深い問題提起をしています。通常、ウェブサイトなどでパスワードを入力すると、画面には入力された文字列が表示されず、代わりに文字の数だけ「黒い点」が表示されます。こうした状況は、「フィードバックをユーザーに提供し、システムの状態を視覚化する」という基本的なユーザビリティ原則に反している、というのです。
さらにニールセン氏は、パスワードを隠すユーザーインターフェース (UI) について、以下のように否定的な見解を述べています。
- 画面上でパスワード表示を隠したところで、本当にスキルのある輩は、入力しているユーザーの手元のキーボードを見ることによって、どのキーが押されているか(どんなパスワードが入力されているか)がわかる。
- パスワードを画面上で隠すことによって、ユーザーが自分の入力内容に自信を持てなくなり、複雑なパスワードを入れなくなる(その結果、セキュリティレベルが下がる)。
ニールセン氏の見解は私自身、そのとおりだと思います。その一方で、以下のような理由から、パスワードは非表示にすべき、という考えもあるかと思います。
- パスワードを非表示にすることで、ユーザーに安心感を与えている。入力パスワードが傍受されるかどうか(適切に暗号化されて送信されるか)と、画面上のパスワードの表示/非表示との間には、技術仕様的には何の関係も無いが、パスワードが画面に表示されると、たとえ暗号化されているページであってもいたずらに不安感を感じてしまうユーザーは少なくないと思われる(その結果、簡単なパスワードを素早く入れようとする心理がはたらき、結果、セキュリティレベルが下がる)。
- 大人数の前でプロジェクターで表示しているシチュエーション(たとえばビジネスシーンでのデモンストレーションなど)では、パスワードを入力する際には非表示でないと都合が悪い。
- 視覚障害(特に全盲)ユーザーがパスワードを入力する際、周囲に覗き見している人がいるかどうかユーザー自身わからないので、(ニールセン氏が言うようにキーボードを盗み見されてはしかたないのだが)リスクの軽減という意味でパスワードは隠されるべき。
上記を勘案しての、現時点での私の意見では、多少の不便はあっても、今の慣例どおりデフォルトではパスワードを非表示にしておいて、ユーザーが任意でパスワードの表示/非表示を選択できる機能を付加するのが良いのではないかと思います。チェックボックスがひとつあれば充分可能なので、画面が煩雑になることはないでしょう。実装例を、「パスワードのマスキングを任意で切り替える」でご紹介していますので、併せてご覧ください。