[VOIPSEC] Snom Softphone with TLS and Openser

Martin Petraschek petraschek at ftw.at
Thu Feb 23 09:50:49 GMT 2006


Hi all,

I just wanted to share the experiences I made when trying to get the 
Snom 360 Softphone to work with TLS support together with Openser. Maybe 
my findings can be of use for other people having similar problems.

The Snom Softphone is one of the few Softphones I am aware of that 
support TLS as well as RTP encryption. Unfortunately it is not Open 
Source, but the binary is freely available at 
http://www.snom.com/download/snom360-5.3.exe

When trying to use TLS, one might be disappointed that the configuration 
menus do not offer any setting like "enable TLS". This is because the 
Snom phone uses DNS SRV queries in order to find out which connection 
method to use. The first task is therefore to configure SRV records of 
the DNS server. For bind, the following lines did the trick:

example.at.   IN NAPTR 10 50 "s" "SIPS+D2T" "" _sips._tcp.example.at.
example.at.   IN NAPTR 20 50 "s" "SIP+D2U" "" _sip._udp.example.at.
example.at.   IN NAPTR 30 50 "s" "SIP+D2T" "" _sip._tcp.example.at.

; ----- SRV records -----
_sip._udp               IN SRV 0 0 5060 server.example.at.
_sip._tcp               IN SRV 0 0 5060 server.example.at.
_sips._tcp              IN SRV 0 0 5061 server.example.at.


After that, the Snom phone tried to contact the SIP server via TLS. 
However, the program was stuck immediately after starting and did not 
accept any input via the user interface. I inspected the network traffic 
it generated with the help of the tool ssldump, which showed the following:

server:/etc/openser/tools# ssldump -i eth0 port 5061
New TCP connection #1: user.example.at(3695) <-> server.example.at(5061)
1 1  0.0124 (0.0124)  C>S  Handshake
       ClientHello
         Version 3.1
         cipher suites
         TLS_RSA_WITH_RC4_128_MD5
         TLS_RSA_WITH_RC4_128_SHA
         TLS_RSA_WITH_NULL_MD5
         TLS_RSA_WITH_NULL_SHA
         TLS_DH_anon_WITH_3DES_EDE_CBC_SHA
         TLS_DH_anon_WITH_RC4_128_MD5
         TLS_RSA_WITH_DES_CBC_SHA
         TLS_RSA_EXPORT1024_WITH_RC4_56_SHA
         TLS_RSA_EXPORT1024_WITH_DES_CBC_SHA
         TLS_DH_anon_WITH_DES_CBC_SHA
         compression methods
                   NULL
1 2  0.0145 (0.0021)  S>C  Handshake
       ServerHello
         Version 3.1
         session_id[32]=
           5d a6 8d 61 58 ed c6 08 ae 76 d1 eb 24 82 6a c3
           2e 12 4c 29 17 7b 80 bf 1d 98 82 2c 67 53 ab f0
         cipherSuite         TLS_RSA_EXPORT1024_WITH_RC4_56_SHA
         compressionMethod                   NULL
1 3  0.0146 (0.0000)  S>C  Handshake
       Certificate
1 4  0.0146 (0.0000)  S>C  Handshake
       CertificateRequest
         certificate_types                   rsa_sign
         certificate_types                   dss_sign
       ServerHelloDone
1    9.5153 (9.5006)  C>S  TCP RST


I noticed that the chosen ciphersuite was 1024 bit RSA. Checking the 
certificate file /etc/openser/tls/user/user-cert.pem, I found that the 
certificate configured for openser is 2048 bit! To overcome this 
problem, I changed the configuration files ca.conf and user.conf as well 
as gen_rootCA.sh (just replaced 2048 with 1024 at every occurence). 
After re-generating the certificates and restaring openser, the TLS 
connection finally worked like a charm.

Cheers,

Martin



More information about the Voipsec mailing list