パスキーの基本

パスキーは、パスワードに代わる認証方式で、公開鍵暗号技術生体認証などを組み合わせる。

仕組み(ログインまでの流れ)

  1. 秘密鍵はユーザーの端末に保持する
  2. 公開鍵はWebサービス側(サーバー)に保管する
  3. ログイン時、端末がWebサービスにリクエストすると、サーバーが challenge(ランダムな値) を返す
  4. 端末はchallengeに対して、秘密鍵で暗号化・署名する
    • このとき秘密鍵を使うために、端末側のセキュリティ解除が必要になり、生体認証などが使われる
  5. サーバーは、受け取った暗号化・署名済みchallengeを 公開鍵で復号・確認できればログイン完了となり、サービスを提供できる

秘密鍵の扱い

  • 秘密鍵は各端末のセキュリティチップに厳重に保管されている
  • 秘密鍵は各サービスごとに固有のものが生成される
  • Webサービスから「鍵を生成してください」とリクエストを受けて、端末のセキュリティチップが新しい鍵(秘密鍵と公開鍵)を生成する

Webサービス側で必要な実装(導入時)

  • ユーザーIDと公開鍵を紐付けて保管する
  • challengeを送信する機能を用意する(初回で鍵を生成してもらう)

背景

セキュリティチップや生体認証など、ハードウェア部分の技術進歩によって実現可能になってきた

コメント

タイトルとURLをコピーしました