Re: [TLS] Separate APIs for 0-RTT

Benjamin Kaduk <bkaduk@akamai.com> Fri, 23 June 2017 02:31 UTC

Return-Path: <bkaduk@akamai.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 861D91242EA for <tls@ietfa.amsl.com>; Thu, 22 Jun 2017 19:31:03 -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, HTML_MESSAGE=0.001, SPF_PASS=-0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=akamai.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 v9Nl9mS4R4Fs for <tls@ietfa.amsl.com>; Thu, 22 Jun 2017 19:31:01 -0700 (PDT)
Received: from mx0a-00190b01.pphosted.com (mx0a-00190b01.pphosted.com [IPv6:2620:100:9001:583::1]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id E7520120724 for <tls@ietf.org>; Thu, 22 Jun 2017 19:31:01 -0700 (PDT)
Received: from pps.filterd (m0050095.ppops.net [127.0.0.1]) by m0050095.ppops.net-00190b01. (8.16.0.21/8.16.0.21) with SMTP id v5N2R7Co032652; Fri, 23 Jun 2017 03:30:59 +0100
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=akamai.com; h=subject : to : cc : references : from : message-id : date : mime-version : in-reply-to : content-type; s=jan2016.eng; bh=OgkBFL+v9IXmZunQbv1cFAKNNxCqCfYV/MNlW4PAp2A=; b=ko9daecJEXH4r8AyciZfCxN+9sWjteCzRo3u6HiNjvfUb7vQXgpxlpKgKNl81gAvQ+HU rNsEYDmAwXR1dIKB1vkvRCAvUO7Ys+dBvzoifewpIaUIwNW3r+RwOzETBNmSiwCE7PUC rx5U3odWY4rGael9n1wwHUhxfZYoYxmec8k+WM14U85RtKvPcaG7pUEVlt1DOIoGe9AA BgKlpIE5Lewg9YzfJXu6LeJIZfHCTxngkat8xuf3vKOa486sTAMWSiltG4zFs1jC/L6z JZes+5vyjfHmd/Ej9gt+iln9UBMZlMweIank6qnvmwDoUm0ZFRp5MzfURC+0l+jXcYMp qw==
Received: from prod-mail-ppoint3 ([96.6.114.86]) by m0050095.ppops.net-00190b01. with ESMTP id 2b8kpx24cr-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Fri, 23 Jun 2017 03:30:59 +0100
Received: from pps.filterd (prod-mail-ppoint3.akamai.com [127.0.0.1]) by prod-mail-ppoint3.akamai.com (8.16.0.17/8.16.0.17) with SMTP id v5N2PkL5012296; Thu, 22 Jun 2017 22:30:58 -0400
Received: from prod-mail-relay15.akamai.com ([172.27.17.40]) by prod-mail-ppoint3.akamai.com with ESMTP id 2b4yrvf91r-1; Thu, 22 Jun 2017 22:30:58 -0400
Received: from [172.19.17.86] (bos-lpczi.kendall.corp.akamai.com [172.19.17.86]) by prod-mail-relay15.akamai.com (Postfix) with ESMTP id BE74420064; Thu, 22 Jun 2017 20:30:57 -0600 (MDT)
To: Timothy Jackson <tjackson@mobileiron.com>, Martin Thomson <martin.thomson@gmail.com>, David Benjamin <davidben@chromium.org>
Cc: "tls@ietf.org" <tls@ietf.org>
References: <CABcZeBMpeBhcKoJYuMwLyER0VBh+RtVr6amWMPos3CJipXYHcA@mail.gmail.com> <8e206c83-645f-6389-a7bd-ddd51e747ea2@akamai.com> <CAAF6GDfyqMndibTujY83_Xha2dZn7qvaCpZJw7xZ--b=-EOaYA@mail.gmail.com> <bf4506e7-13ce-ce7f-d20e-67a0d73c642a@akamai.com> <CAAF6GDePg9FL0JgzrWrTcrK7X=J0_fKjHVCj9EScvyQobJWTKA@mail.gmail.com> <20170613183536.GA12760@LK-Perkele-V2.elisa-laajakaista.fi> <63c8ac33-489c-0ace-d4ba-b960cd965281@akamai.com> <DM2PR21MB0091B8DC8780B4FA67464F0A8CC20@DM2PR21MB0091.namprd21.prod.outlook.com> <20170613205530.GB13223@LK-Perkele-V2.elisa-laajakaista.fi> <e5ab9945-054b-67bf-beef-9fce7a4a6f36@nic.cz> <CAF8qwaCuDk3oemXeKyEzzRgg2oCMA22qMBXQaL4YW3yWAeXUvA@mail.gmail.com> <DM2PR21MB009176844759F65141E1D6EA8CC30@DM2PR21MB0091.namprd21.prod.outlook.com> <CAF8qwaCwHYJP3p569CAN-9Fmd_ddDjg9d9wPi8j3uSrno_wHyw@mail.gmail.com> <CABkgnnXr=YaFVuXraOCJjqsfy+D98bEfasW8jLgDw50DhKkyww@mail.gmail.com> <bi1n55pr8mut29311935117k.1498183830709@email.android.com>
From: Benjamin Kaduk <bkaduk@akamai.com>
Message-ID: <c9c4f9be-5afd-1662-2290-f7f2bc3e4754@akamai.com>
Date: Thu, 22 Jun 2017 21:30:57 -0500
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.1.1
MIME-Version: 1.0
In-Reply-To: <bi1n55pr8mut29311935117k.1498183830709@email.android.com>
Content-Type: multipart/alternative; boundary="------------1D2A9AF36FED06447DE559E2"
Content-Language: en-US
X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10432:, , definitions=2017-06-22_10:, , signatures=0
X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 spamscore=0 suspectscore=0 malwarescore=0 phishscore=0 adultscore=0 bulkscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.0.1-1703280000 definitions=main-1706230039
X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10432:, , definitions=2017-06-22_10:, , signatures=0
X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 priorityscore=1501 malwarescore=0 suspectscore=0 phishscore=0 bulkscore=0 spamscore=0 clxscore=1011 lowpriorityscore=0 impostorscore=0 adultscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.0.1-1703280000 definitions=main-1706230040
Archived-At: <https://mailarchive.ietf.org/arch/msg/tls/UG1guHXcFFiB_6RpaSFBswnvXvQ>
Subject: Re: [TLS] Separate APIs for 0-RTT
X-BeenThere: tls@ietf.org
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." <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: Fri, 23 Jun 2017 02:31:03 -0000

On 06/22/2017 09:10 PM, Timothy Jackson wrote:
> +1 and a preference for MUST, just so people understand the importance.
>
> Since we're agreed that 0-RTT data and 1-RTT data have (almost) the
> same security properties once the handshake completes, it seems to me,
> unless I've missed something, that a lot of protocols will accept
> 0-RTT but withhold the response until after the handshake completes. I
> expect this massively simplifies the analysis the for the app developers.
>
> Clientdata = readData()
> Reply = CreateReply(client data); //time intensive operation (e.g.
> Database, CDN cache lookup)
>
> While(!clientFinished())
> Wait(); //do nothing until 1-RTT finished
>
> Send(reply)
>
> This has the benefit of allowing slow lookups/processing to happen
> against 0-RTT, while delaying the "risky actions" until after 1-RTT.
> If I'm not mistaken, it would also make timing 

This is still the server taking action on 0-RTT data before the
handshake completes, using resources on potentially spoofed input. 
Caution is needed to not utilize excessive server resources in such cases.

-Ben

> attacks harder since any cache misses would be at least partly masked
> by the time required for the 1-RTT handshake.
>
> Dual streams seems to just add complexity here. What I really care
> about as a developer is whether I can fully trust the 0-RTT data,
> which is determined by whether the handshake is finished.