Re: [TLS] The case for a single stream of data

Ilari Liusvaara <ilariliusvaara@welho.com> Thu, 11 May 2017 08:52 UTC

Return-Path: <ilariliusvaara@welho.com>
X-Original-To: tls@ietfa.amsl.com
Delivered-To: tls@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 51C8A12EB7E for <tls@ietfa.amsl.com>; Thu, 11 May 2017 01:52:25 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.901
X-Spam-Level:
X-Spam-Status: No, score=-1.901 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, RCVD_IN_DNSWL_NONE=-0.0001, RP_MATCHES_RCVD=-0.001] autolearn=ham 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 VgSWu5Qu4Aur for <tls@ietfa.amsl.com>; Thu, 11 May 2017 01:52:23 -0700 (PDT)
Received: from welho-filter3.welho.com (welho-filter3.welho.com [83.102.41.25]) by ietfa.amsl.com (Postfix) with ESMTP id C65A5124D85 for <tls@ietf.org>; Thu, 11 May 2017 01:52:21 -0700 (PDT)
Received: from localhost (localhost [127.0.0.1]) by welho-filter3.welho.com (Postfix) with ESMTP id 822FE21CE8; Thu, 11 May 2017 11:52:19 +0300 (EEST)
X-Virus-Scanned: Debian amavisd-new at pp.htv.fi
Received: from welho-smtp3.welho.com ([IPv6:::ffff:83.102.41.86]) by localhost (welho-filter3.welho.com [::ffff:83.102.41.25]) (amavisd-new, port 10024) with ESMTP id ZAn_6AMcjmnD; Thu, 11 May 2017 11:52:19 +0300 (EEST)
Received: from LK-Perkele-V2 (87-92-51-204.bb.dnainternet.fi [87.92.51.204]) (using TLSv1 with cipher ECDHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by welho-smtp3.welho.com (Postfix) with ESMTPSA id 53BCA2313; Thu, 11 May 2017 11:52:19 +0300 (EEST)
Date: Thu, 11 May 2017 11:52:18 +0300
From: Ilari Liusvaara <ilariliusvaara@welho.com>
To: Benjamin Kaduk <bkaduk@akamai.com>
Cc: Colm MacCárthaigh <colm@allcosts.net>, "tls@ietf.org" <tls@ietf.org>
Message-ID: <20170511085217.GA13126@LK-Perkele-V2.elisa-laajakaista.fi>
References: <CAAF6GDfm=voTt_=JrdGtiaYby1JG8ySU2s6myjjpHKeGvi0bMg@mail.gmail.com> <c94ff8ac-583c-7bf4-83a3-5757e677b9c6@akamai.com>
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Disposition: inline
In-Reply-To: <c94ff8ac-583c-7bf4-83a3-5757e677b9c6@akamai.com>
User-Agent: Mutt/1.5.23 (2014-03-12)
Sender: ilariliusvaara@welho.com
Archived-At: <https://mailarchive.ietf.org/arch/msg/tls/89Cj2zhcR4inmrt8-3zUeCiTFcU>
Subject: Re: [TLS] The case for a single stream of data
X-BeenThere: tls@ietf.org
X-Mailman-Version: 2.1.22
Precedence: list
List-Id: "This is the mailing list for the Transport Layer Security working group of the IETF." <tls.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/tls>, <mailto:tls-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/tls/>
List-Post: <mailto:tls@ietf.org>
List-Help: <mailto:tls-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/tls>, <mailto:tls-request@ietf.org?subject=subscribe>
X-List-Received-Date: Thu, 11 May 2017 08:52:25 -0000

On Thu, May 11, 2017 at 12:00:17AM -0500, Benjamin Kaduk wrote:
> 
> First off, it seems somewhat self-evident that if we guarantee 0-RTT
> non-replay, then of course it makes sense to just concatenate the
> streams.  That is, if 0-RTT data is not replayable, there's not much
> special about it to merit separating it off from normal application
> data.  This isn't quite exactly true because of the DKG attack, but it
> may be close enough to not matter.
> 
> However, I'm still not convinced that requiring strong 0-RTT non-replay
> is feasible/the right thing to do.  So, I do not consider the question
> of single stream vs. block-of-early-data + 1-RTT stream to be settled.

There are deeper problems than that:

- Strict HTTP clients can't allow autoreplay if 0-RTT contains a POST
  (and any HTTP client that isn't strict is a lost cause anyway).
- Ensuring that there is no race causing possible data corruption if
  the server rejects 0-RTT.
- Concatenation seems to play poorly with 0-RTT exporters (which start
  to seem like an attractive nuisance...).


Also, turns out that unordered replay is just fundamential. So any
_existing_ systems that don't handle unordered replay can be broken,
and there isn't anything TLS can do about that.

Which leaves the "loads of replays" problem from lack of strong 0-RTT
replay protection.



-Ilari