9.2 どんなバグがPGPに発見されたか?
以下のバグリストは、バージョン2.4以降のものだけであり、一般的で深刻なバグに限定している。最新版のバグについては、そのプログラムに含まれる文書を参照のこと。このリストにないバグを発見したら、報告のために上記の手続きに従ってほしい。
- PGP 2.6.2のソースは、Linux/ELFのもとでは組み立てられない。PGP 2.6.2のためのELFバイナリを作るには、ソースファイル
80386.Sとzmatch.Sへの二つの変更が必要である。どちらのファイルも、#ifdef 指令を含んでおり、これを変えなければならない。
#ifndef
SYSV を #if !defined(SYSV) && !defined(__ELF__) に変え、#ifdef
SYSV を if defined(SYSV) || defined(__ELF__) に変える。
- MIT PGP 2.6は、ランダムさが少ない鍵を作ってしまうような鍵生成プロセスというバグがあった。2.6.1では修正されている。
- MIT PGP 2.6.2以外のすべての版のPGPは、クリア署名されたメッセージ内の"buglet"に影響されやすい。これは、クリア署名されたメッセージの最初に文書を付加できるようにするものである。付加されたテキストは、署名がチェックされたあとのPGP出力には現われない。MIT
PGP 2.6.2は現在、クリア署名テキストの前のヘッダ行を認めず、署名の前のヘッダ行でRFC 822 構文を実施する。ただ、このバグはチェックのときに現われるので、MIT
PGP 2.6.2を使ったとしてもこのバグは現われることに注意――読者が署名されたメッセージを違ったバージョンでチェックして出力が読めないかもしれない。
- MIT PGP 2.6.1 は、1024〜2048ビットの長さの鍵を圧ケルト思われていたが、できなかった。2.6.2では修正済み。
- MIT PGP 2.6.2は、1994年12月25日以降、最高2048ビットの鍵を生成できると思われていた。1回限りのバグが現われ、2047ビットが最大となっていた。MIT
PGPがある特定のUnix環境でコンパイルされるときには現われないという問題が報告されている。この問題は、2.7.1と2.6.2i、Mac版では修正されている。
- PGP 2.6uiは、従来の暗号化メッセージが同じパスフレーズで二度暗号化されたときに同じ暗号文を作ってしまうという2.3aで示されたバグを受け継いでいる。
- MIT MacPGPは、あなたのIDが指定されなければ、秘密鍵束の中にあっても秘密鍵を見つけることができない。これは、あなたのユーザーIDを示すと思われる初期設定されていないポインタに起因している。修正は簡単。設定ファイルで、
Myname
= "あなたのユーザーID" とすれば、MacPGPは秘密鍵を見つけることができる。これはFatMacPGP 2.6.2と2.6.3では修正されている。質問2.13も参照のこと。
- ViaCryptは、少なくともPGP 2.3aとMIT PGP 2.6, 2.6.1, 2.6.2に影響しているフリーウェアPGPのバグを報告した。このバグは2034〜2048ビットの長さの鍵で作った署名に影響し、それを台無しにしてしまう。実用的にいえば、このバグは、それより長い鍵をサポートしている版のPGPにのみ影響する。ViaCryptは、これはSun
SPARC上のワークステーションでPGPを起動させたときのみに見られる問題のyほうだと報告している。ViaCrypt PGP 2.7.1とPGP
2.6.2iはこのバグに関係ない。以下のパッチでMIT PGP 2.6.2の問題が修正される。
<===== begin patch (cut here)
- --- crypto.c.orig Mon Mar 20 22:30:29 1995
+++ crypto.c Mon Mar 20 22:55:32 1995
@@ -685,7 +685,7 @@
byte class, unitptr e, unitptr d, unitptr p, unitptr q, unitptr u,
unitptr n)
{
- - byte inbuf[MAX_BYTE_PRECISION], outbuf[MAX_BYTE_PRECISION];
+ byte inbuf[MAX_BYTE_PRECISION], outbuf[MAX_BYTE_PRECISION+2];
int i, j, certificate_length, blocksize,bytecount;
word16 ske_length;
word32 tstamp; byte *timestamp = (byte *) &tstamp;
<===== end patch (cut here)
- PGP 2.6.2iの初期の公開では、クリア署名されたメッセージに関するバグを含んでいた。国際的な記号を含む署名されたメッセージは常に失敗するのだ。このため、それはすぐに配布をやめ、それからバグを除いて再度公開された。2.6.2iに問題があるようなら、1995年5月7日以降のコピーをダウンロードすること。
- Steven Markowitz <Steven-Markowitz@deshaw.com>が報告しているように、以下のバグがPGP
4.0 ビジネス版(商用版)に存在している。
- 署名回収が効かない。鍵署名を引っ込めたいとき、PGPはなおも鍵を署名されたものとして扱う。もしpubring.pgpから署名を除いたとしても、鍵束内に回収証明書が残っているなら、PGPはなおも鍵を署名されたものとして扱う。
- 暗号化のみの鍵は署名文書で使われないものの、PGPはそれを鍵署名を作るときに使ってしまうのである。
- PGP国際版は、文書化されていない
+makerandom コマンドを持っているが、これはランダムなデータで埋め尽くされたファイルを生成する。あいにく、それは思ったようには動かない。乱数生成が適切に初期設定されていないからだ。これはふつうのPGP操作には影響せず、このバグは+makerandom が使われたときのみにあらわれる。
|