907 Commits

Author SHA1 Message Date
Anthony Minessale
1d28639cac revert revert 2014-03-17 16:15:59 -05:00
Brian West
be1efcc1fa Revert 6e818216e2e615f3241a34253cdea8ee316d9e88, from FS-6287 as it breaks challenge to invites we don't come back and respond 2014-03-17 15:03:08 -05:00
Michael Jerris
340b697e1b FS-6341: --resolve add 3pcc invite w/o sdp support for 100rel/PRACK 2014-03-17 12:27:42 -04:00
Travis Cross
19fc943f59 Mitigate the CRIME TLS flaw
If an attacker can cause a device to make an authenticated request to
a service via TLS while including a payload of the attacker's choice
in that request, and if TLS compression is enabled, the attacker can
uncover the plaintext authentication information by making a series of
guesses and observing changes in the length of the ciphertext.

This is CVE-2012-4929.

FS-6360 --resolve

Thanks-to: Brian West <brian@freeswitch.org>
2014-03-16 16:24:58 +00:00
Anthony Minessale
6e818216e2 FS-6287 --resolve When a broken registrar sends a 401 unauth then replies with a subsequent 401 unauth without the stale=true attribute, sofia tries to invalidate the auth handle and get stuck in a state where it cannot recover until the reg handle is destroyed. In this case, the provider in question has a bug on thier end when the nonce count rolls from nc=000000ff to nc=00000100 they start sending several consecitive 401 rather than a 401 with stale=true or a 403. This change will allow it to reset properly and try again with nc=00000001 on the next try. 2014-03-14 12:25:48 -05:00
Anthony Minessale
9fd30a2cd9 FS-6339 --resolve 2014-03-11 18:16:23 -05:00
Michael Jerris
2513388d8a clean up some bootstrap warnings 2014-03-07 18:36:26 -05:00
Travis Cross
1990d10057 Reword the websocket TLS cipher list
This generates an identical list of cipher suites, but this commit
restates the cipher spec to be more similar to the way we state it
elsewhere.
2014-03-05 21:37:30 +00:00
Travis Cross
6a3dcc9e0f Drop null-auth suites from our default TLS cipher list
Previously we disallowed anonymous Diffie-Hellman, but there are other
kinds of null-authentication TLS suites.  In particular, disallowing
AECDH is important now that we support elliptic-curve Diffie-Hellman.
2014-03-05 21:37:30 +00:00
Anthony Minessale
4cf14bce50 FS-5814 2014-03-06 00:31:10 +05:00
Anthony Minessale
fe2a4bfa53 FS-5814 2014-03-05 13:12:02 -06:00
Anthony Minessale
7cb91467e0 FS-5814 --resolve 2014-03-06 00:02:40 +05:00
Anthony Minessale
066de4b378 Port commit from gitorious copy of sofia-sip our code now differs but this issue would still be a concern for OS X
commit ee51fa4e2993ab71339e29691aec8b924c810c53
Author: Frode Isaksen <frode.isaksen@bewan.com>
Date:   Thu Aug 18 16:40:58 2011 +0300

    su: fix su_time() on 64-bit OS X

        The field tv_sec in struct timeval is 64bits instead of 32bits as in
	    su_time_t, so you cannot cast su_time_t to struct timeval.
2014-03-05 10:25:39 -06:00
Travis Cross
d5760e0d6a Show TLS cipher suite selected in sofia debug
This shows the cipher name, TLS version, the number of cipher bits and
algorithm bits, and a description of the cipher in Sofia's debug
logging output on level 9.
2014-02-28 20:46:34 +00:00
Anthony Minessale
55901ae0f1 FS-6168 --resolve 2014-02-28 23:30:42 +05:00
Moises Silva
461f94870f Merge remote-tracking branch 'origin/master' into moy/tport-log-fix 2014-02-24 19:39:17 -05:00
Travis Cross
2fe0516ac2 Fix missing/duplicate declaration
This looks like a copy/paste error.

FS-6037 --resolve

Thanks-to: David Sanders <dsanders@pinger.com>
2014-02-21 21:09:19 +00:00
Michael Jerris
0cebdf8fc5 fix types for reply to 2014-02-21 16:08:30 -05:00
Michael Jerris
63aea267bc change macro name to work around conflict in openbsd 2014-02-21 15:25:50 -05:00
Michael Jerris
19f9dc12d3 change macro name to work around conflict in openbsd 2014-02-21 15:24:44 -05:00
Travis Cross
8b7d58ddf8 Rework handling of Linux TCP keepalives in Sofia
This separates out the Linux socket TCP keepalive timeout interval
from Sofia's internal mechanisms.  Earlier we tied these together.  In
retrospect this seems improper.

These two values can now be set separately.

You might, for example, want to keep the Sofia internal mechanism
disabled completely while enabling the platform-based mechanism if
your platform supports it.

We also here reform the default value of the socket TCP keepalive
parameter to 30 seconds.

This is what commit a0e9639a1f38f26a5dc586d386ae044ba82e0137 should
have been.

FS-6104
2014-02-11 06:27:20 +00:00
Travis Cross
2b064e6393 Add additional debugging output to keepalive handling 2014-02-11 05:40:41 +00:00
Travis Cross
3ae189ca3f Synchronize Sofia and Linux TCP keepalive timeout units
Sofia keeps the TCP keepalive timeout in milliseconds, but Linux
expects the value in seconds.  Before this change, it's unlikely the
TCP_KEEPIDLE and TCP_KEEPINTVL calls were having much effect as we
would have been passing them a huge value.

