[Reference:<_A2@delegate-notes.ML_>]
Newsgroups: mail-lists.delegate-notes
[DeleGate-Notes] DeleGateの実行ファイルの検証方法 (-Fesign)
DeleGateの実行ファイルの検証方法
DGbeecon-09-12-08-sato
プロキシサーバのように、セキュリティやプライバシーに関わる情報に触れ
ることの多いプログラムが、スパイウェアに仕立てられたりすり替えられたり
したら大変な事になります。プロキシのプログラムを使う前に、それがその
ようなモノで無いことを確認するに越したことはありません。
さて、その昔DeleGateの開発・配布を始めた頃は、ユーザの方々は皆さん、
ご自身で(フリー)ソフトを入手して来て、コンパイルして、インストールする
というのが当たり前、の時代でした。ソフトの「インストール方法」は、make
の仕方の手順から始まるのが普通でした。
時代はうつり、最近では、Linuxでさえ、デフォルトでは開発環境が(ccやmake
すら)含まれていないのが当たり前、の時代になってきました。
DeleGateでも、バイナリ配布の利用者の割合が、増加し続けています。
DeleGateは、様々な種類のUnixや、Windowsで使われていますが、最近のダウン
ロード状況を見ますと、全体としてバイナリ配布とソース配布の比率は、
3:2 ほどで、バイナリ配布が優勢になっています。今後もこの傾向は
進んで行くものと思います。
ここで、バイナリ配布の場合、そこにどんなコードが含まれているか分からない
という問題があります。開発者から利用者の手に届く過程のどこかで、悪意の
改竄が為されたかも知れません。あるいは、全然別のプログラムが名前だけ
偽っている場合さえ考えられます。
ソースコードからmakeする場合にでも、実際には悪意のコードの有無を検査で
きる機会や人やツールは、まず無いとは思うのですが、バイナリの場合には
ほぼ検査が不可能です。
そこでDeleGateでは 9.2.5 (06年9月) 以降、実行ファイルの作成の際に、実行
ファイルのチェックサム(MD5)と、それに対する非対象鍵(RSA)による署名を、
実行ファイルに組み込むようになっています。
これを検証することで、その実行ファイルが「DeleGateの開発元で作成され、
署名され、その後改竄されていない」ということを検証できます。
この検査を行なうのが、-Fesign オプションです。例えば、
% delegated -Fesign
とすると、自身の署名情報を表示します。しかし、これも単に偽りの表示かも
知れません。そこで、異なる時期、または異なる経路で入手したDeleGateの
バイナリ同士で、以下のように、相互に検証するのが良いと思います。
% delegated1 -Fesign delegated2
% delegated2 -Fesign delegated1
そのような用途のために、DeleGate.ORG ではなく、AIST.GO.JP にも、幾つか
のOS用の、DeleGateのバイナリを置いておきます。
<URL:http://staff.aist.go.jp/y.sato/bin/>
9 9
┌─┐┬┌──┬┐ //\^^ ( e ); {Do the more with the less -- B. Fuller}
├─┤│└─┐│ / 877m\_< >_ <URL:http://www.delegate.org/delegate/>
┴ └┴──┘┴──────────────────────────────
佐藤豊@情報技術研究部門.産業技術総合研究所(独立行政法人)
|