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

Nico Williams <> Mon, 23 March 2015 19:30 UTC

Return-Path: <>
Received: from localhost ( []) by (Postfix) with ESMTP id E62001B29AC for <>; Mon, 23 Mar 2015 12:30:30 -0700 (PDT)
X-Virus-Scanned: amavisd-new at
X-Spam-Flag: NO
X-Spam-Score: -1.666
X-Spam-Status: No, score=-1.666 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, IP_NOT_FRIENDLY=0.334, RCVD_IN_DNSWL_NONE=-0.0001] autolearn=no
Received: from ([]) by localhost ( []) (amavisd-new, port 10024) with ESMTP id G4dlNCangOqC for <>; Mon, 23 Mar 2015 12:30:30 -0700 (PDT)
Received: from ( []) by (Postfix) with ESMTP id 4F6DF1B29A7 for <>; Mon, 23 Mar 2015 12:30:30 -0700 (PDT)
Received: from (localhost []) by (Postfix) with ESMTP id 2B2381612; Mon, 23 Mar 2015 12:30:30 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha1; c=relaxed;; h=date :from:to:cc:subject:message-id:references:mime-version :content-type:in-reply-to;; bh=qkpiSAKiwQ9MiP Av9cxwNVneURA=; b=HqbqLSc2yc2jnkQFYiwrjjpJdaDY7Rp856jKfnEojc0nuv JynpBJkim+xkFzDRbofvfn6PAiUhGmIR3IgOxPfMLCzkYDCQsdS4fHtkIrL22NUn M3Slu5q6VxTAeBDiq5Xc7wO6Y82qdY04mMrK0KOpq0SvFBLWh0z/8YZ3HATHo=
Received: from localhost ( []) (Authenticated sender: by (Postfix) with ESMTPA id 76ADC163B; Mon, 23 Mar 2015 12:30:29 -0700 (PDT)
Date: Mon, 23 Mar 2015 14:29:36 -0500
From: Nico Williams <>
To: Eric Rescorla <>
Message-ID: <20150323192935.GR21267@localhost>
References: <> <20150323084716.GM21267@localhost> <> <20150323171955.GP21267@localhost> <> <> <>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <>
User-Agent: Mutt/1.5.21 (2010-09-15)
Archived-At: <>
Cc: "" <>
Subject: Re: [TLS] 0-RTT and Anti-Replay
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." <>
List-Unsubscribe: <>, <>
List-Archive: <>
List-Post: <>
List-Help: <>
List-Subscribe: <>, <>
X-List-Received-Date: Mon, 23 Mar 2015 19:30:31 -0000

On Mon, Mar 23, 2015 at 01:12:57PM -0500, Eric Rescorla wrote:
> If I can refer you back to the diagrams I provided in my e-mail, I
> think you'll see that this doesn't help. The issue is that the first
> time that the client's data is handled there is *no* feedback from the
> server to the client, so nothing that the server says is going to
> help.

Indeed.  If the server ever responds to the client (for that
connection), then there is feedback, but such feedback is too late, and
might never arrive (the client application times out, maybe retries).
Therefore such feedback must not be security-critical, which means that
the data sent must be more than idempotent: it must yield no meaningful
side-effects on the server-side.

Again, optimizing something like a SASL mechanism negotiation, "open
INBOX" (but not "open my-secret-design-for-xyz") -- that's fine.
Optimizing arbitrary application protocols this way is not.

This is really a security consideration, but it should come with API
design advice (since TLS lacks an abstract API).