Re: [TLS] 0-RTT security considerations (was OPTLS)

Eric Rescorla <ekr@rtfm.com> Thu, 20 November 2014 17:07 UTC

Return-Path: <ekr@rtfm.com>
X-Original-To: tls@ietfa.amsl.com
Delivered-To: tls@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id E171A1A07BC for <tls@ietfa.amsl.com>; Thu, 20 Nov 2014 09:07:11 -0800 (PST)
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 WD6TadDpp6x4 for <tls@ietfa.amsl.com>; Thu, 20 Nov 2014 09:07:09 -0800 (PST)
Received: from mail-wg0-f48.google.com (mail-wg0-f48.google.com [74.125.82.48]) (using TLSv1 with cipher ECDHE-RSA-RC4-SHA (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 687951A1A2E for <tls@ietf.org>; Thu, 20 Nov 2014 09:07:03 -0800 (PST)
Received: by mail-wg0-f48.google.com with SMTP id y19so4300333wgg.7 for <tls@ietf.org>; Thu, 20 Nov 2014 09:07:02 -0800 (PST)
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=NT5QxIvyH6ixv+9MrbsAYu7PoHGko9cNjIfYMj23yWo=; b=JSAIlrXuPx8k9dsW6+x84bDvmZn/9KMLW4TPu/kjLGtDvl4QfcTqtNaIMOGKHvjJv1 9o4oPp+PRYIJNjg6fssz/ANl3/QZCRI7PEKdnR2/00UlEOC4yEvEpCKpBYio9/rKq5Rl anryIoNIQYOaStooDoiRMG5XRs1+XSL5kjjEfxSCz4GuzDykKokJuAZ7v+JC++4lSt3z J4NoKfnfojsoeJsTJOjnpvfqZIFIjmPFtIJiKC7JIPlCTc7p8/K9uSXUaj2GPvpWHpi7 muDicivOHPMaYepkgNoclPFl1Hh3FDwVfDSDxa1DSrUF3uA7upwyP1D9cnh1YsF9uO5w eMMA==
X-Gm-Message-State: ALoCoQntoiB+zbQDc4t/8vnyFQ9nMG/QAsxRVooVSOmkZT+ApGAa8Sa548v21UhQdmlfWW4BQwVZ
X-Received: by 10.180.150.138 with SMTP id ui10mr5927417wib.32.1416503221601; Thu, 20 Nov 2014 09:07:01 -0800 (PST)
MIME-Version: 1.0
Received: by 10.27.130.34 with HTTP; Thu, 20 Nov 2014 09:06:21 -0800 (PST)
In-Reply-To: <20141119205117.GE20758@localhost>
References: <20141118234608.GA20721@localhost> <CABcZeBN7ErepGC0Y5_xiYspJG-i3z6kA=STMk0mnnu+oQNCZqA@mail.gmail.com> <20141119004543.GC20758@localhost> <CABcZeBNru1qEcuxLm96HH-R=yU2S4PzSPeUUwjVY4jHkh0Aq-A@mail.gmail.com> <20141119205117.GE20758@localhost>
From: Eric Rescorla <ekr@rtfm.com>
Date: Thu, 20 Nov 2014 09:06:21 -0800
Message-ID: <CABcZeBNQr=mmPAFT0i4WARtZ0FonY4te0ke_ayQn6gHBG+rQQQ@mail.gmail.com>
To: Nico Williams <nico@cryptonector.com>
Content-Type: multipart/alternative; boundary="001a11c3fb2058d4c705084d5b16"
Archived-At: http://mailarchive.ietf.org/arch/msg/tls/2NXsXAR0stmTWlov26jN_PnAV7Y
Cc: kitten <kitten@ietf.org>, "tls@ietf.org" <tls@ietf.org>
Subject: Re: [TLS] 0-RTT security considerations (was OPTLS)
X-BeenThere: tls@ietf.org
X-Mailman-Version: 2.1.15
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: <http://www.ietf.org/mail-archive/web/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, 20 Nov 2014 17:07:12 -0000

On Wed, Nov 19, 2014 at 12:51 PM, Nico Williams <nico@cryptonector.com>
wrote:

> On Wed, Nov 19, 2014 at 11:23:16AM -0800, Eric Rescorla wrote:
> > On Tue, Nov 18, 2014 at 4:45 PM, Nico Williams <nico@cryptonector.com>
> > wrote:
> > > > Yes, I agree that this doesn't make sense. The server needs to
> > > > provide anti-replay as part of the TLS stack using some sort of
> > > > server-side state.  Servers which don't want to do that should not
> > > > offer 0-RTT.
> > >
> > > But how would the client know the first time?  [...]
> >
> > I'm not following. The idea here is that the server indicates to the
> > client that it is in principle prepared to do 0-RTT and [...]
>
> Certainly in the resumption case.


Also in the semi-static DHE cases.



> However, in other cases, we'd have to
> have ensure that whatever oob method is used for establishing the
> server's public key also conveys this (e.g., we'd need an RR type for
> indicating this for DANE).


I don't see that that's a problem. At present DANE doesn't contain enough
information for the client to generate a 0-RTT handshake at all, so as
a practical matter we would need to extend the record format, so that
would implicitly agree to 0-RTT (or explicitly if you prefer).



>   It's much easier to have the server hold the
> early data and have it bound into the client's next handshake msg.


This is not generically possible, because the client may have used
a key that the server has forgotten, which requires the client to
retransmit.


> If you can send encrypted data to the server, you can also
> > encrypt the client's certificate. Yes, it's possible to design protocols
> > where that doesn't work, but it's also possible to design ones where
> > it does.
>
> Yes, of course.  With TLS 1.2 one can renego.  Unless I missed
> something, there's nothing in 1.3 for protecting the client's ID.
>

In TLS 1.3, the client's second flight is sent encrypted. If it were sent
as part of the first flight, it would also be sent encrypted.

-Ekr