パスキーの認証の仕組み
パスキーは、FIDO2規格と公開鍵暗号方式を基盤とした認証手段。従来のパスワードのように「共有の秘密」をサーバーに送信せず、デバイス内の秘密鍵を使ったデジタル署名で本人確認を行う。
1. 鍵ペアの仕組み
パスキーを登録すると、デバイス内で数学的に関連付けられた2つの鍵が生成される。
| 鍵の種類 | 保管場所 | 用途 |
|---|---|---|
| 秘密鍵(Private Key) | デバイス内の安全な領域(TPM/セキュアエレメント) | 署名生成のみ。外部に送信されない |
| 公開鍵(Public Key) | サービスのサーバー | 署名の検証に使用 |
2. 認証のステップ(チャレンジ・レスポンス方式)
1. ユーザーがサイトでログインを開始
↓
2. サーバーが「チャレンジ(一度限りのランダムデータ)」をデバイスに送信
↓
3. デバイスがユーザーに生体認証またはPINを要求(ローカル認証)
↓
4. 認証成功後、デバイス内の秘密鍵でチャレンジにデジタル署名を施す
↓
5. 署名をサーバーに送信
↓
6. サーバーが公開鍵で署名を検証 → ログイン許可
3. パスキーの主な特徴
フィッシング耐性
パスキーは作成時に特定のドメイン(サイトのURL)と数学的に紐付けられる。ブラウザ・OSがドメインを照合するため、偽サイトでは認証が成立しない。→ 詳細はパスキーのフィッシング耐性とドメインバインディング
サーバー漏洩への耐性
サーバー側に保存されるのは公開鍵のみ。万が一サーバーがハッキングされても、秘密鍵がなければログインに悪用できない。
デバイス間の同期
AppleのiCloudキーチェーン、Googleパスワードマネージャーなどを通じて、同一エコシステム内の複数デバイス間でパスキーを同期・共有できる。→ 詳細は同期型・デバイス固定型パスキーの比較
4. 多要素認証の統合
パスキーは以下の2要素を1操作で完結させる:
- 所有要素(Something you have):パスキーが保存されたデバイス
- 生体・知識要素(Something you are/know):生体認証またはPIN
関連
引用元: NotebookLM