Re: [tcpinc] TCP-ENO: Encryption Negotiation Option

Eric Rescorla <ekr@rtfm.com> Mon, 03 August 2015 20:24 UTC

Return-Path: <ekr@rtfm.com>
X-Original-To: tcpinc@ietfa.amsl.com
Delivered-To: tcpinc@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 923A91B30E2 for <tcpinc@ietfa.amsl.com>; Mon, 3 Aug 2015 13:24:56 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.977
X-Spam-Level:
X-Spam-Status: No, score=-1.977 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, FM_FORGED_GMAIL=0.622, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_LOW=-0.7] autolearn=ham
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 xAC8Gd697OTy for <tcpinc@ietfa.amsl.com>; Mon, 3 Aug 2015 13:24:54 -0700 (PDT)
Received: from mail-wi0-f172.google.com (mail-wi0-f172.google.com [209.85.212.172]) (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 A5D1A1B30D7 for <tcpinc@ietf.org>; Mon, 3 Aug 2015 13:24:53 -0700 (PDT)
Received: by wicmv11 with SMTP id mv11so149883414wic.0 for <tcpinc@ietf.org>; Mon, 03 Aug 2015 13:24:52 -0700 (PDT)
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:in-reply-to:references:from:date :message-id:subject:to:cc:content-type; bh=IqjjJsb74LtdmnSr5pDCT5H1G1zZ3IT4yb4ILYb2Brk=; b=luH+2QFSEYBaM+B20+R6YynnPVJ3tviEym8j5+CYwxUI69Xcb2NrNm9zmRtNqM+hwQ 0LxUPqN5rRo6w03N/UsYFaePQqkemum+2pSaW4fCOLZ66RALgBx7nNpHLGTMzOixfKw2 I5a1zrMbDHXaWSmwko4vtREUG85cYlmXiEMmsrqyz85SzVnEXAEL9+8PNyEcLF9/7cB7 aAkLfAaKtsXEvdEnp3WtL0IZxFfiW/3Iva7G4+zT9HZDAK6LfxtARxNr2yZNTacbs6d+ bAMSD5KvXWtNev5DVX6n1b5AFZgGz3van+KcdGaAaSvJ48h40azxmcvzl6SdMTPUD+MM XABg==
X-Gm-Message-State: ALoCoQk7usu2Eq5qWRyYCTdC41gvIfCeNFE50wHPQ6PttcMEIjC3Tj4vXHudRaVmCmParBZQpRwd
X-Received: by 10.194.133.73 with SMTP id pa9mr37185612wjb.148.1438633492334; Mon, 03 Aug 2015 13:24:52 -0700 (PDT)
MIME-Version: 1.0
Received: by 10.27.85.86 with HTTP; Mon, 3 Aug 2015 13:24:12 -0700 (PDT)
In-Reply-To: <20150803193824.GE78154@funkthat.com>
References: <87k2thxoxw.fsf@ta.scs.stanford.edu> <20150802173733.GQ78154@funkthat.com> <87pp358q55.fsf@ta.scs.stanford.edu> <20150802201638.GT78154@funkthat.com> <CABcZeBPfC4KPTkOzJbDbVLjtk6d+6n6w8Ryr2QusDDkqbTLwQw@mail.gmail.com> <20150803061418.GV78154@funkthat.com> <CABcZeBOcumdoe0_-ZObhtmGKDtByFrYLyiY2r4=41x-mcHJ9YQ@mail.gmail.com> <20150803193824.GE78154@funkthat.com>
From: Eric Rescorla <ekr@rtfm.com>
Date: Mon, 03 Aug 2015 13:24:12 -0700
Message-ID: <CABcZeBPn=bN5oK7mgHR1bh4i-GTEfKtTwbZV3Ai-bxPevbtz2g@mail.gmail.com>
To: John-Mark Gurney <jmg@funkthat.com>
Content-Type: multipart/alternative; boundary="089e011771a945d4ca051c6df690"
Archived-At: <http://mailarchive.ietf.org/arch/msg/tcpinc/qEOdSlsrGgTfQdLSp_JQV6pF6QM>
Cc: David Mazieres expires 2015-10-31 PDT <mazieres-udtt7nrt39ki595jm2w4cecjp2@temporary-address.scs.stanford.edu>, tcpinc <tcpinc@ietf.org>
Subject: Re: [tcpinc] TCP-ENO: Encryption Negotiation Option
X-BeenThere: tcpinc@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: "Discussion list for adding encryption to TCP." <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, 03 Aug 2015 20:24:56 -0000

On Mon, Aug 3, 2015 at 12:38 PM, John-Mark Gurney <jmg@funkthat.com> wrote:

> Eric Rescorla wrote this message on Mon, Aug 03, 2015 at 04:07 -0700
>

> > we standardize. So, yes, they could do as you suggest, but if their
> > > > intention
> > > > is not to provide automatic encryption to their users, it would be
> far
> > > > easier
> > > > to simply not implement TCPINC at all, rather than just implement an
> > > > in-kernel flag.
> > >
> > > You forget that vendors play the standards game...  You must adhere
> > > to standard X, or your product must follow an open standard...  But
> > > at various levels, they just say, oh, supports automatic encryption,
> > > must be good, but fail to understand that it required application
> > > modification, or that though they support RFCxyz that does automatic
> > > encryption, it isn't...
> >
> > OK, I now see what you're saying. I've never found this argument to be
> > particularly persuasive as an argument for 2119-level MUST requirements.
> > That may be true in some cases where, for instance, the customer
> generally
> > wants some functionality (e.g., SIP) and then they have a list of the
> > RFCs that constitute conformance, but I don't generally think it's going
> > to be that useful a strategy for vendors to nominally implement some RFC
> and
> > then have it not encrypt anything.
> >
> > If two vendors have conforming implementations of the output of this
> > > WG, and they do not encryption all the TCP connections between them,
> > > then I consider that a failure on this WG to do it's charter...
> >
> > Well, I definitely don't agree with this. For instance, I don't want
>
> You don't agree that if two implementations should always result in an
> encryption connection of some kind?  I specificly left out how the TCP
> connection was encrypted, be it userland TLS because both sides signaled
> it could do that, or the always on, anonymous encryption put forth by
> this WG...


I think it's completely legitimate and should be conformant for
implementations
to be configurable so they only offer tcpinc on some TCP connections. They
might do that to allow for space for application-level encryption or for
other
reasons. I don't see anything in the charter that prohibits this.


> > With that said, I think that the mode you mention above *is* of value to
> > > > users
> > > > because it allows out of band negotiation of TLS, so I would hope
> that
> > > > vendors would
> > > > implement both a version that upgraded all applications and one that
> just
> > > > allowed applications to upgrade themselves [0].
> > >
> > > I'm not saying that it shouldn't be an option, but it isn't this WG's
> > > charter to do this...  If you feel that strongly about this option,
> > > then bring it up as part of the TLS WG or another one...  But this WG
> > > is about enabling always on encryption...
> >
> > Yeah, I think this is unduly focusing on the implementation. This WG is
> > about
> > defining *protocol* and the protocol the implementation technique that I
>
> I can't parse: "and the protocol the implementation technique"


s/and the protocol//




> - It's much safer for vendors to ship and users to turn on because it
> >   puts the responsibility for potential breakage on the application,
> which
> >   is better able to bear it (this is a real problem with any new protocol
> >   rollout at this point, which is why people implement fallback).
> >
> > - It allows applications to gradually shim their way up to
> non-opportunistic
> >   security as Christian indicates.
> >
> > However, if you're worried about people gaming the system, then I sugges
> > that something like the proposed ENO draft provides a good mechanism for
> > meeting
> > both our requirements. Simply have two RFCs, one of which defines
> > the protocol and one of which defines the "on-by-default" behavior you're
> > concerned with. This allows us to define flexible mechanisms while
> > allowing for a seal of approval that defines a specific behavior.
>
> I disagree w/ this.  There should be the protocl that requires
> "on-by-default" behavior, and the TCP-ENO draft that allows the
> negotiation of your idea, userland shim or the "on-by-default"
> behavior...
>
> It could be that I'm misunderstanding what you call the protocol...
> I'm calling the protocol, either the TLS-use-TCP or tcpcrypt the
> protocol, and then ENO is just a signalling mechnism which is different..


Well, I'm more than happy to have some RFC that says "you must have this on
by default for every connection unless someone turns it off by some
mechanism
and then people can be conformant to that RFC or not. I'm not happy to have
the mechanism that this WG defines for signaling require that policy, since
I think it's unduly restrictive. And since the wire protocol is the same
regardless,
I don't really see the issue.

-Ekr