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

Martin Thomson <martin.thomson@gmail.com> Mon, 23 March 2015 03:35 UTC

Return-Path: <martin.thomson@gmail.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 6E0371A87AD for <tls@ietfa.amsl.com>; Sun, 22 Mar 2015 20:35:36 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2
X-Spam-Level:
X-Spam-Status: No, score=-2 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, FREEMAIL_FROM=0.001, SPF_PASS=-0.001] 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 EUYCyVIv8bYr for <tls@ietfa.amsl.com>; Sun, 22 Mar 2015 20:35:35 -0700 (PDT)
Received: from mail-oi0-x232.google.com (mail-oi0-x232.google.com [IPv6:2607:f8b0:4003:c06::232]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 09C7D1A87AB for <tls@ietf.org>; Sun, 22 Mar 2015 20:35:35 -0700 (PDT)
Received: by oigv203 with SMTP id v203so130938530oig.3 for <tls@ietf.org>; Sun, 22 Mar 2015 20:35:34 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc:content-type; bh=5r8uB77hTxC83tXQ+9xbI0kdkhtp+KIKr97xqHdUX78=; b=NLgZr5f/VnHwglTMxNVmYKGqhjgZlbGF2VGj1nPh5fHcdEJ5+CJxxPYxpvAjOvNvau YZxhFoA4w39ba0q19wS4M6GahjtH4ZcrzuXz/As4Jod4x4r9DL8M3LIZ7GlHjIHubOf3 M4+qq3fRR2x0OxkfiBy8i2lwMWRmxudKZlt9Wz4sFe/rxMVm6NkWxaECeZLExcAtzuAy URZ6ptwg8tApPKJoRHP/PxNCREY43+jIFVwNvGvUbWgIZR4dJK9DAmHpc9om4FQ3Y1qZ FOMECYivM5R/Y37140YmpilhJhh8ThJMyxeT+l5akSE0NpC4ZHHE3K9xmqA3x95wJQAO T29A==
MIME-Version: 1.0
X-Received: by 10.182.128.199 with SMTP id nq7mr51202530obb.47.1427081734483; Sun, 22 Mar 2015 20:35:34 -0700 (PDT)
Received: by 10.202.48.151 with HTTP; Sun, 22 Mar 2015 20:35:34 -0700 (PDT)
In-Reply-To: <CABcZeBNn92Zu7Hfu5z8qD=AZDn=jUkZ3phk18G7S1z7XJNQ9sQ@mail.gmail.com>
References: <CABcZeBP9LaGhDVETsJeecnAtSPUj=Kv37rb_2esDi3YaGk9b4w@mail.gmail.com> <550F6582.9040602@brainhub.org> <CABcZeBNn92Zu7Hfu5z8qD=AZDn=jUkZ3phk18G7S1z7XJNQ9sQ@mail.gmail.com>
Date: Sun, 22 Mar 2015 20:35:34 -0700
Message-ID: <CABkgnnWXtpuSKH-eEou9O7qncUSeuiv=4kw_GE6Um8VW3dcohQ@mail.gmail.com>
From: Martin Thomson <martin.thomson@gmail.com>
To: Eric Rescorla <ekr@rtfm.com>
Content-Type: text/plain; charset="UTF-8"
Archived-At: <http://mailarchive.ietf.org/arch/msg/tls/6ofQ89hZUhD-fD--6mPbYBceqA4>
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 03:35:36 -0000

On 22 March 2015 at 20:19, Eric Rescorla <ekr@rtfm.com> wrote:
>> One way to solve this is to say that the server must *fail* 0-RTT, as
>> opposed to fallback to 1-RTT, if the "orbit" indicated in the ClientHello is
>> not that of this server.
>
>
> Yeah, this is what I claimed is "implausible" in my original message.
>
> My concern here is that this basically means that implementations get
> punished with random failures for any data center/routing instabilities...

I don't see any way that we can support a mode that fails with
increased probability like this.  I think that the only real options
here are #2 and #3.  I'm tending toward a requirement for marking the
data as being explicitly replayable, simply because I don't think we
should leave applications with the awkward choice of deciding between
resend and something else.  Mainly because I don't know what that
something else looks like.

For HTTP, I think we can use that first flight for idempotent queries
quite easily and (at worst) the HTTP/2 connection preface.