umqの日記: 近況
たまには日記みたいなことを書いてみる
って、今日のことじゃないから日記でもないけど
dkim a=rsa-sha256
draft-ietf-dkim-base-10.txt によると、verifier では rsa-sha1 と rsa-sha256 の実装が MUST、signer は rsa-sha256 の実装が MUST でこれを使うのが SHOULD になってる。
<中略>
なんと、OpenSSL 0.9.7 は sha256 をサポートしていないらしい。
http://ya.maya.st/d/200704a.html#s20070407_1
この件、自宅の環境では OpenSSL 0.9.8 がベースに入っていた(FreeBSD 7 はそうみたい)ので気付かなかった。
やまやさんから ports のパッチが送られてきたのであわてて FreeBSD 6.2 環境を作って確認。
ports だったら FreeBSD 限定だし libssl.so の番号見ればバージョン強制できるんじゃないのといろいろいじくってみたけど、ports-mgmt/portupgrade とかその周辺のツールが依存関係誤認するかもってツッコミもあってモタモタ。
結局やまやさんの送ってくれたパッチがほぼそのままとりこまれてます。
dk-milter
DomainKeys の検証部分は(dk-milter 動くし)そんなに優先度高くないんじゃないかなぁ。
Verifying DomainKeys Signatures with dkim-milter (03)
とか書いてたけど、先月 0.4.2 が約9カ月ぶりに出てたり、0.5.0 がすぐに出てきたりした。
FreeBSD 4 はもう大事に使ったらアカン(1)
そんなこんなで、勤務先の MTA の milter も更新しようと。
対象のサーバは FreeBSD 4。エッヂサーバじゃないしという理由で大事に使われている、というのは嘘で交代用のハードウェアは調達済で設定も7割方終っているらしいが、担当者のスケジュールの都合上ずるずる更新が延びている(というか担当者不在という)。
openssl-overwrite-base-0.9.8e を ports から入れた。
ここでどうもミスったらしい。
mail/dkim-milter 更新。
sign/verify 関係なしに signal 6 で落ちまくる。
core はない。
dkim-milter を設定からはずす。
mail/dk-milter 更新。
sign/verify 関係なしに signal 6 で落ちまくる。
core はない。
dk-milter を設定からはずす。
Sigh...
dkim-milter updates
dkim-milter が毎週のように更新される。主にバグフィクス
このころ、勤務先でのタスクが能力の限界をこえて積みあがってきたので、オフタイムの現実逃避に FEATURES のビルドオプションとかを ports の Makefile に反映。
ほとんど試してないけど、_FFR_ALLMAN_SSP_02 はコンパイルが通らない。まぁ「TXT RR やめて DKIP RR 使おうぜ」みたいなのなので、有効にしてしまうと現時点での実用に困るから気にしない。
a=rsa-sha256 対応に関連して rc ファイルからデフォルト値を削除した。古いバージョンを ports で入れていた場合、移行に際して rc.conf の設定内容を確認しないといけない。UPDATING に載せるまでもない小変更ってどうやって通知するんだろう。
FreeBSD 4 はもう大事に使ったらアカン(2)
ちょっと隙ができたので勤務先サーバの milter がこけるのをちょっと追いかけてみる。
DKIMDEBUG 環境変数に t が含まれるとスレッドごとの実行状況がログに残る。
結局ログじゃわかんなかったので、define(`confOPTIMIZE', `-g') して gdb
はたして、libcrypto.so の bn_mul_add_words() でこけてた。
調べてみたところ、以下のような条件が重なってそんなことになってたみたい。
- OpenSSL は x86 マシンで(利用可能であれば)SSE2 を使うように共有ライブラリを作る(たぶん普通のこと)
- OpenSSL には SSE2 を指定するインラインアセンブラコードを使わないビルドオプションがある
- 今回の問題のマシンは P54C なので SSE も MMX もない
- 古い GNU binutils のなかには、不適切な場合にも共有ライブラリにリンクするバグがある
すると、対処法としては、(a) SSE2 が使える(もしくは x86 以外の)CPU に換える、(b) binutils を新しいものにする、(c) no-sse2 オプション付きでビルドするあたりが選択肢になりそう。
今更こんなことで悩むのはあほらしい。
近況 More ログイン