Re: [TLS] WGLC for draft-ietf-tls-ticketrequests

Daniel Migault <daniel.migault@ericsson.com> Fri, 15 November 2019 12:00 UTC

Return-Path: <mglt.ietf@gmail.com>
X-Original-To: tls@ietfa.amsl.com
Delivered-To: tls@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 4461E120822 for <tls@ietfa.amsl.com>; Fri, 15 Nov 2019 04:00:29 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.648
X-Spam-Level:
X-Spam-Status: No, score=-1.648 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, FREEMAIL_FORGED_FROMDOMAIN=0.001, FREEMAIL_FROM=0.001, HEADER_FROM_DIFFERENT_DOMAINS=0.249, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H2=-0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, URIBL_BLOCKED=0.001] autolearn=no autolearn_force=no
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id OfQvojSRmgxB for <tls@ietfa.amsl.com>; Fri, 15 Nov 2019 04:00:27 -0800 (PST)
Received: from mail-vs1-f48.google.com (mail-vs1-f48.google.com [209.85.217.48]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 3109B120820 for <tls@ietf.org>; Fri, 15 Nov 2019 04:00:27 -0800 (PST)
Received: by mail-vs1-f48.google.com with SMTP id m9so6161335vsq.7 for <tls@ietf.org>; Fri, 15 Nov 2019 04:00:27 -0800 (PST)
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=8ib3eXo2YL/TXnuQVKARJCVA0W+IzKTq73RbpdKiXUE=; b=LDhsLCLb64t9bXXr1l36TfP+OFHOTDLwFHNvZPuQH9RXBdj1r3Uh/vGRgWhURQYW0P GZrXtK4mUsXmZ2oiasx+t9uhD1MOWUi5PAejx2KWGf01HkrpYtC9nM/fSS1hpWZAKVZH gjgK43P5ZT/YHexYGkRH0sgGzBqXWfyochKUiLZYTtWSdoDzKzP8/dpNrPJo+Uu5FNDJ Czu+ADhv3spGrpZr+auvg/N2TcsxO+zKKCpLs9HYXdJ+EdDDktU/62yH17Dbe66A/L51 JaFd3Dyhaj3N73zMN7yKCDidDjLOB7hse5FTMFDVG1BUSa17l4cAZRbKCZ1QCRK21lpD e7Gg==
X-Gm-Message-State: APjAAAX2RZA555X13FW46ky0KJsgZAik3SBLFbWlAY45rjSQzpOieP4o CUk4oO2Bc1TPIqmPmqsRAgrSRvPPyOllDQVQ/qXSl7IH
X-Google-Smtp-Source: APXvYqydpR4w0KlzK7Bo5VWeKEzrDGeOkIzU73tfLdoSzwl+K9Vr4yOXD05AD+yOfEk3tBMEN0V60WlTe3O+eQDW3LU=
X-Received: by 2002:a67:e2d7:: with SMTP id i23mr8548835vsm.31.1573819226186; Fri, 15 Nov 2019 04:00:26 -0800 (PST)
MIME-Version: 1.0
References: <2FB1D8AD-2C22-4A09-B7AF-0EFD6F0DBACA@sn3rd.com> <0469b84c-3009-427a-99ca-e7f6817f0b6c@www.fastmail.com> <CADZyTknhZDi2JD5WRbKEOGDafHjhTkUm6QhOhv1kkA9BT1nekw@mail.gmail.com> <37ff9a64-2749-4558-a675-5b251f06eb3a@www.fastmail.com> <CADZyTkkS-CipB00+JMRrjNZqXhyCTdBhV11oydCNCCeG_M6ORg@mail.gmail.com> <6fc786f3-9fbe-4f8e-92d3-cd9ceb7f3703@redhat.com> <CADZyTkny6jpk=0gg-=yT3C3zY6N88a6t1RKjfKN+bNU6YbLshw@mail.gmail.com> <07d49b6f-e79d-4058-878f-7a57d5b6f241@redhat.com>
In-Reply-To: <07d49b6f-e79d-4058-878f-7a57d5b6f241@redhat.com>
From: Daniel Migault <daniel.migault@ericsson.com>
Date: Fri, 15 Nov 2019 07:00:14 -0500
Message-ID: <CADZyTkmRP-xq5NjH1p914HFX3wpiYRkz3rr5yO99x87Q-N+-hg@mail.gmail.com>
To: Hubert Kario <hkario@redhat.com>
Cc: tls <tls@ietf.org>
Content-Type: multipart/alternative; boundary="000000000000eaec2505976157d2"
Archived-At: <https://mailarchive.ietf.org/arch/msg/tls/IHDWHrBblUpaGqTkmXcVY8a-L7E>
Subject: Re: [TLS] WGLC for draft-ietf-tls-ticketrequests
X-BeenThere: tls@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: "This is the mailing list for the Transport Layer Security working group of the IETF." <tls.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/tls>, <mailto:tls-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/tls/>
List-Post: <mailto:tls@ietf.org>
List-Help: <mailto:tls-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/tls>, <mailto:tls-request@ietf.org?subject=subscribe>
X-List-Received-Date: Fri, 15 Nov 2019 12:00:29 -0000

Hi  Hubert,

On Thu, Nov 14, 2019 at 12:33 PM Hubert Kario <hkario@redhat.com>; wrote:

> On Thursday, 14 November 2019 18:18:52 CET, Daniel Migault wrote:
> > Hi Hubert,
> >
> > The reason I would prefer the client to enforce the count is that if a
> > client has constraints - memory / bandwidth, he wants to make sure its
> > preference is respected, and this independently of the evolution of how
> the
> > hint will be interpreted in the future or depending on different
> > implementations.
>
> bandwidth I sort of understand, but then if client asks for 0 tickets,
> it's
> explicitly stated in the draft that server should understand it as "will
> not use, don't bother" – I really don't see how in the future that can be
> reinterpreted as "nah, send tickets anyway" – also, please remember that
> the size of the ticket is very variable, so just accepting one ticket may
> be a significant size anyway
>

I agree the case of count set to 0 is mention. However, the support of the
extension does not prevent a server to send 4 tickets with MAY and SHOULD.
The reason this might be ignored in the future is that the specification
does not prevent the server from doing so and takes what the client
provides as an hint which may be overwrite by the server. 0 seems also
special, but I believe we can have a common behaviour for any sort of
values.


> as for memory – just because server sends them, doesn't mean client has to
> remember them
>
It still has to process them, which consumes battery.

>
> finally: ok, so the server misbehaves and sends 4 tickest instead of
> three,
> what the client should do? close the connection?
>
> Well, the client will probably discard one. That said with the current
specification we cannot report a bug and ask the server to comply with the
spec, it is in the spec. On the other hand, if the spec ask for considering
that count, we can ask the server to be compliant with the spec. All cases
you are raising will need to be implemented and as such will be defined in
some ways. In my opinion that should be in the specification.


> > I understand the reasons for SHOULD. At least this should be documented.
> To
> > address your first point, of course the specification applies to the
> server
> > that support the extension.
>
> > Your second concern is solved by limiting the
> > NTS of KEX.
>
> by "KEX" you mean handshake? but New Session Ticket messages are not sent
> during handshake, they are sent after handshake is finished
>
> yes. I would consider the NST as part of the handshake even for those sent
after the post-handshake authentication. I agree better terms may be used.
The rekey aspect seems to me out of the handshake.


> so how exactly you want to decide when server stopped sending NSTs after
> handshake finished?
>

That the spec does not mention it does not mean this will not be defined.
Instead it means each implementer will have its own logic, definitions and
outputs. The same reasoning occurs to the complexity argument,not
specifying it does not reduce the complexity but let it to the
implementation with all unexpected corner cases.

>
> > The third point is addressed by the minimum of the (count,
> > server_nbr). Note that I see count as a maximum. Overall I do not think
> > this would add much complexity.  The only complexity I see is when a
> server
> > sends NTS at different time in the KEX.
>
> again, and what if the server misbehaves?
>

Again, it would be a bug but the current spec is very permissive, at least
in my opinion. I do not believe that not specifying the expected behaviors
will prevent misbehaviors to happen, it, instead simply legitimates them.

>
> > Yours,
> > Daniel
> >
> > On Thu, Nov 14, 2019 at 11:59 AM Hubert Kario <hkario@redhat.com>; wrote:
> >
> >> On Thursday, 14 November 2019 17:19:55 CET, Daniel Migault wrote:
> >>> Hi Chris,
> >>>
> >>> Thanks for the responses, please see my comments inline.
> >>>
> >>> Yours,
> >>> Daniel
> >>>
> >>> On Thu, Nov 14, 2019 at 11:02 AM Christopher Wood ...
> >>
> >> we discussed it on the list, and the reason for such phrasing is
> >> multi-fold:
> >>  - the server doesn't have to implement this extension, as
> >> such, as per the
> >>    basic TLS 1.3 RFC, it can send arbitrary number of
> >> extensions to client,
> >>    so clients, to be RFC compliant, need to be able to process abritrary
> >> number
> >>    tickets at arbitrary time after handshake finish
> >>  - making value in extension the exact number requested by
> >> client makes the
> >>    implementation much more complex: is that number per connection? per
> >>    session? what about post-handshake authentication? what about Session
> >> Ticket
> >>    Encryption Key rollover? do we really want the client to abort the
> >> connection
> >>    if server misbehaves and sends too many or too few tickets?
> >>  - while the client may think that it knows how many tickets it
> requires,
> >> that
> >>    information may be out of date. If an HTTP server has been brought
> >> down,
> >> a
> >>    connection to a given SNI may lead to a redirection page -
> >> in such cases
> >>    there is no point in server sending tickets.
> >>
> >> so please, tell: what issue would be solved by making the count
> requested
> >> by
> >> client mandatory?
> >> Because I see it only increasing complexity of implementation for no
> >> benefit.
> >> --
> >> Regards,
> >> Hubert Kario
> >> Senior Quality Engineer, QE BaseOS Security team
> >> Web: www.cz.redhat.com
> >> Red Hat Czech s.r.o., Purkyňova 115, 612 00  Brno, Czech Republic
> >>
> >> _______________________________________________
> >> TLS mailing list
> >> TLS@ietf.org
> >> https://www.ietf.org/mailman/listinfo/tls
> >>
> >
> >
>
> --
> Regards,
> Hubert Kario
> Senior Quality Engineer, QE BaseOS Security team
> Web: www.cz.redhat.com
> Red Hat Czech s.r.o., Purkyňova 115, 612 00  Brno, Czech Republic
>
> _______________________________________________
> TLS mailing list
> TLS@ietf.org
> https://www.ietf.org/mailman/listinfo/tls
>