見出し画像

【UI/UX談義】 ワンタイムパスワードの入力項目をパスワードタイプに設定する必要があるか?


こんにちは。CATエヴァンジェリスト・石井優でございます。

(情報)統合型ソフトウェアテスト管理ツール「CAT」について 現在SHIFTが提供するCATとは、テストの実行管理に主眼を置いた正式名称「CAT TCM(Test Cycle Management)」という製品を指します。ケースと実行結果・エビデンスの管理、及びプロジェクトの進捗管理や品質分析を担うツールです。詳しいご紹介はぜひ製品HP をご確認ください。

今回は、ワンタイムパスワードの入力項目の表現についてのお話です。

CAT開発チームでは日々機能開発時に様々なディスカッションをして、どうしたら良い機能をお届けできるかを討論しています。

今回はCATのログイン時におけるワンタイムパスワード機能追加の局面であったディスカッションを紹介します。

ベーシックで些細な話ではありますが、UI/UXを考える上でのヒントになればと思います。

OTPはマスクする必要があるのか?


現在CATではログイン時のワンタイムパスワード機能(2ファクター認証)を設計しています。

認証時、メール宛にワンタイムパスワードを送信し、そこに記載されたパスワードを使い本人確認を行います。

その上で入力項目にはパスワードタイプの設定をするかどうか?という議論がありました。

こんな感じで入力した数字をマスクするか否か?パスワードの一種なので隠したほうが良いのでは?という議論です。

結果としては隠さずそのまま表示させることになりました。

直感的には大体のプロダクトでは表示していることが普通という感じはありますが、議論になった以上それがどうしてそうなっているのか?を考える必要があります。

次のように考えました。

パスワードフィールドはそもそもなぜマスクするのか?


まずパスワードフィールドがなぜ*とか⚫︎で隠されるのでしょうか。

これはショルダーハッキングをブロックするためです。

ショルダーハッキングとは、ショルダー(肩)の背後から覗き見する物理的にパスワードを盗み取る行為です。

もしパスワードを慣れない手つきでせっせと打っていたとき、後ろにパスワードを盗み取りたい人がいたらどうでしょう。パスワードのすぐ上に書かれているIDとパスワード、どちらもそのまま表示されていた場合。盗み取りたい人は目で見るかカメラで撮るかして盗み取っていきます。

だからパスワードは古来からマスクされているわけですね。

マスクすることでの弊害


反面、パスワードフィールドというのは入力ミスを誘発する材料でもあります。

自分があっていると思っているパスワードを打ってもパスワードの入力が誤っていたということは誰しもありますよね。

ソフトウェアのサポートをしているとログイン画面というのはなかなかシビアなもので、パスワードマネージャーなどを利用せずに入力をするとかなりの確率でミスをするという体感があります。

文字を入力するときに関わる要素としては次のように多いからと考えています。

  • caps lockがONになっていて英大文字が打たれる
    小文字を打っていたと思ったら全部大文字だった

  • 誤って全角で打っている
    たまにパスワード欄でも全角を打ってしまうIMEがあると認識しています。

  • コピペしたと思ったらしてない
    メモ帳などからコピペしたと思ったらできてなくて全然違うものを貼り付けていた

  • タイポ
    o(オー)と0(ゼロ)など間違いやすい文字やキーボードの隣の文字を打っていた

(小ネタ)住信SBIネット銀行さんは大文字小文字のタイポの観点からかログインID、パスワードは大文字小文字の区別をしていません。exampleでもeXampleでも同一の文字列として扱い認証に使います。 参考:https://help.netbk.co.jp/faq_detail.html?id=1120

ましてや表示されているメールアドレスでさえ、正しく入力したと思ったら - とか . とか入力し忘れて正しく認証できないということも多々あります。本当に多い。

そのため、自分が打ったパスワードを一時的に確認できるようになっているサービスもちらほら出てきました。(これがあるだけでもサポートコストが軽減しそうですね)

打ち間違いという観点ではパスワードは見えたほうが良い時もあるということとも言えそうです。

それでもパスワードについてはショルダーハッキングの観点からマスクせねばならない、だから全てと言っても良いパスワードの項目はマスクされています。

なぜか。

パスワードは有期で変更があったとしても、原則その期間は固定であり盗み取って使えてしまうからです。

ここにつきます。

ワンタイムパスワードはマスクする必要がない理由


さて、ここらで元の議論に戻ることができます。

ワンタイムパスワードはマスクする必要があるでしょうか?

この問いは次のようにも置き換えられます。

ワンタイムパスワードを盗まれたとして使えるのか?

答えはNO。

パスワードが有効なのは数分だから

ワンタイムパスワードの名の通り、このパスワードが有効な期間はほんの数分です。

仮に攻撃する意図を持ちIDとパスワードを知っていたとして、人間によるショルダーハッキングという観点でこのワンタイムパスワードを盗み使うには

  • 一日中その人を監視してログインしたタイミングに居合わせる

  • ついでにログインしたら即座に一緒にログインする

ということが必要です。 ログイン操作をするタイミングというのはだいぶ限られていますので、そのタイミングを見計らって監視をするのは相当な労力です。

そもそもそうした攻撃の意図がない人が、ショルダーハッキングによってワンタイムパスワードを知ったとしても、すぐに使えなくなってしまいます。だからマスクする必要がないわけです。

打ち間違いをなるべく無くす必要があるから

その上、ワンタイムパスワードは毎回違うのでパスワードマネージャーに登録しようがありませんから手で打つ必要があります。

いくら数字数桁であっても先の通り、手で打つ場合はタイポの可能性が大きいですのでマスクせずに見えていたほうがユーザーとしても確実なものを入力できます。

ワンタイムパスワードはマスクする必要がない理由にはこういう背景があるということでした。

ではでは!


執筆者プロフィール:石井 優
倉庫事業企業のシステム部門にて、基幹システムの開発・保守・導入及び大規模基幹システム移行への参画を経験し、2015年SHIFTへ入社。 CATエヴァンジェリストとして、ツールだけでなくプロジェクト管理プロセスに関する紹介や提案など幅広く活動中。CATやTDのことに興味があればいつでもご連絡ください!

《おすすめマガジン》


SHIFTへのお問合せはお気軽に

SHIFTについて(コーポレートサイト)
https://www.shiftinc.jp/

SHIFTのサービスについて(サービスサイト)
https://service.shiftinc.jp/

SHIFTの導入事例
https://service.shiftinc.jp/case/

お役立ち資料はこちら
https://service.shiftinc.jp/resources/

SHIFTの採用情報はこちら
https://recruit.shiftinc.jp/career/

PHOTO:UnsplashTowfiqu barbhuiya