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

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

概要

  • パスキー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に?もしこのあたりにちゃんとした規律があればいいんだけど、うっかり画面をダブルタップしちゃうとパスキーができて、スマホに残っちゃう。多くの人には役立つんだろうけど、俺には本当に苦痛で、昔は簡単に使えたコンピュータが使えなくなっていく年寄りになった気がする。

埋め込みウェブビューは本当に最悪だよ。昨日、チェックアウトの途中まで行ったのに、別のアプリで何かを確認するために戻ったら、ウェブビューが消えちゃって、チェックアウトを終わらせる気にならなかった。これはAndroidでの話。普段はChromeで開くけど、今回はウェブビューだって気づかなかったんだ。

クラウドで使うのが大丈夫なら、どこでもBitwardenを使えばいいよ。

だから、私はそれを避けてるんだ。活動を指紋で追跡される追加の手段だし、パスキーをデバイスから別のデバイスに移すシナリオは、あんまりうまくいってない気がする。

最近書いた別の問題もあるよ: https://cedwards.xyz/passkeys-are-not-2fa/

パスキーがビットワーデンみたいなパスワードマネージャーより優れてるとは思えないんだよね。ランダムなパスワードの方がいいと思うし。

iOSやmacOSのパスキーは、その点ではかなりうまく機能してるよ。少なくとも私の経験では、ウェブやアプリなど、選んだプロバイダーに保存される。私の場合はBitwardenを使っていて、ほぼすべてのプラットフォームで利用可能だし、利用可能なところではネイティブで(今のところmacOSは除く)、ブラウザ拡張としても使える。Bitwardenにログインしていないコンピュータでパスキーを使って認証する必要がある珍しい場合には、QRコードをスマホでスキャンしてBitwardenで認証するクロスデバイスのCaBLEフローがある。これがOSやブラウザを超えて機能するんだ。

俺はiOSのウォレットを全部使ってるよ。唯一の例外は、iPhoneやMacの外で絶対に開かなきゃいけないものだけ。そういう時はBitWardenを使うけど、実際にはそのサンドボックスの外で開くアプリは必要ないって分かった。Macで開ければそれでいいし、Linuxでもいつでもパスワードを入力できるからね。結局、BitWardenはそのためのものだし。

そうだね。俺はそれが嫌いだ。彼らが解決しようとしてる問題は分かるけど、こっちの作業が増えてるだけな気がする…正直、何が起こってるのかも時々分からなくなるし。最近新しいコンピュータに移行したけど、まるでAUTHHELLSCAPEだよ。

パスキーを使うな もっといいタイトルだね。お母さんはそれが何か、どう使うか分からないよ。デバイスやiCloud、Gaiaアカウントに縛られるから、盗まれたり禁止されたらおしまい(まあ、複数のデバイスや認証の道、バックアップコードのことはどうでもいいけど)。これは、ハードウェアとソフトウェア、そして目の前のものにさらに一歩進んだ道だ。パスワードは永遠に、欠点なんて気にしない。

残念ながら、今は一部のベンダーがパスキーを必須にしてるよ。具体的な例としては、https://www.healthequity.com > 2025年10月から、パスキーでのログインが完全に導入されて、Health Savings Accounts (HSAs) や Reimbursement Accounts (RAs) を持つメンバーには必須になったんだ。HealthEquityのモバイルアプリやウェブ体験を使う場合ね。https://help.healthequity.com/en/articles/11690915-passkey-f... FAQはちょっと誤解を招く表現があって、「アカウントにパスキーがあるときはこうこう」って言ってるけど、実際は10月以降は完全に必須になったから、バイパスも例外もなしで100%適用されるよ。あ、ちなみに、パスキーはPC/LinuxでFirefoxを使うと数ヶ月前から壊れてるんだよね。 > 問題が発生しました:ログインサービスに接続中にエラーが発生しました。数分後に再試行してください。すごいね。ChromeかEdgeを使わないといけないよ... 数ヶ月間、必須にした後でね。

KeepassXCはエクスポート可能なパスキーがあるから、少なくとも盗まれるケースは避けられるよ。

自分でホストしているvaultwardenでのパスキーは大好きだけど、高齢者向けのUXはまだまだって感じだね。

