On Wed, May 08, 2013 at 11:49:53PM +0000, Viktor Dukhovni wrote:

> The encrypted finished message from rho.salmi.ch is 32 bytes, with gdb we see
> that the first four bytes decrypt to:
> 
>       "0x14 0x00 0x00 0x00" +                 [(type 20, length 0)]
>       0 bytes finished +
>       20 bytes SHA = 24 bytes +
>       AES padding = 32.
> 
> So this server generated an empty SSL "finished" message.  Can't
> say why, but this is definitely not right, and appears to be
> something special about this server.

Using an OpenSSL library compiled with "no-tlsext" hides the problem,
as the server no longer resumes any sessions.  Most likely the
server has a broken implementation of "session tickets".

I would not recommend disabling tls extensions as a solution, the
problem server is unlikely to represent a large fraction of the
SMTP server population.

If necessary, one can create a clone of the smtp transport that
has no client TLS session cache and route problem destinations via
the custom transport.

    master.cf:
        smtp      unix  -       -       n       -       -       smtp
        tlsbug    unix  -       -       n       -       -       smtp
            -o smtp_tls_session_cache_database=

    transport:
        salmi.ch        tlsbug:salmi.ch:587

If "salmi.ch:587" is the OP's relayhost, then all off-site mail goes there,
and the custom transport is not needed, just set:

    main.cf:
        relayhost = salmi.ch:587
        # The relayhost's server session cache is broken, disable the client 
cache.
        smtp_tls_session_cache_database =

-- 
        Viktor.

Reply via email to