The documentation about renegotiation between an unpatched client and
a patched server reads:

    Unpatched client and patched OpenSSL server
    -------------------------------------------

    The initial connection suceeds but client renegotiation is denied
    by the server with a B<no_renegotiation> warning alert if TLS v1.0
    is used or a fatal B<handshake_failure> alert in SSL v3.0.

    If the patched OpenSSL server attempts to renegotiate a fatal
    B<handshake_failure> alert is sent. This is because the server code
    may be unaware of the unpatched nature of the client.

    ...

    NB: a bug in OpenSSL clients earlier than 0.9.8m (all of which
    are unpatched) will result in the connection hanging if it receives
    a B<no_renegotiation> alert. OpenSSL versions 0.9.8m and later will
    regard a B<no_renegotiation> alert as fatal and respond with a fatal
    B<handshake_failure> alert. This is because the OpenSSL API currently
    has no provision to indicate to an application that a renegotiation
    attempt was refused.

If I am reading this correctly, unpatched OpenSSL clients will definitely
hang if the client initiates renegotiation to a patched server? If so,
why not send a fatal alert (especially if non-buggy clients treat it
as fatal)? What is the point of tying up server and client resources
with stuck connections?

Does the documentation accurately reflect the behaviour of 0.9.8m
patched servers and earlier unpatched clients?

If so, does anyone have a patch that would send a fatal alert instead?
I'd rather not risk DoS for RFC correctness if non-buggy clients treat
the warning as fatal anyway.

-- 
        Viktor.
______________________________________________________________________
OpenSSL Project                                 http://www.openssl.org
User Support Mailing List                    openssl-users@openssl.org
Automated List Manager                           majord...@openssl.org

Reply via email to