Password managers provide significant security benefits to users. However, malicious client-side scripts and browser extensions can steal passwords after the manager has autofilled them into the web page. In this paper, we extend prior work by Stock and Johns, showing how password autofill can be hardened to prevent these local attacks. We implement our design in the Firefox browser and conduct experiments demonstrating that our defense successfully protects passwords from XSS attacks and malicious extensions. We also show that our implementation is compatible with 97% of the Alexa top 1000 websites. Next, we generalize our design, creating a second defense that prevents recently discovered local attacks against the FIDO2 protocols. We implement this second defense into Firefox, demonstrating that it protects the FIDO2 protocol against XSS attacks and malicious extensions. This defense is compatible with all websites, though it does require a small change (2-3 lines) to web servers implementing FIDO2.
論文ID : 2509.02289タイトル : Passwords and FIDO2 Are Meant To Be Secret: A Practical Secure Authentication Channel for Web Browsers著者 : Anuj Gautam(テネシー大学)、Tarun Yadav(ブリガムヤング大学)、Garrett Smith(ブリガムヤング大学)、Kent Seamons(ブリガムヤング大学)、Scott Ruoti(テネシー大学)分類 : cs.CR(暗号化とセキュリティ)発表会議 : CCS '25(ACM SIGSAC Computer and Communications Security会議)論文リンク : https://arxiv.org/abs/2509.02289 パスワードマネージャーはユーザーに顕著なセキュリティ上の利点を提供していますが、悪意のあるクライアント側スクリプトとブラウザ拡張機能は、パスワードマネージャーがパスワードをWebページに自動入力した後、パスワードを盗むことができます。本論文はStockとJohnsの先行研究を拡張し、これらのローカル攻撃からパスワード自動入力を強化する方法を示しています。著者らはFirefoxブラウザに彼らの設計を実装し、この防御がXSS攻撃と悪意のある拡張機能の脅威からパスワードを成功裏に保護することを実証する実験を実施しました。研究はまた、この実装がAlexa上位1000ウェブサイトの97%と互換性があることを示しています。さらに、著者らは設計を一般化し、最近発見されたFIDO2プロトコルに対するローカル攻撃を防止する第2の防御メカニズムを作成しました。
パスワードマネージャーには明らかなセキュリティ上の脆弱性があります。パスワードがブラウザに自動入力された後、ウェブサイトに送信される前の期間に、パスワードが盗まれやすいのです。これには以下の脅威からの盗難が含まれます:
ウェブトラッカー :意図せずにパスワード情報を収集する可能性がある注入攻撃 (XSSなど):悪意のあるスクリプトがDOM内から直接パスワードを読み取ることができる悪意のあるブラウザ拡張機能 :適切な権限を持つ拡張機能がウェブページコンテンツとネットワークリクエストにアクセスできる侵害されたJavaScriptライブラリ :サプライチェーン攻撃による悪意のあるコード注入これらの攻撃は比較的一般的であり、研究によると人気のあるウェブサイトの少なくとも2~3%がパスワードを漏らすウェブトラッカーを含んでいます XSS攻撃はOWASPによって継続的にトップ10のウェブアプリケーションセキュリティリスクとしてリストされています 悪意のあるブラウザ拡張機能の問題は増加しており、Chromeウェブストアにはこのような攻撃を実行するのに十分な権限を持つ数千の拡張機能が存在します StockとJohnsは10年前にノンス置換ベースのパスワード保護プロトコルを提案しましたが、このプロトコルは最新のブラウザ設計と互換性がありません。当時機能していたFirefoxブラウザでさえ、関連機能をすぐに削除し、このプロトコルの採用と後続研究の発展を阻止しました。
実用的なノンスベースのパスワード置換APIの実装 :StockとJohnsプロトコルの動作実装をサポートするために最新のブラウザを修正脅威モデルの拡張 :元のプロトコルが考慮していなかった悪意のあるブラウザ拡張機能の脅威を特定して対処FIDO2セキュアチャネル :最近発見されたローカル攻撃から保護するためにFIDO2プロトコルに設計を一般化実際の展開検証 :Firefoxで実装および評価し、主流ウェブサイトの97%との互換性を実証パスワードマネージャーがパスワードをウェブサイトに安全に送信でき、DOMスクリプトまたはブラウザ拡張機能が実際のパスワードコンテンツにアクセスできないセキュアなブラウザチャネルを設計します。
既存のWebRequest APIを拡張し、新しいonRequestCredentialsステージを追加します:
onRequestCredentials → onBeforeRequest → onBeforeSendHeaders → onSendHeaders → ...
ノンス注入 :パスワードマネージャーが実際のパスワードではなく、ランダムなパスワードノンスをウェブページに入力しますコールバック登録 :同時にonRequestCredentialsコールバックハンドラーを登録しますセキュリティチェック :ページ送信時に、以下のセキュリティ検証を実行します:ウェブページがiFrame内に表示されていないことを確認 送信チャネルがセキュアなHTTPS接続を使用していることを確認 オリジンがパスワードマネージャーエントリと一致することを確認 ノンスがGETパラメータに含まれていないことを確認 フィールド名が有効であることを確認 セキュアな置換 :検証に合格した場合、ブラウザはFormSubmissionオブジェクト内のノンスを実際のパスワードに置き換えます悪意のある拡張機能の脅威に対処するため、2つの重要な修正を行いました:
onRequestCredentialsをrequestBodyにアクセス可能なすべてのステージの後に移動このステージで拡張機能に置換前のrequestBodyを表示し、実際のパスワードを隠します FIDO2プロトコルは2つのクラスのローカル攻撃に直面しています:
DOM値の変更 :悪意のあるJavaScriptによるwebAuthn API呼び出しの上書きリクエスト応答の傍受 :拡張機能によるHTTPリクエストと応答の傍受リクエスト処理 :サーバーが実際のFIDO2ペイロードをwebauthn_requestヘッダーに配置し、ページ応答には虚偽の値が含まれますヘッダー傍受 :ブラウザが拡張機能がアクセス可能になる前に機密ヘッダーを削除API置換 :webAuthn API内で虚偽の値を実際の値に置き換えます応答保護 :API戻り値が虚偽の値に置き換えられ、実際の値は安全に保存されます最終送信 :指定されたエンドポイントにリクエストを送信する際に、虚偽の値を実際のFIDO2応答に置き換えますブラウザ :Mozilla Firefox 107.0(パスワード保護)および104.0a1(FIDO2保護)パスワードマネージャー :修正版Bitwardenテストウェブサイト :Alexa上位1000ウェブサイト中のログインページを含む573ウェブサイト互換性 :ウェブサイトが正常に機能するパーセンテージセキュリティ :DOMおよび拡張機能攻撃から保護する有効性パフォーマンスオーバーヘッド :リクエスト処理時間の増加量修正されていないFirefoxブラウザをベースラインとして使用 プロキシサーバーを使用してすべての送信ネットワークリクエストを記録して比較 97%互換性 :554/573ウェブサイトが完全に互換2%部分互換 :11/573ウェブサイトがDOM内のパスワードハッシュ計算により失敗1%非互換 :8/573ウェブサイトが送信前にパスワード形式を変更テストされたすべてのDOM攻撃(XSS、悪意のあるJavaScript注入)を成功裏に防止 webRequest APIを通じた悪意のある拡張機能によるパスワード盗難を効果的に阻止 反射攻撃の脅威を特定して防止 置換が必要な場合の平均リクエスト時間:4.5222秒 置換操作の耗時:0.443秒(総時間の10.6%) 置換が不要な場合:測定可能なパフォーマンス影響なし 100%ウェブサイト互換 (サーバー側で2~3行のコード修正が必要)テストされたすべてのDOM および拡張機能攻撃を成功裏に防止 完全なセッション説明責任を実装 既存の研究は主にパスワードマネージャーの全体的なセキュリティに焦点を当てており、以下を含みます:
パスワード生成、保存、入力のセキュリティ分析 自動入力プロセス中の脆弱性の特定 モバイルデバイス上のパスワードマネージャーのセキュリティ問題 関連するブラウザセキュリティ研究には以下が含まれます:
同一生成元ポリシーとコンテンツセキュリティポリシー ブラウザ拡張機能の権限モデル WebAuthnおよびFIDO2プロトコルセキュリティ 本論文は初めてStockとJohnsプロトコルの動作実装を提供し、この分野における10年間の研究空白を埋め、FIDO2プロトコル保護に拡張しました。
実用性の証明 :最新のブラウザにおけるセキュアなパスワード送信チャネルの実装に成功広範な互換性 :大多数の主流ウェブサイトとの互換性があり、実際の展開可能性が高いセキュリティの向上 :複数のローカル攻撃の脅威から効果的に保護拡張性 :設計は他のブラウザ-サーバー相互作用のセキュリティ保護に推広可能3%ウェブサイト非互換 :主にクライアント側のパスワード処理が原因パフォーマンスオーバーヘッド :置換操作には一定の時間コストがあるブラウザ修正要件 :ブラウザベンダーのAPI修正採用が必要FIDO2サーバー修正 :わずかですがサーバー側の協力が必要互換性の向上 :プログラム分析を通じて関連JavaScriptを自動的に特定および処理手動入力への拡張 :ユーザーが手動入力したパスワードの保護攻撃検出 :ノンスメカニズムを利用した攻撃の検出と報告他のAPI保護 :クリップボード、ファイルシステムなど他のブラウザAPIへの設計拡張実用的価値が高い :数千万のパスワードマネージャーユーザーに影響する実際のセキュリティ問題を解決エンジニアリング実装が完全 :完全なFirefox実装と詳細な移植ガイドを提供評価が包括的 :セキュリティ、互換性、パフォーマンスの統合的な評価を含む理論的拡張 :概念をFIDO2プロトコルに成功裏に一般化業界フィードバック :ブラウザベンダーとパスワードマネージャーチームから積極的なフィードバックを獲得展開の課題 :ブラウザベンダーの協力が必要であり、推広に不確実性がある互換性の問題 :依然として3%のウェブサイトに互換性の問題がある脅威モデルの制限 :オペレーティングシステムレベルの攻撃またはTLS中間者攻撃から保護しないユーザー混乱のリスク :ユーザーが表示されるランダムなパスワードに混乱する可能性がある学術的貢献 :10年前に停滞した研究方向を再度活性化実用的価値 :数千万ユーザーに即座のセキュリティ改善を提供標準化の可能性 :W3C標準化を通じた広範な採用を推進する可能性がある研究への刺激 :他のブラウザAPIのセキュリティ保護のための設計パラダイムを提供エンタープライズ環境 :高いセキュリティ要件を持つエンタープライズ展開高価値アカウント :銀行、政府などの重要なサービスの認証セキュリティ意識の高いユーザー :プライバシーとセキュリティに高い要件を持つユーザーグループ研究プロトタイプ :さらなるブラウザセキュリティ研究のための基盤プラットフォーム本論文は47の関連文献を引用しており、主に以下を含みます:
StockとJohnsの元のノンス置換プロトコル論文 パスワードマネージャーセキュリティ分析の関連研究 ブラウザ拡張機能セキュリティ脅威の実証研究 FIDO2プロトコルセキュリティ分析文献 ウェブトラッカーおよびXSS攻撃の現状研究 総合評価 :これは重要な実用的価値を持つシステムセキュリティ論文であり、理論的設計を動作可能なプロトタイプシステムに成功裏に変換し、包括的な実験を通じてその有効性を検証しています。本論文は現実の重要なセキュリティ問題を解決するだけでなく、将来の研究に新しい方向性を開いています。展開と互換性の面でまだ課題に直面していますが、その技術的貢献と実用的価値により、ブラウザセキュリティ分野における重要な進歩となっています。