それに、パスワードがパスキーになることもあるし、パスキーのプロトコルは基本的にサーバーに認証された公開鍵を送る方法なんだ。クライアントはパスワードを決定論的にキー・ペアに変換して、それで認証できるかもしれない。

デバイスに縛られるからじゃない?だから、少なくとも2つのハードウェアパスキーを持つか、リカバリーコードを用意するのが良いって言われてるんだよね。誰かがスマホやノートPC、YubiKeyを盗んでも、家の引き出しにあるNitroKeyを使ってアカウントを復元できるからさ。

デバイス/iCloud/Gaiaアカウントに縛られるから、盗まれたり禁止されたりしたら運が悪いよね。これがパスキーについてよく聞く最大の神話というか誤解だと思う。パスキーはパスワードと同じような認証情報なんだ。忘れたら、メールにリンクが送られてきてリセットの流れを経るだけで、新しいのを設定できるよ。もしGmailアカウントにロックアウトされても、パスワードでもパスキーでも、同じGoogleアカウントリカバリーの流れを通る必要があるんだ。

私もパスキーには完全に反対だね。安全なパスワードと良いパスワードマネージャーの方がずっといいし、どのプラットフォームにも縛られないから。ログイン時にパスキーを追加するようなサイトが増えてるのを見ると、本当に悲しい。

彼らはあなたをデバイス/iCloud/Gaiaアカウントに縛り付ける。 じゃあ、AppleやGoogle、あるいはGaiaをパスキーのプロバイダーとして使わなければいいんじゃない? お母さんはそれが何か、どう使うか分からない。 お母さんのためにBitwarden、1Password、またはKeepassXCを設定してあげれば、プラットフォームロックインを防げるよ。 これは認証済みハードウェアソフトウェアと目の前の道を一歩進めることになる。 最近大手テックが推している同期パスキーの実装は、認証をサポートしていないから、これはただのFUDだよ。Yubikeyはサポートしてるけど、幸いにもそれが全てのパスキーに必須になるほどの(非企業向けの)重みはないみたい。

パスキーは多くの人を助けるために設計されたけど、実際にはうまく機能してないジレンマがあるよね。2つのデバイスを持っている人でも、常に持っているわけじゃないし。さらに見落とされがちなのは、一部の銀行などが2つのデバイスでのログインや2FAを許可していないこと。許可されていても、予備のデバイスを常に最新の状態に保つ必要があるし。政府がGoogle PayやApple Payを通じて直接使える共通のAPIを作る必要があると思う。そうすれば、1つのアプリだけを最新に保てば済むから。正直、GoogleやAppleが私のプライベートデータやパスキーを全部持ってくれても構わないけど、もしスマホを失くしたら、身分証明書を見せれば新しいスマホの設定を許可してほしい。でも、それもできないんだよね。(ひどいAI禁止は除外するけど)

あなたが考えてるのはハードウェア認証器で、パスキーじゃないよ。パスキーは定義上、クラウドで同期されてバックアップされるからね(そうじゃなきゃ、ただのWebAuthN認証器になっちゃう)。独自のクラウドや同期バックエンドは問題を引き起こすけど、少なくとも各サービスに対して2つの異なるセキュリティキーを登録する必要があるって問題は解決してくれる。

正直言って、GoogleやAppleが私のプライベートデータやパスキーを持っていくのは構わないよ。 それが今できることだよ! 身分証明書を見せれば、新しい電話を設定できるはず。 電話番号を見せる必要があるけど、それが今の時代の「身分証明書」だよね。でも、確かにそれで戻れるよ。

パスキーは、私にとっては有効な問題への部分的な解決策に思える。教育もその解決策の一部だよね。ユーザーを強いパスワードやパスキーが必要な理由を理解できないバカだと思って扱うのは重要だと思う。家族がパスキーを強制されて、新しいデバイスを手に入れたことでアカウントにアクセスできなくなるのを見て、正直絶望してる。私はKeePassXCのパスキーを使ってるけど、パスキーのネイティブなワークフローは不透明で、実際に何をしているのかを誤解しやすいからね。そして、それは大手のアメリカのテック企業のアカウントを持っていることが前提になってる。

