自堕落な技術者の日記 : OpenSSL0.9.8[hij]のCMS署名検証の脆弱性 - livedoor Blog(ブログ)

OpenSSLのCMS署名の検証に関する今回の脆弱性問題について書き忘れていたことがあったので補足させてください。

最初に言っておくと、今回の脆弱性自体は一般にはほとんど影響の無いものです。

・OpenSSLには従来よりPKCS#7を扱う機能があるが、これではなくて
  新たにOpenSSL 0.9.8hより追加されたCMS機能の問題
・OpenSSLのCMS機能はデフォルトではインストールされない

例えば、今手元のCygwinにインストールされているopensslは0.9.8jなんですが、version を確認するとこんな感じ、、、

% openssl
OpenSSL> version -a
OpenSSL 0.9.8j 07 Jan 2009
built on: Thu Jan 8 10:47:34 WEST 2009
platform: Cygwin
options: bn(64,32) md2(int) rc4(idx,int) des(ptr,risc1,16,long) blowfish(idx)
compiler: gcc -D_WINDLL -DOPENSSL_PIC -DOPENSSL_THREADS -DDSO_DLFCN
-DHAVE_DLFCN_H -DTERMIOS -DL_ENDIAN -fomit-frame-pointer -O3 -march=i486
-Wall -DOPENSSL_BN_ASM_PART_WORDS -DOPENSSL_IA32_SSE2 -DSHA1_ASM -DMD5_ASM
-DRMD160_ASM -DAES_ASM
OPENSSLDIR: "/usr/ssl"


一般的なLinuxのディストリビューションやcygwinではCMS署名を使えるようにはなっておらず、configure 時にわざわざ "enable-cms" オプションを付けてビルドする必要があります。

enable-cms になっていれば openssl でオプション引数 cms を付けることができるようになりますが、そうなっていないデフォルトのビルドでは

% openssl cms
openssl:Error: 'cms' is an invalid command.


とエラーになります。

ちなみに例えばLinuxで enable-cms でビルドするにはこんな感じ、、、

# Linuxの場合
# (注1:VMGuestからHostをマウントしたディスクではビルド不可。ローカルで。)
% config enable-cms
% make depend
% make