ヌーラボアカウントのWebAuthn/FIDO対応をチラ見する

f:id:ritou:20190705105729p:plain

こんにちは、ritouです。

不正ログインが起こらない平和な世界を目指す 開発者です(意識高い)。

ちょっと前に「決定!」というプレスリリースに「決定!お、おぅ...」となったことから全てが始まりました。

その後、βテストというものに参加させていただきました。

そして宣言通り、7月1日にリリースされたようです。

どんな感じか見てみましょう。

新規登録

現状では、新規登録の時はパスワードベースです。

f:id:ritou:20190705010548p:plain

登録するとメールによる確認が行われます。

f:id:ritou:20190705010700p:plain

セキュリティ デバイスの登録は「セキュリティ」->「セキュリティ デバイスの登録」と進みます。

セキュリティ デバイスの登録

f:id:ritou:20190705011254p:plain

ローカル認証を必須とする、いわゆる UserVerification=true が指定されているようです。

f:id:ritou:20190705011741p:plain

f:id:ritou:20190705011906p:plain

この後、自分で名前をつけます。

f:id:ritou:20190705012132p:plain

登録完了ですね。

f:id:ritou:20190705012213p:plain

複数登録できて、削除もできます。

セキュリティ デバイスを登録した時に「セキュリティイベント」と言うところに履歴が残されています。 βテストの時に気付きませんでしたが、クレデンシャルの状態変更と言う意味ではこのイベントもメールにて通知する機能があっても良いかもしれませんね。

ログイン

ログインでは、最初にメアドを入力します。

f:id:ritou:20190705012332p:plain

セキュリティ デバイスの登録があればそれでログインするように分岐します。

f:id:ritou:20190705012452p:plain

ResidentKeyによるユーザーネームレスなフローは使っていないようですが、対応状況やユーザーによって認証方式が異なる場合があるケースでは現状の実装で良さそうですね。

パスワード認証、セキュリティ デバイスを用いた認証のどちらからでも、新しい端末からのログイン時には「ログインアラート」が送られます。

以上がヌーラボアカウントにおける登録・認証フローのWebAuthn/FIDO対応です。

PCの画面を紹介しましたが、Android端末とかからも基本的に同じ感じだと思います。

現在のWebAuthnの対応状況において既存の認証方式への影響を抑えつつ、新しい認証方式を取り入れることをシンプルに表現されていると思います。

パスワードレスに向けて

今後、パスワードレスに意識を向けていくにあたり、わずかに残っているパスワード認証への依存を取り除くことで、WebAuthn/FIDOではなくSMSの扱いなど、複数の認証方式に対応できる設計ができると思います。

  • 新規登録 : パスワード/メアド入力の後にメール確認 -> メアド入力してメール確認した後にパスワードの設定/セキュリティ デバイスの登録
  • リカバリー : 登録済みのメアドにメールを送った後にパスワード再設定 / セキュリティ デバイスの削除、再登録を可能にする

参考 : WebAuthn など新しい認証方式を受け入れる際の「アカウントリカバリー」の考え方 - Qiita

関連機能

ヌーラボアカウントには下記の3つの機能があります。

  • ログインアラート : ログイン成功時に登録されているメールアドレスに通知
  • ログイン履歴 : ログイン方法や日時などの情報が保存されており、閲覧可能
  • セキュリティイベント : セキュリティキーの追加などの情報が保存されており、閲覧可能

これらがあれば、最近よく聞く不正ログインなどにも気付けそうですね。

個人的には、セッション管理&破棄の仕組みが「明示的に」提供されているともう言うことありません。

参考 : ユーザー認証の緊急事態に備えて提供しておきたい、セッション管理とセキュリティイベントログについて - Qiita

パスワード認証ではパスワードリセットのタイミングで既存のセッションを切ったりする設計もそこそこ一般的ですが、WebAuthn/FIDOの場合はどうでしょうかね。 この辺りも認証方式とセッション管理の依存を切り離して、ユーザーが任意のタイミングで管理できる形が良いのかなと思います。

まとめ

ヌーラボアカウントのWebAuthn/FIDO対応を見てみました。

  • 既存のパスワード認証に与える影響を抑えつつ認証方式を追加するシンプルな実装
  • 関連機能も揃っており、ユーザーが安心して使えそう
  • パスワードレスへの移行の第一歩として定番の実装形式と言えそう

以上です。

builderscon tokyo 2019にてUXについての話をする予定なので、ヌーラボアカウントについても紹介したいと思います。

builderscon.io

あ、navigator.credentials.* を呼び出したりするときにJavaScriptからFIDO2 Serverっぽいエンドポイントを叩いてるみたいな細かい話を書くのを忘れてました。 別途まとめます。

ではまた。