世界を動かす技術を、日本語で。

ユーザーデータの暗号化にパスキーを使用しないでください

概要

  • パスキーPRF(擬似乱数関数) の誤用によるリスクの指摘
  • ユーザーデータ消失の危険性についての懸念
  • 認証と暗号化用途の混同による「被害範囲」の拡大
  • 業界やサービス提供者への具体的な提言
  • ユーザー保護のための警告や情報提供の重要性

パスキーとPRFの誤用によるユーザーデータ消失リスク

  • パスキーPRF(Pseudo-Random Function) の組み合わせによる エンドツーエンド暗号化バックアップ保護 の普及
  • メッセージバックアップファイルの暗号化暗号ウォレットのロック解除 など、多様な用途でのPRF利用
  • 認証用クレデンシャル を暗号化にも使うことで、 クレデンシャル消失時の被害範囲 が大幅拡大
  • 例:ユーザーErikaがメッセージアプリのバックアップをパスキーで暗号化し、数ヶ月後に理由を忘れてパスキーを削除
  • 新しい端末でアプリを復元しようとした際、 パスキーが無いためバックアップデータにアクセス不可
  • Apple PasswordsGoogle Password ManagerBitwarden などでのパスキー削除時、実際に表示される画面例
  • ユーザーが 重要データ消失のリスク を理解するのは困難

PRFがWebAuthnに存在する理由と正しい用途

  • WebAuthn でのPRFは クレデンシャルマネージャーやOS のサポート用途が本来の目的
  • パスキーとPRFの組み合わせは 認証情報管理の高速化・安全化 に有効
  • クレデンシャルマネージャーでは、 マスターパスワードやリカバリーキー など多様な保護手段が存在
  • 認証情報消失=即データ消失にはなりにくい設計

業界・サービス提供者への提言

  • パスキーを暗号化目的で使うことの推奨停止 を業界全体に要請
  • クレデンシャルマネージャー には、 PRF付きパスキー削除時の警告表示RP情報ページの表示 を優先実装要望
  • パスキーを認証以外で利用するサイト・サービス は、以下を実施推奨
    • 利用方法の詳細説明ページ をサポートサイトに設置
    • Well-Known URL(prfUsageDetails) でそのページを案内
    • ユーザーが有効化時に十分な警告 を表示

まとめ

  • パスキーとPRFの誤用によるデータ消失リスク は深刻
  • ユーザー保護のための情報提供・警告表示 の徹底が不可欠
  • 認証と暗号化の用途分離 を強く推奨

Hackerたちの意見

ユーザーがパスワードを削除すると、同じメッセージが表示されるだけだよね。パスワードの唯一の救いは覚えられることだけど、生成されたパスワードを使わない方がいいって言ってるの?

パスキーの特徴は、認証(ログイン)に使うためのもので、通常はそれだけが認証方法じゃないってことだと思う。パスワードやパスキー、2FAの方法を削除しても、「パスワードを忘れた」フローを通ることができるからね。暗号化は違うよ。生成したパスワードでデータを暗号化してから削除したら、もうおしまいだし、パスキーも同じ。著者は、ユーザーがパスキー自体が復号に必要だってことに気づいていないかもしれないって言ってると思う。ログインと強く結びついているからね。

覚えておけるけど、生成されたパスワードを使わない方がいいってこと?強い生成パスワードも、パスフレーズにすれば覚えやすいよ。同じエントロピーで、覚えやすさがアップするしね。

生成されたパスワードは便利だけど、管理やセキュリティの面で課題があるよね。パスワードマネージャーや生体認証みたいなアプローチを採用する方が、使いやすさを保ちながらセキュリティも強化できると思う。

この投稿にはパスキーに特有のことは何も書いてないよね。データを暗号化しない方がいいってアドバイスにしか見えない。どんな警告を出しても、暗号化キーを失うユーザーを防ぐことはできないし。ソフトウェアがインターネットに接続せず、ローカルファイルを暗号化するだけでも、「パスワードを忘れた」とサポートに連絡する人はいるからね。最後のアドバイスは良かったけど。

パスキー管理ツールが、パスキーを削除するとデータが永久に失われる可能性があることを明確にしていないのが問題だと思う。

知らされていないのと、知らされているけど無頓着なのは大きな違いがあるよね。

パスワードマネージャーの中で使ってないパスキーを春の大掃除してる人、どれくらいいるのかな?たかが1キロバイトのデータだし、普通の状況でこれを削除する必要なんてないよね。確かに、ユーザーが暗号化キーのコピーを5つ保存して、1つは海の底のロックボックスに入れるのが理想だけど、そんなことは現実的には無理だし、自動的に暗号化キーを複製されたパスワードマネージャーに入れる方法が理にかなってると思う。エンドツーエンドの暗号化キーの扱い方と比べたら、実際にはデータの損失がずっと少なくなるはずだよ。

パスキーのセキュリティのポイントは、プライベートキーを送信する必要がなくて、デバイスに留めておけることだと思ってた。デバイスごとに異なるパスキー。デバイスを失ったり壊したりしたら、そのパスキーを削除して次に進めばいい。

春の大掃除についてはわからないけど、パスワードマネージャーではなくブラウザやOSに接続して設定すると、うっかり削除しちゃうのは結構簡単だよね。とはいえ、サイトごとに複数のパスキーを持てると思ってたけど、そういうのをちゃんと扱ってくれるサイトはあまりないみたい。

パスキーを実装しているほとんどのパスワードマネージャーは、アカウントエントリーごとに1つのパスキーしか許可していなくて、サイトごとに複数のパスキーを持ってしまったことがあるんだ。サイトは1つしかサポートしていないのに、新しいパスキーを作成すると他のものが削除されちゃうから、どのエントリーが安全に削除できるのか分からない状況に陥ったことがある。これは通常、依存先やパスワードマネージャーのバグによるものだけど、実際に起こることなんだよね。

パスキーには俺にとっては足元をすくう要素が多すぎる。iOSの埋め込みウェブビューでサインインするためにスマホを使うと、うっかりそこでパスキーを作っちゃうんだよね。Google Chromeを使うと、どこにパスキーを保存したかの情報が全然出てこない。iOSのキーチェーンにあったのか?Chromeに?それともBitwardenに?もしこのあたりにちゃんとした規律があればいいんだけど、うっかり画面をダブルタップしちゃうとパスキーができて、スマホに残っちゃう。多くの人には役立つんだろうけど、俺には本当に苦痛で、昔は簡単に使えたコンピュータが使えなくなっていく年寄りになった気がする。

Hacker Newsで議論の続きを見る