Firefox拡張機能に署名する

一部のユーザーの間で詐欺を引き起こしたMozilla Firefox 48のリリースに関連する最近の出来事に照らして、拡張機能に署名が必須であるため、この問題に直面した人々は次のいずれかに直面しました。

  1. 署名されていない拡張機能(悪いオプション)を使用しないでください。
  2. ブランドのないビルドを使用する
  3. 回り道をして、何らかの方法でチェックを無効にしようとします。そのいくつかは以下のコメントで提案されています:

    https://geektimes.ru/post/279132/#comment_9480372

    https://geektimes.ru/post/279132/#comment_9480382

  4. 必要な拡張機能に自分で署名します。


ご想像のとおり、ここでは最後の方法について説明します。 公式カタログを介して拡張機能を配布する予定がない場合は、手動チェックなしで署名を取得できます。 簡単でシンプル。



これには次のものが必要です。

  1. addons.mozilla.orgアカウント
  2. インストールされたnodejsバージョン> = 0.10
  3. npm version> = 3.0.0(npm up npm)
  4. nodejsのjpm(npm install jpm)。


「Random Agent Spoofer」拡張機能の例を使用して、署名プロセスを検討します。 この拡張機能には、かなりすぐに古くなるユーザーエージェントのリストが含まれており、アドオンは頻繁に更新されません。 また、公式リポジトリでは、必要なデータを含むファイルが定期的に更新され、それらをビジネスに投入することが自然に望まれています。



これで、アカウントが登録され、ソフトウェア環境がインストールされ、続行できます。



実験的な拡張機能を取り出して別のフォルダーに解凍します 。この場合、 https://github.com/dillbyrne/random-agent-spooferにあるリポジトリキャストを使用します

次のディレクトリ構造を取得します。

test\

lib\

doc\

data\

.gitignore

LICENSE

package.json

README.md







既製のアセンブルされた拡張機能を使用する場合は、展開されたフォルダーのルートで、「bootstrap.js」ファイルを削除し、

「Install.rdf」、これらはビルドプログラムによって作成され、既にサインインされているアドオンを変更すると、「META-INF」フォルダーも追加されます。 なぜなら まだアセンブルされていないアドオンを扱っている場合、これは必要ありません。 次のステップは、解凍された拡張機能のディレクトリのルートにある「package.json」ファイルを編集することです。 私たちの場合、その始まりは次のようになります。

{

"name": "random-agent-spoofer",

"title": "Random Agent Spoofer",

"id": "jid1-AVgCeF1zoVzMjA@jetpack",

"description": "Allows the use of various browser profiles (including useragent ,platform, oscpu, accept headers and other options), which it can randomly switch between after a chosen period of time has expired",

"author": "dbyrne",

...

}







idパラメーターが含まれている場合は、変更または削除する必要があります。 そうしないと、所有者ではないことを署名しようとしたときにエラーが発生します。

次に、次の「スペル」コマンドを使用して、アーカイブに拡張機能を構築します。



jpm xpi --addon-dir < >







または単に:



jpm xpi



(現在のディレクトリが解凍された拡張機能のルートである場合)。



出力には、収集した拡張子.xpiのファイルが表示されます。これに署名します。



ここで、 addons.mozilla.orgに登録されたために、APIキーを準備しましょう。 次のようにaddons.mozilla.org/en/developers/addon/api/keyで見ることができます:



JWT: <private data>

JWT: <private data>







<プライベートデータ>はプライベートキーです。 そして結論として、実際には、署名行為自体は次の命令によって実行されます。



jpm sign --api-key <api-key data> --api-secret <api-secret data> --xpi < >







すべてがエラーなしで進み、自動検証に合格した場合、現在のディレクトリで必要な署名された拡張機能を取得します。



便利なリンク:

Jpmドキュメント: developer.mozilla.org/en-US/Add-ons/SDK/Tools/jpm

APIへの署名: olympia.readthedocs.io/en/latest/topics/api/signing.html



ご清聴ありがとうございました!



All Articles