RFR 8211018: Session Resumption without Server-Side State
Xuelei Fan
xuelei.fan at oracle.com
Wed Jun 5 23:26:02 UTC 2019
On 6/5/2019 3:37 PM, Jamil Nimeh wrote:
> I think we're overstating the "otherwise" case. A client that uses this
> strict 4507 format would initially send a ticket that looks like { 00 23
> 00 02 00 00 } to which our server would reject this extension (since the
> final 00 00 would be interpreted as a ticket when the client did not
> intend it to be so). The result of this SHOULD be that the server
> responds with a ServerHello that doesn't have the SessionTicket extension.
>
> That doesn't mean that resumption cannot happen. It just means that
> resumption happens using the usual session ID lookup approach and the
> server is caching the session rather than letting the client do the
> work. Given that this is a degenerate case for what (I hope) is a small
> subset of older clients, I think using server-cached sessions is OK.
>
> I don't believe we should ever find ourselves in a case where the
> strict-4507 client actually gets a real ticket from our server, and in
> turn should never hand us a ticket thinking that resumption could
> actually take place via said ticket.
>
I'm not very sure if I read the Appendix A of RFC 5077 correctly. I
think it is trying to explain that client does not use strict-4507 for
the empty extension and then result in the interop issues.
Page 18, RFC 5077:
" Note that the encoding of an empty SessionTicket extension was
ambiguous in RFC 4507. An RFC 4507 implementation may have encoded
it as:
00 23 Extension type 35
00 02 Length of extension contents
00 00 Length of ticket
or it may have encoded it the same way as this update:
00 23 Extension type 35
00 00 Length of extension contents
"
> On the client side, we cannot know ahead of time that the server is
> strict-4057, so we have to send a 5077 style SessionTicket extension.
> The server will probably not like that and not assert SessionTicket in
> its server hello. So our client should fall back to using the session
> ID to support resumption, and the server should follow suit by caching
> the session.
>
I agreed. We should stick to the RFC 5077 format in client side.
Thanks,
Xuelei
> --Jamil
>
> On 6/5/2019 2:28 PM, Xuelei Fan wrote:
>> I don’t know if there are any deployment of RFC 4507. If not, we are
>> safe; otherwise there are interop problems for session resumption.
>>
>> Xuelei
>>
>>> On Jun 5, 2019, at 2:19 PM, Jamil Nimeh <jamil.j.nimeh at oracle.com>
>>> wrote:
>>>
>>> Hi Xuelei,
>>>
>>> Given that 4507 is obsoleted in favor of 5077 is there really that
>>> much value to supporting this older/broken extension format? Do we
>>> know of clients that still adhere to 4507? Otherwise it seems better
>>> to stick to 5077 and the approach in TLS 1.3 and not try to go back
>>> and support an earlier obsoleted approach to this feature.
>>>> These lines took me to the cooperation behaviors between RFC 5077
>>>> and RFC 4507. It looks like we don't support RFC 4507 format of
>>>> SessionTicket extension. As RFC 5077 and RFC 4507 use the same
>>>> extension ID for different extension format. There are potential
>>>> compatibility issues, and make session resumption impossible. I
>>>> would like to have a workaround to accept both formats. For
>>>> example, using the a cookie at the beginning of the ticket, as
>>>> described in appendix-A of RFC 5077.
>>>>
>>>>
>>>> I will review the rest of this class in the afternoon or tomorrow.
>>>>
>>>> Thanks,
>>>> Xuelei
>>>
>>>
>>>
>>>
>>>
>
More information about the security-dev
mailing list