家族がパスキーに強制されて、新しいデバイスを手に入れたせいでアカウントにアクセスできなくなることを本当に心配してる。 iOSもAndroidも、デフォルトでパスキーをそれぞれのクラウドアカウントに同期するからね。(もちろん、そのアカウントへのアクセスを失ったり、家族間で共有して混乱を招いたりするのはまだ懸念事項だけど。)本当の問題はロックインで、これが家族全体がiOSからAndroidに切り替えるのを効果的に妨げることが多い。だから、家族の技術設定を管理している人には、1PasswordやBitwardenのようなプラットフォームに依存しないパスキーの実装を選ぶことを勧めるよ。

「説明文があったとしても、エリカはほとんどのユーザーと同じように、ダイアログボックスを全部読むことはないし、1年後にこの技術的な詳細を覚えているとは思えない。」パスキーは正しい方向への一歩だけど、皮肉なことに著者が注意を促している理由と同じなんだ。私たちは「バックアップキーは安全な場所に保管しておけ」って言ってきたけど、普通のエリカはそれにうまく対応できてない。ロックアウトされてデータを失うことが多いし。スケールのある仕事をしているなら、E2EEを使うユーザーの一定割合がデータを失うことをよく知ってるはず。彼らが使ってきたものとは全然違うからね。パスワードを忘れた時のリンクがなかったら、彼らは途方に暮れる人たちだし、それに恥じることはない。これが現実なんだ。パスキーはこういう人たちが鍵を失わない手助けになるかもしれない。もし製品が本当にE2EEなら、今のところ最良の選択肢はChromeやAppleに組み込まれたパスキーの実装だね。Windowsは相変わらず改善が必要だけど、パスワードマネージャーはうまくカバーしてるみたい。人々に、本当のE2EEでは「パスワードを忘れた」メールがないことを教える必要もある。パスキーとその周辺のツールはまだまだ進化の余地があるけど、少しずつ良くなってきてる。

ここでの核心的な問題は、業界が繰り返し犯しているカテゴリエラーだね。認証情報と暗号鍵を同じものとして扱っていること。これらは根本的に異なるライフサイクルの要件を持っている。認証はデザイン上回復可能で、常にリセットしたり、再確認したり、新しい認証情報を発行したりできる。一方、暗号鍵は逆で、鍵を失うとデータも失う。これが現実なんだ。UXの改善ではこの数学的な現実は変わらない。PRF拡張はこれをさらに悪化させる。なぜなら、ラインをさらに曖昧にするから。ユーザーはパスキーを「ログイン用のもの」として扱うから、メンタルモデルは認証になってる。でもPRFがその同じパスキーから暗号鍵を導出すると、交換可能な認証情報が交換不可能な秘密に silently アップグレードされちゃう。ユーザーのメンタルモデルは更新されない。実際に必要なのは、WebAuthnの仕様に「このパスキーは認証だけでなく暗号用の重要なものだ」という信号を含めること。そうすれば、削除前に適切な警告を出せるようになる。今のところ、認証情報マネージャーはすべてのパスキーを同じように扱ってる。

PRFのアイデアは「いくつかのキーの一つとして使う」って感じだったと思うけど、「唯一のキーとして使う」ってことはなかったんじゃないかな。仕様書に明記されてたかは分からないけど。

このパスキーは認証だけじゃなくて暗号化にも使われるから、削除前に適切な警告を出せるように。 それは合理的なアイデアだけど、完全に削除されたり壊れたりした認証器、例えばAppleやGoogleのアカウントやYubikeyを失った場合には役に立たないよね。私が考える大規模な普及のための唯一の実現可能な解決策は、PRFをアクセスを取り戻すためのいくつかの方法の一つに制限することだと思う。いくつかのパスワードマネージャーはこれをやっていて、例えばマスターシークレットをPRF由来のキーで暗号化してるけど、マスターシークレットにアクセスするための唯一の方法ではないし、印刷したキーのバックアップを推奨してるよ。

実際に必要なのは、WebAuthnの仕様に「このパスキーは認証だけじゃなくて暗号化にも重要だよ」っていう信号を含めることだよね。そうすれば、削除する前に適切な警告を出せるようになる。今のところ、クレデンシャルマネージャーはすべてのパスキーを同じように扱ってるから、なんか責任逃れみたいに感じる。もしサービスが、パスキーを失ったらデータが全部消えちゃうように設計されてるなら、「そのパスキー、絶対に失くさないでね!」って警告は最低限必要だけど、根本的な問題は解決しないよね。最初の提案である「永続データの暗号化にはパスキーを使わない方がいい」っていうのは、もっと理にかなってると思う。(あるいは、隣のコメントが言ってるように、暗号化を設計する際に復号用の代替キーを用意するってことね。)

