Hello,
On 3/12/13 8:46 AM, Olle E. Johansson wrote:
11 mar 2013 kl. 19:02 skrev Jirka Jirout <jirka.jir...@mac.com>:
Hello,
I have a very strange issue - we are running kamailio 3.3.2 as a part of Sip
Provider CE and some of our clients have issues with TLS connectivity.
1. some clients such as Jitsi on Mac OS X and Bria or idoubs on iOS can always
connect
2. imsdroid on Android can sometimes connect and works (about 10 % of attempts)
When I run tcpudmp on the server during the unsuccessfull attempts, I see
something like this:
1 1 0.0347 (0.0347) C>S SSLv2 compatible client hello
Version 3.1
cipher suites
TLS_RSA_WITH_AES_128_CBC_SHA
1 2 0.0360 (0.0013) S>C Handshake
ServerHello
Version 3.1
session_id[0]=
cipherSuite TLS_RSA_WITH_AES_128_CBC_SHA
compressionMethod NULL
1 3 0.0361 (0.0001) S>C Handshake
Certificate
1 4 0.0361 (0.0000) S>C Handshake ServerHelloDone
1 5 0.0782 (0.0420) C>S Alert
level fatal
value unexpected_message
1 0.0785 (0.0002) S>C TCP FIN
1 6 0.1092 (0.0307) C>S Handshake
ClientKeyExchange
1 7 0.1092 (0.0000) C>S ChangeCipherSpec
1 8 0.1092 (0.0000) C>S Handshake
What I find particularly strange is that the client sends fatal alert and then attempts
to continue with handshake. What exactly does this "unexpected_message" mean?
Is the client letting the server know the last message was unexpected? Or is this telling
me the server had not expected the message? It cannot be a certificate problem, can it?
Considering other clients were fine, I blamed our code at first, but I am no longer sure
that is the (only) reason for this behavior. I decided to start from scratch and wrote an
extremely simple application in plain C, that connects to the TLS port using openssl
(which imsdroid also uses), sends some query and then prints response. It works fine on
https sites, even on the same server kamailio is running and with the same certificates
(our certificates come from Verisign CA G3). When I run ssldump, I can see handshake is
fine, socket opened, the client is sending application data. I can see data coming in on
the server using tcpdump. However, the data never reaches Kamailio - no sign of the
packets in the log and no answer whatsoever (I use a fake REGISTER message so I would
expect to get something like "Unauthorized" back).
The same happens, when I try to use openssl s_client to connect to the site and send
"register" message (because R at the start of packet triggers renegotiation in
s_client, uff).
My TLS settings in Kamailio are pretty much default, only using my own key and
certificate.
Just for the record, I noticed similar issues with some clients at SIPit, using
an older version of Kamailio for the TLS tests. I haven't had time to dig
deeper into it, but it feels very similar to what you see here.
If the client side is doing renegotiation, then set this module parameter:
- http://kamailio.org/docs/modules/stable/modules/tls.html#renegotiation
Beware that it exposes some security risks (if you google, you'll find
more about this generic ssl issue).
Let us know if it works.
Cheers,
Daniel
--
Daniel-Constantin Mierla - http://www.asipto.com
http://twitter.com/#!/miconda - http://www.linkedin.com/in/miconda
Kamailio World Conference, April 16-17, 2013, Berlin
- http://conference.kamailio.com -
_______________________________________________
SIP Express Router (SER) and Kamailio (OpenSER) - sr-users mailing list
sr-users@lists.sip-router.org
http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-users