最新 RSS Twilog 掲示板

くでんな日々や公開どう?

2007/09/21

[Mozilla] さぁ、McCoyをはじめよう!!

マッコイっていったらギャリー・マッコイしか頭に思い浮かばない……

簡単に秘密鍵公開鍵のペアの生成とその秘密鍵を使ったupdate.rdfへの署名ができるXULRunnerアプリケーションのツールが公開されています。

これで個人で容易にPiroさんが解説してくだすった「1. install.rdfに書かれたupdateURLで示された先のRDFデータソースであるXML文書(update.rdf)が署名されていて、install.rdfのupdateKeyに書かれた公開鍵で復号化できる」と「2. 更新情報を提供するRDFデータソースに書かれたupdateHashでハッシュが示されている」を満たすことができるようになりました。つまり、今までよりセキュアに「野良アドオン」の更新を提供できるようになったということです。

実際に試してみたんですけど、<em:updateURL>がhttpでもちゃんとMinefieldにインストールできましたし、アドオンマネージャから「Find Updates」して新しいパッケージの通知を受け取って、新しいパッケージをダウンロードしてインストールしてアドオンを更新することができました。

以下にやりかたをざっと書いてみます。当然ですが試される場合はアドオンとupdate.rdfのバックアップを取ってからにしてください。

まず、McCoyをダウンロードして解凍して任意のディレクトリに置きます。mccoyディレクトリ直下のmccoy.exeをダブルクリックするとMcCoyが起動します。初回起動時にデータ保護のためにマスタパスワードの入力を求められますから入力してください。このパスワードはMcCoyの起動ごとに入力を求められます。なお、McCoyのプロファイルはWindows XP/2000だと下のディレクトリ以下に作られます。

C:\Documents and Settings\ユーザ名\Application Data\Mozilla\McCoy

まず、ツールバーの「Criate」ボタンを押して、任意の文字列を入力して新しいキー(何のためのキーか分かりやすい文字列)を作ります。日本語も使えるみたいですけど無難なのは半角英数でしょうね。これによってこのキー用の秘密鍵と公開鍵が生成、記憶されます。

次に、複数のキーが管理できるので、使うキーを選択して「Install」ボタンを押します。アドオンのinstall.rdfの場所が聞かれるので指定して「開く」ボタンを押します。これで<em:updateKey>(公開鍵)がinstall.rdfに書きこまれました。手動で<em:updateKey>を書きこみたい場合はキーの上で右クリックして「Copy Public Key」を選択してください。公開鍵がクリップボードにコピーされます。

ここで、アドオンをxpiなりjarなりにパッケージングします。update.rdfに<em:updateHash>を記入するために、作ったアドオンパッケージのハッシュ値を生成します。私は簡単に使えるのでbkhashesを使っています。takeshiさんによるとFirefoxの拡張のMDHashToolなんかでも生成できるそうです。ハッシュ関数にはsha1・sha256・sha384・sha512が使うことができます。ハッシュ値を生成したらupdate.rdfに<em:updateHash>として記入してください。

最後に、McCoyに戻って「Sign」ボタンを押します。先ほどと同じようにupdate.rdfの場所が聞かれるので指定して「開く」ボタンを押します。これで<em:signature>が記入されてupdate.rdfに署名がされました。なお、update.rdfのRDFで表現されている情報に一文字でも変更があった場合には再度の署名が必要になります(だから署名の意味があるわけですが)。ですから先に<em:updateHash>を記入したわけです。なおファイル名は「update.rdf」じゃないと署名できないみたいです。

あとはサーバにアップロードするだけです。いや、本当にこういうツールを作っていただけてありがたいですね。

追記(2007年9月21日21時):Piroさんの記事。つまづかれたところは私としては当たり前になってる部分と気がついてた部分なので触れておけば良かったかなぁ……この記事は昨日の夜に書いたんですけど、昨晩は突然Gran Paradiso Alpha 8マイルストーンが公開されてそっちに時間を取られちゃったんです。あと、MDCのinstall.rdfやupdate.rdf関係の文書が更新されてそちらに詳細が載ってたりします。

追記(2007年9月22日6時):PiroさんがMDCのMcCoyについての文書を訳してくださいました。フランス語やポーランド語より早いや……本当に能力と実行力は素晴らしいと思います。

コメント

takeshi 『Createボタンで作られるのは秘密鍵と公開鍵の両方だと思います。秘密鍵は自動的に内部的に作られるもので目には見えません。Createボタンを押した後入力するのは鍵に付ける名前です。これは複数鍵を生成する場合に自分が区別できるように便宜的に付けるものです。当然それ(名前)が他人にばれても何の問題もありません。』 (09/28 06:09)

くでん 『分かりました。教えていただいてありがとうございます。他にもあやしいところがあるので折を見て書き直しますね。』 (09/28 07:07)

Premier 『> 最後に、McCoyに戻って「Sign」ボタンを押します。先ほどと同じようにupdate.rdfの場所が聞かれるので指定して「開く」ボタンを押します。これで<em:signature>が記入されてupdate.rdfに署名がされました。  とありますが、update.rdfに自動的に<em:signature>行が埋め込まれるのでしょうか? 当方では何も変化が無いのですが・・・・。』 (10/07 14:24)

くでん 『> update.rdfに自動的に<em:signature>行が埋め込まれるのでしょうか? 手元ではそうなります。Windows 2000上のMcCoy 0.5です。キーを作ってそのキーを選択した状態で「Sign」ボタンを押してupdate.rdfを指定されてますよね?』 (10/07 16:28)

Premier 『Windows XP Pro SP2 + McCoy 0.5 で<em:signature>が記述されません。ひょっとして<em:signature>と<em:updateKey>は同じ値でしょうか。(MDC資料ページによる例では同じような・・・)であれば手書きでupdate.rdfに署名(<em:signature>)できますけど・・・?  』 (10/07 19:41)

くでん 『長くなってきましたからよろしければ掲示板のほうで。http://maguroban.s41.xrea.com/sara/bbs/』 (10/08 15:58)

お名前 コメント