Sep 04, 2007

Firefox 3でのアドオンの自動更新に関する仕様変更(セキュアじゃないアドオンは全部蹴られる件)

のりさんのところで報じられている、Firefox 3の仕様変更について、チェックインされたパッチを詳しく調べてみた。

今後拡張機能の自動更新では、以下の2つの段階でセキュアかどうかのチェックが入るようだ。

  1. install.rdfに書かれたupdateURL(更新情報を提供するRDFデータソースのURI)がhttpsで始まる、もしくは、updateURLで示された先のRDFデータソースであるXML文書が署名されていてinstall.rdfのupdateKeyに書かれた公開鍵で復号化できること。これが第一の条件。
  2. 更新情報を提供するRDFデータソースに書かれたupdateLink(新バージョンのXPIパッケージのダウンロード用URI)がhttpsで始まる、もしくは、updateHashでハッシュが示されていること。これが第二の条件。

この二つの条件が満たされてやっと、アドオンの自動更新が行われるという仕組みになっている。

よって、アドオン作者が取れる選択肢は以下の4つになる。

  1. install.rdfからupdateURLの記述を削除し、全ての更新をMozilla Add-ons経由で行うようにする。(Mozilla Add-ons経由の更新はhttpsなのでセキュア)
  2. 自前のサーバにSSL証明書を置いてhttpsで通信できるようにして、そこに更新情報提供用のRDFデータソースとXPIパッケージを置く。
  3. 更新情報提供用のRDFデータソースに署名して、さらに、その中にXPIパッケージのハッシュの情報も含めておく。
  4. 自動更新のための仕組みを提供しない。現実は非情である。

やる方として一番楽なのは1と4なんだけど、1には重大な問題がある。

  • 公開申請に通ったアドオンは、ファイルを更新する度に審査があるので、審査待ちで長期間放置されると死亡。
  • 公開申請してないアドオンは、ファイル更新の度の審査は不要だけど、ユーザから見えないから気付かれなくて使ってもらえなくて死亡。

というわけでもうちょっと素早く対応できる路線として2を検討してみようと思ったんだけど、仮にどうにかしてSSL証明書を手に入れたとしても、そもそもさくらのレンタルサーバじゃビジネス用プラン以外ではSSLは使えないんだってさ……

3はやりかた自体が分からない。XMLに署名するとかハッシュ値得るとか、僕の頭ではちんぷんかんぷんです。

ということでいずれにしても今の野良アドオン天国はオシマイだと言えよう。

追記。須藤さんにお願いして、cozmixngのサーバに置かせてもらえることになりました。よかったよかった。

エントリを編集します。

wikieditish message: Ready to edit this entry.











拡張機能