Re: [TLS] Additional warnings on 0-RTT data

Martin Thomson <martin.thomson@gmail.com> Thu, 24 November 2016 04:40 UTC

Return-Path: <martin.thomson@gmail.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 8FFCF12946C for <tls@ietfa.amsl.com>; Wed, 23 Nov 2016 20:40:28 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.7
X-Spam-Level:
X-Spam-Status: No, score=-2.7 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_LOW=-0.7, SPF_PASS=-0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=gmail.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 nz2qvtZ9sZ8m for <tls@ietfa.amsl.com>; Wed, 23 Nov 2016 20:40:27 -0800 (PST)
Received: from mail-qk0-x232.google.com (mail-qk0-x232.google.com [IPv6:2607:f8b0:400d:c09::232]) (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 C6323129427 for <tls@ietf.org>; Wed, 23 Nov 2016 20:40:26 -0800 (PST)
Received: by mail-qk0-x232.google.com with SMTP id x190so38189632qkb.0 for <tls@ietf.org>; Wed, 23 Nov 2016 20:40:26 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :cc:content-transfer-encoding; bh=xdTYNn3AsefF+LnbeEqy15koTsxQF2xTay71rU0IHN0=; b=h8mi+lX47tVta3FxSU3dWyYAR1ne2zDmRQwh6eCj/ZRvrPv2A0xOKN297jtzy6O4Sw e4L+T5+7NGAFCcstvy/85CWuC821VLLntW2ppM95wKCDSf2pWptZVUgEvANGhsyB+aRz b2DU8vNWwOVZDmGGlFISFE6JjR9JSPE0E0RhGKvsH8MoKJi8cVIxdHkR1OvIGmDyQ2WV nUdnyU/uX55gfd776Edf1owvcq3CbzwgRcxzydhoOqHfnc2i2epdWRxHIbGGlWgqbqHA L+ZYKNGagLN3He2oGTNNpKEIVjYm88f5geoaASm8q+brIFdprqevEtOkInYnxNnJAoiG DbnA==
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-transfer-encoding; bh=xdTYNn3AsefF+LnbeEqy15koTsxQF2xTay71rU0IHN0=; b=ZWNw3Kqn20urNNbh2+wRs3HoXPItgWdIsd0rA0i3IgnF32gakDIug7zTpNr++PVXqu +b+4jO3G47mAvF4Ya41KZbI6Jv8C/X9sWs5ZwFjBcCanMSTi1PLUa8y+b1D808E2PRgl qSbSMQZ08ZhKVZ/vDso6DI8WI/1Yjy8tc4K2v8XMJBpFJHd2eyOzhtTAVzazPzX9x6ZL YFKWDj4rSHzhMmWHQlQqyLOmiSGEtT9zk9DXc9D1HBlS5CTgfco8rM5kwSWPWqLSiZ58 ZgOws5Or+NH5XaEVqtZwdsOGfAuSsHQZOkkKM8yJ0gpNBtoztz29j0/USvJmvwhBZ8Mc Fulg==
X-Gm-Message-State: AKaTC019KJ0V9HBogI94uFXlcQjBqC9jZlVKhypXNgHT5k4Q9ZxTFQyaW1K3SH/B0/85+1zOrEsOyRGwfHV4eg==
X-Received: by 10.233.235.72 with SMTP id b69mr346730qkg.144.1479962425867; Wed, 23 Nov 2016 20:40:25 -0800 (PST)
MIME-Version: 1.0
Received: by 10.140.85.101 with HTTP; Wed, 23 Nov 2016 20:40:25 -0800 (PST)
In-Reply-To: <CAAF6GDdrPO+eYMmWmvmwL2RVB5UV8184Xc5uOz99PhkkZfNY9w@mail.gmail.com>
References: <CAAF6GDeAbbwnUaCGg4sVxzP6S3ECoQ2nzCi3FyB1gRV9mJHxGA@mail.gmail.com> <CABkgnnXuL9jE04omz3n4FRWBKuJtpEV-bS2tSVvN7AJhW_4GUA@mail.gmail.com> <CAAF6GDcbJm7YWmUZ66JK9hUbU+Gt_-ERmjWxz9YnJe2KCtru-g@mail.gmail.com> <CABkgnnUhnFY5H6ew2uAhvPuqm8E1dP2-9OupaNfvF7qdKvggBg@mail.gmail.com> <CAAF6GDdrPO+eYMmWmvmwL2RVB5UV8184Xc5uOz99PhkkZfNY9w@mail.gmail.com>
From: Martin Thomson <martin.thomson@gmail.com>
Date: Thu, 24 Nov 2016 15:40:25 +1100
Message-ID: <CABkgnnVOrCAu0sKNSLJC8FNLXEzZxLNA3dPDPfxc86KWSLvjyQ@mail.gmail.com>
To: Colm MacCárthaigh <colm@allcosts.net>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
Archived-At: <https://mailarchive.ietf.org/arch/msg/tls/V1iXuANdjQnx5SK14AYscEKNUos>
Cc: "tls@ietf.org" <tls@ietf.org>
Subject: Re: [TLS] Additional warnings on 0-RTT data
X-BeenThere: tls@ietf.org
X-Mailman-Version: 2.1.17
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, 24 Nov 2016 04:40:28 -0000

On 24 November 2016 at 15:11, Colm MacCárthaigh <colm@allcosts.net> wrote:
> Do you disagree that the three specific example security issues provided are
> realistic, representative and impactful? If so, what would persuade you to
> change your mind?

These are simply variants on "if someone hits you with a stick, they
might hurt you", all flow fairly logically from the premise, namely
that replay is possible (i.e., someone can hit you with a stick).

The third is interesting, but it's also the most far-fetched of the
lot (a server might read some bytes, which it later won't read,
exposing a timing attack).  But that's also corollary material; albeit
less obvious.  Like I said, I've no objection to expanding a little
bit on what is possible: all non-idempotent activity, which might be
logging, load, and some things that are potentially observable on
subsequent requests, like IO/CPU cache state that might be affected by
a request.

>> I'm of the belief that end-to-end
>> replay is a property we should be building in to protocols, not just
>> something a transport layer does for you.  On the web, that's what
>> happens, and it contributes greatly to overall reliability.
>
> The proposal here I think promotes that view; if anything, it nudges
> protocols/applications to actually support end-to-end replay.

You are encouraging the TLS stack to do this, if not the immediate
thing that drives it (in our case, that would be the HTTP stack).  If
the point is to make a statement about the importance of the
end-to-end principle with respect to application reliability, the TLS
spec isn't where I'd go for that.

> The problems of 0-RTT are disproportionately under-estimated. I've provided
> what I think are three concrete and realistic security issues. If we
> disagree on those, let's draw that out, because my motivation is to mitigate
> those new issues that are introduced by TLS1.3.
>
>> What I object to here is the externalizing that this represents.  Now if I
>> have the audacity to
>> deploy 0-RTT, I have to tolerate some amount of extra trash traffic
>> from legitimate clients?
>
>
> I think there is a far worse externalization if we don't do this. Consider
> the operations who choose not (or don't know) to add good replay protection.
> They will iterate more quickly and more cheaply than the diligent providers
> who are cautious to add the effective measures, which are expensive and
> difficult to get right.

OK let's ask a different question: who is going to do this?

It's a non-trivial thing you ask for.  This involves a new connection
setup just to send a few packets, and probably a timer so that you can
wait long enough for the server to explode.  Do you expect to replay
before the real attempt?  Because that's even less likely to happen.

Connections aren't cheap, bandwidth as well.  And the time requirement
for building such a feature would be better spent elsewhere, not to
mention the ongoing maintenance.

I don't see browsers doing anything like what you request; nor do I
see tools/libs like curl or wget doing it either.  If I'm wrong and
they do, they believe in predictability so won't add line noise
without an application asking for it.

If few enough people do this, what makes you think that such a tiny
amount of replay would make any difference?  Unless you replay with
high probability, then the odd error will be dismissed as a transient.
This is especially true because most of these sorts of exploitable
errors will happen adjacent to some sort of network glitch (the
requests at the start of most connections - on the web at least - are
pretty lame).

Then you all you have done is increased the global rate of "have you
turned it off and on again?", which is - after all - yet another
opportunity for replay.