ログインIDについては、サイト内でユーザー名が表示されるので、セキュリティ的には(a)のほうがいいかと思っていますが、ユーザービリティを考えると、(b)も捨てがたいと思っています。
パスワードについても同じようにセキュリティ視点で(A)(B)を悩んでいます。
皆さんがよく利用するサイトのログインフォームなどを考えてみて、(a)と(b)どちらがよいと思いますか?個人的には、(a)-(A)の組み合わせがよいと思っています。
サイトの内容は、amazonくらいに個人情報を保持しているサイトです。
amazon程度というと本名・住所を含む個人情報ですよね。
私も(a)-(A)に一票です。
頻繁に使わないサイトですと、(b)の場合でもIDに確信がもてず結局メールアドレスでログインしてしまうことが多いので、
個人的にはそうユーザビリティに差はないです。
パスワードは字数制限(○文字以上)もあった方がベターだと思います。
セキュリティ的にベストは(a)-(A)でしょうね。
メールアドレスでログイン(ユーザーIDとして使う)するメリットはユーザーIDの重複チェックが登録の時に不要という事も挙げられますね。
一旦、登録してもらってから表示されるユーザー名を選んでもらえばいいので最初の登録する行為に誘導しやすいです。
さらにログイン用のIDはメールアドレスではなく表示用のユーザー名とは別のIDを使うとセキュリティ的にはいいのですが、再ログインしてもらえなくなる可能性は高いですね。
パスワードについては私はパスワードの文字を強制されるのは好きではありませんが、パスワード忘れの場合にメールアドレスを打ち込めばそのアドレス宛に再ログインのための毎回異なる文字列のURLが送られてくるタイプの仕組みが用意してあれば特に問題無いと思っています。
そのようなサイトでは私自身もパスワードは覚えずにその都度パスワード忘れのインターフェースを使ってログインすることで対応しています。
ですので個人的には(a)-(B)が好みですが上記の条件が付けば(a)-(A)でも問題ないです。
詳細に回答ありがとうございます。(a)にした場合も、ユーザー名をユニークにするか、日本語を許可するかなど、悩みは多いですね。他の方のご意見も募集しています。
メールアドレスが個人情報であるという立場で回答します。
「amazonくらいに個人情報を保持している」とのことですので、サービス提供上、メールアドレスが必須であり、サーバ側で厳重に保管されているという前提を置きます。(ログインのためだけにメールアドレスを取得するのは、個人情報保護の観点から問題があります)
であれば、私も (a)-(A) の組み合わせが無難だと思います。
さて、ログイン画面は最も頻繁に使われるので、入力された情報が盗聴されないように留意しなければなりません。
ログインにメールアドレスを用いる場合、盗聴されないようにするために、SSLなどで送受信情報を暗号化する必要があります。
ただ、自動ログインをしたくてSSLを嫌うユーザーもあるので、ログイン画面でユーザーがSSLの有無を選択できるようにした方がいいでしょう。
原則に立ち返ると、ログインにIDとパスワードの2組みが必要な理由は、IDはユーザーの「識別」、パスワードはユーザーの「認証」を行うためです。識別と認証が同時に行えるという点で、ID/パスワードは優れた方式だとされています。
したがって、IDはユニークなものでなければなりません。
ここで、IDをユーザー名にした場合、ユニークであるかどうかを保証するのはサービス提供側になります。一方、IDをメールアドレスにした場合、それがユニークであることを保証するのはユーザー自身です。したがって、IDにメールアドレスを利用することによって、サービス提供側はリスクを1つ減らせることができます。
ただし、メールアドレスでユーザー登録する場合は、メールアドレスを登録後、登録メールアドレスに本登録をさせるための電子メールを送り、ユニーク・ユーザーが存在することを確認する必要があります。
パスワードについては、辞書アタックを避けるため、英数字の組み合わせが推奨されています。
長さについても、8~16字のように、ユーザーが自由に選べるようにしたらどうでしょうか。
蛇足ですが、パスワードのリマインド機能は定石とされていますが、個人的には、認証情報の漏洩リスクが高まるのでお勧めはできません。登録メールアドレスに、パスワードを再登録させるためのメールを送った方がリスクを低くできます。もちろん、再登録URLはハッシュで発生させてください。
これはユーザーに手間暇をかけることになるのですが、パスワードの重要性を認識してもらうためにも、そういう手順を踏ませた方がいいような気がしています。
いつも大変参考になるアドバイス、感謝します。概ね頂いたアドバイス通りの設計ができております。
サービス運営上メールアドレスは必須です。「厳重」をどのレベルに置くかによりますが、一般的なセキュリティのDBへ保存します。
a-Bもしくはb-Bがいいですね。
ユーザ認証や重複チェックはaでもbでも差はあまり無いように思います。
メールアドレスは連絡を取る用のもので、
公開されてもおかしくないですし、ユーザ名も表示されちゃってもしょうがない気がするので。
なにを公開するのかによりますが。
パスワードで英数字を含むようにするのはセキュリティはあがりますが、
文字数を何文字以上の制限だけの方が良いです。
ユーザを集めたくないなら良いですが、
セキュリティ要件が証券・金融のようなレベルで無い限り
ユーザビリティの方を優先した方が良いと思います。
今回はどのような内容のコンテンツの認証かないので
はてなと同レベルのセキュリティコンテンツと考えてこのような回答になります。
ありがとうございます。金融系ではない限りセキュリティを優先すべきというのは大変悩まされるポイントです。
ご回答ありがとうございます。字数制限はあったほうがいいですね!