SIM フリーどさにっき 〜2014年4月上旬〜

by やまや
<< = >>

2014年4月2日(水)

apache 2.4.9

_ に上げようとした。

_ 失敗した。

_ mod_mpm_event.so がビルドされてないなぁ。なんでだろ。perfork か worker に変えれば動くんだろうけど、腑に落ちないのでちと調べてみる。

_ config.log から。

configure:25851: checking if event MPM supports this platform
configure:25866: result: no - APR skiplist is not available
うーむ。configure の中身をさらに見ていくと、
case $APR_VERSION in
    1.4*)
        apr_has_skiplist=no
        ;;
    *)
        apr_has_skiplist=yes
esac
こんな感じ。たしかに apr 1.4 だなぁ。が、この記述を信じると 1.3 以下でも問題ないはずで、1.5 に上げればいいというわけではなさげな感じ。つーか、2.4.6 では apr 1.4 でもちゃんと event MPM が動いてるんだけど、何が違うんだ? と思ってさらに調べてみたら、2.4.7での修正点として、
*) APR 1.5.0 or later is now required for the event MPM.
とか書いてあった。configure の書き方がおかしいな。正しくは、
case $APR_VERSION in
    1.5*)
        apr_has_skiplist=yes
        ;;
    *)
        apr_has_skiplist=no
esac
じゃなきゃおかしいでしょう。

_ で、何で apr 1.5 が必要になったのかがわからんのですがどうしてなんでしょうね。


2014年4月10日(木)

heartbleed

_ openssl の今回の heartbleed バグ。これはやばいなぁ。SSL なサーバが確実に持っていて漏れたらマズい情報といったら秘密鍵だけど、それ以外にもいろんな情報が漏れる。誰でも知ってる超大手で、他人のユーザ/パスワードが見えちゃったなんて話も聞こえてきてるし。

_ 対処方法はバージョンを上げるか機能を無効にしてコンパイルしなおすかしかないみたいなこと言われてるけど、あれって TLS の拡張機能なんで、TLS を使わない(SSLv3 だけ使う)ようにすれば、とりあえず回避できるんじゃないかなぁ。どうかなぁ。もちろん、SSLv3 を強制するといろいろデグレードしちゃうんで、それを推奨するつもりはまったくないんだけど、どうせけっこうな割合のクライアントが SSLv3 だし、入れ替えできずに放置しておくよりはいくぶんマシだと思うんだよね。試しに SSLv3 で heartbeat やってみると、

> echo B | openssl s_client -connect maya.st:443 -ssl3
HEARTBEATING
34379118248:error:1413B16D:SSL routines:SSL_F_TLS1_HEARTBEAT:peer does not accept heartbearts:/usr/src/secure/lib/libssl/../../../crypto/openssl/ssl/t1_lib.c:2566:
てな感じで、-tls1 だと通るけど、-ssl3 だと上のようにネゴに失敗する(openssl クライアント側も heartbeat 対応してる必要あり)。この状態でもメモリの読み出しができちゃったりするんだろうかどうなんだろうか。

_ …うーん、ソースを眺めてみたけど、TLS extension をパースしてる関数が呼ばれるのが

        if (s->version >= SSL3_VERSION)
が真のときだから、TLS 1.x だけじゃなくて SSLv3 でもいけちゃいそうだなぁ。じゃあ、なんで上の例ではコケたんだろう。

_ うん、まったく確信もてないので、やっぱり穴なしバージョンにとっとと入れ替えるべしだな。仮に SSLv3 で回避できたとしても、それまでに漏れたかもしれない情報は取り返せないので、証明書の再発行/失効はやらんといかんし。ユーザとしても、サーバに預けてある情報が漏れたかもしれないと考えていろいろ行動せにゃあかん。

_ あと、どうでもいいけど、 heartbleed.comの心臓出血ロゴ、どっかで見たことあるような、としばらく考えて思い出した。 アイリスオーヤマのロゴだ。とんだとばっちりだな。

openssl @centos 6.5

_ で、この件でいろいろ調査してたら、centos でいつのまにやら楕円曲線暗号が使えるようになっていたことに気がついた。openssl 自体ではちゃんと楕円も使えるのに、これまでわざわざ機能を off にしてビルドしたバイナリを配ってた。

_ fedora の方では このへんで due to possible patent issues とかなんだとうだうだ議論していて、裏ではそれとまったく歩調を合わせずに rhel 6.5 で ECC 使えるようにするよーとかやっててわけわからん(これは openssl ではなく nss についてだけど)。

_ これまで使えないようにしていた理由、そして、このバージョンから使えるようにした理由について、ちゃんとした説明になってるようにはとても見えないんだけど、いったいどういうことなんだか。

_ まあそれでも、DNSSEC で署名サイズを小さくしたいので楕円暗号を使いたいけど、使えない環境が多いから普及しないだろう、といわれていたハードルのひとつがこれで取り払われたわけなので、一歩前進ではある。


<< = >>
やまや