On Wed, Sep 11, 2013 at 01:26:25PM +0200, Ralf Hildebrandt wrote:

> > Anyone has tested such server in real life ?
> > 
> > http://sealedabstract.com/code/nsa-proof-your-e-mail-in-2-hours/
> 
> I finally got around reading this.
>
> I wonder if it should be more strict regaring the used ciphers (both
> in Postfix and Dovecot), given that it's for self-hosting only.

With opportunistic TLS, reducing the set of ciphers available always
reduces security, since when the handshake fails mail is subsequently
sent in the clear.  The Postfix SMTP client and server cipherlists
are *ordered* sensibly, and with SSLv2 disabled (default), there
should be no downgrade attacks.

It only makes sense to restrict the cipherlist to a more secure
subset when TLS is mandatory.  The default cipher grade for mandatory
TLS is "medium".  The "medium" grade is essentially just 128-bit RC4:

    AECDH-RC4-SHA           SSLv3 Kx=ECDH     Au=None Enc=RC4(128)  Mac=SHA1
    ADH-RC4-MD5             SSLv3 Kx=DH       Au=None Enc=RC4(128)  Mac=MD5
    IDEA-CBC-SHA            SSLv3 Kx=RSA      Au=RSA  Enc=IDEA(128) Mac=SHA1
    IDEA-CBC-MD5            SSLv2 Kx=RSA      Au=RSA  Enc=IDEA(128) Mac=MD5
    RC2-CBC-MD5             SSLv2 Kx=RSA      Au=RSA  Enc=RC2(128)  Mac=MD5
    ECDHE-RSA-RC4-SHA       SSLv3 Kx=ECDH     Au=RSA  Enc=RC4(128)  Mac=SHA1
    ECDHE-ECDSA-RC4-SHA     SSLv3 Kx=ECDH     Au=ECDSA Enc=RC4(128)  Mac=SHA1
    ECDH-RSA-RC4-SHA        SSLv3 Kx=ECDH/RSA Au=ECDH Enc=RC4(128)  Mac=SHA1
    ECDH-ECDSA-RC4-SHA      SSLv3 Kx=ECDH/ECDSA Au=ECDH Enc=RC4(128)  Mac=SHA1
    RC4-SHA                 SSLv3 Kx=RSA      Au=RSA  Enc=RC4(128)  Mac=SHA1
    RC4-MD5                 SSLv3 Kx=RSA      Au=RSA  Enc=RC4(128)  Mac=MD5
    RC4-MD5                 SSLv2 Kx=RSA      Au=RSA  Enc=RC4(128)  Mac=MD5

so if not using RC4 is a requirement, raising the mandatory grade to
high can be tried with care, but the effect is not always necessarily for
the better:

    $ posttls-finger -c -L summary gmail.com
    posttls-finger: Untrusted TLS connection established to 
gmail-smtp-in.l.google.com[173.194.74.27]:25: TLSv1.1 with cipher 
ECDHE-RSA-RC4-SHA (128/128 bits)

    $ posttls-finger -c -L summary -g high gmail.com
    posttls-finger: Untrusted TLS connection established to 
gmail-smtp-in.l.google.com[173.194.74.27]:25: TLSv1.1 with cipher AES128-SHA 
(128/128 bits)

So with "medium" you get RC4 with PFS, and with "high" you get
AES128 without PFS.  Which is better, we don't know for sure.

On a related note, in the Postfix SMTP client, I'd like at some
point to disable not only SSLv2, but also SSLv3, leaving only TLSv1
and up enabled.  This ensures that TLSv1 extensions are sent in
the SSL client HELO message.  Extensions can signal the list of
supported EECDH curves, support for session tickets, ...

The right time for this would probably be after OpenSSL 1.0.2 is
released, because then with an appropriate small change to Postfix,
the best EECDH curve can be negotiated, rather than fixed by the
server.

SSLv3 is already disabled in Postfix 2.11 when the remote server
is authenticated via DNSSEC DANE TLSA records, because in this case
the Postfix SMTP client needs to send the SNI extension to the
server (just in case the right certificate is contingent on SNI).

-- 
        Viktor.

Reply via email to