OpenswanでSingle DESを使う方法

最近IPSecを設定する機会がありました。OpenswanはデフォルトではSingle DESをサポートしてないのですが、相手方がSingle DES前提でした。歴史ある機器だとデフォルトがSingle DESなのですね。
暗号化強度としては低いのですが、それ前提でよかったのでそのまま進めました。が、意外とSingle DESの設定の仕方が記事として見つからなかったのでここに記録します。環境は

  • openswan 2.6.37(現在の最新)
  • CentOS 5.5

です。

結論を書くと、コンパイルオプションを設定するファイル「Makefile.inc」を2か所書き換えます。

# should we include all manner of known to be broken/weak?
# use this only if you are building some kind of a testing
# device. Normal use does not need any of this.
USE_WEAKSTUFF?=true

# Build algorithms that don't even encrypt (also must set WEAKSTUFF)
# unless you are doing negative testing, turning this on is foolish.
USE_NOCRYPTO?=true

「USE_WEAKSTUFF」と「USE_NOCRYPTO」の2つをtrueにします。これで「ike=des-md5;modp768」など、des(single DES)の設定が可能になります。

このとき、WEAKSTUFFだけをtrueにしてUSE_NOCRYPTOはfalseのままdesを使うと、エラーメッセージではなくsegmentation faultになります。NOCRYPTO(暗号なし)の設定なのでfalseのままで良いと勘違いして、ずいぶん苦しめられました。Single DESなんか使うな、という記述がドキュメントに散見されたので、openswan開発者にとってSingle DESはもはや暗号とは呼べないんでしょうね。