logins.json
ファイルには、Firefoxブラウザーで暗号化されたすべてのパスワードが含まれています。 「マスターパスワード」オプションを使用しない場合、Firefoxはこれらのパスワードをどのように暗号化しますか?これは、マスターパスワードを選択しなかった場合にもkey3.db
ファイルが使用されることを意味しますか?
プロファイルが初期化されるとき、空白のパスワード(空の文字列)が使用されます。このコードは、64行目のtoolkit/components/passwordmgr/crypto-SDR.js
にあります。
if (token.needsUserInit) {
this.log("Initializing key3.db with default blank password.");
token.initPassword("");
}
さらに、68行目のtoolkit/components/passwordmgr/LoginImport.jsm
のimport
メソッドに基づいて、暗号化されたパスワードが変更されずにlogins.json
からkey3.db
にインポートされます。したがって、彼らは同じデフォルトのパスワードを使用します。
AFAIK Firefoxは、マスターパスワードを設定しない限り、notencryptパスワードを実行します。代わりに、BASE64を使用してデータをエンコードします。これにより、エディターでファイルを開くときにパスワードが表示されるのを防ぐことができますが、元の秘密を取得するのは簡単です。
残念ながら、マスターパスワードが設定されているときに使用されているアルゴリズムに関して、Mozillaはあまりオープンではありません。ソースから確認する必要があります。