Re: [TLS] Security review of TLS1.3 0-RTT

Viktor Dukhovni <ietf-dane@dukhovni.org> Wed, 03 May 2017 00:54 UTC

Return-Path: <ietf-dane@dukhovni.org>
X-Original-To: tls@ietfa.amsl.com
Delivered-To: tls@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 7E77E129405 for <tls@ietfa.amsl.com>; Tue, 2 May 2017 17:54:56 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.9
X-Spam-Level:
X-Spam-Status: No, score=-1.9 tagged_above=-999 required=5 tests=[BAYES_00=-1.9] autolearn=ham autolearn_force=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 JzHS6N8qd9Vs for <tls@ietfa.amsl.com>; Tue, 2 May 2017 17:54:55 -0700 (PDT)
Received: from mournblade.imrryr.org (mournblade.imrryr.org [108.5.242.66]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id C7160129410 for <tls@ietf.org>; Tue, 2 May 2017 17:51:50 -0700 (PDT)
Received: from vpro.lan (cpe-74-71-8-253.nyc.res.rr.com [74.71.8.253]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mournblade.imrryr.org (Postfix) with ESMTPSA id 04FAA7A32F1 for <tls@ietf.org>; Wed, 3 May 2017 00:51:43 +0000 (UTC) (envelope-from ietf-dane@dukhovni.org)
Content-Type: text/plain; charset="utf-8"
Mime-Version: 1.0 (Mac OS X Mail 10.3 \(3273\))
From: Viktor Dukhovni <ietf-dane@dukhovni.org>
In-Reply-To: <CAAF6GDfq0Rs86Zik7M-fCRv51981DO19rFaxRC8Of322RCg8eA@mail.gmail.com>
Date: Tue, 02 May 2017 20:51:43 -0400
Content-Transfer-Encoding: quoted-printable
Reply-To: TLS WG <tls@ietf.org>
Message-Id: <803FB95F-3271-407A-B483-5C0C996D3F04@dukhovni.org>
References: <CAAF6GDcKZj9F-eKAeVj0Uw4aX_EgQ4DuJczL4=fsaFyG9Yjcgw@mail.gmail.com> <C29356B3-6D71-4088-9AB3-4954327F1E7B@dukhovni.org> <20170502173905.GC10188@localhost> <CAAF6GDeYc5o=eeeyV6HhK9vrLngB-Y=Ed5BdedrE8h2-py4oAw@mail.gmail.com> <20170502180049.GE10188@localhost> <CAAF6GDecd=x-Ob_eO1vSWr6cb6jAeyHBx7zf6cpX=GfxBosfLQ@mail.gmail.com> <20170502182529.GG10188@localhost> <d325ae84-ad24-859d-50a7-825dbabe3b24@akamai.com> <1493768953994.69753@cs.auckland.ac.nz> <CAAF6GDfq0Rs86Zik7M-fCRv51981DO19rFaxRC8Of322RCg8eA@mail.gmail.com>
To: TLS WG <tls@ietf.org>
X-Mailer: Apple Mail (2.3273)
Archived-At: <https://mailarchive.ietf.org/arch/msg/tls/Mw2AiRofNBZYBXXfS2tUSxGc03I>
Subject: Re: [TLS] Security review of TLS1.3 0-RTT
X-BeenThere: tls@ietf.org
X-Mailman-Version: 2.1.22
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: Wed, 03 May 2017 00:54:56 -0000

> On May 2, 2017, at 8:28 PM, Colm MacCárthaigh <colm@allcosts.net> wrote:
> 
> This whole problem of needing client-side clocks, and having to obfuscate an age, goes away if we remove the ticket age entirely. 
> 
> Hopefully the security review makes a strong case that the age is fairly useless from a security point of view. Even with the age, an attacker can still generate millions to billions of replays. Even with very conservative numbers, e.g. to just one host, the attacker can still certainly generate tens of thousands of replays within the permitted window.  Better to require servers to reject duplicates (when used with Zero-RTT), and leave it at that. 

Some choices are driven by practical engineering considerations.
The ticket lifetime is likely to be considerably longer than the
replay clock window.  The server should indeed reject replays,
but if it is able to flush the replay cache faster, it may be able
to handle that job a lot more efficiently under load.

What is a likely ticket lifetime for a server that supports 0-RTT
(let's assume an HTTP server)?  How wide a replay clock window is
likely reasonable (to allow for RTT and TCP retransmission delays)?

If the two are approximately the same, then just rejecting duplicates
and expired tickets is enough.  If the ticket lifetime is 10x or 100x
larger, it may make sense to be able to limit the lifetime of replay
cache entries to the smaller TCP skew.

-- 
	Viktor.