見出し画像

パスキーについて学んだ

最近聞く機会が増えた「パスキー」。
「端末に入ってる鍵で認証するんだよね?」程度の知識しかなかったので、調べました。
※2025年1月時点の情報です。


最初にまとめ

passkeyについて調べた結果、「開発者視点」「利用者視点」のどちら視点でもまだ発展途上なので、「実際に使うのはもう少し先かな」という印象でした。ユーザーの負担を上げずにセキュリティを向上できる仕組みなので、今後の発展に期待です。

開発者視点でみると、開発に必要な環境や情報が整いつつあるものの、実際にサービスに導入するかと言われると、まだ解決すべき課題がありそうです。passkey導入のメリットをビジネスオーナーに理解してもらい、数多の機能改善リストの中からpasskeyが選ばれ、リリースされるのはもう少し先だろうなという印象でした。

利用者視点でみると、各種OSやブラウザでpasskey対応は進んでいるものの、パスワードマネージャー(クレデンシャルマネージャー※)の対応がこれからなので、実際に使うにはまだ難があると感じます。
passkeys.dev - Device Support

※passkeyの場合、パスワードマネージャーはパスワードではなく認証用の秘密鍵を管理します。そのため、passkeyの文脈では「パスワードマネージャー」ではなく「クレデンシャルマネージャー」と呼ぶことがあるようです。

いくつかのパスワードマネージャーのpasskey対応を調べたところ、1passwordが各種デバイスの同期に対応しているものの、メルカリなどサービス側の実装によっては上手く動かないこともあるのだとか。
1password以外のパスワードマネージャーの場合は、「Webブラウザの拡張機能では対応しているが、スマホアプリの実装はこれから」「ベータ版としてpasskeyの機能提供を開始した」など、まだ対応の途中といった印象。

passkeyを使った認証に対応しているサービスがまだ少ないこともあり、passkeyが一般的になるにはあと数年はかかりそうです。

passkeyとは

公開鍵暗号を使って認証する仕組みです。各サービスのアカウント毎に秘密鍵を作成し、秘密鍵を端末側に保存します。サーバー側には公開鍵だけ保存し、秘密鍵による署名を検証することでユーザーを認証します。

psskeyの種類

同期パスキー
新しいデバイスでサービスにログインする場合、クレデンシャルマネージャーの同期機能を使って新しいデバイスに秘密鍵を同期します。

デバイス固定のパスキー
よりセキュリティを高めたい場合、秘密鍵を同期せず特定デバイスに固定することも可能です。
パスキーの種類 | Passkey Central

passkeyとセキュリティ

passkeyで使う秘密鍵はサービスのドメインとアカウント毎に一意に作成されます。鍵は自動的に作成されるため、passkeyを使う場合にはパスワードのような認証情報の使いまわしが発生しません。
また、passkeyの仕組みを使うと多要素認証を使うことになるため、セキュリティレベルが向上します。
パスキーのセキュリティ | Passkey Central

passkey未対応デバイスでも使える

クロスデバイス認証という仕組みを使うと、秘密鍵を同期していないデバイスでも認証できるようですが、少し面倒くさそうです。
Amazonでパスキーを実際に使ってみて | なにやブログ

アカウント作成とログインをするときの流れ

画像引用元: https://docs.passwordless.dev/guide/get-started.html


画像引用元: https://docs.passwordless.dev/guide/get-started.html

passkeyのメリット

  • サイト毎、アカウント毎に一意の鍵が自動で発行されるので、使い回しが発生しない。

    • ありがちなパスワードやどこかのシステムから漏れたパスワードを使ったリスト型攻撃が発生しない。

    • 使いまわしを防ぎつつも、ユーザーの手間が増えない。

  • 認証時に秘密鍵を保存しているデバイスの生体認証やPIN認証などが必須なので、多要素認証が実現できる。

  • 仕組み上フィッシングサイトなど偽のサイトにはリクエストが送信されないので、フィッシングサイトを使った攻撃の対策になる。

  • サーバー側には公開鍵だけが保存されるので、万が一サーバーが不正アクセスを受けた場合でもユーザーが受ける影響が小さくなる。

passkeyのデメリット

  • パスワードマネージャー(クレデンシャルマネージャー)が必須だが、使い方がわからない人が多そう。

  • passkeyに対応しているパスワードマネージャーが少ない。

  • passkeyに対応しているサービスが少ない.。

passkeyの使い方

OS組み込みの機能やブラウザ組み込みの機能、パスワードマネージャー(クレデンシャルマネージャー)の機能を使います。
各種サイトでpasskeyを使って認証する動画が公開されています。

開発者向けの資料

Google, Bitwarden, Corbadoなどから開発者向けの資料が公開されています。

言語やフレームワークに合わせたサンプルもあります。

BitwardenやCorbadoでは、自前のサーバーのほかに公開鍵やセッションを管理するシステムがあり、管理画面も提供されているようです。
Admin Console | Passwordless.dev Documentation

サービスオーナー向け資料

「passkeyをサービスに組み込む場合にどのようなステップが必要なのか?」「どれくらいのコストがかかるのか?」
といった資料が公開されています。

passkeyが世の中に浸透するまでのロードマップ

こちらの記事に同意でした。
安全な認証のためにユーザーに使わせるべきは「パスキーも扱えるパスワードマネージャー」である - r-weblife

開発者やサービスオーナー側でpasskeyの導入を進めるだけでなく、
「ユーザーにパスワードマネージャーを使ってもらう」
というステップが必要です。クレデンシャルマネージャーはpasskey利用の前提となるので、まずはユーザーにパスワードマネージャーを使ったパスワードの管理に慣れてもらい、次のステップとしてクレデンシャルマネージャーを使ったpasskey認証に移行してもらうとよいのでは、という提案でした。

人々の「当たり前」が変わるのには時間がかかるので、これらのステップを踏んでpasskeyが当たり前に使われるまでにあと数年はかかるでしょう。

次にやりたい事

BitwardenやCorbadoのサンプルコードを見ながら、実際にpasskeyを使ったシステムを動かしてみる。

いいなと思ったら応援しよう!