GNOME Bugzilla – Bug 402925
Evolution uses weak encryption for SSL/TLS
Last modified: 2013-09-13 00:52:04 UTC
Please describe the problem: Evolution uses weak encryption when sending mail via SSL/TLS. E.g., the server supports AES 256 bit, but Evolution uses the probably weakest encryption available (no matter if TLS on port 25 or SSL on port 465): (using TLSv1 with cipher RC4-MD5 (128/128 bits)) I consider this a serious bug, as RC4-MD5 is definitly not a good idea. Manually connecting via 'openssl s_client' to the server I used for testing shows: SSL-Session: Protocol : TLSv1 Cipher : DHE-RSA-AES256-SHA So it definitly works on the server-side. Steps to reproduce: 1. Send mail via a TLS/SSL-enabled mailserver 2. Check the used encryption Actual results: Expected results: Does this happen every time? Yes Other information:
Ubuntu bug about that: https://launchpad.net/ubuntu/+source/evolution/+bug/82515
Tentative patch at: https://launchpad.net/ubuntu/+source/evolution/+bug/82515/comments/6
Any comment on this bug from a developer? Judging from the really short patch, the fix seems to be quite simple and would enable AES, which is quite important if there's a company policy regarding encryption... Even without that, there seems to be no reason for not supporting strong encryption.
Comments from the Ubuntu bug (https://bugs.launchpad.net/evolution/+bug/82515/comments/5): it really looks like Evolution is letting the factory defaults for NSS take over -- which means that, although permitted, most of the high-end encryption suites are not enabled. I am assuming the ubuntu release of Evolution is using libnss (at least this is what is marked). I have not looked at Evolution with OpenSSL. In camel.c @ camel_init(), Evolution sets up the use of domestic encryption via a call to NSS_SetDomesticPolicy(), but does not set up the (by default) not enabled ciphersuites, which the Mozilla documentation state as required. This would require calls to SSL_CipherPrefSetDefault() globally, or SSL_CipherPrefSet() on each socket. I cannot find any such calls in the code. So... it looks that Evolution does need a patch in order to allow high-end ciphersuites to be used. It is missing the necessary setup. c.f. http://www.mozilla.org/projects/security/pki/nss/ref/ssl/sslfnc.html#1214758 Of course, I may be completely wrong, but I do not think so.
Created attachment 91506 [details] [review] enable high-end ciphersuites on libnss tentative patch below. All SSLV2 ciphersuites are enabled by default, so I do not go on calling SSL_CipherPrefSetDefault() on them. For simplicity, we could. This deals with libnss only.
Created attachment 91555 [details] [review] corrected indentation - enables high-end ciphersuites
Thanks to Fejj's review :) Please commit to head.
Committed.