freeeの開発情報ポータルサイト

おじいちゃんのスマホ操作を見ながら感じた認証のあり方について

こんにちは。認証認可基盤エンジニアのてららです。
最近好きな言葉はコンフォートゾーンです。好きな食べ物はニンジンです。
猫派です。

経緯

週末、パートナーが祖父母の家に帰るということで付き添いをしてきました。
その1つの目的としてパートナーの祖父(以下、おじいちゃん)がスマートフォンを利用していたのに急にスマホアプリから認証を求められて困っている、とのことでそれの解決をしていました。
「なんとか出来ないかねぇ」ということでパートナーがおじいちゃんのスマホを触りながら操作方法を教えつつ、認証情報を探しておじいちゃんに手解きしている様子を眺めていました。
その時、“ログイン”や“ユーザーID”、知識認証情報を紙に記してその紙の管理をしていたところからこのアプリは何をしたかったのか、おじいちゃんが苦労せずにアプリを触るためにはどうあるべきなのかをずっと考えていました。認証認可基盤のエンジニアとして感じたことを記しておこうと思います。

ちなみにてららは極度のおばあちゃん子だったので困っているおじいちゃんおばあちゃんを見ると居ても立ってもいられなくなります。

その時の様子

おじいちゃんはスマホを2年ほど利用しているので普通に使う分には問題ないように見えました。普段はLINEや電話を使ってご家族と不自由なく連絡を取ることができています。ただ、スマホはAndroidのいわゆる“かんたんスマホ”で必要最低限の機能かつ操作感は他のAndroidアプリと若干異なっていました。今回はおじいちゃんがハマっていた“ルーレットのアプリ”が認証を求めてきて、そこから復帰できなくなったとのことです。
パートナーはまずログインするための知識情報の在処を探しました。これはおじいちゃんがスマホを契約した文書の中に手書きで“メールアドレスとパスワード”を記載し、管理されていました。おじいちゃん自身はその認証情報が必要かどうかの判断もできず、かつどこに文書が置いてあるかは全く覚えていませんでした。
パートナーがおじいちゃんのスマホに“メールアドレスとパスワード”を入力しようとしたところ、どうやら求められていたのはパスワードではなくメールを使ったOTPによる認証でした。
おじいちゃんにスマホを操作してもらいながら、「メールはどこにきてるかわかる?」と聞いたところOTPが記載されているメール自体は認識していたようでした。ただ、そのメールに書かれているOTPをどう閲覧しながらどう入力するのかが分からない様子でした。
そうこうしているうちにOTPの入力期限に達したのか、見つけたOTPを入力してもエラーで弾かれていました。
最終的にはアプリ上のメールで送られたOTPを読み取ってくれたのか、特定のボタンを押すと認証を通っていました。

感じたこと

  • ログイン、ログインID、パスワードなど横文字で説明する必要があり、さらにログインIDに至っては何と説明していいのか分からないため本来入力に必要だった“メールアドレス”と説明していました。実際にあらゆるシステムのログインに用いられるIDはメールアドレスであることが多いですが、一般的にメールアドレスをアカウントの識別子にそのまま使うことはよろしくないとされています(IDが不変であることを担保できないので)。ですが、おじいちゃんにログインID(ユーザーアカウント、Identifier、識別子)を説明するにはどうしたらいいのだろう、物理的な言い換えは何が適切だろうと。
  • 知識情報による認証には限界があり昨今ではFIDO/Passkeys等が導入されていますが、ではおじいちゃんが操作する場合はどのような認証手段が適切なのか。知識情報以外では所持情報、生体情報と続くわけですが、スマートフォンやICカードを所持していたところでそれを利用できるか悪用されないか、指紋認証を登録したところでMFA疲労攻撃のような攻撃に対して対処できるのか。
  • OTPによる多段階認証はまだまだ息の長そうな手段ではあるが、前提とする短期間の期限付きについて果たして期限設定は適切にできるか。メールによるOTPの送信(特に通知エリアのプレビューに表示されるOTP)は本当に分かりやすく簡単なのか。
  • ID連携やPasskeysなど今の主流としてある程度のリテラシーをもったユーザーがタイムパフォーマンス的に満足感を得るためにUXが進化してきているが、自システムのエンドユーザーに必要なものは速さなのか、分かりやすさなのか、それとも安全なのか。

本件で取りうる手段

機能制限付きの生体認証

記憶的な限界とメールアドレスのように認知負荷のあがる方式は相性が悪いため、生体認証をベースに考えたい。その場合、生体認証を通ると重要度の高い機能や高度な情報へのアクセスが可能になることが想定されるので、アクセスできる機能制限は厳格に出来ている前提を置かないといけない。
また、生体認証は端末に依存するためアプリケーション側が干渉できる範囲は限定的であります。

代理人による認証または認可

おじいちゃんはご家族との連絡は特に不自由なく行えていて、さらに知らない電話番号等から電話があっても受け取らないリテラシーを持ち合わせていました。そのため、ご家族による代理で認証(おじいちゃんの本人確認 / 証明)をすることは出来るように感じました。
そのためにはご家族とユーザーアカウントを介したデジタル上の信頼関係の構築と、おじいちゃんがご家族のアカウントに対して権限を委譲すること、アクセス制御や権限の剥奪ができることなどが必要に思えます。
余談ですがfreeeにおけるユーザーアカウントと事業所データの関係性に近しいものがあり、組織構造においてリソースオーナーの主体をどこに置くかなど発想が広がります。

おわりに

小難しく考えてしまいましたが、おじいちゃんはルーレットをしたいだけでした。何の本人確認が必要だったんでしょうね。必要最小限の機能提供というのが一番大事なのかもしれません。