<div dir="ltr">Thank you both for bringing this to my attention, your points are invaluable.<div><br><div>If this is something which gets set from server on client side. can client override this?. Can i change this to something less and try?. Has anyone tried?.</div><div><br></div><div>Whats the option in openssl.conf or some other place?.</div><div><br></div><div>-thanks</div><div>harish</div><div><br></div></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Mon, Jan 25, 2021 at 11:08 PM Matt Caswell <<a href="mailto:matt@openssl.org">matt@openssl.org</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-style:solid;border-left-color:rgb(204,204,204);padding-left:1ex"><br>
<br>
On 23/01/2021 15:22, John Thoe wrote:<br>
> Hi list,<br>
> <br>
> The session reuse question posted on the mailing list earlier<br>
> (<a href="https://mta.openssl.org/pipermail/openssl-users/2021-January/013360.html" rel="noreferrer" target="_blank">https://mta.openssl.org/pipermail/openssl-users/2021-January/013360.html</a>)<br>
> reminded of a somewhat similar question I have.<br>
> <br>
> As per the docs,<br>
> <a href="https://www.openssl.org/docs/man1.0.2/man3/SSL_get_default_timeout.html" rel="noreferrer" target="_blank">https://www.openssl.org/docs/man1.0.2/man3/SSL_get_default_timeout.html</a>,<br>
> it says the default value is 300 seconds for which a session resuse<br>
> will be accepted. The docs say that it is the same for all<br>
> protocols.<br>
> <br>
> However I tried it with my setup where I didn't explicitly set the<br>
> timeout and I am getting 7200 seconds as the default value. s_client<br>
> output: TLS session ticket lifetime hint: 7200 (seconds). My client<br>
> openssl.conf has no setting override (not that it should matter<br>
> because this is a server preference). No OpenSSL settings on the<br>
> server have been modified as well.<br>
<br>
Looks to me like the docs are wrong. They probably should say 7200.<br>
<br>
<br>
> <br>
> In ssl/ssl_sess.c#L80, the code matches the document: ss->timeout =<br>
> 60 * 5 + 4;   /* 5 minute timeout by default */ ... (with additional<br>
> four seconds?)<br>
<br>
<br>
This gets set during construction and then later overwritten when we<br>
actually get a new session via "ssl_get_new_session":<br>
<br>
    /* If the context has a default timeout, use it */<br>
    if (s->session_ctx->session_timeout == 0)<br>
        ss->timeout = SSL_get_default_timeout(s);<br>
    else<br>
        ss->timeout = s->session_ctx->session_timeout;<br>
<br>
In most cases SSL_get_default_timeout() calls tls1_default_timeout() (it<br>
can end up somewhere different for certain protocol versions - but all<br>
the different variants are the same!):<br>
<br>
long tls1_default_timeout(void)<br>
{<br>
    /*<br>
     * 2 hours, the 24 hours mentioned in the TLSv1 spec is way too long for<br>
     * http, the cache would over fill<br>
     */<br>
    return (60 * 60 * 2);<br>
}<br>
<br>
60 * 60 * 2 = 7200<br>
<br>
<br>
Matt<br>
<br>
</blockquote></div>