Hideki Yamane
henri****@debia*****
2008年 7月 26日 (土) 18:45:05 JST
On Fri, 25 Jul 2008 20:04:20 +0900 Tetsuo Handa <from-****@I-lov*****> wrote: Debian/Ubuntu specific な話ですね。 私が理解している範疇で答えます。嘘混じってる可能性もあるので、最終的には 英語で debia****@lists***** で質問するのが一番確実ではあります :) > rpm ファイルの場合は rpm ファイルを作成後に rpm --addsign で > 署名を追加できるようになっていますが、 deb ファイルの場合は > どのタイミングで署名を追加するのでしょう? この件は2つの話に分けて考えなくてはいけません。 ・deb パッケージとしての GPG 署名 ・apt repository としての GPG 署名 パッケージの場合ですが、ccspatch-1.6.3-20080715-1 というものを作ったと しましょう。その場合、debuild コマンドなどでビルドした際に ccspatch_1.6.3-20080715-1.dsc と ccspatch_1.6.3-20080715-1_i386.changes というファイルが作成され、そこにGPG 署名が要求されます。 バイナリの deb パッケージそのものではなく、debian パッケージを生成して いるソースコードおよび repository アップロードに使うためのファイルに 対しての署名がされているわけです。ソースコードの方に署名している理由は、 実際 Debian でビルドされるパッケージはソースコードをアップロードした後、 自動的に buildd と呼ばれる build マシン群が行うため、パッケージ自体に 署名しても他のアーキテクチャでどうすんのよ、となるのを防ぐためです。 もう一つの chanses ファイルは repository アップロードの際に「こいつホント にパッケージアップロードしていいの?」のチェックに利用されるわけです。 (dput/dupload コマンドなどで利用) ちなみに APT repository としての GPG 署名の場合は、通常は distribution 側が用意している dak (Debian Archive Kit) が処理しているのでパッケージ 開発者が意識をすることはほとんどありません。dak はいわゆる「黒魔術」系 なもの(準備/設定が大変で、使う人がほとんどいないのでアンドキュメンテ ッドなことが多い)なので、私も把握はしていません。パッケージなどにもな ってはいません。 #武藤さんとかだと分かるとは思うのですが、今お仕事がかなり忙しそうなので あまり負担をかけたくないです ;-) 配布者側は、多分手作業で repository としての署名を作って、パッケージが 変わるごとにサインし直し…なのかなぁ。やったことないのでこの辺は分かり ません。単純に署名しないで repository 作って配布ならやってますが。 利用者側は、repository としての GPG 署名をしているキーを自分でコマンドで 追加が必要ですね(1回だけだけど)。Official repository は Debian 開発者 の Keyring パッケージがあってそちらで管理しているので、その辺も考えなくて 済むようになっています。 #長めの話で読む方も疲れたかと思いますが、まぁこんな感じです。 -- Regards, Hideki Yamane henri****@debia*****/iijmio-mail.jp http://wiki.debian.org/HidekiYamane