Re: [TLS] 0RTT?

Martin Thomson <> Mon, 04 August 2014 17:54 UTC

Return-Path: <>
Received: from localhost ( []) by (Postfix) with ESMTP id 44AAA1A00AB for <>; Mon, 4 Aug 2014 10:54:21 -0700 (PDT)
X-Virus-Scanned: amavisd-new at
X-Spam-Flag: NO
X-Spam-Score: -2
X-Spam-Status: No, score=-2 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, SPF_PASS=-0.001] autolearn=ham
Received: from ([]) by localhost ( []) (amavisd-new, port 10024) with ESMTP id 6s3yUEOnDwtp for <>; Mon, 4 Aug 2014 10:54:19 -0700 (PDT)
Received: from ( [IPv6:2a00:1450:400c:c05::22e]) (using TLSv1 with cipher ECDHE-RSA-RC4-SHA (128/128 bits)) (No client certificate requested) by (Postfix) with ESMTPS id 7EEA41A00A8 for <>; Mon, 4 Aug 2014 10:54:19 -0700 (PDT)
Received: by with SMTP id d1so5531911wiv.13 for <>; Mon, 04 Aug 2014 10:54:18 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;; s=20120113; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc:content-type; bh=WiUTwjMnUCfKA3s+rvxRvpAYMP73VMAH+8yzKuynInQ=; b=CtlH7GNXnOLI3UoTM0zbsYKv4T5v6SdqGpHC1yrmTDOEXe/kVqhJ7Lqb7rn2l4UGfz r9/7OMWKOV3cS1/oumfBt0OgLmc9DBjIZFiQBqPpRy04cfaAsjtpyKrJE0hHJd37vHJr ZUTazbLjvx0p6/h3Cvk5ANWpJc6ruhDqCnP0K02hxG5kWwRiPD2qF9Ii8GkdepicMl7j /dVgX9325EmAwUW/EvtYkxWdLRV6wFJt1dLIKRx5KNr3Ma5xkImELoeJN5ysHxHxOKTO bxW2f7IAoMwswkcSq84KTi/rhn0lYl9KI07cEZE9An4lwhk5lOdQGWZoPt0rrv25aohz veEw==
MIME-Version: 1.0
X-Received: by with SMTP id ff14mr34275634wjc.9.1407174857919; Mon, 04 Aug 2014 10:54:17 -0700 (PDT)
Received: by with HTTP; Mon, 4 Aug 2014 10:54:17 -0700 (PDT)
In-Reply-To: <>
References: <> <> <>
Date: Mon, 4 Aug 2014 10:54:17 -0700
Message-ID: <>
From: Martin Thomson <>
To: Watson Ladd <>
Content-Type: text/plain; charset=UTF-8
Cc: "" <>
Subject: Re: [TLS] 0RTT?
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." <>
List-Unsubscribe: <>, <>
List-Archive: <>
List-Post: <>
List-Help: <>
List-Subscribe: <>, <>
X-List-Received-Date: Mon, 04 Aug 2014 17:54:21 -0000

On 3 August 2014 19:43, Watson Ladd <> wrote:
> 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.

One thing I like with your proposal is that it looks a lot like the
0RTT proposal, but with a different key derivation path that avoids
the "expensive" operation.  If the rekeying is optional it diverges
some, but no so badly.

I see the following choices for a server that receives a handshake in this form:

a. Regarding the data, the server can accept the data or not

b. Regarding the keying material, the server can continue to use the
indicated "master secret", or it can request that a new DH exchange be

   **  Here we could also enable other options, like having the server
offer a backwards reference for authentication, or maybe you can
renegotiated ciphersuite...  I think that would be unnecessary
complexity; if you continue based on the previous session, then I'd
prefer not allowing anything to change about the session; if you want
to change anything, the server can re-run a full handshake.

I think that the choice regarding the data is largely orthogonal to
the choice regarding the keying material.  These seem to be the most
relevant choices:

1. accept the data and keys, continue with the provided keys
2. reject the data, but continue with the provided keys
3. accept the data, but re-run the handshake
4. reject the data and re-run the handshake

The two options being what is new here.  The proposed 0RTT mode allows
the latter options only.  The case where the server rejects the data
is a little odd, but it might be that the server doesn't want to do
nonce-checking; and it is closest to the 1.2 resumption handshake.