[Ultramonkey-l7-develop 352] Re: 次期リリースについて

アーカイブの一覧に戻る

TATEISHI Katsuyuki tatei****@oss*****
2009年 5月 14日 (木) 15:59:14 JST


立石です。

From: Shinya TAKEBAYASHI <omoik****@gmail*****>
Subject: [Ultramonkey-l7-develop 351] Re: 次期リリースについて
Date: Thu, 14 May 2009 14:34:01 +0900

>> のように途中で SSL セッション ID が変わっているようですので、
>> 「Ctrl-r押しっぱなし」というやりかたがまずいのかもしれません。
> 
>   逆向き(Apache → クライアント)のパケットも解析してみる必要があります.
>   
>   クライアントから「この ID 再利用できるか」と Apache に聞いたあとに
> 使えなければ別の SSL セッション ID が払い出させるシーケンスになります.
>   
>   そのため,提示いただいたクライアント → Apache のみの内容だと,
>   
>   (1) ブラウザは SSLID を再利用しようとしているのか
>     SSL ネゴシエーションの際に,クライアントから SSLID を送信する
>     
>   (2) Apache が「使えない」と判断して新しい ID を払い出しているのか
>     Apache が,クライアントが提示したものと異なる SSLID を返す
> 
> が分かりません.
> 
>   時間が許すのであれば,調査願います.

情報ありがとうございます。

クライアント→ Apache の SSL session ID が切り替わっているあ
たりの両方向のやりとり(SSLハンドシェイクのみ抜粋)は以下のような感じでした。
================================================================================
root @ alpha# tshark -r uml7.pcap -T fields -e frame.number -e ip.src -e tcp.srcport -e ip.dst -e tcp.dstport -e ssl.handshake.session_id -R "ssl.handshake.type == 1 || ssl.handshake.type == 2"|grep -C 6 '3a:d9' |sed -re 's/^(.{60}).*/\1/'
Running as user "root" and group "root". This could be dangerous.
661     192.168.122.3   443     192.168.122.1   55382   1f:4b:d2:23:ac:d5:
672     192.168.122.1   55383   192.168.122.3   443     1f:4b:d2:23:ac:d5:
674     192.168.122.3   443     192.168.122.1   55383   1f:4b:d2:23:ac:d5:
685     192.168.122.1   55384   192.168.122.3   443     1f:4b:d2:23:ac:d5:
687     192.168.122.3   443     192.168.122.1   55384   1f:4b:d2:23:ac:d5:
693     192.168.122.1   55385   192.168.122.3   443
695     192.168.122.3   443     192.168.122.1   55385   3a:d9:c0:2a:dc:4c:
707     192.168.122.1   55386   192.168.122.3   443
709     192.168.122.3   443     192.168.122.1   55386   2a:f2:72:9e:07:11:
724     192.168.122.1   55387   192.168.122.3   443     2a:f2:72:9e:07:11:
726     192.168.122.3   443     192.168.122.1   55387   2a:f2:72:9e:07:11:
737     192.168.122.1   55388   192.168.122.3   443     2a:f2:72:9e:07:11:
739     192.168.122.3   443     192.168.122.1   55388   2a:f2:72:9e:07:11:
================================================================================

なお、フォーマットはコマンドラインを見ていただくと想像がつく
かと思いますが、左から順に

<フレーム(パケット)番号>
<送信元IPアドレス>
<送信元TCPポート>
<宛先IPアドレス>
<宛先TCPポート>
<SSL Session ID>

となっています。(行頭から60桁で切り捨て。空白はタブなので↑で
は80 桁くらいに見えます)

192.168.122.1 がクライアント(firefox)、192.168.122.3 が
UltraMonkey-L7です。

SSL Session ID のネゴシエーションについてちゃんと理解してない
ので予測なのですが・・・

●まずフレームNo. 695 でサーバ→クライアントにそれまでと違う
SSL Session ID(3a:...)を送付しています。

このとき直前の Client Hello (No.693)では Session ID はついて
いません。ポート番号からフレームNo.693, 695は同一のTCPセッショ
ンでのやりとりと思われます。

つまり提示していただいた (1)-(2) のような挙動に該当しそうに
はなく、

 ☆クライアントが Client Hello でSSL Session IDを提示しない
   →サーバからSSL Session IDを提示

という動きをしているように見えます。

●次にフレームNo. 709 においてもサーバ→クライアントに新しい
SSL Session ID(2a:...)が送付されていますが、こちらも直前のフ
レームNo. 707 ではセッションIDがついておらず、

 ☆クライアントが Client Hello でSSL Session IDを提示しない
   →サーバからSSL Session IDを提示

という動きをしているように見えます。

●ちなみにNo. 724, 726 など他のやりとりをみると (1)の動きをし
て、サーバがクライアントから提示された SSL Session ID を受け
入れているように見えます。

ということで、

Firefox が SSL Session ID を再利用しないことがあるため、その
タイミングで振り先が変わった。
(UltraMonkey-L7 sslid モジュールの動作としては問題なし。)

というのが今回の挙動の説明になりそうですが、いかがでしょうか?

ちなみに 695 で提示されたセッション ID が1回で終わっている理
由ですが、この TCP セッションは直後に Certificate Unknown で
終了しており、おそらく

1. 振り先が変わって証明書が変わり、かつオレオレ証明書なのでエ
   ラーになった
2. 私は気付かずCtrl-r押しっぱなしでリロード
3. SSL Session IDがついていないのでラウンドロビンにより振り先
   が元に戻って新しいSSL Session 開始。ただし証明書は 1 以前に
   受け入れ済み。
4. 新しい SSL Session ID でリクエストが繰り替えされる

ということだと思います。

リアルサーバの証明書を揃えてやってみましたが、
============================================================
[root @ charlie ~]# l7vsadm
Layer-7 Virtual Server version 2.1.2-2
Prot LocalAddress:Port ProtoMod Scheduler
  -> RemoteAddress:Port           Forward Weight ActiveConn InactConn
TCP charlie.example.jp:https sslid rr
  -> 192.168.123.32:https         Masq    1      0          2136
  -> 192.168.123.33:https         Masq    1      0          0
============================================================
今度は切り替わり自体発生しませんでした・・・orz

--
TATEISHI Katsuyuki <tatei****@oss*****>




Ultramonkey-l7-develop メーリングリストの案内
アーカイブの一覧に戻る