ユーザーがパスキーを削除する話は、私には信じられないな。特定のメッセージアプリのためのパスキーをなぜ持っているのか覚えてないの?多くの思い出が詰まったアプリを認識するだけで、パスキーを削除することはないと思うし。そもそも、なぜ「整理」してるの?「整理」って言葉を使ったけど、使ってないパスキーの長いリストが汚いっていうメタファーは不適切だよね。アプリに10億人のユーザーがいるとして、理由もなくパスキーを削除する人がどれくらいいると思う?それがみんなのためのエンドツーエンド暗号化より重要なの?理由もなくパスキーを削除することが普通なら、実際のユーザーについてのリアルな話が聞きたい。作り話じゃなくて。エッセイは、ノーマルなコンピュータユーザーが知っているはずがないという見下した態度を持っているけど、実際にはノーマルなコンピュータユーザーこそ、最初からパスキーを「整理」しようなんてバカな考えを持たないんだよね。そんなことをするのは、コンピュータに対して神経質な態度を持つオタクだけだ。

そもそも、なぜ「整理」してるの? Windowsやsystem32フォルダを整理してるのと同じ理由だよ。

彼らが誤って削除(またはアクセスを失う)する可能性が高いね。私の経験では、実際にパスキーがどこに保存されているかを理解しているユーザーはほとんどいないし、いろんなところに散らばってる。私がよく受ける質問は「なぜログインできないの?」っていうもので、これはある機械でパスキー設定のダイアログを読まずに受け入れてしまった結果、別の機械ではログインできなくなることが多い。時には同じ機械でも異なるコンテキストで起こることもある。パスキーは、普通のユーザーが確実に保持できるものとは考えられない(業界がユーザーに押し付けるのに熱心だけど、どうやって機能するかを教育することにはあまり熱心でないから)。これがセキュリティの観点からもあまり役に立たない理由でもある。なぜなら、リカバリープロセスを排除できないからで、これが弱いリンクになることが多いから。

今のところの問題は、UIとデバイスやOS間の互換性だね。パスキーやE2E暗号化のためのPRFのアイデアは大好きなんだけど、今の状態ではパスキーの管理や回復方法がほぼゼロだから、実装する気にはなれない。仕事でコンピュータを切り替えなきゃいけない(強制ポリシー)し、電話も古くなったら変えなきゃいけないし、OSを跨いで作業したいとき(仕事はMac、遊びはWindows)も、すべてが崩壊する。インターフェースは理解不能だし、透明性や管理もまったくない。私はこの標準がどう機能するかを勉強したプロユーザーだけど、パスワードがなくなるのは数十年先になるんじゃないかと心配してる。

自分はパスキーについて結構詳しいと思ってる(WebAuthNのトイ実装を一度書いたことがあるから)、それでも時々つまずくことがあるんだよね。意図的な削除じゃなくて、偶然の上書きで。私の理解では、WebAuthNを使ってアカウントごとにパスキーのユニーク性を強制する方法はいくつかあるけど、時々、あるサイトが私のためにすでに利用可能なパスキーがあることに気づかず、新しいものを作成する提案をしてくることがある。その時、私のパスワードマネージャー(Bitwarden)が古いパスキーを上書きしちゃうんだ。で、同期の不具合(パスワードマネージャーのストレージと依存先のバックエンドの更新が原子的でない)を考えると、パスキーが失われる可能性があるのが怖い。

この前の週末、母がChromeのパスワードマネージャーを見つけて、すぐに認識できないエントリーを全部削除し始めるのを見てた。「これ何?必要ないよ」って。理由があってそこにあるのに、ストレージもゼロだから大丈夫だよって頼んでも、彼女はこれらのパスワードは必要ないって確信してた。だから、パスキーを削除しちゃうのも十分理解できる。母は基本的にエリカみたいで、提示されたアクションごとに非常に明確な意味を示さないと、自然に理解することを期待しちゃダメなんだよね。