スポンサーサイト

--年--月--日 --:--

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

MITM SSL renegotiation

2009年11月18日 22:38

TLS/SSLに設計上の脆弱性、広範囲にわたって深刻な影響の可能性
http://journal.mycom.co.jp/news/2009/11/09/006/index.html

みたいなヤツ。

範囲が限定的だとか、
opensslのupdateで無効になったとか、
デフォじゃ無効じゃないとか、
クライアント証明書関係だとか何だとか
情報が錯綜しててわけわからん。

なので、とりあえずopensslがどんな対応をしてるか確認してみた。
ただ、そこまでキチンと追えてないので、あってるかどうか・・・


まず、diffをとってみる。全部書くと溢れるので一部抜粋

>diff -r openssl-0.9.8k openssl-0.9.8l


diff -r openssl-0.9.8k\ssl\ssl3.h openssl-0.9.8l\ssl\ssl3.h
329,332c329,333
< #define SSL3_FLAGS_NO_RENEGOTIATE_CIPHERS 0x0001
< #define SSL3_FLAGS_DELAY_CLIENT_FINISHED 0x0002
< #define SSL3_FLAGS_POP_BUFFER 0x0004
< #define TLS1_FLAGS_TLS_PADDING_BUG 0x0008
---
> #define SSL3_FLAGS_NO_RENEGOTIATE_CIPHERS 0x0001
> #define SSL3_FLAGS_DELAY_CLIENT_FINISHED 0x0002
> #define SSL3_FLAGS_POP_BUFFER 0x0004
> #define TLS1_FLAGS_TLS_PADDING_BUG 0x0008
> #define SSL3_FLAGS_ALLOW_UNSAFE_LEGACY_RENEGOTIATION 0x0010



新たに
SSL3_FLAGS_ALLOW_UNSAFE_LEGACY_RENEGOTIATION
を定義し



diff -r openssl-0.9.8k\ssl\s3_lib.c openssl-0.9.8l\ssl\s3_lib.c
2594a2595,2597
> if (!(s->s3->flags & SSL3_FLAGS_ALLOW_UNSAFE_LEGACY_RENEGOTIATION))
> return(0);
>




こんな感じでrenegotiationをはじくように各所に記述してるっぽい。
これで無効にしてるって感じ。
だけど、削除したわけじゃないので機能させるこも可能。
(上のSSL3_FLAGS_*みたいのは全部そんな感じ)

デフォでは、機能しないように定義されているようです。
(SSL_OP_*系のフラグがそれっぽい)


機能させるには
>openssl s_server -bugs=1

みたいなオプションで起動すると、イケル。
ってか、
> #define SSL3_FLAGS_NO_RENEGOTIATE_CIPHERS 0x0001
> #define SSL3_FLAGS_DELAY_CLIENT_FINISHED 0x0002
> #define SSL3_FLAGS_POP_BUFFER 0x0004
> #define TLS1_FLAGS_TLS_PADDING_BUG 0x0008
> #define SSL3_FLAGS_ALLOW_UNSAFE_LEGACY_RENEGOTIATION 0x0010

この辺が全部有効になるような気もするが。


で、apacheはどうなってんのか気になったので確認してみた。

./modules/ssl/ssl_engine_init.c

たぶん、ここで初期設定を定義してると思うんだけど

ssl_init_ctx_protocolで

SSL_CTX_set_options(ctx, SSL_OP_ALL);

と定義してあるんだよね。
SSL_OP_ALLで-bugsと同じフラグもたってるような気がするんだけど・・・

opensslのドキュメント読んでも
SSL_CTX_set_options() adds the options set via bitmask in B to B.
Options already set before are not cleared!


すでに設定したオプションはそのまま残るらしいし、
その後、クリアした形跡もないので、やはりオンになってる気配が。


うーん、opensslをupdateしても、apahceでは機能有効になってるのかな・・・
PoCでアタックしたほうが早い気がしてきた。



つーか、RENEGOTIATIONが、いつどんなタイミングで使われるのか
ハッキリと掴めなかったので結局対処したほうがいいかどうか
わからんかったw

まー、みんなそれほど慌ててないので、平気なんだろうが・・・


追記:
詳細資料がこんなとこにあったわ・・・
http://extendedsubset.com/?p=8


スポンサーサイト


コメント

    コメントの投稿

    (コメント編集・削除に必要)
    (管理者にだけ表示を許可する)

    トラックバック

    この記事のトラックバックURL
    http://skitai.blog98.fc2.com/tb.php/48-88b810eb
    この記事へのトラックバック

    -

    管理人の承認後に表示されます



    最近の記事


    上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。