こんにちは。Yahoo! JAPAN研究所の大神 渉です。
パスワードの代わりに生体認証などを使うシンプルで堅ろうな認証技術「FIDO」の標準化活動に携わっています。
2020年6月4日に、FIDOアライアンスから私が著者として関わった「White Paper: Multiple Authenticators for Reducing Account-Recovery Needs for FIDO-Enabled Consumer Accounts」というホワイトペーパー(FIDOのベストプラクティスや標準技術の活用に関してFIDOアライアンスが発行する文書のこと)が発行されました。
ヤフーのFIDOアライアンスでの標準化活動の一端にご興味持った方はこちらもご覧ください。今回はFIDOのアカウントリカバリーの課題と、それに対する解決方法をホワイトペーパーの内容と合わせて紹介します。
パスワードのないサービスで、登録しておいたスマホの紛失や機種変更などの場面で困らなくする方法を、FIDO認証で提供することができます。
FIDOアライアンスとFIDO認証とは
はじめに、今回お話する認証の標準技術についてご説明します。
FIDO(Fast IDentity Online、ファイドと読む)アライアンスはパスワードへの依存を減らすことを目的に、2012年2月に発足したグローバルな業界団体です。
FIDOアライアンスは、パスワードの代わりに、指紋や顔などの生体認証を含む、多様な認証方法をログインに適用できるFIDO認証の仕様を策定し、標準化を推進しています。
FIDO認証は、ユーザーが所持するデバイスを使ってさまざまな方法で本人の確認などを行い、サーバーには認証に成功したという情報のみを送信することで、生体情報などをサーバーには渡さない安全な仕組みです。
アカウントリカバリーとは
ホワイトペーパーで扱う課題はアカウントリカバリーです。
アカウントリカバリーとは、普段使っている方法でログインできなくなってしまった状況を、本人確認などを実施して解決する過程を指します。
例えば、前述のようにパスワードで認証しているサービスではパスワードを忘れると「パスワードを忘れた方はこちら」というリンクから登録していたメールアドレスを入力するよう求められます。
このように、本人があらかじめ登録しておいたメールアドレスへ到達したことで本人かどうかを確認することは、アカウントリカバリーの代表的な方法の1つです。
パスワードレス認証のアカウントリカバリー
一方、FIDO認証を導入して、パスワード入力が不要になった場合のアカウントのアカウントリカバリーにはどのような課題があるかを考えてみます。
FIDO認証では、パスワードの代わりに私たちが普段スマートフォンのロック解除などに使っている認証機能を使ってログインできます。(ヤフーではパスワードレス認証とよんでいます)
つまり、デバイスを登録することによってパスワードとは違って忘れたりしないことが1つの大きな特徴です。忘れたりしないのに、アカウントリカバリーの必要があるのかと不思議に思った方もいるかもしれません。
もう少しだけ詳しくFIDO認証時のアカウントリカバリーについて考察してみます。
この図は、FIDO認証でデバイスを登録した状態と、アカウントリカバリーの課題を示しています。
FIDO認証ではスマホなどのデバイスに秘密鍵が安全に格納され、それと対になる公開鍵がサーバーに登録されます。ユーザーの認証に成功したら、この秘密鍵を使ってサーバーに伝えるためのメッセージを作ることができます。
デバイスをなくしてしまう、ということはこの秘密鍵をなくしてしまい、アカウントにアクセスができないという状況です。
例えば、みなさんも登録したスマホをなくしたり、新しいモデルが発売されたら機種変更をして前のデバイスが使えなくなってしまったということを経験されたことはないでしょうか?
これこそがパスワードレス認証におけるアカウントリカバリーにおける大きな課題の1つです。
アカウントリカバリーをする必要がなくなる
FIDOはEメールなど他の方法を利用した従来的なアカウントリカバリーの存在は認めつつ、それよりもFIDOのセキュリティとユーザビリティーを生かしてアカウントリカバリー自体の機会を少なくすることを推奨しています。
Recommended Account Recovery Practices for FIDO Relying Parties(外部サイト)
上記の図は、1人のユーザーが複数の認証器、パソコンとタブレットを登録している、という図です。
FIDOの登録フローに基づいていますので、それぞれの鍵ペアは認証器ごとに独立に作成されます。それぞれのデバイスから秘密鍵は取り出せませんので、鍵を複製しているわけではありません。
これらの鍵ペアは暗号学的にそれぞれが結びついており、お互いの鍵の有無に影響しません。
例えばパソコンが故障で動かなくなった場合でも、あらかじめ登録しておいたタブレットを使ってもらう、ということができるので、アカウントリカバリーをする機会を減らせます。
この方法の利点は、ユーザーが上記のように便利に使っていただけるだけでなく、サービス提供者にとってもアカウントリカバリーに関するカスタマーサービスを提供するコストを削減できます。
複数の認証器の登録方法
しかし、複数のデバイスを登録するためにどんなことに気をつけるべきなのかという知見は集約されていませんでした。
アカウントリカバリーは多くのサービス提供者にとって必要な機能であり、FIDO認証を導入する際に検討する共通の課題点です。
認証器を追加する場合はデバイスの形態によっていくつかの異なるケースが考えらますが、核となるのは、既存のFIDO認証プロトコルを使って、もう1台の登録を安全に行うことです。
この図は、セキュリティキー(USBやNFCなどによりCTAPと呼ばれるプロトコルで接続される持ち運びできる別のデバイス)を登録しているユーザーが、新しく購入したパソコンに搭載されている、例えば顔認証器を追加で登録しようとしている場面のシーケンス図です。
ユーザーは認証器を追加するリクエストを行い (1)、必要な情報を入力 (2) します。
ここでは認証済みのセッションは存在しませんので、誰でも行うことができます。
しかし、登録済みのセキュリティキーを使ってFIDO認証を行うことで、強固な認証を行う (3) (図中の「UV」はUser Verification; ここではセキュリティキーによるユーザーの確認)ため、悪い人がなりすますことは難しくなります。
このFIDO認証器で認証済みのセッションを使って追加に必要な情報、例えばどの認証器を登録するのか、などを入力・選択すること (4-5) で新たなFIDO認証器に対してFIDO登録プロトコルを開始 (6) します。
ここでは、パソコンの顔認証器が本人を確認したあと、FIDO登録プロトコルに従ったメッセージを作成してサーバーに送信し、それがサーバーの登録ポリシーに適った認証器であれば登録が完了 (7) します。
ペーパーの要点
既存のFIDO認証プロトコルを適切に使いながら応用技術として複数の認証器を登録する方法を提案し、FIDOアライアンスとして推奨できるものにする目的で、私が著者としてホワイトペーパーの執筆を始めました。
上記で紹介した方法はあくまで核となるユースケースでの説明です。
例えば、スマホを登録していて、もう一台パソコンを登録したい場合の登録方法や、 (7) でポリシーを使ってさまざまな制御をする方法をホワイトペーパーでは詳しく記述しています。
内容の全てを紹介できないため、ホワイトペーパーの主な内容を以下にまとめます。
- ユーザーが1台のFIDO認証器を登録しているときに、もう1台追加の認証器を登録する方法
- 認証器同士を接続することでFIDO認証を行ったセッションを引き継ぐ方法を推奨
- セキュリティ: 登録済みのFIDO認証器での認証の安全性を引き継ぐ
- ユーザビリティー: 複雑なフローにせず、ユーザーの利便性を向上
- サービス提供者のニーズに応じた登録ポリシーを例示
- 例1: 金融サービスなど登録される認証器をサービス提供者が把握したい
- 例2: ボタンの押下(User Presence)または生体認証(User Verification)で認証したい
さいごに
さらに詳しい情報はFIDOアライアンスが発行したホワイトペーパーや、その内容を説明するWebinarを実施しましたので、そちらをご参照ください。
White Paper: Multiple Authenticators for Reducing Account-Recovery Needs for FIDO-Enabled Consumer Accounts(外部サイト)
Webinar: FIDO Alliance Account Recovery Needs(外部サイト)
また、12月1日と4日にはFIDOオンラインセミナーを実施します。
4日のセッションでは、私がこのホワイトペーパーについてご説明いたします。もし、文書ではなく動画で中身に触れてみたいと思った方は、ぜひご参加・ご視聴ください。
事前登録URL:https://fidoalliance.org/event/fido-seminar-japan-2020/?lang=ja (外部サイト)
こちらの記事のご感想を聞かせください。
- 学びがある
- わかりやすい
- 新しい視点
ご感想ありがとうございました
- 大神 渉
- Yahoo! JAPAN研究所
- パスワードのない世界を目指して、使いやすくて安全な認証技術の研究開発を進めています。