はじめに
パスワードレス認証と FIDO2 についての備忘録です。
改訂履歴
- 2026/08/04 : 初版公開。
本文
1. パスワードレス認証とは
パスワードレス認証とは、パスワードを入力することなく本人確認を行う認証方式です。従来の認証では、ユーザーが ID とパスワードを入力し、サーバーが保持しているパスワード情報と照合することで認証を行っていました。しかし、パスワード認証には以下のような課題があります。
| 課題 | 内容 |
|---|---|
| パスワードの漏洩 | パスワードが漏洩すると、不正利用される可能性がある。 |
| パスワードの使い回し | 複数サービスで同じパスワードを利用すると被害が拡大する。 |
| フィッシング攻撃 | 偽サイトへパスワードを入力してしまう可能性がある。 |
| 管理負担 | 複雑なパスワードを記憶・管理する必要がある。 |
パスワードレス認証では、パスワードの代わりに別の認証情報を利用して本人確認を行います。代表的なパスワードレス認証方式には以下のようなものがあります。
| 方式 | 内容 |
|---|---|
| ワンタイムパスワード (OTP) | 一定時間毎に変化する認証コードを利用する方式。 |
| Magic Link | メールなどで送信された URL を利用して認証する方式。 |
| 生体認証 | 指紋や顔などの身体的特徴を利用する方式。 |
| FIDO2 | 公開鍵暗号方式を利用して認証する標準仕様。 |
これらの方式には、それぞれ異なる特徴があります。例えば OTP や Magic Link は導入しやすい一方、メールや認証コードを利用するため、運用方法によってはフィッシングなどの影響を受ける可能性があります。
一方、FIDO2 は公開鍵暗号方式を利用し、認証情報の管理方法や認証フローが異なります。以降では、パスワードレス認証方式の一つである FIDO2 について説明します。
2. FIDO とは
FIDO (Fast IDentity Online / ファイド) とは、公開鍵暗号方式を利用した認証仕様で、パスワードレス認証や多要素認証などに利用されています。FIDO には複数の仕様が存在し、代表的なものとして FIDO1 と FIDO2 があります。
| 世代 | 仕様 | 公開年 | 内容 |
|---|---|---|---|
| FIDO1 | UAF | 2014 年 | スマートフォンの生体認証などを利用したパスワードレス認証を実現する仕様。 |
| FIDO1 | U2F | 2015 年 | ID とパスワードによる認証に加え、USB や NFC、Bluetooth に対応したセキュリティキーを利用した追加認証を実現する仕様。 |
| FIDO2 | WebAuthn / CTAP | 2018 年 | UAF と U2F を統合した仕様。Web ブラウザや OS から公開鍵認証を利用するための仕様。 |
2026 年現在、Web サービスで広く利用されているのは FIDO2 です。FIDO2 では WebAuthn と CTAP という 2 つの仕様が利用されています。
| 仕様 | 内容 |
|---|---|
| WebAuthn (ウェブオースン) | W3C が正式勧告した Web ブラウザから認証器を利用するための API。サーバーとクライアント間で使用する。 |
| CTAP (シータップ) | Client To Authenticator Protocol の略。クライアントと認証器間で通信するためのプロトコル。 |
3. FIDO2 認証の仕組み
FIDO2 では、公開鍵暗号方式を利用して認証を行います。最初にオーセンティケーターをサーバーに登録します。オーセンティケーターとは、スマートフォンや USB ドングルなどの認証器のことです。
オーセンティケーターの内部には、搭載されたデバイス毎に固有の公開鍵・秘密鍵・証明書が最初から組み込まれています。これらを使用して初回登録時にオーセンティケーターの正当性を証明します。この証明の仕組みをアテステーションと呼びます。
補足
手元の参考書では、公開鍵・秘密鍵・証明書が組み込まれているという説明だったのですが、ネットで調べた感じ、もしかすると厳密には公開鍵は格納されていない可能性があります。しかし今回は参考書に準拠して記載します。
以下は、平成 31 年春 SC 試験の午後 1 問 2 を参考に作成した、オーセンティケーター登録処理のフローです。
登録処理が完了した後は、スマートフォンの顔認証など使って、パスワードレスで認証できるようになります。以下も同じく、平成 31 年春 SC 試験の午後 1 問 2 を参考に作成した、オーセンティケーター認証処理のフローです。
4. FIDO2 のメリット
FIDO2 には、パスワード認証と比較して以下のようなメリットがあります。
| メリット | 内容 |
|---|---|
| フィッシング対策 | Web サイトのドメインに紐づいた認証情報を利用するため、偽サイトにパスワードを入力するような攻撃を防ぎやすい。 |
| パスワード漏洩対策 | 認証に使用する秘密鍵を認証サーバーに送信しないため、サーバーから秘密鍵が漏洩することがない。 |
| パスワード管理が不要 | パスワードを記憶したり、定期的に変更したりする必要がない。 |
| 生体情報の保護 | 生体情報を認証サーバーに送信せず、オーセンティケーター側で本人確認を行うことができる。 |
特に、秘密鍵をオーセンティケーターから外部に出さず、公開鍵を使用して認証を行うことが FIDO2 の重要な特徴です。
おわりに
気付きがあれば、随時更新します。