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

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

Source: https://habr.com/ru/post/J355144/


All Articles