Re: [TLS] Add max_early_data_size to TicketEarlyDataInfo

Eric Rescorla <ekr@rtfm.com> Mon, 10 October 2016 20:52 UTC

Return-Path: <ekr@rtfm.com>
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 9758C129756 for <tls@ietfa.amsl.com>; Mon, 10 Oct 2016 13:52:17 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.899
X-Spam-Level:
X-Spam-Status: No, score=-1.899 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, HTML_MESSAGE=0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=rtfm-com.20150623.gappssmtp.com
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 xmqiBGp0tKmy for <tls@ietfa.amsl.com>; Mon, 10 Oct 2016 13:52:15 -0700 (PDT)
Received: from mail-yb0-x229.google.com (mail-yb0-x229.google.com [IPv6:2607:f8b0:4002:c09::229]) (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 00583129758 for <tls@ietf.org>; Mon, 10 Oct 2016 13:52:14 -0700 (PDT)
Received: by mail-yb0-x229.google.com with SMTP id e2so490178ybi.1 for <tls@ietf.org>; Mon, 10 Oct 2016 13:52:14 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=rtfm-com.20150623.gappssmtp.com; s=20150623; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :cc; bh=6oO6SqD/wL7z6mA2nqE7Qztsbr6+A+U7AtCqk9+V9J4=; b=OKyjMHHXMk8HyxzgFqdp46zgKUSd+3/NsXYe/q0i1PSFjVb3+E9ZLTCRcitAhjsyBY 5fH+mEmts1KlKxwm5ZtOfKQIdB+4cf3NhizK8bry+A4XoL7SeBWGO8HqbpxuIl1w/t80 kj0D8YnjxbHop/OZCwnG+OD0NuhXbVFsdgsAgj5QrIoGufVSABSEowmkAeLpD6z6YMKj EYpxk5+Ta0sZdXup7iq6RlwX4zq6SnUXeM4ZhItmnpZwAg/Gyb5MLVZ0SwGxnpAYwJgw NEfOx9QU2AYQcN1UpoNJqFdHrj69edaLHlYmdDDNGMXDdnXRCWn+m2DgF32Y0jVR/Iu1 CUMg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:in-reply-to:references:from:date :message-id:subject:to:cc; bh=6oO6SqD/wL7z6mA2nqE7Qztsbr6+A+U7AtCqk9+V9J4=; b=NPERpqhQLo1xh2LtLwvSj+Xn/B9lyGdXBsxvbCme1QiGvoloZ825WgLiazd61yCO6x aLe5rsDWFbicDL6PXq5G2/iZLzd7zwZ784p1pWbhnEwbE9fCD3S3zxR+HaXrPY2GltIR HflQn28j/UrvoZqQ7crZSfYnOMqr9X80ejBP3enfKsJL8fGNgjn6+nASbQZUAOiQ7aYm /GhDz80hkCrDc87Uuf074ytubNyIUXYxe5sEqPoAgpvO6qjwf2ZR0rB9498jeo+0Y8A2 JmG8M7+nS1NDFF1aOvLFAxAvIzaQ9cb/ruAGWeiKRE/nn5WDUfDDwF3VfzYpk7//XCZ/ 9XcA==
X-Gm-Message-State: AA6/9RnQpDxX3cv52BQpCn5NrrLYr+YoLp+MraSwALEiaBTHMOT/J9s99J5P4ONXWHVB5SOtqynlutazP2AmpQ==
X-Received: by 10.37.171.234 with SMTP id v97mr96377ybi.161.1476132734260; Mon, 10 Oct 2016 13:52:14 -0700 (PDT)
MIME-Version: 1.0
Received: by 10.129.75.212 with HTTP; Mon, 10 Oct 2016 13:51:33 -0700 (PDT)
In-Reply-To: <CABcZeBNqD7xywry4sLoPFst15csBDu5Mu-bPR4XkXZ0irr=Dbw@mail.gmail.com>
References: <1475859457.3070375.749089329.59EED0F8@webmail.messagingengine.com> <82f39c83-0040-cf87-94ae-16c321eecc95@akamai.com> <CAF8qwaBhVdxyXUc=p0kFHrB=bfE7KaXf229nEfFh_uFSEiHTjw@mail.gmail.com> <CABcZeBNqD7xywry4sLoPFst15csBDu5Mu-bPR4XkXZ0irr=Dbw@mail.gmail.com>
From: Eric Rescorla <ekr@rtfm.com>
Date: Mon, 10 Oct 2016 13:51:33 -0700
Message-ID: <CABcZeBONibJ5Aa94VTthm=Cj7U3chZ6Y47bh=U4bs8+nfPGt0w@mail.gmail.com>
To: David Benjamin <davidben@chromium.org>
Content-Type: multipart/alternative; boundary="94eb2c0ce1f8448690053e88ef91"
Archived-At: <https://mailarchive.ietf.org/arch/msg/tls/3wdrNDQ6y8KK5x-fbG9-hszkRZE>
Cc: Filippo Valsorda <filippo@cloudflare.com>, Drew Springall <aaspring@umich.edu>, Filippo Valsorda <ml@filippo.io>, "tls@ietf.org" <tls@ietf.org>
Subject: Re: [TLS] Add max_early_data_size to TicketEarlyDataInfo
X-BeenThere: tls@ietf.org
X-Mailman-Version: 2.1.17
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: Mon, 10 Oct 2016 20:52:17 -0000

Merged

On Sat, Oct 8, 2016 at 4:00 PM, Eric Rescorla <ekr@rtfm.com> wrote:

> I agree that this is a good idea. Absent objection, i'm going to merge
> this PR on Monday
>
> On Fri, Oct 7, 2016 at 3:06 PM, David Benjamin <davidben@chromium.org>
> wrote:
>
>> We were also expecting to want to bound how much traffic a server could
>> be compelled to skip over without making progress. It actually didn't occur
>> to me we could let the client know the bounds, rather than just making up a
>> conservative bound (there's only so much data you can get into an RTT) and
>> hoping nothing breaks. That's a good idea.
>>
>> Units is a little interesting. For those purposes, this limit would kick
>> in whether or not the early data could be decrypted, so the server-side
>> limit would be measured in ciphertext, possibly even including record
>> headers. (Although any inaccuracies in converting could be done by just
>> advertising an underestimate and breaking peers that send pathologically
>> silly things like all one-byte records. So it doesn't matter much.)
>>
>> On Fri, Oct 7, 2016 at 5:45 PM Benjamin Kaduk <bkaduk@akamai.com> wrote:
>>
>>> On 10/07/2016 11:57 AM, Filippo Valsorda wrote:
>>>
>>> Hello,
>>>
>>> Cloudflare's current (not definitive) plan for 0-RTT is essentially to
>>> decide whether or not to answer to requests in the 0.5 flight on a
>>> case-by-case basis. That obviously requires reading all of them and
>>> caching the ones we don't want to answer.
>>>
>>> To mitigate the obvious DoS concern we plan to use the ticket age and a
>>> per-machine replay cache.
>>>
>>> However, chatting with Drew (cc'd) we realized that clients could still
>>> send huge amounts of 0-RTT data that we would have to buffer. Once a
>>>
>>>
>>> Well, "have to" is perhaps a bit of a stretch; the client should be
>>> prepared to cope reasonably if you abort the connection arbitrarily.
>>>
>>
>> I think the concern is that a well-meaning client may not necessarily do
>> a retry here and instead read this even as a network error. And if it did,
>> the next attempt, if there is still a 0-RTT-able ticket available, may hit
>> this again anyway...
>>
>> client sent early data, there's no way to accept only a part of it or to
>>> verify that the client is not replaying before reading it all. But if we
>>> were to close the connection after a given amount of data we risk
>>> failing connections from legal clients.
>>>
>>> I propose to add a field max_early_data_size to TicketEarlyDataInfo, to
>>> inform clients about the maximum amount of 0-RTT data they are allowed
>>> to send, allowing servers to safely terminate connections that exceed
>>> it.
>>>
>>>
>>> But this seems like a good idea; I left a couple of ~editorial notes on
>>> github.
>>>
>>> -Ben
>>>
>>>
>>> https://github.com/tlswg/tls13-spec/pull/674
>>>
>>> [Please keep me in the CC of replies]
>>>
>>> _______________________________________________
>>> TLS mailing listTLS@ietf.orghttps://www.ietf.org/mailman/listinfo/tls
>>>
>>>
>>> _______________________________________________
>>> TLS mailing list
>>> TLS@ietf.org
>>> https://www.ietf.org/mailman/listinfo/tls
>>>
>>
>> _______________________________________________
>> TLS mailing list
>> TLS@ietf.org
>> https://www.ietf.org/mailman/listinfo/tls
>>
>>
>