Re: [tcpinc] Revised version of TCP-ENO

Daniel Kahn Gillmor <dkg@fifthhorseman.net> Thu, 13 August 2015 21:27 UTC

Return-Path: <dkg@fifthhorseman.net>
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 19C1A1B3B39 for <tcpinc@ietfa.amsl.com>; Thu, 13 Aug 2015 14:27:21 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.9
X-Spam-Level:
X-Spam-Status: No, score=-1.9 tagged_above=-999 required=5 tests=[BAYES_00=-1.9] 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 AaQvOsTQyhRq for <tcpinc@ietfa.amsl.com>; Thu, 13 Aug 2015 14:27:20 -0700 (PDT)
Received: from che.mayfirst.org (che.mayfirst.org [209.234.253.108]) by ietfa.amsl.com (Postfix) with ESMTP id E37641B3B38 for <tcpinc@ietf.org>; Thu, 13 Aug 2015 14:27:19 -0700 (PDT)
Received: from fifthhorseman.net (unknown [38.109.115.130]) by che.mayfirst.org (Postfix) with ESMTPSA id 15787F984; Thu, 13 Aug 2015 17:27:16 -0400 (EDT)
Received: by fifthhorseman.net (Postfix, from userid 1000) id 7747520144; Thu, 13 Aug 2015 23:27:16 +0200 (CEST)
From: Daniel Kahn Gillmor <dkg@fifthhorseman.net>
To: Kyle Rose <krose@krose.org>
In-Reply-To: <CAJU8_nVcDmCw-0KYviJ5GWZL+-YcCg3wLMJqpkuh=iN8RppA+A@mail.gmail.com>
References: <87pp2vqplu.fsf@ta.scs.stanford.edu> <CAJU8_nXAHhf6dqqs0gUEGz49bG7YUO1qaGwaLm04+vstPTyfWg@mail.gmail.com> <87h9o4rqwz.fsf@ta.scs.stanford.edu> <874mk2kj56.fsf@alice.fifthhorseman.net> <CAJU8_nVcDmCw-0KYviJ5GWZL+-YcCg3wLMJqpkuh=iN8RppA+A@mail.gmail.com>
User-Agent: Notmuch/0.20.2 (http://notmuchmail.org) Emacs/24.5.1 (x86_64-pc-linux-gnu)
Date: Thu, 13 Aug 2015 17:27:16 -0400
Message-ID: <87y4hej2vf.fsf@alice.fifthhorseman.net>
MIME-Version: 1.0
Content-Type: text/plain
Archived-At: <http://mailarchive.ietf.org/arch/msg/tcpinc/DSia9biWv-RFhxBrSoGuOGBtK5w>
Cc: tcpinc@ietf.org, David Mazieres <dm-list-tcpcrypt@scs.stanford.edu>
Subject: Re: [tcpinc] Revised version of TCP-ENO
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: Thu, 13 Aug 2015 21:27:21 -0000

On Thu 2015-08-13 17:05:38 -0400, Kyle Rose wrote:
> This can't be the case if, for instance, the session IDs are signed in
> batches as proposed in the tcpcrypt paper.

You seem to be assuming that peer authentication will happen by an
cryptographic public-key signature over the session id.  In this case, i
agree that the session id could be published without a problem.

But this isn't necessarily the only mechanism that could be used to
authenticate the peer.

> The session ID is a channel binding identifier, not a cryptographic
> secret. Woe betide anyone who bootstraps authentication outside of the
> context of the encrypted session using a session ID it had seen
> sometime in the past under the assumption it was secret.

I'm not talking about anything outside of the encrypted session, or any
sort of past data linkage.

> This is why I like the original wording of "public", because it
> clearly implies you can throw one around at will as its knowledge will
> do no good to anyone not in control of one of the endpoints of the
> connection.

If we really want to limit ourselves to authentication mechanisms that
don't break if the session ID is public, then i agree we should call it
"public".  But i personally haven't evaluated the full bestiary of
PAKE/SRP/PSK/all possible uni- or bi-directional authentication
mechanisms that one might want to use.  So i'm not confident that we can
safely treat the session ID as a public variable in all cases.

But I'm happy to hear arguments in that direction, if you've got 'em.

At the very least, publication/leakage of the session ID could indicate
that two endpoints were probably talking to each other (if they both
announce that they've seen the same session ID).  Do we want to
encourage that kind of metadata leakage by saying they should be
"public"?

    --dkg