Re: [TLS] 2nd WGLC: draft-ietf-tls-tls13

Eric Rescorla <> Tue, 18 July 2017 13:08 UTC

Return-Path: <>
Received: from localhost (localhost []) by (Postfix) with ESMTP id A207313188D for <>; Tue, 18 Jul 2017 06:08:35 -0700 (PDT)
X-Virus-Scanned: amavisd-new at
X-Spam-Flag: NO
X-Spam-Score: 0.09
X-Spam-Status: No, score=0.09 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, HTML_MESSAGE=0.001, HTTPS_HTTP_MISMATCH=1.989, RCVD_IN_DNSWL_NONE=-0.0001] autolearn=ham autolearn_force=no
Authentication-Results: (amavisd-new); dkim=pass (2048-bit key)
Received: from ([]) by localhost ( []) (amavisd-new, port 10024) with ESMTP id b88ivGasv4LI for <>; Tue, 18 Jul 2017 06:08:33 -0700 (PDT)
Received: from ( [IPv6:2607:f8b0:4002:c09::22b]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by (Postfix) with ESMTPS id 58D2E12EC3F for <>; Tue, 18 Jul 2017 06:08:33 -0700 (PDT)
Received: by with SMTP id 70so6128817ybn.2 for <>; Tue, 18 Jul 2017 06:08:33 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;; s=20150623; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :cc; bh=VRo6GRljCO9Xo5Wu3Ssc/K5b7zAOoZRwYbRQrUJDr/M=; b=rN/y/a9CBqnSbyFQLu52o1d6t6Uh9NeHHtpVLDKt7m5WlulBGcYpMmeA8IFwVfytl8 MsekRfrQp2Fvt7Efyq30ThB8TJLL/s6QYbafnVNuOff1DfZY9/PK4KQxJ7ii9FKeZGs3 Llb24aO+4r0X5Aygj/FjZPFFJyv+bfUZURreSb5Zdl2V26FzUUyPtV1ElCasEsHgsZbQ 10uVmuAsjaXN1QH8JbSSYdB3pPhl6UKLS48RQMQfgKNpvjWD+GCKOqVoj8b8PuYla7c+ 4P+6bwDAfCCrFwu3J+Nd9i646sSZ2PZIfYXTU5QcCeXQTXuNWBFPLtfbFgGG8cYqrARP SE1Q==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;; s=20161025; h=x-gm-message-state:mime-version:in-reply-to:references:from:date :message-id:subject:to:cc; bh=VRo6GRljCO9Xo5Wu3Ssc/K5b7zAOoZRwYbRQrUJDr/M=; b=ZQPfN3A0MR4pHdi9iqdT2kxqMUu/5GQZEdQTvlDIHQg6J3XOQCLP7bBSxzufXyH4sG bMB4/P2OUBSn5Df68BaPFms4edz8OLSRoWezQyfFbUPWkba1EU2UCufPGV1vfvhYjuJO 089F1b3e45vS45XLrcg0ICpKu3EWjZPVcULVypaZnWOlftezjXK0xA8neRWCA+sLA/rG atMojdWVhbFFO+cDjxH82/M748MQqBN39EnZGZmpATLVXD0q9F5dtGs+gEUGvo4Uu6JI 6aJhWjJ2CQtzhkg/vM/N1VLty7OfBZvOGozP/CU3tdvwxKoFtdFskst3J3oN0vw+aphX KSlA==
X-Gm-Message-State: AIVw113uJWCxoCd7aWXFvQRpsJ6GorvOT97+vWRkXPy3UQa2dIkvINhP DL6ntuEA8dEEIr/vDBGkb09AzUhKTjMg
X-Received: by with SMTP id m144mr1251080ybf.256.1500383312533; Tue, 18 Jul 2017 06:08:32 -0700 (PDT)
MIME-Version: 1.0
Received: by with HTTP; Tue, 18 Jul 2017 06:07:52 -0700 (PDT)
In-Reply-To: <>
References: <> <> <> <>
From: Eric Rescorla <>
Date: Tue, 18 Jul 2017 06:07:52 -0700
Message-ID: <>
To: Benjamin Kaduk <>
Cc: Sean Turner <>, "<>" <>
Content-Type: multipart/alternative; boundary="94eb2c07cd065ef41f05549736a8"
Archived-At: <>
Subject: Re: [TLS] 2nd WGLC: draft-ietf-tls-tls13
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." <>
List-Unsubscribe: <>, <>
List-Archive: <>
List-Post: <>
List-Help: <>
List-Subscribe: <>, <>
X-List-Received-Date: Tue, 18 Jul 2017 13:08:36 -0000

On Wed, Jul 12, 2017 at 3:39 PM, Benjamin Kaduk <>; wrote:

> On 07/11/2017 03:50 PM, Eric Rescorla wrote:
> On Tue, Jul 11, 2017 at 1:39 PM, Benjamin Kaduk <>;
> wrote:
>> Another question I also relates to 0-RTT, specifically with the freshness
>> checks and the case where the computed expected_arrival_time is in outside
>> "the window" by virtue of being in the future. (See the Note: at the end of
>> section 8.2.) (The case where the expected_arrival_time is in the past can
>> clearly be treated as "this is a stale request" and the current text about
>> aborting with "illegal_parameter" or rejecting 0-RTT but accepting the PSK
>> is acceptable, even if it doesn't give guidance as to what might cause
>> someone to pick one behavior or the other.)  I am wondering whether we
>> should consider this to be a potential attack and abort the connection.  I
>> concede that there are likely to be cases where this
>> situation occurs incidentally, for clients with extremely fast-running
>> clocks, and potential timezone/suspend-resume weirdness.  But there is also
>> the potential for a client that deliberately lies about its ticket age and
>> intends to replay the wire messages when the age becomes in window, or an
>> attacker that records the messages and knows that the client's clock is too
>> fast, or other cases.  (A client that deliberately does this could of
>> course just send the same application data later as well.)  If the time is
>> only a few seconds out of the window, then delaying a response until it is
>> in the window and only then entering it into the single-use cache might be
>> reasonable, but if the time is very far in the future, do we really want to
>> try to succeed in that case?
> If the time is very far in the future, the text is supposed to tell you to
> fall back
> to 1-RTT...
> I agree that that is what the text currently says.  I'm questioning
> whether that's actually the behavior we want.
> That is, in this case, the CH+0RTT data can be replayed by an observer
> once enough time has elapsed that the expected_arrival_time is within the
> window, similar to one of the reordering attacks mentioned elsewhere.  We
> could add the CH to the strike register in this case, which would bloat its
> storage somewhat and have entries that take longer than the window to
> expire out.
> I don't have a good sense for how often we expect postdated CHs to occur
> and whether the ensuing breakage would be manageable, but I'm not sure that
> we've thought very hard as a group about this question.

I think post-dated are going to happen pretty often based on what I
understand from
Kyle and others. I wouldn't be comfortable with hard fail, especially given
that this
just seems like the dual of the other case. Adding the CH to the list seems
a problem because it might stay forever.


> It looks like we no longer do anything to obsolete/reserve/similar the
>> HashAlgorithm and SignatureAlgorithm registries; was that just an editorial
>> mixup or an intended change?
> updates/#orphaned-registries
> <>
> Oh right, I forgot about that -- thanks.
> We removed the API guidance for separate APIs for read/writing early data
>> versus regular data, which I believe had consensus.  But I thought we were
>> going to say something carefully worded about having an API to determine
>> whether the handshake has completed (or client Finished has been validated,
>> or ...), and it looks like this is buried at the end of E.5(.0), with the
>> string "API" not appearing.  It might be useful to make this a little more
>> prominent/discoverable, whether by subsection heading or otherwise.
> Suggestions welcome for where this would be better....
> I'll see if I have time to think about it some more.
> -Ben