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

Viktor Dukhovni <ietf-dane@dukhovni.org> Wed, 03 May 2017 03:29 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 BDD79129BB2 for <tls@ietfa.amsl.com>; Tue, 2 May 2017 20:29:07 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -0.5
X-Spam-Level:
X-Spam-Status: No, score=-0.5 tagged_above=-999 required=5 tests=[BAYES_05=-0.5] 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 qpfKIlNfRp1g for <tls@ietfa.amsl.com>; Tue, 2 May 2017 20:29:06 -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 B2E361205D3 for <tls@ietf.org>; Tue, 2 May 2017 20:27:06 -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 ED4E67A32F1 for <tls@ietf.org>; Wed, 3 May 2017 03:27:05 +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: <CAAF6GDcriRk1VvBWK6a3YL0-g9xcLOTChVL94n=ax32s25PUwQ@mail.gmail.com>
Date: Tue, 02 May 2017 23:27:04 -0400
Content-Transfer-Encoding: quoted-printable
Reply-To: TLS WG <tls@ietf.org>
Message-Id: <48763856-04CB-4DC3-9A71-126F6EDB4279@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> <803FB95F-3271-407A-B483-5C0C996D3F04@dukhovni.org> <CAAF6GDcriRk1VvBWK6a3YL0-g9xcLOTChVL94n=ax32s25PUwQ@mail.gmail.com>
To: TLS WG <tls@ietf.org>
X-Mailer: Apple Mail (2.3273)
Archived-At: <https://mailarchive.ietf.org/arch/msg/tls/0oPbMrEgeMByQTDPNRoT__7wx5w>
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 03:29:08 -0000

> On May 2, 2017, at 9:45 PM, Colm MacCárthaigh <colm@allcosts.net> wrote:
> 
> I think we have to assume that a replay attempt could come at any time.
> A time based mitigation doesn't work.

A time-based mitigation does not remove the need for an anti-replay
cache (where a service protocol, supports 0-RTT, but is not idempotent).

What I am saying, is that a time-based counter-measure can substantially
reduce the size of the required cache, because out-of-window replays
are rejected.  That replay window can be a narrow window around the time
the ticket is first (and never again legitimately) used, rather than the
much larger ticket validity interval.

The obfuscated_ticket_age field makes it possible to determine which
transmissions are "in-window".  It remains an exercise for the implementor
to handle "in-window" replays appropriately.

I agree with Nico that additive obfuscation feels like a hack, but am
willing to accept this as somewhat "natural" within the design tradition
of TLS.

Could someone explain how observing ticket reuse reveals the secret
"ticket_age_add" value?  The situation seems "time translation
invariant" under changes in the "ticket_age_add" value.  Doesn't the
attacker see the same result as he would see with a for an offset
"ticket_age_add" obtained at a corresponding offset time in the past?

-- 
	Viktor.