さっそく見てみましょう。まずはログイン画面です。パスワード欄の下側に、「伏せ字にせず入力」ボタンが見えます。
まずはこのままでメールアドレスとパスワードを入力してみましょう。デフォルトでは、パスワードは伏せ字になりますね。
ここで「伏せ字にせず入力」のボタンを押すと、入力中のパスワードが表示されます。メールアドレスとパスワードは例ですので、まねしないように。
「元に戻す」ボタンを押すと、伏せ字に戻ります。
僕はこれを知って興奮しました。なぜなら、拙著「体系的に学ぶ 安全なWebアプリケーションの作り方」には以下のように書いたからです(P337~P338)。
パスワード入力欄のマスク表示は、現在の常識的なガイドラインですが、実は筆者自身は疑問を持っています。パスワード入力欄をマスク表示にすると、記号や大文字・小文字交じりの安全なパスワードを入力しにくくなるので、利用者は簡単な(危険な)パスワードを好むようになり、かえって安全性を阻害するリスクの方が大きいのではないかというのがその理由です。こう書いたものの、同書執筆時には、現物のWebサイトの例を示すことができませんでした(良く探せばあったかもしれません)。COOKPADのスマートフォン向けサイトは、私の予言(?)を完全に満たしていますね。
【中略】
パスワード認証の最大の脅威は、インターネット越しの総当たり的な攻撃であり、その対抗策は良質なパスワードを設定することに尽きます。そのため、今後は「パスワードの文字を表示する」チェックボックスを備えるWebサイトが増えるかもしれませんね。ただし、ブラウザのパスワードの自動補完機能により画面表示の初期状態からパスワードが設定されている場合があるので、他人が見ている場でいきなりパスワードが表示されると困ります。このため、「パスワードの文字を表示する」チェックボックスの初期状態はオフになっていることが条件です。
パスワードの取り扱いについては、「定期的に変更するべきか」、「どう保存すればよいのか」、「入力中のパスワードは表示するべきか」という3大論争(?)がありますが、COOKPADのこの実装は、「パスワードを見せる」先駆的な取り組みと言えそうです。
もっとも、ケータイ(フィーチャーフォン)向けのサイトでは、パスワードを表示させる例は珍しくありませんでした。これは、テンキーでパスワードを入力するのが難しい機種があったからだと思います。いきおい、モバイルバンキングでもパスワード代わりに4桁暗証番号というサイトが珍しくないわけですが、これは本当に本末転倒だと思います。良質なパスワードを利用者につけてもらうことこそが第一優先であって、その次に、入力中のパスワードをのぞき見されない工夫をすべきと考えます。
というわけで、COOKPADの取り組みは素晴らしいと感じました。
追記(2012/06/26 19:10)
つい興奮して手放しの絶賛をしましたが、注意すべき点もあります。この点についてご指摘をいただきました。パスワードフィールドを伏字にしない話、理念としては頷けるのだが、現状で徳丸さんの提案に従ってサイト側で実装するのは考えものかもしれない。問題は2種類ある。ひとつはアクセシビリティ、ひとつは特定環境におけるパスワード漏洩リスクの増大。さらに実装がばらつくことによる実効性の低下も懸念される。やはりこの手の基本的な UI の改良はブラウザ側で行われることが望ましい。【後略】続きを読む詳しくはkokuboさんのエントリをお読みいただくとして、このような試みは始まったばかりですので、本当にどう実装するのがよいのか、見落としているリスクはないのかという検討が必要だと思います。ご指摘ありがとうございました。
[PR]
「安全なWebアプリケーションの作り方」DRMフリーのPDFによる電子版もあります。
[PR]
7月5日インフィニテック社のセミナーで基調講演します
機能としては素晴らしいですね!
返信削除ただ、UI は「伏字:ON/OFF」と、チェック形式にした方が「何がどういう状態にあるのか」が、明快だと思いました。ボタンのままでいくとしても「元」だけだと、何がどのレベルまで戻るのかはっきりしないので、せめて「元に戻す」という表記を「伏字にする」とした方が良い気がしました。
個人的には「伏字」って言葉で表すこと自体が適切じゃないと思います。「●●●●」って表示されることが、伏字って単語にイメージとして繋がってる人が、どれだけいるでしょうか。OLさんとか主婦とかが多いサービスなので、その人達が「●●●●」って表示をなんて言うかを考えるとわかりやすいですかね。正解が何かと言われると具体的には分からないですが、多分グラフィックになるんじゃないかなと思ってます。
削除疑問なのはアカウント作成などでよく見られるメールアドレスを2回入力
返信削除なんかもそうですね。
疑問に思う理由はセキュリティとは違いますが、結局のところ、疑うことなく
設計するというところに問題があるという観点では共通なんじゃないかと。
疑くことなくというところに既にセキュリティホールは潜んでいると思いますし。
疑うことなくよくあるデザインを踏襲するならソフトウェア技術者は不要かもしれません。