Re: [TLS] Security review of TLS1.3 0-RTT

Colm MacCárthaigh <colm@allcosts.net> Thu, 04 May 2017 23:26 UTC

Return-Path: <colm@allcosts.net>
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 C05F91243FE for <tls@ietfa.amsl.com>; Thu, 4 May 2017 16:26:51 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -0.499
X-Spam-Level:
X-Spam-Status: No, score=-0.499 tagged_above=-999 required=5 tests=[BAYES_05=-0.5, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_NONE=-0.0001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=allcosts-net.20150623.gappssmtp.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 YO2laAp07smd for <tls@ietfa.amsl.com>; Thu, 4 May 2017 16:26:50 -0700 (PDT)
Received: from mail-yb0-x234.google.com (mail-yb0-x234.google.com [IPv6:2607:f8b0:4002:c09::234]) (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 6F5DF129A99 for <tls@ietf.org>; Thu, 4 May 2017 16:26:50 -0700 (PDT)
Received: by mail-yb0-x234.google.com with SMTP id s22so7354499ybe.3 for <tls@ietf.org>; Thu, 04 May 2017 16:26:50 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=allcosts-net.20150623.gappssmtp.com; s=20150623; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :cc; bh=f9WOlkDPbjUpuq83aZbZBi3Lxz0ucjYiEyHXsYIcWdM=; b=bSOCVOGdbZMgeG/TUSZPiTJ0objkKYg4ipIC8Ku9Pba3Gs210aoJM47bu6mY1oQaz2 G8uxTEjDoVH3NAGWX/UsXB/NY+weovoqF+mP6SwIPrdPE7djoxBEFsDq/dlK1ri0ykrf zsb1xcZFx4+3rLiwfSNDvIvmhK4qNpfNx59CRR4a7qcox6Zb8AroIx8O96WIe8vAoIha iOyeCQ4aVTybk6f8Rdtiotw/xmMVgiDrKn6mkP3cQgIIjrb9xl8Az5wG4JJn9N4JKU8+ O43JNRgTbuvWrzIZ4BBe3Cz4vScTb4hBw96k8ryBs8hR6QVi2fSwvhcVkTVnpEXz9JMD BD4g==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:in-reply-to:references:from:date :message-id:subject:to:cc; bh=f9WOlkDPbjUpuq83aZbZBi3Lxz0ucjYiEyHXsYIcWdM=; b=CRUor8uFctRfpgMyX6um5vcjSQcqem4YxXlX9meN2IYM/W6Ws8dJ407683QjEgtDml QrsFbYt7QsGz4SjyvZ1snp3/TL1V5ulaNF/6YbGV+2/i9zDF+N2fgXHaKSLpgv0iIxO3 yOV89PthiUvd/8+yq0faFEDa9kwOb5erF06pFo9uO3hfSIIg3hmJF4HilKpnXNM0BCxL /rczLxaSTK4MYKNUUhKXoGvfPOxwZWsga+G96xU1pHMfXUoekCvhwScYL19pX5Ew/ZVA Yccq1Ixru79QSYvJfay5zwwgJt4/g7kn1BjWpkFu8jHqlK1N+JWz1kRsc858n5T61r6L uUkg==
X-Gm-Message-State: AN3rC/7eS9M+xa/zwvCuqCs0iEH/ffLY/wY0l+bBl2zWM4Hw7/p88SIf fOfPJORzDFsX8+BfwlJHmyDGYFamJQ==
X-Received: by 10.37.16.212 with SMTP id 203mr23436063ybq.90.1493940409739; Thu, 04 May 2017 16:26:49 -0700 (PDT)
MIME-Version: 1.0
Received: by 10.129.57.67 with HTTP; Thu, 4 May 2017 16:26:48 -0700 (PDT)
In-Reply-To: <MWHPR15MB11825419AF296AE7EC26F3BDAFEA0@MWHPR15MB1182.namprd15.prod.outlook.com>
References: <CAAF6GDcKZj9F-eKAeVj0Uw4aX_EgQ4DuJczL4=fsaFyG9Yjcgw@mail.gmail.com> <CABcZeBNcnW9zEPZ4mEje1_ejR3npNFz65rw-6qUPn7cQt1Nz9w@mail.gmail.com> <MWHPR15MB11825419AF296AE7EC26F3BDAFEA0@MWHPR15MB1182.namprd15.prod.outlook.com>
From: Colm MacCárthaigh <colm@allcosts.net>
Date: Thu, 04 May 2017 16:26:48 -0700
Message-ID: <CAAF6GDcwXOnw=9MXbABs4PZQAfpaisSEJpASFZkzVgDBL8FjCg@mail.gmail.com>
To: Kyle Nekritz <knekritz@fb.com>
Cc: Eric Rescorla <ekr@rtfm.com>, "tls@ietf.org" <tls@ietf.org>
Content-Type: multipart/alternative; boundary="001a11c0ff04704eea054ebb1b3b"
Archived-At: <https://mailarchive.ietf.org/arch/msg/tls/VThgw-vBgTXlRA9fitWBx8Rdw98>
Subject: Re: [TLS] Security review of TLS1.3 0-RTT
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, 04 May 2017 23:26:52 -0000

On Thu, May 4, 2017 at 2:27 PM, Kyle Nekritz <knekritz@fb.com> wrote:

>
> There are definitely cases (i.e. application profiles) where this should
> be done. I think a general case HTTPS server is one. But I don’t think this
> is strictly necessary across the board (for every application using 0-RTT
> at all). DNS was brought up earlier in this thread as an example of a
> protocol that is likely quite workable without extra measures to prevent
> replay.
>

I thought some more about DNS since yesterday and I'm not sure it is
workable. How would we protect DNS against attack 4 (cache replay) -
couldn't it lead to disclosure of what the request was for? When used
against caches I mean, which is common, and DNS-over-TLS is designed mainly
for privacy, so that actually seems like a show-stopper.


> I also consider it quite misleading to say TLS 1.3 is insecure without
> such a recommendation. Uses of TLS can be insecure, that does not mean the
> protocol itself is. It’s insecure to use TLS without properly
> authenticating the server. Some users of TLS do not do this correctly. I’d
> actually argue that it is easier to mess this up than it is to mess up a
> 0-RTT deployment (and it can result in worse consequences). That doesn’t
> mean we should require a particular method of authentication, for all uses
> of TLS.
>

Here's how I think about it. Each of the attacks in the review is more
practical than Lucky13. More practical in the sense that I could do them in
a real-world setting. In my view at least.

Lucky13 was serious enough to prompt us all to accelerate turning of the
MtE cipher suites. Even though this actually made traffic analysis attacks
easier. Collectively we took a look at it and decided it was on too shaky
ground and we considered it insecure. And so the MtE suites went away.

I can't find a way then, in that context, to see replay as anything other
than a straightforward security issue. Replay is bad, it breaks things,
that's why we go to lengths to prevent it, it's not ok to just for get
about that. If TLS allows replay, TLS is insecure. Remembering that TLS is
a transport layer protocol, not an application layer one.

An application can use RC4 at the TLS layer if it provides its own
application-layer encryption, but we don't consider that secure. We don't
look for cases where applications can make special exceptions; because
that's fraught with sharp edges. We make the default secure.

-- 
Colm