パスキーは、パスワードに代わる認証方式で、公開鍵暗号技術と生体認証などを組み合わせる。
仕組み(ログインまでの流れ)
- 秘密鍵はユーザーの端末に保持する
- 公開鍵はWebサービス側(サーバー)に保管する
- ログイン時、端末がWebサービスにリクエストすると、サーバーが challenge(ランダムな値) を返す
- 端末はchallengeに対して、秘密鍵で暗号化・署名する
- このとき秘密鍵を使うために、端末側のセキュリティ解除が必要になり、生体認証などが使われる
- サーバーは、受け取った暗号化・署名済みchallengeを 公開鍵で復号・確認できればログイン完了となり、サービスを提供できる
秘密鍵の扱い
- 秘密鍵は各端末のセキュリティチップに厳重に保管されている
- 秘密鍵は各サービスごとに固有のものが生成される
- Webサービスから「鍵を生成してください」とリクエストを受けて、端末のセキュリティチップが新しい鍵(秘密鍵と公開鍵)を生成する
Webサービス側で必要な実装(導入時)
- ユーザーIDと公開鍵を紐付けて保管する
- challengeを送信する機能を用意する(初回で鍵を生成してもらう)
背景
セキュリティチップや生体認証など、ハードウェア部分の技術進歩によって実現可能になってきた

コメント