鍵署名 (Keysigning)

トレードショウやカンファレンスではたくさんの開発者たちが集まりますから、 他の人に自分の GnuPG 鍵に署名してもらい、 「信頼のネットワーク (Web of Trust)」を強化する良い機会といえます。 特にプロジェクトに新しく参加した人にとっては、 他の開発者たちに会ったり鍵署名を行ったりするのは、 とても楽しいことでしょう。

この文書は、鍵署名の一連の作業に対する参考となるべく書かれました。 以下の例は、すべて鍵サーバとして keyring.debian.org を使っています。もし問題となっている鍵が Debian keyring にない場合は、keyring.debian.orgwwwkeys.pgp.net (その名前にかかわらず、GnuPG の鍵も扱っています) などの公開鍵サーバに置き換えてください。

ある鍵に署名をする際は、少なくとも以下の二つの条件が必要です:

  1. 鍵の所有者は署名者に対して、 UID に書かれている個人情報が実際に自分の個人情報であることを、 署名者が納得するような証拠を用いて、証明しなければなりません。 普通の場合は、鍵の所有者は政府などの発行した証明書 (鍵の所有者の情報が書かれている写真つきのもの) を提示することになるでしょう。 (署名者によっては、提示を受けた政府発行の ID が 簡単に捏造されることを知っていたり、 発行者の権威が疑わしいことを知っていたりして、 追加情報や別の情報を要求することもあるかもしれません。)
  2. 鍵の所有者は、署名されようとしている鍵の指紋 (fingerprint) と鍵の期限が、 実際に自分の鍵のものであることを確認しなければなりません。

最も重要なのは、鍵の所有者が鍵交実の場に実際に参加しなければ、 この条件の 1 と 2 の両方を満たすことはできない、という点です。 鍵の所有者の代理人では、 鍵所有者の成すべき 1 の要件を満たすことはできません。 なぜならこれを許してしまうと、ID カードを盗んだ人間によって、 代理人になりすまして PGP 鍵への署名を受けることが 可能になってしまうからです。 また鍵の所有者の代理人が、 鍵所有者の成すべき 2 の要件を満たすことはできません。 なぜなら代理人が、 別の PGP 鍵に所有者の名前を付け、 その指紋に差し替えて署名を行わせることが 可能になってしまうからです。

Debian パッケージの signing-party は、このプロセスに役立つツールをいくつか提供しています。gpg-key2ps は GnuPG 鍵を PostScript ファイルに変換して、鍵の指紋を印刷してくれます。また、 gpg-mailkeys は署名した鍵をその持ち主にメールで送信してくれます。 このパッケージにはもっと進化したツール caff も含まれています。 詳しい情報は、パッケージのドキュメンテーションを見てください。

やってはいけないこと

実際に個人的に会った人でない限り、 絶対にその人の鍵に署名してはいけません。 直接知りえた情報以外を基に鍵に署名してしまうと、 「信頼のネットワーク」を破壊してしまいます。 あなたの友達が、あなたの ID と指紋を、他の開発者に提示したとしましょう。 でもあなたはその場にいませんから、 その指紋が実際にあなたのものかどうか確認できません。 その開発者は、指紋と ID とを結びつける情報として、 何を提供されたことになるでしょうか? その友達の言葉と、あなたの鍵になされた他の署名だけに過ぎません。 従って、開発者がこのあなたの鍵に署名したとすれば、 「他の人が署名してるから自分も署名した」というのと何ら変わりはないのです!

ひとつの鍵にたくさん署名があるのは良いことです。 ですからつい手続きを省略してしまいたくなるかもしれません。 しかしながら、信頼に足る署名をしてもらうことは、 たくさんの署名を受けることよりも重要です。 ですから、鍵署名の手続きを、 可能な限り汚染されないように保つことが非常に重要です。 他の誰かの鍵に署名するということは、 その鍵の所有者の個人情報を、直接の証拠によって確認した、 という意味の承認にあたります。 これ以外のつもりで署名を行ったら、 それ以降「信頼のネットワーク」は信頼できないものになってしまいます。