GnuPGでは鍵を生成した後でユーザIDを追加することができます。ここで、Aさんが自分の鍵に二つのユーザID、A1とA2を設定したとします。その公開鍵をエクスポートして、Bさんに渡し、Bさんは自分の鍵輪にインポートします。そして、Bさんは自分の秘密鍵でそのうちの一方であるA2(とAさんの公開鍵)に対して署名を付加したとします。
この状態で、Aさんが署名したメッセージを受け取ったBさんが署名を検証すると、
gpg: Signature made Tue Oct 4 12:01:47 2005 JST using RSA key ID 0A04D4DA gpg: Good signature from "A1 <a1@example.org>" gpg: aka "A2 <a2@example.org>"
のように表示されます。実際にはA1に対しては署名を付加していないので、検証に使用した公開鍵がA1のものであるかどうかの確認はまったくできていません。実際、--verify-options show-uid-validityオプションをつけると、
gpg: Signature made Tue Oct 4 12:01:47 2005 JST using RSA key ID 0A04D4DA gpg: Good signature from "A1 <a1@example.org>" [unknown] gpg: aka "A2 <a2@example.org>" [full]
のように、A1の有効性はunknownであることがわかります。つまり、本当にA1(つまり、a1@example.orgの持ち主)が署名したかどうかはわからないということです。しかし、このオプションをつけないと、Aさんが勝手に好きなメールアドレスのユーザIDを追加すると、あたかもその人から来たように見えてしまいます。
逆にこのとき、A1を指定して暗号化しようとすると、
gpg: A06A152C: There is no assurance this key belongs to the named user pub 2048g/A06A152C 2005-10-04 A1 <a1@example.org> Primary key fingerprint: C4A3 9691 5A23 8F99 04B2 D7E2 06A9 A723 281B 1026 Subkey fingerprint: 9127 27E2 18C6 2A62 B4AB 9CDA 79D3 F1A8 A06A 152C It is NOT certain that the key belongs to the person named in the user ID. If you *really* know what you are doing, you may answer the next question with yes.
のように警告されます。
実際のところこのような動きをするのは何故なんでしょう?