Re: [tcpinc] Eric Rescorla's Discuss on draft-ietf-tcpinc-tcpeno-13: (with DISCUSS and COMMENT)

Eric Rescorla <ekr@rtfm.com> Sun, 12 November 2017 05:14 UTC

Return-Path: <ekr@rtfm.com>
X-Original-To: tcpinc@ietfa.amsl.com
Delivered-To: tcpinc@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id B2C89128B91 for <tcpinc@ietfa.amsl.com>; Sat, 11 Nov 2017 21:14:34 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.599
X-Spam-Level:
X-Spam-Status: No, score=-2.599 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_LOW=-0.7] 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 wnHMkiKHl3ze for <tcpinc@ietfa.amsl.com>; Sat, 11 Nov 2017 21:14:32 -0800 (PST)
Received: from mail-yw0-x232.google.com (mail-yw0-x232.google.com [IPv6:2607:f8b0:4002:c05::232]) (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 1EE9D1200F1 for <tcpinc@ietf.org>; Sat, 11 Nov 2017 21:14:32 -0800 (PST)
Received: by mail-yw0-x232.google.com with SMTP id q1so11126319ywh.5 for <tcpinc@ietf.org>; Sat, 11 Nov 2017 21:14:32 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=rtfm-com.20150623.gappssmtp.com; s=20150623; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :cc; bh=VTX7P7yf0+1di7dIpz/udV9nCuFMMnVmxT+q7zEEx4o=; b=CHb8sM1mbbMVjneuQRL9C26KCljX4UY8oQzY07KfyUWouAQxFz2Q/XBxpvwW4PhXsf hkXtAt/CS1CGPYMwp3euLz5jR++oGuwguIcHmTh7/oQnufgy9R42zF07JJ6TdHcZoxy0 d79enmqpnw0ZlY7nUBBgEQNU0FXfWcSf+MZbXBKl36SJRSG0l8Be5Zvm98+m4wudsM/7 UwJjWbmXKGNuz/a1/loiRAdM5VxbYqvPO/CCPp3Cov9vjQIXt08uiiILuZLEDytGj1a3 moIhp/KeK7+5+Maiod+LRUUSSOuSsZ5gg7sDchTFwktQBVtmYs/h7Ap7QPgQaEQvyy2E mTbw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:in-reply-to:references:from:date :message-id:subject:to:cc; bh=VTX7P7yf0+1di7dIpz/udV9nCuFMMnVmxT+q7zEEx4o=; b=OssQ/7D24/+G0B8M65pFiy5DmqCIFZyEe50AHdgSkv8Vdgo1gi2MjFJqt4ZamGUMW+ VPf+vGKxTB24m+PtHbSj4vd/BZRuuXEYZuUMEgnTYy+HUApZ9aaGnyzHsg8vQySAtSDL NkQ5s3dN5+ZWePdcTUR7SQVifUHrU1gAv6inWvwjmNQl6hDalO8OV3gW/4rN9f5SVVoK +XcwXAqiWlNKH6GPNDYWopiXIrLebd2c3DN9cuagxZmzZilB6KZ628uFW9Ux2UqLqbTK lq0df0X49gjUA8Gf3ilkBLRpZvYXT45anKa5SXvhp+Hpi/7zxrRBYiIhKxZv4QDKtHog 6d1Q==
X-Gm-Message-State: AJaThX5T5pmjDj9aQmZAB+0y+DcTgBxQ96JPcQXhtzQehxbWtVDNFiLE HnZL/C89WH3lRiVuvZYnIo5nWoxFfOKNc/Wz7DWH73yS
X-Google-Smtp-Source: AGs4zMbSeMG20Fyi4sDeSRGBFRxF+1/mwF/MbGwIbUOeimIJwies/gWoE5smEKyHTzLrtEZqJq/k0BHqGAfvieKRisM=
X-Received: by 10.129.167.66 with SMTP id e63mr3651648ywh.294.1510463671240; Sat, 11 Nov 2017 21:14:31 -0800 (PST)
MIME-Version: 1.0
Received: by 10.129.61.12 with HTTP; Sat, 11 Nov 2017 21:13:50 -0800 (PST)
In-Reply-To: <CE03DB3D7B45C245BCA0D243277949362FD495EF@MX307CL04.corp.emc.com>
References: <151036581280.449.10740505473540594433.idtracker@ietfa.amsl.com> <CE03DB3D7B45C245BCA0D243277949362FD495EF@MX307CL04.corp.emc.com>
From: Eric Rescorla <ekr@rtfm.com>
Date: Sun, 12 Nov 2017 05:13:50 +0000
Message-ID: <CABcZeBPfk6Pi=_UPvTBaS9jQBYjExUdqkdX5Q--iUuyCv_qZtw@mail.gmail.com>
To: "Black, David" <David.Black@dell.com>
Cc: The IESG <iesg@ietf.org>, "draft-ietf-tcpinc-tcpeno@ietf.org" <draft-ietf-tcpinc-tcpeno@ietf.org>, "tcpinc-chairs@ietf.org" <tcpinc-chairs@ietf.org>, "tcpinc@ietf.org" <tcpinc@ietf.org>
Content-Type: multipart/alternative; boundary="94eb2c0790269226c8055dc23a39"
Archived-At: <https://mailarchive.ietf.org/arch/msg/tcpinc/_yfhWayh7YbPzHH_okv-CsnJiT4>
Subject: Re: [tcpinc] Eric Rescorla's Discuss on draft-ietf-tcpinc-tcpeno-13: (with DISCUSS and COMMENT)
X-BeenThere: tcpinc@ietf.org
X-Mailman-Version: 2.1.22
Precedence: list
List-Id: "Working group mailing list for TCP Increased Security \(tcpinc\)" <tcpinc.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/tcpinc>, <mailto:tcpinc-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/tcpinc/>
List-Post: <mailto:tcpinc@ietf.org>
List-Help: <mailto:tcpinc-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/tcpinc>, <mailto:tcpinc-request@ietf.org?subject=subscribe>
X-List-Received-Date: Sun, 12 Nov 2017 05:14:35 -0000

On Sun, Nov 12, 2017 at 5:08 AM, Black, David <David.Black@dell.com> wrote:

> Hi Ekr,
> [writing as draft shepherd]
>
> Let's see if the two of us can find some time in Singapore to talk about
> the two crypto algorithm Discuss points (encryption and secure hash), as
> (IMHO) the authors' intentions are good:
>

Yep.


- Encryption: The intent is - don't use anything weaker than AES-128, e.g.,
> don't even think about using 3DES.  The concern is how to write that
> requirement in a way that would survive hypothetical discovery of a
> catastrophic cryptanalytic attack on AES-128.
>

Or even a small one. I mean, what does this say about Curve25519 or 4Q.



- Secure Hash: The intent is - don't use vanity crypto.  Does the Security
> Area have some text that could just be copied to say that?
>

Not to my knowledge. I'm not sure this is really useful to say.



> On URG handling, the Discuss point is:
>
> > IMPORTANT: This actually seems to be a bit confusing about how to
> > handle URG. Consider TCP-use-TLS, you would just process URG in the
> > normal way and then generate errors if URG causes reordering at the
> > TLS layer. This seems like a reasonable procedure but is at least
> > arguably prohibited by this text.
>
> I'm confused, as the only "MUST" requirement on URG handling is:
>
>    o  TEPs MUST prevent corrupted packets from causing urgent data to be
>       delivered when none has been sent.
>
> Surely TCP-use-TLS meets that requirement ;-).   Beyond that, the list of
> implementation techniques that follows uses "MAY" twice, and is not
> intended to be comprehensive.  Would stating that the list of
> implementation techniques is not comprehensive suffice, or is something
> else causing heartburn here?
>

