Re: [TLS] John Scudder's No Objection on draft-ietf-tls-dtls-connection-id-11: (with COMMENT)

Eric Rescorla <ekr@rtfm.com> Tue, 20 April 2021 21:32 UTC

Return-Path: <ekr@rtfm.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 E1C443A1CE0 for <tls@ietfa.amsl.com>; Tue, 20 Apr 2021 14:32:31 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.895
X-Spam-Level:
X-Spam-Status: No, score=-1.895 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_BLOCKED=0.001, SPF_HELO_NONE=0.001, SPF_NONE=0.001, URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=rtfm-com.20150623.gappssmtp.com
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 cXshvd0a3S0j for <tls@ietfa.amsl.com>; Tue, 20 Apr 2021 14:32:27 -0700 (PDT)
Received: from mail-il1-x12b.google.com (mail-il1-x12b.google.com [IPv6:2607:f8b0:4864:20::12b]) (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 149163A1CDA for <tls@ietf.org>; Tue, 20 Apr 2021 14:32:27 -0700 (PDT)
Received: by mail-il1-x12b.google.com with SMTP id c15so33303868ilj.1 for <tls@ietf.org>; Tue, 20 Apr 2021 14:32:27 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=rtfm-com.20150623.gappssmtp.com; s=20150623; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=okVWfNG7RKkU9c8NLKb+5Ukufz+XuZo9qnRXmdy2W1s=; b=u1ZHhJzL0KhOanIFV5liT9cSEzyCho+g19kWrUGxS/Ufd2+RNVJwdr2aN4UIK1aahf JKNY3TCSqL0Jj4vPXBdKJ+xaeVjsj0/XSmVWTPo/HYC0gwUDsx/XPjBsyiD/w9kGHzx/ HRegDbUv4x5oYXzntTjSqSS/gYGj9Ufga1HIGmBWl2PG/NnXKeCPcBVUb2FjVVk521V8 rfOJcgAAQgavMlcO8N9nzaTzzUDt5NkPvyUrR+MwkaeYxdrRKweZ5Un04i9k92/fXFOK x45g2kelCMi2FlNrzfvRXMTUg4nAhyuQQDFzWLLFJ9tKduHteoyUCCferpQqIbw3Clt4 WFmA==
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=okVWfNG7RKkU9c8NLKb+5Ukufz+XuZo9qnRXmdy2W1s=; b=FA/xUNm56P3TQUxDPM6mep2KKAf1tip1BRb9fXolQ2sCPlJFW32CMoNDzFI6L1oP09 40SzMs6Gt1UA4dOasLeuvRwdhT6RVQBoMKTG/tX+wRt5ZVjK8vDNxJ+KRInd+Lr6wh2O HEGgSB2k1Rkpjci4FYN6yaHwVvyaL+ROjvshq6JIpz8jsog9BOul+bR8RGjjtWsaCgBt We8oDAHNPlJT9XlSpn5JM+9/4Hs8bLZYfi9z4JypSzy7LpfrckExaOXQrwfUFPCYwEwI JvKtr9OlblF+CM42VNZOWqtWwsQ/GMeOEbDvkT8CtE8l0A4SnwyfvxAHNzmY1/OTueG8 dv2w==
X-Gm-Message-State: AOAM533hcORDmKPapZ22J0BBIPwUhXp1fzSl4Qjxmmg9WT4bBR2B9zMF aWoSjWufTYrsg5ys2VZC681KkT817rtufDmE0mW6RQ==
X-Google-Smtp-Source: ABdhPJwvOQuAA5oMxy9L651CRUUo8CIfLurDHgP2pF3BttEKS7GHIR4SPtUSV5wZtHMOl+H1m/9uC/7DAy2oXEOz2G4=
X-Received: by 2002:a05:6e02:20ef:: with SMTP id q15mr24571420ilv.167.1618954345543; Tue, 20 Apr 2021 14:32:25 -0700 (PDT)
MIME-Version: 1.0
References: <161895297137.8190.2910970787366433858@ietfa.amsl.com>
In-Reply-To: <161895297137.8190.2910970787366433858@ietfa.amsl.com>
From: Eric Rescorla <ekr@rtfm.com>
Date: Tue, 20 Apr 2021 14:31:49 -0700
Message-ID: <CABcZeBNZOd2ophiubxkLSuvZXyuSRJKQCxjqm3J=9-fWpWWg2A@mail.gmail.com>
To: John Scudder <jgs@juniper.net>
Cc: The IESG <iesg@ietf.org>, draft-ietf-tls-dtls-connection-id@ietf.org, tls-chairs <tls-chairs@ietf.org>, "<tls@ietf.org>" <tls@ietf.org>, Joseph Salowey <joe@salowey.net>
Content-Type: multipart/alternative; boundary="000000000000ac96ff05c06e2e97"
Archived-At: <https://mailarchive.ietf.org/arch/msg/tls/uZUBu-rQtx2LECVx8OPeIXKaTTg>
Subject: Re: [TLS] John Scudder's No Objection on draft-ietf-tls-dtls-connection-id-11: (with COMMENT)
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: Tue, 20 Apr 2021 21:32:32 -0000

On Tue, Apr 20, 2021 at 2:09 PM John Scudder via Datatracker <
noreply@ietf.org> wrote:

> John Scudder has entered the following ballot position for
> draft-ietf-tls-dtls-connection-id-11: No Objection
>
> When responding, please keep the subject line intact and reply to all
> email addresses included in the To and CC lines. (Feel free to cut this
> introductory paragraph, however.)
>
>
> Please refer to https://www.ietf.org/iesg/statement/discuss-criteria.html
> for more information about DISCUSS and COMMENT positions.
>
>
> The document, along with other ballot positions, can be found here:
> https://datatracker.ietf.org/doc/draft-ietf-tls-dtls-connection-id/
>
>
>
> ----------------------------------------------------------------------
> COMMENT:
> ----------------------------------------------------------------------
>
> I found this document heavy sledding but once I was through it, it all came
> together, with the exception of my #3, below. The “heavy sledding” part I
> think
> would be largely fixed by addressing my #1, below.
>
> 1. Section 3:
>
> This pseudocode is a little too pseudo for me:
>
>      struct {
>          opaque cid<0..2^8-1>;
>      } ConnectionId;
>
> What does the content of the angle brackets mean? At first I took it to
> mean
> “this can take on a value from 0 to 255” [*] but parts of the spec that go
> on
> about variable lengths made me think that couldn’t be right. Eventually, by
> paging through RFC 5246, I found some explanations of what this stuff is
> supposed to mean; in §4.3 of that RFC I found out that
>
>    Variable-length vectors are defined by specifying a subrange of legal
>    lengths, inclusively, using the notation <floor..ceiling>.  When
>    these are encoded, the actual length precedes the vector's contents
>    in the byte stream.  The length will be in the form of a number
>    consuming as many bytes as required to hold the vector's specified
>    maximum (ceiling) length.
>
> I assume this is what’s going on in DTLS as well. This cleared up my main
> source of confusion, which was regarding just how you were encoding these
> variable-length CIDs anyway. (And oh by the way, that definition doesn’t
> say
> what the units of length are. Bytes seems implied but isn’t explicit.)
>

> While I don’t expect you to supply these definitions again, it would be
> courteous to your readers to have a sentence or two explaining that
> pseudo-code
> conventions are found in RFC 5246, special extra credit for section
> references
> as well. And yes, I did notice "This document assumes familiarity with
> DTLS 1.2
> [RFC6347].” That’s well and good, but I don’t think “familiarity” is the
> same
> as “we have adopted the same notational conventions”
>

This seems like a pretty basic assumption. These aren't just notational
conventions
or pseudo-code. They're the protocol description language that TLS is
defined in.
If one isn't familiar with how to read this syntax, then you really don't
have much of
a hope of correctly implementing this specification.



> [*] By the way, why not just use “255” in the text instead of “2^8-1”?
> Eschew
> obfuscation!
>

Which one of these is clearer seems like a question of taste, I should
think.
It's worth noting that because the length prefix is determined by the
ceiling,
arguably 2^8-1 is clearer.


2. Section 3:
>
>    If DTLS peers have negotiated the use of a non-zero-length CID for a
>    given direction, then once encryption is enabled they MUST send with
>    the record format defined in {{dtls-ciphertext} with the new MAC
>    computation defined in Section 5 and the content type tls12_cid.
>    Plaintext payloads never use the new record type and the CID content
>    type.
>
> What’s “{{dtls-ciphertext}”? I’m guessing just a botched xref?
>

Yes, presumably. Looks like I forgot a }}.


Also, the first sentence seems to have no object. (What MUST they send?)
>

send anything, but I suppose "send records". I can make a change.


3. Section 6:
>
>    *  There is a strategy for ensuring that the new peer address is able
>       to receive and process DTLS records.  No such strategy is defined
>       in this specification.
>
> This is a little mind-boggling to me. I understand this to mean I can’t
> send
> the new address a DTLS record unless I’ve already ensured it can receive
> and
> process that record, right? This seems almost like a classic Catch-22. I
> feel
> like I must be missing something.


This specification *only* allows you to mux, but doesn't allow you to
migrate.
We could probably make this point clearer.

-Ekr