• Tom Lane's avatar
    Disallow SSL session tickets. · 97d3a0b0
    Tom Lane authored
    We don't actually support session tickets, since we do not create an SSL
    session identifier.  But it seems that OpenSSL will issue a session ticket
    on-demand anyway, which will then fail when used.  This results in
    reconnection failures when using ticket-aware client-side SSL libraries
    (such as the Npgsql .NET driver), as reported by Shay Rojansky.
    
    To fix, just tell OpenSSL not to issue tickets.  At some point in the
    far future, we might consider enabling tickets instead.  But the security
    implications of that aren't entirely clear; and besides it would have
    little benefit except for very short-lived database connections, which is
    Something We're Bad At anyhow.  It would take a lot of other work to get
    to a point where that would really be an exciting thing to do.
    
    While at it, also tell OpenSSL not to use a session cache.  This doesn't
    really do anything, since a backend would never populate the cache anyway,
    but it might gain some micro-efficiencies and/or reduce security
    exposures.
    
    Patch by me, per discussion with Heikki Linnakangas and Shay Rojansky.
    Back-patch to all supported versions.
    
    Discussion: https://postgr.es/m/CADT4RqBU8N-csyZuzaook-c795dt22Zcwg1aHWB6tfVdAkodZA@mail.gmail.com
    97d3a0b0
be-secure-openssl.c 32.2 KB