FS-6104
2014-02-11 05:33:25 +00:00
Travis Cross
a96eefe8ee Add support for EECDH to Sofia-SIP
This adds support for the ephemeral elliptic curve Diffie-Hellman key
exchange, which provides for forward secrecy in the event that
long-term keys are compromised.

For the moment, we've hard-coded the curve as prime256v1.
2014-02-06 15:40:35 +00:00
Travis Cross
c0101e2ce6 Allow setting TLS cipher suites through Sofia-SIP API
Previously there was no way to override the hard-coded cipher suite
specification of "ALL:!ADH:!LOW:!EXP:!MD5:@STRENGTH".

This commit does leave in place the hardcoded cipher spec for WebRTC
of "HIGH:!DSS:!aNULL@STRENGTH".
2014-02-06 06:04:02 +00:00
Travis Cross
e3b353e911 Allow setting enabled TLS versions in Sofia-SIP
Previously if the TPTAG_TLS_VERSION was set to a non-zero value we
supported only TLSv1 (but not TLSv1.1 or TLSv1.2), and if was set to
zero we supported all versions of TLS and SSL (including the
ridiculous SSLv2).

Now we take an integer field where various bits can be set indicating
which versions of TLS we would like to support.
2014-02-06 02:17:13 +00:00
Michael Jerris
b6270f4d70 FS-6030: --resolve fix variable scoping issue for more aggressive optimizer 2014-02-05 08:46:04 -05:00
Anthony Minessale
0a3e18a308 FS-6174 --resolve after updating to this revision, put ca-bundle.crt in /usr/local/freeswitch/certs to get chain cert in place for both dtls and wss 2014-01-31 20:16:54 +05:00
Anthony Minessale
0e14b758fc FS-6150 --resolve cool find 2014-01-27 06:57:05 +05:00
Travis Cross
a0e9639a1f Handle Linux TCP keepalives better in Sofia
Sofia accepts a value for the TCP keepalive timeout interval via
TPTAG_KEEPALIVE, however it fails to use this value for the Linux
keepalive socket options TCP_KEEPIDLE and TCP_KEEPINTVL.  In fact, on
Linux it enables the sending of TCP keepalives even if tpp_keepalive
is set to zero which would disable Sofia's internal keepalive
mechanisms.  Sofia then uses a hard coded value of 30 seconds for
these keepalive intervals which affects battery life on mobile
devices.

With this commit we harmonize the sending of TCP keepalives on Linux
with other platforms by using the value from TPTAG_KEEPALIVE and not
enabling the sending of TCP keepalives at all if the value of the
parameter is zero.

FS-6104 --resolve
2014-01-18 15:46:56 +00:00
Seven Du
f5b18c0fdd FS-5642 --resolve add back the ETIMEDOUT check, needed on Mac 2013-12-13 11:46:14 +08:00
Jeff Lenk
bb53175526 FS-6010 --resolve 2013-11-29 22:16:49 -06:00
Anthony Minessale
bbe1fe1a31 FS-6005 --resolve 2013-11-27 10:20:35 -06:00
Moises Silva
713ddc4834 Fix tport_stamp in the sofia stack to use localtime for the timestamp 2013-10-29 12:17:55 -04:00
Anthony Minessale
c8be999c34 FS-5911 --resolve 2013-10-25 23:51:43 +05:00
Jeff Lenk
88b2e96516 windows fix compiler errors 2013-10-22 23:23:48 -05:00
Anthony Minessale
20a55d3cc6 update 2013-10-22 16:27:15 -05:00
Anthony Minessale
e2bdd78d55 FS-5896 --resolve 2013-10-22 20:33:13 +05:00
Anthony Minessale
3c2a5db225 add missing protos 2013-10-21 20:11:30 +05:00
Michael Jerris
bfcd1e07ca compile failure due to no newline at end of file 2013-10-21 10:54:23 -04:00
Anthony Minessale
0d19abfbdb FS-5887 --resolve 2013-10-19 00:00:28 +05:00
Anthony Minessale
8aff25e03d FS-5855 please try lastest HEAD 2013-10-08 12:10:36 -05:00
Michael Jerris
1aa8464114 FS-5819: don't assigne variable to itself 2013-09-30 13:28:47 -04:00
Chris Rienzo
6b9382290d FS-5819 fix typo 2013-09-27 22:23:23 -04:00
Michael Jerris
42d7d86514 FS-5819: fix bounds check on enum type 2013-09-27 21:28:12 -04:00
Michael Jerris
25001e857f FS-5819: fix useless assignment in sofia 2013-09-27 12:39:49 -04:00
Anthony Minessale
8493c88f88 fix proto regression from last commit 2013-09-19 19:34:58 -04:00
Anthony Minessale
750847f290 ignore a= lines when m= port is 0 2013-09-19 13:44:20 -05:00
Jeff Lenk
b407732dcd fix for todays ws.* changes 2013-09-17 23:23:11 -05:00
Anthony Minessale
f1d0357e92 minor fixes in ws.c 2013-09-18 05:13:46 +05:00