Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 6 Mar 2015 16:28:22 -0800
From:      Charles Swiger <cswiger@mac.com>
To:        Doug Hardie <bc979@lafn.org>
Cc:        FreeBSD - <freebsd-questions@freebsd.org>
Subject:   Re: OpenSSL Ciphers
Message-ID:  <DC459F71-D819-4BB9-AC1A-4E1D5EB6D4E8@mac.com>
In-Reply-To: <B8A83AF6-B354-46E7-A736-64959C53CD66@lafn.org>
References:  <5347DC2D-AD6C-41A1-AEC7-A81C51F691B3@lafn.org> <B8A83AF6-B354-46E7-A736-64959C53CD66@lafn.org>

next in thread | previous in thread | raw e-mail | index | archive | help
Hi--

> On Mar 6, 2015, at 3:58 PM, Doug Hardie <bc979@lafn.org> wrote:
>> On 3 March 2015, at 23:21, Doug Hardie <bc979@lafn.org> wrote:
>> The default list of ciphers is quite extensive and includes some that =
are apparently causing some potential security issues.  I have a number =
of applications that use OpenSSL and many don=E2=80=99t have the code to =
restrict the list.  Fixing all that would take quite a bit of work.  =
However, looking into /usr/include/openssl/ssl.h I find a definition for =
the SSL_DEFAULT_CIPHER_LIST.  The comments indicate that that list is =
the one used when the application doesn=E2=80=99t specify anything.  I =
changed its definition to:
>>=20
>> #define SSL_DEFAULT_CIPHER_LIST =
"TLSv1+HIGH:!SSLv2:RC4+MEDIUM:!aNULL:!eNULL:!3DES:@STRENGTH:
>>=20
>> However, s_connect will still create a connection with the export =
ciphers.  I tried adding !EXPORT to that list and it had no effect.  Is =
the definition actually used by openssl or is it just there for =
documentation?
>=20
> Not hearing anything on this, I suspect it=E2=80=99s not very well =
understood.  I have started updating the various servers/clients that =
use SSL/TLS.  The one that has me completely stumped is sendmail.  There =
is a web page which provides instructions =
"http://novosial.org/sendmail/cipherlist/index.html=E2=80=9D.  However, =
when I follow them, I can still establish a connection and deliver mail =
using the export ciphers. =20
>=20
> Has anyone successfully restricted the sendmail ciphers?

You can see which ciphers openssl will support via a statement like:

% openssl ciphers -v =
'TLSv1+HIGH:RC4+MEDIUM:!aNULL:!eNULL:!3DES:@STRENGTH:!EXPORT'
DHE-RSA-AES256-SHA      SSLv3 Kx=3DDH       Au=3DRSA  Enc=3DAES(256)  =
Mac=3DSHA1
DHE-DSS-AES256-SHA      SSLv3 Kx=3DDH       Au=3DDSS  Enc=3DAES(256)  =
Mac=3DSHA1
AES256-SHA              SSLv3 Kx=3DRSA      Au=3DRSA  Enc=3DAES(256)  =
Mac=3DSHA1
DHE-RSA-AES128-SHA      SSLv3 Kx=3DDH       Au=3DRSA  Enc=3DAES(128)  =
Mac=3DSHA1
DHE-DSS-AES128-SHA      SSLv3 Kx=3DDH       Au=3DDSS  Enc=3DAES(128)  =
Mac=3DSHA1
AES128-SHA              SSLv3 Kx=3DRSA      Au=3DRSA  Enc=3DAES(128)  =
Mac=3DSHA1
RC4-SHA                 SSLv3 Kx=3DRSA      Au=3DRSA  Enc=3DRC4(128)  =
Mac=3DSHA1
RC4-MD5                 SSLv3 Kx=3DRSA      Au=3DRSA  Enc=3DRC4(128)  =
Mac=3DMD5=20
RC4-MD5                 SSLv2 Kx=3DRSA      Au=3DRSA  Enc=3DRC4(128)  =
Mac=3DMD5=20

...and you can experiment with TLS negotiation results via something =
like:

% openssl s_client -cipher 'AES256-SHA:AES128-SHA' -connect =
www.google.com:443
[ ... ]
New, TLSv1/SSLv3, Cipher is AES128-SHA
Server public key is 2048 bit
Secure Renegotiation IS supported
Compression: NONE
Expansion: NONE
SSL-Session:
    Protocol  : TLSv1
    Cipher    : AES128-SHA
    Session-ID: [ ... ]

Sendmail normally performs crypto via STARTTLS negotiation rather than =
via SMTPS; there's a CipherList option which can be defined via =
sendmail.mc / sendmail.cf.  You might need to recompile sendmail with =
-D_FFR_TLS_1, which I think that novosial page mentions.

Regards,
--=20
-Chuck




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?DC459F71-D819-4BB9-AC1A-4E1D5EB6D4E8>