Re: [TLS] Forward secrecy with resumption, and 0-RTT security

Benjamin Kaduk <> Tue, 08 December 2015 23:26 UTC

Return-Path: <>
Received: from localhost ( []) by (Postfix) with ESMTP id 1731F1ACE08 for <>; Tue, 8 Dec 2015 15:26:24 -0800 (PST)
X-Virus-Scanned: amavisd-new at
X-Spam-Flag: NO
X-Spam-Score: 0.69
X-Spam-Status: No, score=0.69 tagged_above=-999 required=5 tests=[BAYES_50=0.8, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, HTML_MESSAGE=0.001, SPF_PASS=-0.001, T_RP_MATCHES_RCVD=-0.01] autolearn=ham
Received: from ([]) by localhost ( []) (amavisd-new, port 10024) with ESMTP id XrASth_0MRTe for <>; Tue, 8 Dec 2015 15:26:21 -0800 (PST)
Received: from ( []) by (Postfix) with ESMTP id 9E2E01ACE11 for <>; Tue, 8 Dec 2015 15:26:21 -0800 (PST)
Received: from (localhost.localdomain []) by postfix.imss70 (Postfix) with ESMTP id A64DB4EBBC; Tue, 8 Dec 2015 23:26:20 +0000 (GMT)
Received: from ( []) by (Postfix) with ESMTP id 9005C4D631; Tue, 8 Dec 2015 23:26:20 +0000 (GMT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;; s=a1; t=1449617180; bh=AHCALjqV7zANpUS2lkeY9uXCDf1Ph41/Epxmt/jNsnM=; l=7179; h=To:References:From:Date:In-Reply-To:From; b=aHPLVjzeIuILN+c67g+Fl8hqxxxm/SRXc0PM/14d8DQKtd55vDEPFd6NPjhWC7cSQ pLVcPQl1PobTsR9r5DsZ+5u0dzHM65xPBs9T3aw50apiN1n2WIPvmyfab/NqCkvOmL +2ie19ugmF0s3zHKRib8o9EJjwJ7EW8CLUJ2YZrc=
Received: from [] ( []) by (Postfix) with ESMTP id 559A42044; Tue, 8 Dec 2015 23:26:20 +0000 (GMT)
To: Bill Cox <>, "" <>
References: <>
From: Benjamin Kaduk <>
Message-ID: <>
Date: Tue, 8 Dec 2015 17:26:20 -0600
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:38.0) Gecko/20100101 Thunderbird/38.2.0
MIME-Version: 1.0
In-Reply-To: <>
Content-Type: multipart/alternative; boundary="------------030405030403010707070501"
Archived-At: <>
Subject: Re: [TLS] Forward secrecy with resumption, and 0-RTT security
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: Tue, 08 Dec 2015 23:26:24 -0000

On 12/06/2015 08:50 AM, Bill Cox wrote:
> I think the current spec does not describe well enough how to
> implement secure 0-RTT infrastructure.  Instead, it seems to recommend
> against using 0-RTT, with a pretty dire warning about the insecurity
> of 0-RTT.  I think that nearly the entire world will switch to 0-RTT,
> regardless of security limitations and warnings.  Companies won’t be
> able to

Perhaps I am living under a rock, but I do not have the sense that
"nearly the the entire world will switch to 0-RTT".

> resist the improved connection time.  IMO, the spec should describe
> how to address the security issues with 0-RTT, rather than just
> warning about security issues.
> So, here are my dumb thoughts about practical 0-RTT security
> infrastructure...
> One way is to bind resumption to orbits, by having only the orbit that
> issues a PSK remember the secret key.  Something like this is needed
> in any case to provide 0-RTT replay protection.  Without at least
> orbit-based replay protection, I think it does not make sense to allow
> a ClientVerify in a 0-RTT connection.
> There was a TODO in the last version I read asking what the client
> would sign in a 0-RTT ClientVerify.  If orbit-based replay protection
> is in place using PSKs, then signing anything that identifies what PSK
> to use is enough. However, the handshake has to somehow be bound to
> the orbit to prevent the signature from being replayed in a MitM
> attack. Having a ticket that can only be decrypted using the
> orbit-specific ticket decryption key would work. Using a source
> address token bound to the orbit would also work.  Signing the server
> Finish is not required to insure the signature will only be accepted once.
> There are two parts to a proof-of-possession: uniqueness and
> freshness.  Uniqueness can be had using orbit-bound PSKs.  Insuring
> freshness is harder.  This could be done by adding timestamps to the
> material signed.  With this, we would not get a complete proof of
> possession, because an attacker can attack the client's clock, unlike
> a normal proof of possession.  However, if steps are taken to secure
> clocks, which is needed for TLS in any case, then we can get what I
> think of as "compelling evidence" of possession, which might be good
> enough.

Perhaps I do not fully understand the proposal, but binding to source
address and signing timestamps sound an awful lot like things that have
been causing headaches for *decades* in the Kerberos community.  I would
be wary of introducing them into TLS.