Re: [TLS] 0-RTT and Anti-Replay

Nico Williams <nico@cryptonector.com> Mon, 23 March 2015 17:47 UTC

Return-Path: <nico@cryptonector.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 300C11ACEF4 for <tls@ietfa.amsl.com>; Mon, 23 Mar 2015 10:47:34 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.044
X-Spam-Level:
X-Spam-Status: No, score=-1.044 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, FM_FORGED_GMAIL=0.622, IP_NOT_FRIENDLY=0.334, RCVD_IN_DNSWL_NONE=-0.0001] autolearn=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 jQrRijZmN5nt for <tls@ietfa.amsl.com>; Mon, 23 Mar 2015 10:47:33 -0700 (PDT)
Received: from homiemail-a36.g.dreamhost.com (sub4.mail.dreamhost.com [69.163.253.135]) by ietfa.amsl.com (Postfix) with ESMTP id 61EAC1ACEE5 for <tls@ietf.org>; Mon, 23 Mar 2015 10:47:33 -0700 (PDT)
Received: from homiemail-a36.g.dreamhost.com (localhost [127.0.0.1]) by homiemail-a36.g.dreamhost.com (Postfix) with ESMTP id 0CB73778070 for <tls@ietf.org>; Mon, 23 Mar 2015 10:47:33 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha1; c=relaxed; d=cryptonector.com; h= mime-version:in-reply-to:references:date:message-id:subject:from :to:cc:content-type; s=cryptonector.com; bh=fNMSaunGfdH4icnbtMqH rm2nJJE=; b=MOneipUS8p9q38V/Z5nrwuoSpNn6O5bbhZPTpi0wyEgXMOJLjBH4 xRpSCY2++xKOXMjLpL23pUrpsEy2PpMY2M13o90MPhdCmtG/3y5I2Eyz1yTJeMmP 7jjpBrF1kkyZYQF8kDBUk+e4KEdO7HntsChEzfm5AWf9h61Nt2nF/fM=
Received: from mail-ie0-f180.google.com (mail-ie0-f180.google.com [209.85.223.180]) (using TLSv1 with cipher RC4-SHA (128/128 bits)) (No client certificate requested) (Authenticated sender: nico@cryptonector.com) by homiemail-a36.g.dreamhost.com (Postfix) with ESMTPSA id C91EF77805F for <tls@ietf.org>; Mon, 23 Mar 2015 10:47:32 -0700 (PDT)
Received: by iecvj10 with SMTP id vj10so41885262iec.0 for <tls@ietf.org>; Mon, 23 Mar 2015 10:47:32 -0700 (PDT)
MIME-Version: 1.0
X-Received: by 10.107.29.21 with SMTP id d21mr508111iod.11.1427132852012; Mon, 23 Mar 2015 10:47:32 -0700 (PDT)
Received: by 10.64.130.66 with HTTP; Mon, 23 Mar 2015 10:47:31 -0700 (PDT)
In-Reply-To: <CABcZeBOd8eftMhSk++uS6Dhc+2te=oFhA5oUB9BT9kWX2KWSKg@mail.gmail.com>
References: <CABcZeBP9LaGhDVETsJeecnAtSPUj=Kv37rb_2esDi3YaGk9b4w@mail.gmail.com> <20150323084716.GM21267@localhost> <CABcZeBO88cvxXJULgpNCxC_Q4HhtOOVnpCoUWmo6=7GkVhFkdQ@mail.gmail.com> <20150323171955.GP21267@localhost> <CABcZeBOd8eftMhSk++uS6Dhc+2te=oFhA5oUB9BT9kWX2KWSKg@mail.gmail.com>
Date: Mon, 23 Mar 2015 12:47:31 -0500
Message-ID: <CAK3OfOgnyDDsc-3TTXnyYhY_t0Ooi9pAfegVqC-4WO8GXkzTBw@mail.gmail.com>
From: Nico Williams <nico@cryptonector.com>
To: Eric Rescorla <ekr@rtfm.com>
Content-Type: text/plain; charset=UTF-8
Archived-At: <http://mailarchive.ietf.org/arch/msg/tls/LbjTz31jCeVt47OaL926piWOAUE>
Cc: "tls@ietf.org" <tls@ietf.org>
Subject: Re: [TLS] 0-RTT and Anti-Replay
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: <http://www.ietf.org/mail-archive/web/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: Mon, 23 Mar 2015 17:47:34 -0000

On Mon, Mar 23, 2015 at 12:41 PM, Eric Rescorla <ekr@rtfm.com>; wrote:
>> > Maybe I wasn't clear. When I said "reject" I meant "hard-fail" rather
>> > than
>> > make it 1-RTT.
>>
>> Sorry it wasn't clear to me.  Is there any reason that fallback to 1-RTT
>> is not feasible?
>
>
> Yes. The issue is that the client has no way of knowing whether the 0-RTT
> message was duplicated and processed by a separate server instance, so
> when it falls back to 1-RTT, resending the initial data may be a replay.

The server can certainly indicate what, if any 0-RTT, it received (by
sending a hash back).  If it did not receive the 0-RTT data then the
client can fail (TLS over TCP) or retransmit (DTLS over UDP or
similar).  If the server received the wrong 0-RTT data then the client
can fail and/or sound the alarms, or even retransmit if the data was
inconsequential (e.g., a SASL mechanism negotiation, which can then be
redone).

Nico
--