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

Eric Rescorla <ekr@rtfm.com> Mon, 13 November 2017 08:28 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 8CC2B1294F5 for <tcpinc@ietfa.amsl.com>; Mon, 13 Nov 2017 00:28:50 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.598
X-Spam-Level:
X-Spam-Status: No, score=-2.598 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, 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 cbEUv4O2hR-j for <tcpinc@ietfa.amsl.com>; Mon, 13 Nov 2017 00:28:48 -0800 (PST)
Received: from mail-yw0-x231.google.com (mail-yw0-x231.google.com [IPv6:2607:f8b0:4002:c05::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 8ED771294E6 for <tcpinc@ietf.org>; Mon, 13 Nov 2017 00:28:48 -0800 (PST)
Received: by mail-yw0-x231.google.com with SMTP id g204so1122847ywa.6 for <tcpinc@ietf.org>; Mon, 13 Nov 2017 00:28:48 -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=+3whxdfPOjizHrZ5li2Rj5pQ9fiml9GCuDfEmoajSXs=; b=A1nRVD7lLlJfbBdRq7Qk1i7jXG3uvjbgctVukzkaKN1I20NAV6/MRVFpnwHtjGpJCM X1G9YMIWvv1kFuq5G9JofU0y61geGea+io651ng8GFmfh6erHD6x1EMnUJlySgWDWuxR DVYiGif/6uMMzJUauZ1BCXITIy7t+RI77VBAWjEvmdgY6v29WVF9H2wj73O+E3T76qgv I777w3DxBLIfHBXH8O7XcncGnZTq9EkvcWXHILmDki/NynRaPNstvEXjVynxWcm8bbRp 8L1aO/i2nF8X2U5WnvGSlXw9/qjMQA0Pcll9w9Gu/7UwVpE7wuDWcL8lheHIVMgF/Ch3 lKcw==
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=+3whxdfPOjizHrZ5li2Rj5pQ9fiml9GCuDfEmoajSXs=; b=RKtVY3utxRBDJ51iqk0qlv1R8aCJFeW7wHtLueSopGtMKoQD9lu2XcLAxuFK5yBcXp eKjnJHPCwyK5E7WiK9dMPmPDheps0Z/dEuvf4uu7eNbYdvprLufUlx+h8PkbtKaUsyUS B0uKIPUq1ivM2C19PuVMcuOPRNpXLpDYPjUqnFzP6fTvbtrhbNIwx+ZEQdhZ1bQsO9Gj LJCbQjmaESDSKbmsPSO7StifsQfld7Fa4HEFt/6TsGgoTisTtJSTHifmVg3BYT1VqujQ xOprWasE/+SeUENmB9/V7W7mf5uOvVPjn2iAa539+3r23Y2YSc5Wuapoeh9JBx9wbqmg MznA==
X-Gm-Message-State: AJaThX77of7GgP02AjRNYrInVLdBX7XaOSA/uvkRvvdCnqs5p+vnfkmk cR2HK+lpp5pOVQ3Fm51reJpkaDxe6ShP6UTUOoDv0Q==
X-Google-Smtp-Source: AGs4zMbYoJQyy4z4l2y2DifmvzRMexnBWv+SBFqMLFOPyRfNRJkJi5/HDRosbRYZtKkcyJcutRUt/N7JF4/nnBwQ3+E=
X-Received: by 10.129.114.10 with SMTP id n10mr5194594ywc.327.1510561727839; Mon, 13 Nov 2017 00:28:47 -0800 (PST)
MIME-Version: 1.0
Received: by 10.129.61.12 with HTTP; Mon, 13 Nov 2017 00:28:07 -0800 (PST)
In-Reply-To: <87a7zq7kjv.fsf@ta.scs.stanford.edu>
References: <151036581280.449.10740505473540594433.idtracker@ietfa.amsl.com> <87inee6gzq.fsf@ta.scs.stanford.edu> <CABcZeBMQfsuGDc3AwTwBmMCNs+hmCmW_vUCOH4x7WqiTD6NuAQ@mail.gmail.com> <8760aekbcu.fsf@ta.scs.stanford.edu> <CABcZeBM1rnR=Q2Evj-Pt8TpajRXah6q0Go6NOjMk_SB-fUT0yg@mail.gmail.com> <87inee7lly.fsf@ta.scs.stanford.edu> <87a7zq7kjv.fsf@ta.scs.stanford.edu>
From: Eric Rescorla <ekr@rtfm.com>
Date: Mon, 13 Nov 2017 08:28:07 +0000
Message-ID: <CABcZeBPE-5TvQ_1ybdKaqf2J4nbzReVDEvp_Kn3-iC3HQSiXfQ@mail.gmail.com>
To: David Mazieres <dm-list-tcpcrypt@scs.stanford.edu>
Cc: The IESG <iesg@ietf.org>, tcpinc <tcpinc@ietf.org>, "Black, David" <david.black@dell.com>, tcpinc-chairs@ietf.org, draft-ietf-tcpinc-tcpeno@ietf.org
Content-Type: multipart/alternative; boundary="001a1147389433144c055dd90f11"
Archived-At: <https://mailarchive.ietf.org/arch/msg/tcpinc/NX1N-bb4L0WUs5jmGr9zpeHAJDY>
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: Mon, 13 Nov 2017 08:28:50 -0000

This seems fine to me.

On Mon, Nov 13, 2017 at 6:35 AM, David Mazieres <
dm-list-tcpcrypt@scs.stanford.edu> wrote:

> David Mazieres expires 2018-02-10 PST
> <mazieres-8kczz844u5tupynhf38ddvt7k2@ta.scs.stanford.edu> writes:
>
> >> The problem is that "govern" is not very clear. It's clearer to link the
> >> requirement
> >> here to the specific feature of the packet.
> >
> > Okay, let me futz with the language a bit and try to get rid of or
> > clearly define the term govern.
>
> Okay, how about the following?
>
> Thanks,
> David
>
>
> 4.7.  Data in SYN Segments
>
>    TEPs MAY specify the use of data in SYN segments so as to reduce the
>    number of round trips required for connection setup.  The meaning of
>    data in a SYN segment with an ENO option (a SYN+ENO segment) is
>    determined by the last TEP identifier in the ENO option, which we
>    term the segment's _SYN TEP_.  A SYN+ENO segment may of course
>    include multiple TEP suboptionss, but only the SYN TEP (i.e., the
>    last one) specifies how to interpret the SYN segment's data payload.
>
>    A host sending a SYN+ENO segment MUST NOT include data in the segment
>    unless the SYN TEP's specification defines the use of such data.
>    Furthermore, to avoid conflicting interpretations of SYN data, a
>    SYN+ENO segment MUST NOT include a non-empty TCP Fast Open (TFO)
>    option [RFC7413].
>
>    Because a host can send SYN data before knowing which if any TEP the
>    connection will negotiate, hosts implementing ENO are REQUIRED to
>    discard data from SYN+ENO segments when the SYN TEP does not become
>    the negotiated TEP.  Hosts are furthermore REQUIRED to discard SYN
>    data in cases where another Internet standard specifies a conflicting
>    interpretation of SYN data (as would occur when receiving a non-empty
>    TFO option).  This requirement applies to hosts that implement ENO
>    even when ENO has been disabled by configuration.  However, note that
>    discarding SYN data is already common practice [RFC4987] and the new
>    requirement applies only to segments containing ENO options.
>
>    More specifically, a host that implements ENO MUST discard the data
>    in a received SYN+ENO segment if any of the following applies:
>
>    o  ENO fails and TEP-indicated encryption is disabled for the
>       connection,
>
>    o  The received segment's SYN TEP is not the negotiated TEP,
>
>    o  The negotiated TEP does not define the use of SYN data, or
>
>    o  The SYN segment contains a non-empty TFO option or any other TCP
>       option implying a conflicting definition of SYN data.
>
>    A host discarding SYN data in compliance with the above requirement
>    MUST NOT acknowledge the sequence number of the discarded data, but
>    rather MUST acknowledge the other host's initial sequence number as
>    if the received SYN segment contained no data.  Furthermore, after
>    discarding SYN data, such a host MUST NOT assume the SYN data will be
>    identically retransmitted, and MUST process data only from non-SYN
>    segments.
>
>    If a host sends a SYN+ENO segment with data and receives
>    acknowledgment for the data, but the SYN TEP in its transmitted SYN
>    segment is not the negotiated TEP (either because a different TEP was
>    negotiated or because ENO failed to negotiate encryption), then the
>    host MUST abort the TCP connection.  Proceeding in any other fashion
>    risks misinterpreted SYN data.
>
>    If a host sends a SYN-only SYN+ENO segment bearing data and
>    subsequently receives a SYN-ACK segment without an ENO option, that
>    host MUST abort the connection even if the SYN-ACK segment does not
>    acknowledge the SYN data.  The issue is that unacknowledged data may
>    nonetheless have been cached by the receiver; later retransmissions
>    intended to supersede this unacknowledged data could fail to do so if
>    the receiver gives precedence to the cached original data.
>    Implementations MAY provide an API call for a non-default mode in
>    which unacknowledged SYN data does not cause a connection abort, but
>    applications MUST use this mode only when a higher-layer integrity
>    check would anyway terminate a garbled connection.
>
>    To avoid unexpected connection aborts, ENO implementations MUST
>    disable the use of data in SYN-only segments by default.  Such data
>    MAY be enabled by an API command.  In particular, implementations MAY
>    provide a per-connection mandatory encryption mode that automatically
>    aborts a connection if ENO fails, and MAY enable SYN data in this
>    mode.
>
>    To satisfy the requirement of the previous paragraph, all TEPs SHOULD
>    support a normal mode of operation that avoids data in SYN-only
>    segments.  An exception is TEPs intended to be disabled by default.
>