From 0b319de60f7c80ab5c37c57af182f4f710ceb5b7 Mon Sep 17 00:00:00 2001 From: Nick Mathewson Date: Thu, 17 Apr 2014 10:23:18 -0400 Subject: Elevate server TLS cipher preferences over client 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. --- src/common/tortls.c | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'src') diff --git a/src/common/tortls.c b/src/common/tortls.c index 886ee0ddac..8eb524ebfa 100644 --- a/src/common/tortls.c +++ b/src/common/tortls.c @@ -1261,6 +1261,10 @@ tor_tls_context_new(crypto_pk_t *identity, unsigned int key_lifetime, goto error; SSL_CTX_set_options(result->ctx, SSL_OP_NO_SSLv2); + /* Prefer the server's ordering of ciphers: the client's ordering has + * historically been chosen for fingerprinting resistance. */ + SSL_CTX_set_options(result->ctx, SSL_OP_CIPHER_SERVER_PREFERENCE); + /* Disable TLS1.1 and TLS1.2 if they exist. We need to do this to * workaround a bug present in all OpenSSL 1.0.1 versions (as of 1 * June 2012), wherein renegotiating while using one of these TLS -- cgit v1.2.3-54-g00ecf