[mew-dist 28253] Re: gnupg 1.4.9

Kazu Yamamoto ( 山本和彦 ) kazu at example.com
2008年 4月 1日 (火) 11:39:34 JST


山本です。

>  署名の検証がおかしくなったまさにそのメールに書かれています。でも、
> cross-certificationがよくわからないので、あとで調べてみます。

相互署名(?)は、主鍵と副鍵で互いに署名し合うことです。

PGP 2 では、公開鍵暗号として RSA しかサポートしていませんでした。RSA では、
署名も暗号化もできるので、主鍵と副鍵という概念はありませんでした。

OpenPGP では、公開鍵暗号として、署名しかできない DSA がサポートされまし
た。これは、署名のデフォルトです。暗号の方は、ElGamal の「暗号のみ」が
デフォルトです。(ElGamal は、署名もできる公開鍵暗号です。)

署名のために公開鍵と秘密鍵(たとえばDSA)があり、主鍵と呼ばれます。
暗号のためにも公開鍵と秘密鍵(たとえば ElGamal)があり、副鍵と呼ばれます。

これらが同一の ID に属することを保障するために、両方の鍵を一緒にしたも
のに署名します。

主鍵は署名用なので必ず署名できます。主鍵で、主鍵+副鍵を署名したのが、
副鍵を束縛する鍵です。

今回は、主鍵を束縛する副鍵での署名も必須になったということです。両方の
鍵で署名するので、相互署名(?)といいます。

で、ElGamal の「暗号のみ」で、どうやって署名するのかと疑問に思っていま
したが、実験したところ、やっぱり署名できませんでした。
(gpg --key-edit & cross-certify コマンド)

というわけで、今回の変更の影響は、以下のように特殊な鍵を持っている場合
に限られるようです。

- 署名と暗号化のアルゴリズムが異なる
- しかも、暗号化のアルゴリズムが署名もでき、かつ、署名もできるモードを
  指定している

で、対策ですが、Mew では以下のエラーメッセージを拾うようにしておきます。

gpg: Signature made Thu Dec 20 18:40:49 2007 JST using DSA key ID 010A57ED
gpg: WARNING: signing subkey 010A57ED is not cross-certified
gpg: please see http://www.gnupg.org/faq/subkey-cross-certify.html for more information
gpg: Can't check signature: general error

小山さんは、Werner の相互署名された証明書を再入手する方がいいでしょうね。

あー、長かった。

--かず



Mew-dist メーリングリストの案内