Yep, that would be fine. I read those MAYs as exhaustive.

-Ekr


>
> Thanks, --David
>
> > -----Original Message-----
> > From: Eric Rescorla [mailto:ekr@rtfm.com]
> > Sent: Friday, November 10, 2017 9:04 PM
> > To: The IESG <iesg@ietf.org>
> > Cc: draft-ietf-tcpinc-tcpeno@ietf.org; Black, David <david.black@emc.com
> >;
> > tcpinc-chairs@ietf.org; Black, David <david.black@emc.com>om>;
> tcpinc@ietf.org
> > Subject: Eric Rescorla's Discuss on draft-ietf-tcpinc-tcpeno-13: (with
> DISCUSS
> > and COMMENT)
> >
> > Eric Rescorla has entered the following ballot position for
> > draft-ietf-tcpinc-tcpeno-13: Discuss
> >
> > 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/stat
> ement/discuss-criteria.html
> > for more information about IESG DISCUSS and COMMENT positions.
> >
> >
> > The document, along with other ballot positions, can be found here:
> > https://datatracker.ietf.org/doc/draft-ietf-tcpinc-tcpeno/
> >
> >
> >
> > ----------------------------------------------------------------------
> > DISCUSS:
> > ----------------------------------------------------------------------
> >
> >    o  TEPs MUST NOT permit the negotiation of any encryption algorithms
> >       with significantly less than 128-bit security.
> > IMPORTANT: I don't know what "significantly means". I wouldn't be
> > making a point of this, but it's phrased as a normative requirement,
> > so I don't know what conformance means.
> >
> >
> > IMPORTANT: This actually seems to be a bit confusing about how to
> > handle URG. Consider TCP-use-TLS, you would just process URG in the
> > normal way and then generate errors if URG causes reordering at the
> > TLS layer. This seems like a reasonable procedure but is at least
> > arguably prohibited by this text.
> >
> >
> >    problems, TEPs MUST compute session IDs using only well-studied and
> >    conservative hash functions.  That way, even if other parts of a TEP
> >    are vulnerable, it is still intractable for an attacker to induce
> >
> > IMPORTANT: this also does not seem to be unambiguous.
> >
> >
> > ----------------------------------------------------------------------
> > COMMENT:
> > ----------------------------------------------------------------------
> >
> >
> >
> >    4.  Provide a standard negotiation transcript through which TEPs can
> >        defend against tampering with TCP-ENO.
> >
> > This was unclear to me when I first read this. Maybe
> > "Export a standard negotiation transcript to TEPs which they can use to
> > defend
> > against"
> >
> >    opportunistically.  It uses a new TCP option kind to negotiate one
> >    among multiple possible TCP encryption protocols or TEPs.  The
> >    negotiation involves hosts exchanging sets of supported TEPs, where
> > Nit: I would say "one TEP out of multiple"
> >
> > Also, "TCP encryption protocols or TEPs." is confusing. If you feel the
> need to
> > redefine, do "TCP encryption protocols (TEPs)"
> >
> >    variable-length data.  When "v = 0", the byte itself constitutes the
> >    entirety of the suboption.  The 7-bit value "glt" expresses one of:
> > I would say "the remaining 7-bit value, called "glt", may take on various
> > meanings, as defined below"
> >
> >    "b = 0" plays the "A" role.  The host that sent "b = 1" plays the "B"
> >    role.
> > This would be clearer if it (a) explained the reasoning and (b) appeared
> before
> > the packet formats. Perhaps something like
> >
> > "Because the passive opener MUST set b=1 and the active opener by default
> > sets
> > b=0, the normal cases is that the active opener is A and the passive
> opener is
> > B. Applications which depend on simultaneous open and have some other
> > way of
> > breaking the tie can set one side to b=1 (even though it is the active
> opener)
> > and thus arrange for correct role assignment. Otherwise, simultaneous
> opens
> > will fail"
> >
> >    If both sides of a connection set "b = 1" (which can happen if the
> >    active opener misconfigures "b" before calling "connect"), or both
> >    sides set "b = 0" (which can happen with simultaneous open), then
> > Why is this "misconfigures"? You allow them to do so.
> >
> >    initial suboption byte (see Figure 4).  By default, suboption data
> >    extends to the end of the TCP option.  Hence, if only one suboption
> >    requires data, the most compact way to encode it is to place it last
> > Why is this "by default"? It just seems like another setting of glt.
> >
> >    connection or when there is any ambiguity over the meaning of the SYN
> >    data.  This requirement applies to hosts that implement ENO even when
> >    ENO has been disabled by configuration.  However, note that
> > I think you may mean to say "when the last SYN TEP is not eventually
> > negotiated"
> >
> >    o  TEPs MUST NOT depend on long-lived secrets for data
> >       confidentiality, as implementations SHOULD provide forward secrecy
> >       some bounded, short time after the close of a TCP connection.
> > Maybe "depend solely" because one might want to use a DH mode where a
> > static DH
> > key is mixed in with an ephemeral.
> >
> >       probability detect a FIN flag that was set or cleared in transit
> >       and does not match the sender's intent.  A TEP MAY discard a
> >       segment with such a corrupted FIN bit, or may abort the connection
> > What is "high probability"
> >
> >       that disable urgent data by default.  The exception is when
> >       applications and protocols are known never to send urgent data.
> >
> >              (4) B -> A:  SYN-ACK  ENO<b=1,X,Y,Z>
> >              [rest of connection encrypted according to TEP Y]
> > Can you show a=0 in line 1?
> >
>
>