Re: [TLS] draft-davidben-tls-grease-01

David Benjamin <davidben@chromium.org> Mon, 05 September 2016 15:56 UTC

Return-Path: <davidben@google.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 E4752127A90 for <tls@ietfa.amsl.com>; Mon, 5 Sep 2016 08:56:03 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -4.207
X-Spam-Level:
X-Spam-Status: No, score=-4.207 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, HEADER_FROM_DIFFERENT_DOMAINS=0.001, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_LOW=-0.7, RP_MATCHES_RCVD=-1.508, SPF_PASS=-0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (1024-bit key) header.d=chromium.org
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 PgS78dq1ZyRY for <tls@ietfa.amsl.com>; Mon, 5 Sep 2016 08:56:01 -0700 (PDT)
Received: from mail-it0-x231.google.com (mail-it0-x231.google.com [IPv6:2607:f8b0:4001:c0b::231]) (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 85BBB12B053 for <tls@ietf.org>; Mon, 5 Sep 2016 08:56:01 -0700 (PDT)
Received: by mail-it0-x231.google.com with SMTP id e124so152375351ith.0 for <tls@ietf.org>; Mon, 05 Sep 2016 08:56:01 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=chromium.org; s=google; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=M28YGUzPegHvmv4qgkibUA54lXw6Qa5fzkj7rdatdvs=; b=FsKuGv6FQiuNNgCfEF/7tbHH2C70w9TZjI4WVPnHW3uHlqnKlPDuZJGmxyxKUJ7idM 4EAGpRTyecPojyYqVGXmhdJQ8ItOVtEbMnzk3+u+QGjzXdtqD+E/LLMcyhAJWYvlJJYY SH+VNiM+SWmU8OZahBv/cAndvCfDtECq7ihNY=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=M28YGUzPegHvmv4qgkibUA54lXw6Qa5fzkj7rdatdvs=; b=dicijpBEBl0n1FBRZJleRhBnb+gnM4l4+2cn4MsDzKWn+b6mESLtwL3+ItlmGzNozq +xPgSn3AlHvOxI8Lku7YKM84pQlg+9KI+gIi14kqfjlJ1ivzLzBIRPHdlDppY99B3wP7 joE+gBZw5KiHQCrtsy++FVrsE2XchN4QANNXQ6Yz5Vf7vHfrdmGR+sx3bky3ZKn1xyGC OaRGday1E9XvKIFRcjXm6z59lnyKOECOEcPyaRBVAx4QB0LVW1f0w/hW/qrg7q72lX5v 7jtFV/RoIHRt2LknbkxsSPV/iVwLiZZzGUW0OOwc/Y+w9W63U2vYfSdG39jvvffKCsje vwfA==
X-Gm-Message-State: AE9vXwMfks0c9fpPs6JiFsG5B40QI00J3C/dG3hVOkXcy3Gp3W17zdWUCZClCvX6kcMsjy23EOa0SG8l1BUq0k+I
X-Received: by 10.107.10.13 with SMTP id u13mr31366ioi.6.1473090960706; Mon, 05 Sep 2016 08:56:00 -0700 (PDT)
MIME-Version: 1.0
References: <CAF8qwaCaW2Q+z_JoDqzQZaGCWJ2aqUiyK8_J8_CO4Ck_cqtaSA@mail.gmail.com> <8143099.xajr1xgLIA@pintsize.usersys.redhat.com> <CAF8qwaBkNeiY25Rb4ZoBoPvsFP790hoXAMNHOCktMKsTJGa5WQ@mail.gmail.com> <1628702.M7tlMkopkf@pintsize.usersys.redhat.com>
In-Reply-To: <1628702.M7tlMkopkf@pintsize.usersys.redhat.com>
From: David Benjamin <davidben@chromium.org>
Date: Mon, 05 Sep 2016 15:55:49 +0000
Message-ID: <CAF8qwaCQ_MeJkA82Pvgy8LzcvF02pVa0d9O4NWtO_qXEoJgUpw@mail.gmail.com>
To: Hubert Kario <hkario@redhat.com>
Content-Type: multipart/alternative; boundary=001a113ee30a6f9b62053bc4b7a4
Archived-At: <https://mailarchive.ietf.org/arch/msg/tls/Arx9bTgZbPy2EiHKXfoHvVnEe84>
Cc: tls@ietf.org
Subject: Re: [TLS] draft-davidben-tls-grease-01
X-BeenThere: tls@ietf.org
X-Mailman-Version: 2.1.17
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: Mon, 05 Sep 2016 15:56:04 -0000

On Mon, Sep 5, 2016 at 10:59 AM Hubert Kario <hkario@redhat.com> wrote:

> On Monday, 5 September 2016 14:48:55 CEST David Benjamin wrote:
> > On Mon, Sep 5, 2016 at 7:07 AM Hubert Kario <hkario@redhat.com> wrote:
> > > On Friday, 2 September 2016 18:53:45 CEST David Benjamin wrote:
> > > > I've finally gotten to uploading
> > > > https://tools.ietf.org/html/draft-davidben-tls-grease-01 which
> hopefully
> > > > resolves the procedural issues (thanks again!). I've also revised the
>
> > >    Clients MUST reject GREASE values when negotiated by the server.
> > >    When processing a ServerHello containing a GREASE value in the
> > >    ServerHello.cipher_suite or ServerHello.extensions fields, the
> client
> > >    MUST fail the connection.  When processing an ECParameters structure
> > >    with a GREASE value in the ECParameter.namedcurve field, the client
> > >    MUST fail the connection.
> > >
> > >    Note that this requires no special processing on the client.
> Clients
> > >    are already required to reject unknown values selected by the
> server.
> > >
> > > Don't the other RFCs just say that clients should reject values not
> > > advertised
> > > by client? Since GREASE values are advertised by clients, I don't think
> > > the
> > > "no special processing" applies. As such, handling how connections in
> > > which
> > > server selects GREASE values should be specified precisely.
> > > (I haven't checked the RFCs for that so I may be mistaken, but still
> is a
> > > bit
> > > dicey to say that programmers don't need to check error handling in
> their
> > > code...)
> >
> > Right. That's why this one says "no special processing" rather than
> > "restatements or corollaries of existing [client] requirements" as in the
> > server section. In the implementation I've tossed together, this never
> > makes it into the list of values the client believes it has advertised.
> The
> > serialization code just adds some u16s without remembering them anywhere.
> > As a result, all the existing logic works just fine.
>
> On the other hand, the implementation I work on keeps the sent Client
> Hello on
> hand and checks the server response against the exact values it sent.
>
> So for it, server selecting GREASE value would be fine, it would fail at
> key
> exchange processing time.
>
> Keeping the Client Hello in case server asks for certificate verification
> is
> not entirely unheard of either.
>
> So I think it's best to keep the specification implementation agnostic,
> without any assumptions about how the code is written, and describe just
> the
> externally visible behaviour. But describe it fully.
>

The document does that, no? Or are you simply asking that I remove the "no
special processing sentence. Happy to do that.

(I'm assuming your implementation then handles the renegotiate_info SCSV
and FALLBACK_SCSV similarly special? It's the same story with those two.)

David