Re: [tcpinc] Adam Roach's Yes on draft-ietf-tcpinc-tcpeno-13: (with COMMENT)

David Mazieres <dm-list-tcpcrypt@scs.stanford.edu> Tue, 07 November 2017 04:40 UTC

Return-Path: <dm-list-tcpcrypt@scs.stanford.edu>
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 AC4C713FBE7; Mon, 6 Nov 2017 20:40:05 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.898
X-Spam-Level:
X-Spam-Status: No, score=-1.898 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, HK_RANDOM_ENVFROM=0.001, HK_RANDOM_FROM=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 22LBBf-fn8cr; Mon, 6 Nov 2017 20:40:04 -0800 (PST)
Received: from market.scs.stanford.edu (www.scs.stanford.edu [IPv6:2001:470:806d:1::9]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 79A7913FBC4; Mon, 6 Nov 2017 20:40:04 -0800 (PST)
Received: from market.scs.stanford.edu (localhost [127.0.0.1]) by market.scs.stanford.edu (8.15.2/8.15.2) with ESMTP id vA74e3oh057365; Mon, 6 Nov 2017 20:40:03 -0800 (PST)
Received: (from dm@localhost) by market.scs.stanford.edu (8.15.2/8.15.2/Submit) id vA74e2N0012318; Mon, 6 Nov 2017 20:40:02 -0800 (PST)
From: David Mazieres <dm-list-tcpcrypt@scs.stanford.edu>
To: Adam Roach <adam@nostrum.com>, The IESG <iesg@ietf.org>
Cc: tcpinc@ietf.org, david.black@dell.com, tcpinc-chairs@ietf.org, draft-ietf-tcpinc-tcpeno@ietf.org
In-Reply-To: <151001922219.18923.9484861233493952977.idtracker@ietfa.amsl.com>
References: <151001922219.18923.9484861233493952977.idtracker@ietfa.amsl.com>
Reply-To: David Mazieres expires 2018-02-04 PST <mazieres-ssx5pqjh8w8whg6cfa6vghyqf2@temporary-address.scs.stanford.edu>
Date: Mon, 06 Nov 2017 20:40:01 -0800
Message-ID: <877ev2ya5a.fsf@ta.scs.stanford.edu>
MIME-Version: 1.0
Content-Type: text/plain
Archived-At: <https://mailarchive.ietf.org/arch/msg/tcpinc/l43GDJRoep-PjXsZCc4jzg2HkT0>
Subject: Re: [tcpinc] Adam Roach's Yes on draft-ietf-tcpinc-tcpeno-13: (with 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: Tue, 07 Nov 2017 04:40:06 -0000

Adam Roach <adam@nostrum.com> writes:

> ----------------------------------------------------------------------
> COMMENT:
> ----------------------------------------------------------------------
>
> Thanks for a well-thought-out and well written document. I'm looking
> forward to seeing how this experiment goes. I have a few minor
> comments for possible improvements.
>
> Section 4 indicates that applications can be made aware of whether TCP
> encryption is occurring:
>
>    o  A bit available to higher-layer protocols at each endpoint for
>       out-of-band negotiation of updated behavior in the presence of TCP
>       encryption.
>
> I see that this is used to bind the TEP to certain TCP-ENO
> information, which is obviously good -- but I think some guidance in
> here cautioning about the hazards of exposing opportunistically
> encrypted connections to users as "secure" would be helpful. In
> general, because of the MITM considerations that are already covered,
> conveying opportunistic encryption to users as "secure" is dangerous.

Thanks for the vote and the feedback.  Applications can already tell if
the connection is encrypted.  The intent of this bit is in fact
precisely to negotiate some higher level authentication, as discussed
later on in the security considerations section.  Ideally the beginning
of section four would not get into too many details, as the point is
just to sketch out the API so readers can contextualize the following
details.  What would you think of a parenthetical remark, like:

   o  A bit available to higher-layer protocols at each endpoint for
      out-of-band negotiation of updated behavior in the presence of TCP
      encryption.  (As discussed in Section 10, higher-layer protocols
      MAY use this bit to strengthen security in a backwards-compatible
      way.)

I'm still not crazy about that because it's both verbose and vague in a
place I was trying to keep things concise, but maybe worth it, or maybe
there is a better way.

> Section 4.2:
>    b
>       The passive role bit MUST be 1 for all passive openers.  For
>       active openers, it MUST default to 0, but implementations MUST
>       provide an API through which an application can explicitly set "b
>       = 1" before initiating an active open.  (Manual configuration of
>       "b" is only necessary to enable encryption with a simultaneous
>       open.)
>
> I think this could be made clearer (thinking in particular of Spencer's
> question) if this text indicated that implementations making use of
> simultaneous open need to have some out-of-band negotiation of role before the
> TCP connection is attempted.

Good point.  I added the word only in response to Spencer's feedback,
but I think we should just make the thing abundantly clear.  How about:

       The passive role bit MUST be 1 for all passive openers.  For
       active openers, it MUST default to 0, but implementations MUST
       provide an API through which an application can explicitly set "b
       = 1" before initiating an active open.  (Manual configuration of
       "b" is only necessary to enable encryption with a simultaneous
       open, and requires some prior agreement by which exactly one
       endpoint sets "b = 1".)

David