How to read an OpenSSL cipher suite list
hMailserver is an open source Window e-mail server. For incoming e-mail it supports STARTTLS
with the help of OpenSSL 1.1.1.
It allows configuring the cipher suites, the default is:
ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:
ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-DSS-AES128-GCM-SHA256:
kEDH+AESGCM:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA:
ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA384:
ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:
DHE-DSS-AES128-SHA256:DHE-RSA-AES256-SHA256:DHE-DSS-AES256-SHA:DHE-RSA-AES256-SHA:
AES128-GCM-SHA256:AES256-GCM-SHA384:ECDHE-RSA-RC4-SHA:ECDHE-ECDSA-RC4-SHA:
AES128:AES256:RC4-SHA:HIGH:!aNULL:!eNULL:!EXPORT:!DES:!3DES:!MD5:!PSK;
I wanted to disable AES256-GCM-SHA384
but after removing it, the cipher suite was still offered for STARTTLS
(according to test site https://internet.nl)
In the end I had to remove AES128
, AES256
and HIGH
to stop AES256-GCM-SHA384
from appearing on STARTTLS
.
How should I read this OpenSSL configuration setting? On the last line AES128
en AES256
are mentioned standalone. Doesn't this mean that any cipher with AES128
or AES256
will be allowed making the long list before that quite redundant?
The same goes for the HIGH
, doesn't that make mentioning a lot of the other cipher suites redundant?
Edit:
In response to questions why I want to remove ES256-GCM-SHA384
: for a Dutch government contract they expect our e-mail server to score excellent at the https://internet.nl test site. On AES256-GCM-SHA384
it tells:
At least one of your mail servers supports one or more ciphers that have a phase out status, because they are known to be fragile and are at risk of becoming insufficiently secure.
That is why I am trying to disable it.
Solution 1:
I believe you are reading the list correctly.
While there is a large amount of redundancy in your example, I imagine that the purpose of the specific ciphers in the beginning is to establish the order of preference for specific ciphers, regardless if the same cipher ends up being part of one of the built-in lists of ciphers.
As for why you would want to remove AES256-GCM-SHA384
, that is rather unclear but maybe not relevant to the question.