叛乱オンライン
HOME > Theory > Crypt

暗号を使おう!

 
The comp.security.pgp FAQ
Version 1.4
 

9. バグ

  • 9.1 バグ・レポートはどこに送ればいいか?
  • 9.2 どんなバグがPGPに発見されたか?
 

9.1 バグ・レポートはどこに送ればいいか?

MIT PGP関連のバグは、pgp-bugs@mit.eduに送るといい。そのバグがすでに報告されていないことを確認するまえに、MIT PGPの完全なバグリストを見るには、MIT PGP FAQをチェックするといい。深刻なバグなら、それをcomp.security.pgp.announceか.techにも投稿しよう。深刻なバグとは、プログラムの安全性に関するものであって、コンパイルエラーや小さな論理エラーではない。

MIT版でないPGPに関するバグ報告はすべて、comp.security.pgp.techに投稿し、将来のFAQにそれを取り入れたものを作れるように、できればそのコピーを私に転送してほしい。PGPの制作者は直接送られたバグレポートを見ないかもしれないと考えておいてほしい。ユーズネットに投稿することは、短期間で広範囲に配布される可能性がある。

 

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 SYSVif 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 ビジネス版(商用版)に存在している。
    1. 署名回収が効かない。鍵署名を引っ込めたいとき、PGPはなおも鍵を署名されたものとして扱う。もしpubring.pgpから署名を除いたとしても、鍵束内に回収証明書が残っているなら、PGPはなおも鍵を署名されたものとして扱う。
    2. 暗号化のみの鍵は署名文書で使われないものの、PGPはそれを鍵署名を作るときに使ってしまうのである。
  • PGP国際版は、文書化されていない+makerandomコマンドを持っているが、これはランダムなデータで埋め尽くされたファイルを生成する。あいにく、それは思ったようには動かない。乱数生成が適切に初期設定されていないからだ。これはふつうのPGP操作には影響せず、このバグは+makerandomが使われたときのみにあらわれる。
 
[ PGP-FAQ目次]
[ 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11]
[ 追補 ]
[ このFAQについて | 用語集 | 著作権]
 

HOME > Theory > Crypt

2000年盗聴法対抗
ダウンロードPGP6.5.1iPGP disk
日本語化PGP鍵作成
PGPdiskマウント秘密鍵を隠す
落とし穴
完全抹消法

PGP ユーザーズ・マニュアル 第1巻
The comp.security.pgp FAQ 日本語版
パスフレーズFAQ 日本語版
バックドア NSAPhrack Magazineソースコード
暗号関係リンク集

叛乱オンライン