Hi,

Some users are reaching out to us telling they have issues connecting
to our service because of incompatibility between the set of ciphers
offered during the connection.

On our send, we decided to use the ciphers suggested by Mozilla on
their SSL Configuration Generator (https://ssl-config.mozilla.org/)
(level "Intermediate") but I'm aware it's more for the HTTPS
connections that ESMTP / TLS.

So maybe there is another set of ciphers recommended for creating
secured connections in email that I'm not aware of. Do you have any
recommendations for this or is the ones from Mozilla (Intermediate)
is good enough?

If you want to avoid loading the link, here are the ciphers suggested
by them:

Ciphers:
ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA
-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-P
OLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA
-AES256-GCM-SHA384:DHE-RSA-CHACHA20-POLY1305

Cipher
suites:
TLS_AES_128_GCM_SHA256:TLS_AES_256_GCM_SHA384:TLS_CHACHA20_POLY1305_S
HA256

And we only accept TLS at v1.2 and higher.

As far as TLS in general is concerned, Mozilla's recommendations are perfectly sound, and their guidelines are well worth following regardless of protocol. An excellent baseline, and normally this should be all you need.

That said, we still decided to deviate from them *only* for SMTP (and not for i.e. Submission). The reason for this decision comes down to the number of poorly configured servers out there, and the fact that TLS in SMTP is still opportunistic. While requiring sane crypto at Mozilla's level will no doubt weed out a fair bit of spammers, unfortunately it is (still) likely to also weed out stuff it shouldn't. And since you won't know before the other side initiates STARTTLS whether you'll be able to agree on a common handshake, and poor crypto is still better than no crypto at all (which SMTP generally will happily allow), this ended up being the compromise.

Regardless of your approach, you should absolutely ensure that ciphers are used in server-preferred order. This doesn't really matter for TLSv1.3 since all cipher suites there today are generally considered equally safe, but it very much does for ciphers in TLSv1.2 (and anything below).

Should you choose to go down this path, a (possibly limited) variant of Mozilla's Old level might be appropriate, with only the least insecure (highest listed) TLSv1.1 and/or TLSv1.0 ciphers allowed. Experiment until you get no more complaints, rather than adding the whole Old list of ciphers.

If the other end doesn't support the ciphers at Intermediate level, they likely don't support TLSv1.2 at all, so in my experience[1] this is a bit of an either or. If you do want to "fix" this it will have to be a compromise, but together with the aforementioned server-preferred order, this should ensure only the worst servers get these worst ciphers and TLS versions, while everyone else still get the most modern and safe crypto available to them.

YMMV, and I'm sure some will want to argue that what I'm describing should never be allowed, but not everyone will have the luxury of being in a position to discard incoming ham "just" because the sender's server isn't set up properly. So to be clear, I am not recommending this course of action, only saying that, based on what you're saying, this is likely to be the necessary compromise to get around the issue.


[1] Yes, there is the theoretical possibility of a sending server supporting TLSv1.2 but only with weak ciphers. Feel free to experiment with that instead, should that be preferable.

--
Christer Mjellem Strand
System Administrator
_______________________________________________
mailop mailing list
mailop@mailop.org
https://list.mailop.org/listinfo/mailop

Reply via email to