aboutsummaryrefslogtreecommitdiff
path: root/src/common/tortls.c
Commit message (Expand)AuthorAge
* Disable TLS Session Tickets, which we were apparently getting for free•••OpenSSL 1.0.0 added an implementation of TLS session tickets, a "feature" that let session resumption occur without server-side state by giving clients an encrypted "ticket" that the client could present later to get the session going again with the same keys as before. OpenSSL was giving the keys to decrypt these tickets the lifetime of the SSL contexts, which would have been terrible for PFS if we had long-lived SSL contexts. Fortunately, we don't. Still, it's pretty bad. We should also drop these, since our use of the extension stands out with our non-use of session cacheing. Found by nextgens. Bugfix on all versions of Tor when built with openssl 1.0.0 or later. Fixes bug 7139. Nick Mathewson2012-10-19
* Work around a bug in OpenSSL 1.0.1's TLS 1.1 and TLS 1.2 support•••It appears that when OpenSSL negotiates a 1.1 or 1.2 connection, and it decides to renegotiate, the client will send a record with version "1.0" rather than with the current TLS version. This would cause the connection to fail whenever both sides had OpenSSL 1.0.1, and the v2 Tor handshake was in use. As a workaround, disable TLS 1.1 and TLS 1.2. When a later version of OpenSSL is released, we can make this conditional on running a fixed version of OpenSSL. Alternatively, we could disable TLS 1.1 and TLS 1.2 only on the client side. But doing it this way for now means that we not only fix TLS with patched clients; we also fix TLS when the server has this patch and the client does not. That could be important to keep the network running well. Fixes bug 6033. Nick Mathewson2012-06-02
* Use correct CVE number for CVE-2011-4576. Found by fermenthor. bug 5066Nick Mathewson2012-02-10
* Merge remote-tracking branch 'origin/maint-0.2.1' into maint-0.2.2Nick Mathewson2012-01-11
|\
| * Fix a compilation warning for our bug4822 fix on 64-bit linuxNick Mathewson2012-01-11
* | Fix comment about TLSv1_method() per comments by wanoskarnetNick Mathewson2012-01-09
* | add a note from wanoskarnet•••he disagrees about what the code that we decided not to use would do Roger Dingledine2012-01-08
* | Merge remote-tracking branch 'origin/maint-0.2.1' into maint-0.2.2Nick Mathewson2012-01-05
|\|
| * Log at info level when disabling SSLv3Robert Ransom2012-01-05
| * Disable SSLv3 when using a not-up-to-date openssl•••This is to address bug 4822, and CVE-2011-4576. Nick Mathewson2012-01-05
* | Merge branch 'maint-0.2.1_secfix' into maint-0.2.2_secfix•••Conflicts: src/or/connection_or.c Sebastian Hahn2011-10-26
|\|
| * Don't send a certificate chain on outgoing TLS connections from non-relaysNick Mathewson2011-10-26
| * Maintain separate server and client TLS contexts.•••Fixes bug #988. Conflicts: src/or/main.c src/or/router.c Robert Ransom2011-10-26
| * Refactor tor_tls_context_new:•••* Make tor_tls_context_new internal to tortls.c, and return the new tor_tls_context_t from it. * Add a public tor_tls_context_init wrapper function to replace it. Conflicts: src/or/main.c src/or/router.c Robert Ransom2011-10-26
| * Make the DH parameter we use for TLS match the one from Apache's mod_ssl•••Our regular DH parameters that we use for circuit and rendezvous crypto are unchanged. This is yet another small step on the path of protocol fingerprinting resistance. (Backport from 0.2.2's 5ed73e3807d90dd0a3) Nick Mathewson2011-02-10
* | Handle failing cases of DH allocationNick Mathewson2011-01-25
* | Make the DH parameter we use for TLS match the one from Apache's mod_ssl•••Our regular DH parameters that we use for circuit and rendezvous crypto are unchanged. This is yet another small step on the path of protocol fingerprinting resistance. Nick Mathewson2011-01-24
* | Merge remote branch 'origin/maint-0.2.1' into maint-0.2.2•••Conflicts: src/common/test.h src/or/test.c Nick Mathewson2011-01-03
|\|
| * Bump copyright statements to 2011Nick Mathewson2011-01-03
| * Fix compilation with mingw and OpenSSL 0.9.8m+mingw-san2010-11-23
* | Merge remote branch 'origin/maint-0.2.1' into maint-0.2.2Nick Mathewson2010-11-21
|\|
| * Do not set the hostname TLS extension server-side; only client-side•••This may fix bug 2204, and resolve the incompatibility with openssl 0.9.8p/1.0.0b. Nick Mathewson2010-11-20
* | Maintain separate server and client TLS contexts.•••Fixes bug #988. Robert Ransom2010-10-04
* | Refactor tor_tls_context_new:•••* Make tor_tls_context_new internal to tortls.c, and return the new tor_tls_context_t from it. * Add a public tor_tls_context_init wrapper function to replace it. Robert Ransom2010-10-04
* | Correct a bogus comment.•••Whether or not OpenSSL reference-counts SSL_CTX objects is irrelevant; what matters is that Tor reference-counts its wrapper objects for SSL_CTXs. Robert Ransom2010-10-04
* | Correct a couple of log messages in tortls.cRobert Ransom2010-10-04
* | Fix several comments in tortls.cRobert Ransom2010-10-04
* | Fix compilation with mingw and OpenSSL 0.9.8m+mingw-san2010-07-26
* | Rename log.h to torlog.h•••This should make us conflict less with system files named "log.h". Yes, we shouldn't have been conflicting with those anyway, but some people's compilers act very oddly. The actual change was done with one "git mv", by editing Makefile.am, and running find . -name '*.[ch]' | xargs perl -i -pe 'if (/^#include.*\Wlog.h/) {s/log.h/torlog.h/; }' Nick Mathewson2010-07-09
* | moved wince related includes and defs to compat.h where possible, removed unu...valerino2010-05-24
* | Demote a warning about missing client ciphersSebastian Hahn2010-04-20
* | minor cleanupsRoger Dingledine2010-04-20
* | Merge commit 'origin/maint-0.2.1'Nick Mathewson2010-04-15
|\|
| * Fix renegotiation on OpenSSL versions that backport RFC5746.•••Our code assumed that any version of OpenSSL before 0.9.8l could not possibly require SSL_OP_ALLOW_UNSAFE_LEGACY_RENEGOTIATION. This is so... except that many vendors have backported the flag from later versions of openssl when they backported the RFC5476 renegotiation feature. The new behavior is particularly annoying to detect. Previously, leaving SSL_OP_ALLOW_UNSAFE_LEGACY_RENEGOTIATION unset meant that clients would fail to renegotiate. People noticed that one fast! Now, OpenSSL's RFC5476 support means that clients will happily talk to any servers there are, but servers won't accept renegotiation requests from unpatched clients unless SSL_OP_ALLOW_etc is set. More fun: servers send back a "no renegotiation for you!" error, which unpatched clients respond to by stalling, and generally producing no useful error message. This might not be _the_ cause of bug 1346, but it is quite likely _a_ cause for bug 1346. Nick Mathewson2010-04-13
* | Merge remote branch 'origin/maint-0.2.1'•••Conflicts: src/common/test.h src/or/test.c Nick Mathewson2010-02-27
|\|
| * Update Tor Project copyright yearsNick Mathewson2010-02-27
* | fix typo and garbage grammarRoger Dingledine2010-02-21
* | Merge remote branch 'origin/maint-0.2.1'•••Conflicts: ChangeLog configure.in contrib/tor-mingw.nsi.in src/win32/orconfig.h Nick Mathewson2010-02-18
|\|
| * Fix compileSebastian Hahn2010-02-18
| * Even more conservative option-setting for SSL renegotiation.•••This time, set the SSL3_FLAGS_ALLOW_UNSAFE_RENEGOTIATION flag on every version before OpenSSL 0.9.8l. I can confirm that the option value (0x0010) wasn't reused until OpenSSL 1.0.0beta3. Nick Mathewson2010-02-17
* | Merge remote branch 'origin/maint-0.2.1'Nick Mathewson2010-01-31
|\|
| * Revise OpenSSL fix to work with OpenSSL 1.0.0beta*•••In brief: you mustn't use the SSL3_FLAG solution with anything but 0.9.8l, and you mustn't use the SSL_OP solution with anything before 0.9.8m, and you get in _real_ trouble if you try to set the flag in 1.0.0beta, since they use it for something different. For the ugly version, see my long comment in tortls.c Nick Mathewson2010-01-31
| * Decide whether to use SSL flags based on runtime OpenSSL version.•••We need to do this because Apple doesn't update its dev-tools headers when it updates its libraries in a security patch. On the bright side, this might get us out of shipping a statically linked OpenSSL on OSX. May fix bug 1225. [backported] Nick Mathewson2010-01-29
* | Detect the correct versions of openssl for tls negotiation fix•••Since it doesn't seem to hurt, we should use _both_ fixes whenever we see OpenSSL 0.9.7L .. 0.9.8, or OpenSSL 0.9.8L.. Nick Mathewson2010-01-29
* | Decide whether to use SSL flags based on runtime OpenSSL version.•••We need to do this because Apple doesn't update its dev-tools headers when it updates its libraries in a security patch. On the bright side, this might get us out of shipping a statically linked OpenSSL on OSX. May fix bug 1225. Nick Mathewson2010-01-29
* | Merge remote branch 'origin/maint-0.2.1'Nick Mathewson2010-01-23
|\|
| * Avoid a possible crash in tls_log_errors.•••We were checking for msg==NULL, but not lib or proc. This case can only occur if we have an error whose string we somehow haven't loaded, but it's worth coding defensively here. Spotted by rieo on IRC. Nick Mathewson2010-01-22
* | Now that FOO_free(NULL) always works, remove checks before calling it.Nick Mathewson2009-12-12
* | *_free functions now accept NULL•••Some *_free functions threw asserts when passed NULL. Now all of them accept NULL as input and perform no action when called that way. This gains us consistence for our free functions, and allows some code simplifications where an explicit null check is no longer necessary. Sebastian Hahn2009-12-12
* | Merge commit 'origin/maint-0.2.1'Nick Mathewson2009-12-04
|\|