Re: [TLS] 0RTT?
Watson Ladd <watsonbladd@gmail.com> Mon, 04 August 2014 02:43 UTC
Return-Path: <watsonbladd@gmail.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 201401B2816 for <tls@ietfa.amsl.com>; Sun, 3 Aug 2014 19:43:22 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.4
X-Spam-Level:
X-Spam-Status: No, score=-1.4 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, J_CHICKENPOX_46=0.6, SPF_PASS=-0.001] autolearn=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 OJUconVrI1QU for <tls@ietfa.amsl.com>; Sun, 3 Aug 2014 19:43:20 -0700 (PDT)
Received: from mail-yk0-x22a.google.com (mail-yk0-x22a.google.com [IPv6:2607:f8b0:4002:c07::22a]) (using TLSv1 with cipher ECDHE-RSA-RC4-SHA (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 20C5D1B2815 for <tls@ietf.org>; Sun, 3 Aug 2014 19:43:20 -0700 (PDT)
Received: by mail-yk0-f170.google.com with SMTP id 9so3851875ykp.29 for <tls@ietf.org>; Sun, 03 Aug 2014 19:43:19 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc:content-type; bh=iepItd4wwIuirDzpDGq+58dURBdv7YVVjo47z9UaqR4=; b=ZlD9KUhClBR9JlRqI9k3EPAP8Sbia5VSSYiCLQphlxDfYgaR8evkyHpXbOKm5UrGN6 m4Y4efCNDaCOAzjfo4UzpwxQW25LKcy5KSR+NVYvcL5AlHYqrRhQogrpo6NaEqYR4ttQ D/p3r+Ua7Z2ctATVUeve9gsvFUGEpFFVy3D2jk9hzwMYRJcz0OUZae3IyIcq70r5WjvK UF8WndHLeWqQ1pJ8vuJxUGhO/rVOIOYAzORAsYI5JuspVycmxzIDmAORY34Hpu4bhtQq AHM08q8p8YI7xcS6el2kA95gFT3CPM0fU/xcDrKYB+7oD466tWGVa69ouYwRDGA/EWzA WGcw==
MIME-Version: 1.0
X-Received: by 10.236.10.66 with SMTP id 42mr34174107yhu.68.1407120199309; Sun, 03 Aug 2014 19:43:19 -0700 (PDT)
Received: by 10.170.202.8 with HTTP; Sun, 3 Aug 2014 19:43:19 -0700 (PDT)
In-Reply-To: <CABkgnnWQn1D306KSJ70Qqe1=PJJ=wH=sy830=2kbzo0eLjjiSg@mail.gmail.com>
References: <CACsn0c=wUvV1M0kZ2y6OcC_UPoRtBRz1Nh_zb_sLYamozoPrpw@mail.gmail.com> <CABkgnnWQn1D306KSJ70Qqe1=PJJ=wH=sy830=2kbzo0eLjjiSg@mail.gmail.com>
Date: Sun, 03 Aug 2014 19:43:19 -0700
Message-ID: <CACsn0c=a5MXuBe1Fgkyytnwnq=mO7NmWgJ=9Kq16fiEBh-DCEw@mail.gmail.com>
From: Watson Ladd <watsonbladd@gmail.com>
To: Martin Thomson <martin.thomson@gmail.com>
Content-Type: text/plain; charset="UTF-8"
Archived-At: http://mailarchive.ietf.org/arch/msg/tls/QROQGSIrGfXFvlb7IOjCfNIS_Tk
Cc: "tls@ietf.org" <tls@ietf.org>
Subject: Re: [TLS] 0RTT?
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: Mon, 04 Aug 2014 02:43:22 -0000
On Sun, Aug 3, 2014 at 1:22 PM, Martin Thomson <martin.thomson@gmail.com> wrote: > This reads a like a halfway between the proposed 0RTT handshake and > resumption. The advantage here I'm guessing being that this is > resumption, which means that you bind to a specific previous session. > > However, I keep hearing that the main benefit of resumption is that it > doesn't require a new DH operation. And yes, this is still important > even with the higher performance EC provides. So I was going to make rekey optional. This wasn't very clear in my original email. > > This relies on an old session, whereas the proposed 0RTT uses a DH > share that is essentially public, so that it can be cached and shared > (DNS, signaling). That has costs with key rotation and administrative version. Maybe those aren't so bad. But I would like to see resumption be 0RTT also: right now it is 2RTT in TLS 1.2. > > As far as security goes, I don't see any major issues with this. The > initial round of application data is going to be as well protected as > the previous session was. As long as you aren't able to choose a > different cipher suite to what was previously used, and I can't see > why you would want to even contemplate allowing that. I don't think you are qualified to say that, and the reasoning is fallacious. You need to mutter something about PRF distinguishing and collisions, and ideal functionality and simulation. (In particular if I didn't mix in the old PMS, there would be an attack) > > Why do you need a new message? Since you are using DH, you could just > use the remainder of the 1RTT handshake structure with > ServerKeyExchange. You could, I suppose eliminate the authentication > messages in order to rely on the previous session. > > If the fallback story when the ticket/nonce/share is bad is the > existing regular handshake, then this is quite close to the proposed > 0RTT mode. With a few differences in terms of the first flight keys > are derived and their lifecycle. It probably is, but I think I missed the email where that was discussed. The design space is constrained enough I think we are converging on a very similar solution. > > On Aug 3, 2014 10:09 AM, "Watson Ladd" <watsonbladd@gmail.com> wrote: >> >> Dear all, >> >> I think I came up with a decent idea for handling 0RTT handshakes, >> namely making resumption 0RTT, and doing a side rekeying. >> >> To see this work we assume that the usual resumption ticket gets set >> in the handshake, and determines the PMS. A resumption looks as >> follows: >> >> -The ticket >> -An anti-replay nonce: BLAH bytes >> -A refresh key: since we know what the server wants, we can provide a >> group it supports >> >> The PMS that gets used is PMS_interim= HMAC(old_PMS, nonce || refresh >> key): data encrypted as usual under the old ciphersuite follows. (Note >> that we may have to include the entire Client Hello hashed: this is >> probably easier, except that the data goes in the Client Hello when >> using the current inclusion mechanism) >> >> On receiving this a server looks up the anti-replay nonce and checks >> it is fresh. To make this easier we include UTC time since the epoch ( >> midnight of 1 January 1970) and mandate some degree of synchronization >> and a window. To avoid tagging with clock drift we truncate some low >> order bits after adding a random small offset. >> >> If the nonce is not previously seem the server can send Application >> Data as normal. >> >> We now introduce a new handshake type: Rekey Finish, containing a new >> ticket and server key. CCS follows afterwards. These are sent >> encrypted. >> >> The new PMS will be HMAC(PMS_interim, ECDH(server, client keys)). >> >> The big limitation is ticket keys are going to need rotation. This >> also doesn't address the desire to put extra data in DNS to give some >> degree of forward secrecy, but I don't think you can change DNS that >> quickly without some problems. >> >> Furthermore, if we want rekeys without renegotiation, we can reuse >> Rekey Finish and add a Rekey Initiate handshake type that will send >> the client key. >> >> Open questions: how secure is this? We certainly need to hash the >> anti-replay nonce into the keys: is that all we need? (Not if we want >> to avoid attackers manipulating which method we use) Does noisy >> truncation work to prevent fingerprinting while reducing storage >> requirements? >> >> Sincerely, >> Watson Ladd >> >> _______________________________________________ >> TLS mailing list >> TLS@ietf.org >> https://www.ietf.org/mailman/listinfo/tls -- "Those who would give up Essential Liberty to purchase a little Temporary Safety deserve neither Liberty nor Safety." -- Benjamin Franklin
- [TLS] 0RTT? Watson Ladd
- Re: [TLS] 0RTT? Karthikeyan Bhargavan
- Re: [TLS] 0RTT? Watson Ladd
- Re: [TLS] 0RTT? Martin Thomson
- Re: [TLS] 0RTT? Watson Ladd
- Re: [TLS] 0RTT? Eric Rescorla
- Re: [TLS] 0RTT? Eric Rescorla
- Re: [TLS] 0RTT? Martin Thomson
- Re: [TLS] 0RTT? Martin Rex
- Re: [TLS] 0RTT? Watson Ladd
- Re: [TLS] 0RTT? Martin Rex