Firefox 3 安全な更新のために更新情報定義に署名する

Firefox 3 Beta 4 から安全な更新方法を提供しないアドオンは無効になるみたいです。インストールもできません。
関連 URL

Gecko 1.9には、ユーザをアドオンの更新中に行われる 中間者攻撃 から保護するために設計された、追加の要求事項が加えられました。インストール済みのアドオンの install.rdf の中において、updateURL は以下のいずれかの方法で示される必要があります。

* https を使った updateURL、もしくは全く updateURL を提供しない。(この場合、初期状態では https で通信する addons.mozilla.org へアクセスすることになります)

* http を使った updateURL で、updateKey エントリが指定されている。(それは更新情報の定義の内容を検証するために使われるでしょう。)

install.rdf の中で updateKey を指定する場合、更新情報の定義への署名 を行う必要があります。さもなければ、更新情報は拒絶されます。

updateURL によって伝えられた更新情報の中の updateLink は、以下の方法のうちのいずれかによって指定される必要があります。

* XPI ファイルへの updateLink は https を使ったものでなければなりません。

* updateLink は http を使うことができ、この場合、あなたは sha1、sha256、sha384、sha512 のいずれかのハッシュアルゴリズムで生成した XPI の 更新ファイルのハッシュ (updateHash) を含める必要があります。

更新情報の定義の中において、それらの 2 つの条件を満たさないあらゆる情報は、新しいバージョンをチェックする際にはすべて無視されます。


なのでアドオンを開発をしていて Firefox 3 対応する人はアドオンの配布方法によっては更新定義の署名が必要になります。
ということなので更新定義の署名をやってみました。とても簡単です。

  1. http://developer.mozilla.org/ja/docs/McCoy から環境にあわせた McCoy をダウンロードして展開。
  2. mccoy を実行(Ubuntuでは root 権限で実行する必要がありました)
  3. new password を入れる。(これは McCoy を他の人に使われたりしないようにするため)
  4. Create ボタンを押して名前をつける(ここではアドオンの名前を使います)
  5. 右クリックで公開鍵をクリップボードにコピー
  6. install.rdf に updateKey という項目を追加し公開鍵を記入します


こんな感じ。

<em:updateKey>公開鍵の長い文字列</em:updateKey>


これでインストールできるようになります。
もう一つの作業 updateHash の件はまた今度。(簡単なので説明が必要ない予感)


それにしても Firefox 3 Beta で拡張を開発するのは Firebug も MozRepl もなくてつらい><。