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

Benjamin Kaduk <bkaduk@akamai.com> Tue, 08 December 2015 23:26 UTC

Return-Path: <bkaduk@akamai.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 1731F1ACE08 for <tls@ietfa.amsl.com>; Tue, 8 Dec 2015 15:26:24 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: 0.69
X-Spam-Level:
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 mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id XrASth_0MRTe for <tls@ietfa.amsl.com>; Tue, 8 Dec 2015 15:26:21 -0800 (PST)
Received: from prod-mail-xrelay05.akamai.com (prod-mail-xrelay05.akamai.com [23.79.238.179]) by ietfa.amsl.com (Postfix) with ESMTP id 9E2E01ACE11 for <TLS@ietf.org>; Tue, 8 Dec 2015 15:26:21 -0800 (PST)
Received: from prod-mail-xrelay05.akamai.com (localhost.localdomain [127.0.0.1]) by postfix.imss70 (Postfix) with ESMTP id A64DB4EBBC; Tue, 8 Dec 2015 23:26:20 +0000 (GMT)
Received: from prod-mail-relay10.akamai.com (prod-mail-relay10.akamai.com [172.27.118.251]) by prod-mail-xrelay05.akamai.com (Postfix) with ESMTP id 9005C4D631; Tue, 8 Dec 2015 23:26:20 +0000 (GMT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=akamai.com; 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 [172.19.0.25] (bos-lpczi.kendall.corp.akamai.com [172.19.0.25]) by prod-mail-relay10.akamai.com (Postfix) with ESMTP id 559A42044; Tue, 8 Dec 2015 23:26:20 +0000 (GMT)
To: Bill Cox <waywardgeek@google.com>, "tls@ietf.org" <TLS@ietf.org>
References: <CAH9QtQEMcVkZAwOS5xCWFCw0uBvQd+Q+Wsj7fXtm3_p6XHk_pA@mail.gmail.com>
From: Benjamin Kaduk <bkaduk@akamai.com>
Message-ID: <5667671C.6020909@akamai.com>
Date: Tue, 08 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: <CAH9QtQEMcVkZAwOS5xCWFCw0uBvQd+Q+Wsj7fXtm3_p6XHk_pA@mail.gmail.com>
Content-Type: multipart/alternative; boundary="------------030405030403010707070501"
Archived-At: <http://mailarchive.ietf.org/arch/msg/tls/N98EprFNGR5G_BM-ksIVQ5U4DKU>
Subject: Re: [TLS] Forward secrecy with resumption, and 0-RTT security
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: <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: 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.

-Ben