端くれプログラマの備忘録 セキュリティ [セキュリティ] パスキーの仕組み

[セキュリティ] パスキーの仕組み

パスキー(Passkey)は、パスワードの代わりに使用される新しい認証方式で、より安全かつ使いやすいことを目指しています。パスキーは主に以下のような仕組みで動作します。

  1. 公開鍵暗号方式の利用: パスキーは公開鍵暗号を使用します。ユーザーがアカウントを作成または認証を行う際、デバイス上で公開鍵と秘密鍵のペアが生成されます。公開鍵はサーバーに送信され、秘密鍵はユーザーのデバイスに安全に保存されます。
  2. 認証プロセス:
    • 登録: ユーザーがウェブサイトやアプリケーションに登録する際、公開鍵がサーバーに送信されます。サーバーは公開鍵をユーザーのアカウント情報と関連付けて保存します。
    • 認証: ユーザーがログインする際、サーバーはチャレンジ(乱数)を生成してユーザーのデバイスに送信します。デバイスはこのチャレンジを秘密鍵で署名し、その署名をサーバーに返します。サーバーは公開鍵を使用して署名を検証し、正当性を確認します。
  3. 生体認証の統合: パスキーは多くの場合、デバイスの生体認証(例えば、指紋認証や顔認証)と組み合わせて使用されます。これにより、ユーザーは生体認証を通じて秘密鍵へのアクセスを得るため、より使いやすくなります。
  4. デバイス間の同期: 例えば、Appleの「iCloud Keychain」やGoogleの「Smart Lock」などを使用することで、パスキーを複数のデバイス間で同期することが可能です。これにより、ユーザーはどのデバイスからでも同じパスキーを使用して認証を行うことができます。

利点

  • セキュリティの向上: 秘密鍵はデバイスに保存されており、サーバーには公開鍵のみが保存されるため、サーバーが侵害されてもパスキーが漏洩するリスクがありません。
  • フィッシング対策: パスキーはユーザーのデバイスで生成され、特定のサービスに対してのみ有効です。そのため、フィッシング攻撃によってパスキーを盗まれるリスクが低減します。
  • ユーザビリティの向上: パスワードを覚える必要がなく、生体認証などを用いることで簡単に認証が行えます。

パスキーは、FIDOアライアンスが推進するWebAuthn(Web Authentication)標準に基づいており、主要なブラウザやデバイスメーカーが対応を進めています。これにより、インターネット全体でより安全な認証が普及することが期待されています。