Open4

Passkeyに入門したい

fujiwofujiwo

Passkeyとは

  • パスワードを利用せずに認証する仕組み
  • Fast IDentity Online(FIDO)仕様というFIDOアライアンスによって規格策定されている技術をベースとしている
  • 実態は、「公開鍵」と「秘密鍵」のペア
  • 基本的にデバイス固有のセキュア領域に保存される
  • セキュア領域へのアクセスにはユーザの同意が必要なため、生体認証が用いられる
fujiwofujiwo

全体フロー


ref: https://techblog.yahoo.co.jp/entry/2023080730431354/

登録時

  1. クライアントがリクエストを投げると、サーバ側でランダムな文字列(チャレンジ)が送られてくる
  2. 該当サービスに対応したPasskeyを作成
  3. Passkeyの秘密鍵にアクセスするために生体認証を実施
  4. 秘密鍵を使って、チャレンジに署名 & 「署名後の値」と「公開鍵」をサーバ側に送信
  5. サーバ側は、「公開鍵の登録」の後、Passkeyの公開鍵を使って署名を検証して問題なければ認証完了とする

ログイン時

  1. クライアントがリクエストを投げると、サーバ側でランダムな文字列(チャレンジ)が送られてくる
  2. 該当サービスに対応したPasskeyを選択
  3. Passkeyの秘密鍵にアクセスするために生体認証を実施
  4. 秘密鍵を使って、チャレンジに署名 & その値をサーバ側に送信
  5. サーバ側は、Passkeyの公開鍵を使って署名を検証して問題なければ認証完了とする
fujiwofujiwo

passkey生成の仕組み

  • クライアント(ブラウザ、モバイルapp)が認証器にpasskeyの生成をリクエスト
  • 認証器について
    • Passkeyの生成、保存を行ってくれる
    • Macのキーチェーン、ブラウザ、1Passwordアプリ、TouchID、FaceID、yubikey...