web-dev-qa-db-ja.com

Firefoxのバグにより、暗号化されたパスワードを盗むことができます。これはどのようにして可能ですか?

Firefoxのパスワードマネージャーに保存するパスワードは暗号化されており、マスターパスワードを設定すると、このプロセスで使用される暗号化キーが暗号化されるというのが私の理解です。 Googleは "Firefoxは保存されたパスワードを暗号化しますか?"に対してこれを返します Mozillaサポートフォーラムの記事 ここで、選択された回答(モデレーターによって投稿された)は次のように述べています:

Logins.jsonに保存されているパスワードは暗号化されていますが、暗号化キーはkey4.db(以前はkey3.dbにあります)に保存されており、マスターパスワードがない場合は、2つのファイルを配置するだけでFirefoxプロファイルフォルダーにパスワードが表示されます。パスワードマネージャー。

logins.jsonはFFがパスワードを格納する場所であることに注意してください。)

この情報セキュリティ question は、ユーザーがマスターパスワードを設定する前であっても、よく知られている question のように、パスワードが暗号化されていることを前提としています。

しかし、Sophos Naked Securityの記事 Firefoxが「マスターパスワード」のセキュリティバイパスバグを修正する によると、Mozillaは セキュリティ修正 をリリースして、攻撃者は、マスターパスワードを入力せずに保存したパスワードをクリップボードにコピーできます

ローカルに保存されたパスワードは、最初にマスターパスワードを入力せずに[パスワードのコピー]コンテキストメニュー項目を介してクリップボードにコピーできるため、保存されたパスワードの盗難の可能性があることがわかりました。

パスワードが暗号化されている場合、これはどのように可能ですか?

マスターパスワードは、アクセスする前に復号化するために必要ですか?私のlogins.jsonファイルとkey4.dbファイルにアクセスする攻撃者が私の保存したパスワードをすべて入手してしまうのではないかと非常に心配しています。

マスターパスワードが設定されていない場合、ログインパスワードは常に利用可能です。マスターパスワードが設定されている場合は、[保存されたログイン]ダイアログを開くと、マスターパスワードの入力を求められます。正しいマスターパスワードがないと、ログインのリストは空になるため、コピーするパスワードはありません。

バグはこの特定の条件でのみ発生します。

  • マスターパスワードが設定されます。
  • この閲覧セッションでマスターパスワードを入力して、ログインのロックを解除しました。

明確にするために:マスターパスワードが設定されており、このセッションのログインがロック解除されていない場合、パスワードは引き続き保護され、このバグでは利用できません

パスワードは暗号化されてディスクに保存され、マスターパスワードから派生したキーによって保護されます。 Firefoxを初めて起動した場合、ログインフォームが表示されたとき、または[保存されたログイン]セクションを開いたときに、通常はマスターパスワードの入力を1回だけ求められます。このリクエストを却下すると、ログインは利用できなくなります。ただし、パスワードを入力すると、Firefoxを終了するまで、復号化されたパスワードを使用できます。

通常、Show Passwordsボタンを使用するか、ログインを右クリックしてCopy Passwordを選択すると、プロンプトが表示されますもう一度パスワードを入力してください。バグのため、パスワード確認プロンプトが表示されましたが、パスワードはすでにバックグラウンドでコピーされていました。

Screenshot of Saved Logins

私の意見では、影響は非常に小さいと思います。 unlockedセッションに物理的にアクセスできる人は、すでに他の方法でパスワードを取得できます。

  1. https://stackoverflow.com/users/login などのWebサイトにアクセスします。
  2. ログインが入力されていることを確認します。
  3. 開発者ツール(F12)を開き、コンソールに移動します。
  4. 実行:document.querySelector("input[type=password]").value
  5. パスワードを確認してください。

または、デベロッパーツールの[ネットワーク]タブに移動することもできます。ログインを押して、記録されているパスワードを確認します。ログインがすでに入力されている場合、ログインを取得する方法はたくさんあります。

バグを参照する commit については、非同期呼び出し(masterPasswordLogin())が待機されなかったことがコードの欠陥でした。そのため、ログインプロンプトが確認される前に、パスワードをコピーするコードがすでに実行されています。修正は、プロンプトが完了するのを待つことです。

Mozillaからの最初のセキュリティ勧告は、マスターパスワードを入力しなくてもパスワードをコピーできると述べただけです。それ以降、この セキュリティ勧告 は上記の説明で更新され、次のようになりました。

マスターパスワードが設定されている場合、「保存されたログイン」ダイアログで保存されているパスワードにアクセスする前に、再度入力する必要があります。同じセッションでマスターパスワードが以前に入力されていた場合、マスターパスワードを再入力せずに、ローカルに保存されたパスワードを「パスワードのコピー」コンテキストメニュー項目を介してクリップボードにコピーできるため、保存されたパスワードの盗難の可能性があることがわかりました。

16
Lekensteyn