summaryrefslogtreecommitdiff
path: root/src/common
AgeCommit message (Collapse)Author
2014-10-16Merge remote-tracking branch 'origin/maint-0.2.3' into maint-0.2.4Nick Mathewson
2014-10-15Disable SSLv3 unconditionally. Closes ticket 13426.Nick Mathewson
The POODLE attack doesn't affect Tor, but there's no reason to tempt fate: SSLv3 isn't going to get any better.
2014-07-24Avoid illegal read off end of an array in prune_v2_cipher_listNick Mathewson
This function is supposed to construct a list of all the ciphers in the "v2 link protocol cipher list" that are supported by Tor's openssl. It does this by invoking ssl23_get_cipher_by_char on each two-byte ciphersuite ID to see which ones give a match. But when ssl23_get_cipher_by_char cannot find a match for a two-byte SSL3/TLS ciphersuite ID, it checks to see whether it has a match for a three-byte SSL2 ciphersuite ID. This was causing a read off the end of the 'cipherid' array. This was probably harmless in practice, but we shouldn't be having any uninitialized reads. (Using ssl23_get_cipher_by_char in this way is a kludge, but then again the entire existence of the v2 link protocol is kind of a kludge. Once Tor 0.2.2 clients are all gone, we can drop this code entirely.) Found by starlight. Fix on 0.2.4.8-alpha. Fixes bug 12227.
2014-05-07Merge remote-tracking branch 'public/ticket11528_024' into maint-0.2.4Nick Mathewson
2014-05-07Merge remote-tracking branch 'public/bug11513_024' into maint-0.2.4Nick Mathewson
2014-04-17Elevate server TLS cipher preferences over clientNick Mathewson
The server cipher list is (thanks to #11513) chosen systematically to put the best choices for Tor first. The client cipher list is chosen to resemble a browser. So let's set SSL_OP_CIPHER_SERVER_PREFERENCE to have the servers pick according to their own preference order.
2014-04-14New sort order for server choice of ciphersuites.Nick Mathewson
Back in 175b2678, we allowed servers to recognize clients who are telling them the truth about their ciphersuites, and select the best cipher from on that list. This implemented the server side of proposal 198. In bugs 11492, 11498, and 11499, cypherpunks found a bunch of mistakes and omissions and typos in the UNRESTRICTED_SERVER_CIPHER_LIST we had. In #11513, I found a couple more. Rather than try to hand-edit this list, I wrote a short python script to generate our ciphersuite preferences from the openssl headers. The new rules are: * Require forward secrecy. * Require RSA (since our servers only configure RSA keys) * Require AES or 3DES. (This means, reject RC4, DES, SEED, CAMELLIA, and NULL.) * No export ciphersuites. Then: * Prefer AES to 3DES. * If both suites have the same cipher, prefer ECDHE to DHE. * If both suites have the same DHE group type, prefer GCM to CBC. * If both suites have the same cipher mode, prefer SHA384 to SHA256 to SHA1. * If both suites have the same digest, prefer AES256 to AES128.
2014-04-08Update ciphers.inc to match ff28Nick Mathewson
The major changes are to re-order some ciphers, to drop the ECDH suites (note: *not* ECDHE: ECDHE is still there), to kill off some made-up stuff (like the SSL_RSA_FIPS_WITH_3DES_EDE_CBC_SHA suite), to drop some of the DSS suites... *and* to enable the ECDHE+GCM ciphersuites. This change is autogenerated by get_mozilla_ciphers.py from Firefox 28 and OpenSSL 1.0.1g. Resolves ticket 11438.
2014-04-08Teach the get_mozilla_ciphers.py script to parse recent firefoxenNick Mathewson
2014-02-14gcc/clang: Mark macro-generated functions as possible unusedSebastian Hahn
clang 3.4 introduced a new by-default warning about unused static functions, which we triggered heavily for the hashtable and map function generating macros. We can use __attribute__ ((unused)) (thanks nickm for the suggestion :-) ) to silence these warnings.
2014-02-06Some anti-forensics paranoia...Florent Daigniere
sed -i 's/BN_free/BN_clear_free/g'
2013-12-18Never allow OpenSSL engines to replace the RAND_SSLeay methodNick Mathewson
This fixes bug 10402, where the rdrand engine would use the rdrand instruction, not as an additional entropy source, but as a replacement for the entire userspace PRNG. That's obviously stupid: even if you don't think that RDRAND is a likely security risk, the right response to an alleged new alleged entropy source is never to throw away all previously used entropy sources. Thanks to coderman and rl1987 for diagnosing and tracking this down.
2013-11-15Merge remote-tracking branch 'origin/maint-0.2.3' into maint-0.2.4Nick Mathewson
Conflicts: src/or/or.h src/or/relay.c Conflicts were simple to resolve. More fixes were needed for compilation, including: reinstating the tv_to_msec function, and renaming *_conn_cells to *_chan_cells.
2013-10-31Merge remote-tracking branch 'public/bug9780_024_v2' into maint-0.2.4Nick Mathewson
2013-10-31Merge remote-tracking branch 'public/bug6055_v2_024' into maint-0.2.4Nick Mathewson
2013-10-10Merge remote-tracking branch 'origin/maint-0.2.3' into maint-0.2.4Nick Mathewson
2013-10-10Fix unit test for format_helper_exit_statusNick Mathewson
Fix format_helper_exit_status to allow full HEX_ERRNO_SIZE answers, *and* increase the buffer length again.
2013-10-10Merge remote-tracking branch 'origin/maint-0.2.3' into maint-0.2.4Nick Mathewson
2013-10-08When examining interfaces to find an address, discard non-up ones.Nick Mathewson
Patch from "hantwister" on trac. Fixes bug #9904; bugfix on 0.2.3.11-alpha.
2013-10-08Switch ECDHE group default logic for bridge/relay TLSNick Mathewson
According to the manpage, bridges use P256 for conformity and relays use P224 for speed. But skruffy points out that we've gotten it backwards in the code. In this patch, we make the default P256 for everybody. Fixes bug 9780; bugfix on 0.2.4.8-alpha.
2013-10-08Raise buffer size, fix checks for format_exit_helper_status.Nick Mathewson
This is probably not an exploitable bug, since you would need to have errno be a large negative value in the unix pluggable-transport launcher case. Still, best avoided. Fixes bug 9928; bugfix on 0.2.3.18-rc.
2013-09-25Re-enable TLS 1.[12] when building with OpenSSL >= 1.0.1eNick Mathewson
To fix #6033, we disabled TLS 1.1 and 1.2. Eventually, OpenSSL fixed the bug behind #6033. I've considered alternate implementations that do more testing to see if there's secretly an OpenSSL 1.0.1c or something that secretly has a backport of the OpenSSL 1.0.1e fix, and decided against it on the grounds of complexity.
2013-09-03Avoid a double-close on one failing case of the socketpair replacement codeNick Mathewson
Fix for bug 9400, spotted by coverity. Bug introduced in revision 2cb4f7a4 (subversion revision r389).
2013-08-06Use SOCKET_OK/TOR_INVALID_SOCKET in socketpair replacement codeNick Mathewson
2013-06-18Merge remote-tracking branch 'origin/maint-0.2.3' into maint-0.2.4Nick Mathewson
Conflicts: src/or/config.c src/or/relay.c
2013-06-18Implement a real OOM-killer for too-long circuit queues.Nick Mathewson
This implements "algorithm 1" from my discussion of bug #9072: on OOM, find the circuits with the longest queues, and kill them. It's also a fix for #9063 -- without the side-effects of bug #9072. The memory bounds aren't perfect here, and you need to be sure to allow some slack for the rest of Tor's usage. This isn't a perfect fix; the rest of the solutions I describe on codeable.
2013-06-13Define SEEK_SET for platforms that lack it.Nick Mathewson
2013-06-13If we write the annotation but not the microdescriptor, rewind.Nick Mathewson
This fixes bug 9047 (and some parts of 9031, 8922, 8883 that weren't fixed in 8822). Bugfix on 0.2.2.6-alpha.
2013-06-12Revert "Use the FILE_SHARE_DELETE flag for CreateFile on a mapping"Nick Mathewson
This reverts commit 884a0e269c382f9e927d8c8b1ef4ef9d2d48379d. I'm reverting this because it doesn't actually make the problem go away. It appears that instead we need to do unmap-then-replace.
2013-06-12Merge remote-tracking branch 'public/bug2077_share_delete' into maint-0.2.4Nick Mathewson
2013-06-12Use the FILE_SHARE_DELETE flag for CreateFile on a mappingNick Mathewson
A comment by rransom on #8795 taken together with a comment by doorss recorded on #2077 suggest that *every* attempt to replace the md cache will fail on Vista/Win7 if we don't have the FILE_SHARE_DELETE flag passed to CreateFile, and if we try to replace the file ourselves before unmapping it. I'm adding the FILE_SHARE_DELETE, since that's this simplest fix. Broken indexers (the favored #2077 hypothesis) could still cause trouble here, but at least this patch should make us stop stepping on our own feet. Likely fix for #2077 and its numerous duplicates. Bugfix on 0.2.2.6-alpha, which first had a microdescriptor cache that would get replaced before remapping it.
2013-04-18Remove a double-newlineNick Mathewson
2013-04-18Merge branch 'less_charbuf_rebased' into maint-0.2.4Nick Mathewson
Conflicts: src/or/dirserv.c src/or/dirserv.h src/test/test_dir.c
2013-04-18Fix a couple of documentation issues.Nick Mathewson
2013-04-18Refactor dirobj signature generationNick Mathewson
Now we can compute the hash and signature of a dirobj before concatenating the smartlist, and we don't need to play silly games with sigbuf and realloc any more.
2013-04-17Merge branch 'bug8037_squashed' into maint-0.2.4Nick Mathewson
2013-04-02Merge remote-tracking branch 'public/bug7707_diagnostic' into maint-0.2.4Nick Mathewson
2013-03-23Avoid clang warnings from implicit off_t->size_t castNick Mathewson
2013-03-19Merge branch 'bug8240_v2_squashed' into maint-0.2.4Nick Mathewson
Conflicts: doc/tor.1.txt src/or/circuitbuild.c src/or/config.c src/or/or.h
2013-03-19Make the guard lifetime configurable and adjustable via the consensusNick Mathewson
Fixes 8240. (Don't actually increase the default guard lifetime. It seems likely to break too many things if done precipitiously.)
2013-03-19Merge remote-tracking branch 'public/bug7950' into maint-0.2.4Nick Mathewson
2013-03-19Merge remote-tracking branch 'public/bug8002' into maint-0.2.4Nick Mathewson
2013-03-18Fix another case of bug 8206; patch from flupzorNick Mathewson
2013-03-18Merge remote-tracking branch 'public/bug6673' into maint-0.2.4Nick Mathewson
2013-03-18Merge remote-tracking branch 'origin/maint-0.2.3' into maint-0.2.4Nick Mathewson
Conflicts: src/test/test_addr.c
2013-03-18Check return values from fcntl and setsockoptNick Mathewson
(Based on a patch from flupzor; bug #8206)
2013-03-15Merge remote-tracking branch 'public/unused_stuff' into maint-0.2.4Nick Mathewson
2013-03-11Track TLS overhead: diagnostic for bug 7707Nick Mathewson
2013-03-11Give an #error when we want threads and OpenSSL has disabled threadsNick Mathewson
Fixes ticket 6673.
2013-03-10start part-way through the ssl cert lifetimeRoger Dingledine
also, snap the start time and end time to a day boundary, since most certs in the wild seem to do this.