🤔

アカウントリカバリ完了時に登録済みパスキーは削除すべきなのか

2025/03/30に公開2

背景

今回の話の前提として、パスキー認証を(完全/部分的に)強制するようなサービスを対象とする。このようなサービスはパスキーの登録、削除操作にパスキーの認証を要求されることが多い。これは攻撃者がパスワードでログインを行った後パスキーを登録することで、パスキーを使ったログインができてしまうため。

2025年の現段階において、パスキーの同期エコシステムはまだすべてのユーザ環境に適合できているとは言えない。たとえばスマホでパスキーを登録したユーザが、PCでもパスキーを利用したいと考えたとき、PCにBluetoothが搭載されていなかったり、スマホ側でhybridフローがうまく動かなかったりするケースがある。このケースにおいて、PCとスマホ両方でパスキーを利用しようとしても、パスキーによる認証だけでは実現できない。その場合はどちらかのデバイスではパスキー以外の認証、またはアカウントリカバリ(AR)を利用したのちにパスキーを追加で登録できる必要がでてくる。

考察

AR完了時に登録済みパスキーを削除する/しないのケースにおいてそれぞれ以下のメリットがあると考えている。

AR完了時にパスキーを削除しないケース

メリット: クロスデバイスなパスキーの認証ができないケースにおいて両デバイスでパスキーが利用できる

このメリットはパスキーでの認証の他にAR以外でクロスデバイス可能な認証方法が存在する場合は該当しない。
例えばメールなどで別デバイスにパスキーの認証を要求し、操作中のデバイスでログインできる場合など。(この認証方法についての是非はここでは扱わない)

AR完了時にパスキーを削除するケース

メリット: 攻撃者がパスキー登録を行なったケースにおいて攻撃者のパスキーがバックドアとして残り続けるリスクが減る

これはそもそも先に攻撃者のパスキーが登録されている前提の話。なので初回のパスキー登録時やAR時で要求する認証強度によっては無視できる可能性がある。
ログインやパスキー登録など重要なアクティビティをユーザに通知をするサービスは多い。そのときにユーザが不審なパスキーを削除できるのであればAR時にパスキーを削除することは不要。ただしこれを人類に期待するのは難しいとは思う。

まとめ

個人的にAR完了時にパスキーは削除されない方がよいと思う[1]。ただし、セキュリティの一定のリスクはあるはずなので、「ほとんどがスマホユーザのサービス」「パスキー以外のクロスデバイスな認証を提供しているサービス」においてはAR完了時にパスキー削除されることに納得感はある。なのでここについての正解があるかと言うとまだわからない。

一方でパスキーが攻撃者のバックドアとして残ってしまうことは別途考える必要があると思っている。そのためにそもそもパスキー登録時に強い認証強度を要求したり、(効果は薄いとしても)登録済みパスキーをユーザが整理できる機能がサービスにあるべきだと思う。

脚注
  1. 不正なログインがあったとしてサービス側がアカウントを凍結した場合、その復旧時は登録済みパスキーを削除する必要があるはず。なのでアカウント凍結からの復旧手段はARとは別として考える。 ↩︎

Discussion

ritouritou

ARとしての要件としては

  1. 身元確認
  2. パスキーを利用可能にする

の2点が基本なので、

個人的にAR完了時にパスキーは削除されない方がよいと思う

これに同意です。

今回はバックドア的な観点のみが書かれていますが、パスキー削除をすべき状態とは何?という観点で捉えると他にもあるはずです。

  • 攻撃者のパスキーが登録されている
    • 何らかの方法でログイン状態を奪われた
    • ソーシャルネットワーキングなどでHybrid Transportによる登録をさせられた
  • 攻撃者に自分のパスキーが奪われている
    • エクスポート機能の悪用
    • パスキー同期の仕組みに入り込まれた
  • もう使わないパスキーが登録されている
    • パスワードマネージャー側でもう消してしまった
    • 昔使ってたDevice-boundedな...

あたりでしょうか。

となると、AR以外でも次のようなタイミングで削除が必要になるでしょう。

  • 一定期間使われていないパスキーがあるとき
  • ログインセッションの管理機能があり、そこで別の環境をログアウトさせた時

(効果は薄いとしても)登録済みパスキーをユーザが整理できる機能がサービスにあるべき

パスキー管理画面ってのはなかなかアクセスしてもらえないところではありますが、自分が登録したかどうか、最後にいつ、どこで使われたのかを含め "パスキーカード" のさらなる改善が求められているかもしれませんね。

kinmemodokikinmemodoki

コメントありがとうございます!
たしかに、AR以外にアカウントを守るすべての操作でもパスキー削除を考える必要があるのはおっしゃるとおりですね。
アカウント不正アクセスをサービスが検知してシステム起因のセッション断の場合はパスキー全削除もやむなしのイメージでしたが、ユーザ起因のセッション破棄のタイミングはあまり考えられていなかったので勉強になります🙇‍♂️