Re: [TLS] Making post-handshake messages optional in TLS 1.3 (#676)

Mike Bishop <> Tue, 11 October 2016 18:21 UTC

Return-Path: <>
Received: from localhost (localhost []) by (Postfix) with ESMTP id 395DF12956E for <>; Tue, 11 Oct 2016 11:21:15 -0700 (PDT)
X-Virus-Scanned: amavisd-new at
X-Spam-Flag: NO
X-Spam-Score: -2.021
X-Spam-Status: No, score=-2.021 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, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H3=-0.01, RCVD_IN_MSPIKE_WL=-0.01, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001] autolearn=ham autolearn_force=no
Authentication-Results: (amavisd-new); dkim=pass (1024-bit key)
Received: from ([]) by localhost ( []) (amavisd-new, port 10024) with ESMTP id ON-IjgYwh_E5 for <>; Tue, 11 Oct 2016 11:21:12 -0700 (PDT)
Received: from ( []) (using TLSv1.2 with cipher ECDHE-RSA-AES256-SHA384 (256/256 bits)) (No client certificate requested) by (Postfix) with ESMTPS id E006E12952D for <>; Tue, 11 Oct 2016 11:21:11 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version; bh=+memZ4IXjDWhmYyE8R+1RH2VItHo00uCQfA8szFk/0w=; b=NRa4AlYG+dNaxdDKYMVe4jMocduiPlsTfTEACmBtAnJelp/YTkwRLEIEmiPL+o5RIGgHRfuFXhnRrYiJIDM71+woBaZR8cCirlh5Fzze+E/qFIbyVTBbJuDZdmVKSmgvgJM0HQxNcfaLZsX2CqXWGqISWJE9AuTzry0eEXpLL3c=
Received: from ( by ( with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P384) id 15.1.659.11; Tue, 11 Oct 2016 18:21:08 +0000
Received: from ([]) by ([]) with mapi id 15.01.0659.020; Tue, 11 Oct 2016 18:21:08 +0000
From: Mike Bishop <>
To: Andrei Popov <>, Eric Rescorla <>, Hannes Tschofenig <>
Thread-Topic: [TLS] Making post-handshake messages optional in TLS 1.3 (#676)
Date: Tue, 11 Oct 2016 18:21:07 +0000
Message-ID: <>
References: <> <> <> <>
In-Reply-To: <>
Accept-Language: en-US
Content-Language: en-US
authentication-results: spf=none (sender IP is );
x-originating-ip: [2001:4898:80e8:2::390]
x-ms-office365-filtering-correlation-id: 8f784c90-40cf-4095-eddc-08d3f2035ef4
x-microsoft-exchange-diagnostics: 1; DM2PR0301MB0846; 7:8H+Ke3iO2f0V39NzPw6x+NvjgxWdRgPf3CQHatimbJyG3Wi/lBOXHsyi9hZfoIn2+1JEqgLJrRRNoxeawq6llhnlT6MOycvFO4HEMud8LQ5UGJeiU30/8/TFoT38X8bYuZqxAU7+ahbj/z0qVIaxgf9ai7xxhz1lX8j/8h0pcWI2lHAkgKf1qfNWFctk+YOdQCLpRtjY7+2HRS5l3x2Zx65j6LWys97eZ6cgTLYScRXjJxfHGnx6a3IHqstPyrhD0l0gNl9iG1FDd0bwWLF7f11Vzrh3ovNP5D+w3fxyaC10tceHzHDjonA4z2SgUc/FdjE9PBgfuzIQi+/+cHK43IP/M6TAgu+hhTE/HQR4WZQeFCF3p88KRblKIndYyQkH
x-microsoft-antispam: UriScan:;BCL:0;PCL:0;RULEID:;SRVR:DM2PR0301MB0846;
x-microsoft-antispam-prvs: <>
x-exchange-antispam-report-test: UriScan:(158342451672863)(166708455590820)(248736688235697)(21748063052155);
x-exchange-antispam-report-cfa-test: BCL:0; PCL:0; RULEID:(61425038)(6040176)(601004)(2401047)(5005006)(8121501046)(3002001)(10201501046)(6055026)(61426038)(61427038); SRVR:DM2PR0301MB0846; BCL:0; PCL:0; RULEID:; SRVR:DM2PR0301MB0846;
x-forefront-prvs: 00922518D8
x-forefront-antispam-report: SFV:NSPM; SFS:(10019020)(7916002)(377454003)(199003)(189002)(24454002)(105586002)(101416001)(106356001)(99286002)(93886004)(33656002)(106116001)(19625215002)(19300405004)(76176999)(561944003)(54356999)(16236675004)(11100500001)(76576001)(2561002)(86612001)(2421001)(5001770100001)(19617315012)(97736004)(2906002)(19580395003)(8676002)(81166006)(19580405001)(81156014)(4326007)(7736002)(7906003)(50986999)(586003)(7846002)(6116002)(74316002)(10710500007)(102836003)(3660700001)(68736007)(3280700002)(8936002)(2420400007)(15650500001)(9686002)(7110500001)(189998001)(86362001)(10090500001)(87936001)(2950100002)(77096005)(2900100001)(5002640100001)(3900700001)(122556002)(7696004)(15975445007)(92566002)(5005710100001)(1511001)(10400500002)(10290500002)(8990500004)(5660300001)(19609705001)(790700001)(3826002); DIR:OUT; SFP:1102; SCL:1; SRVR:DM2PR0301MB0846;; FPR:; SPF:None; PTR:InfoNoRecords; A:1; MX:1; LANG:en;
received-spf: None ( does not designate permitted sender hosts)
spamdiagnosticoutput: 1:99
spamdiagnosticmetadata: NSPM
Content-Type: multipart/alternative; boundary="_000_BN6PR03MB2708347484ED81B842ADE93487DA0BN6PR03MB2708namp_"
MIME-Version: 1.0
X-MS-Exchange-CrossTenant-originalarrivaltime: 11 Oct 2016 18:21:07.9733 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: 72f988bf-86f1-41af-91ab-2d7cd011db47
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM2PR0301MB0846
Archived-At: <>
Cc: "" <>
Subject: Re: [TLS] Making post-handshake messages optional in TLS 1.3 (#676)
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." <>
List-Unsubscribe: <>, <>
List-Archive: <>
List-Post: <>
List-Help: <>
List-Subscribe: <>, <>
X-List-Received-Date: Tue, 11 Oct 2016 18:21:15 -0000

There are a couple of scenarios we need to keep in mind:

1.       Existing HTTP/1.1 exchanges over upgraded TLS clients.  If we need a brief RFC that says post-handshake client auth is allowed for HTTP/1.1 over TLS 1.3, that’s fine.

2.       Client authentication in HTTP/2.  Slightly longer RFC for this (but possibly the same one) that says post-handshake client auth is allowed for HTTP/2, then describing how to use the context (and new HTTP/2 frames, if needed) to bind the PHA exchange to one or more streams.

3.       Secondary server authentication in HTTP/2.  This approach still doesn’t give a clean way to do this, unless we use exporters and roll our own.  That has proven to be a little hazardous to everyone’s peace of mind, but remains something we can refine in the future.

What concerns me more, though, is the prospect that a lot of TLS implementations would simply omit support.  Obviously, it’s not used in most HTTP sessions, and you may be an implementation whose niche doesn’t require supporting it – but since the application profile allows it, you still need to know how to decline if asked.  If it’s allowed in HTTP, which I assume is a supported workload for most implementations, then it’s allowed in your application profile and therefore prohibiting it by default doesn’t seem like it buys you much.  Having a simple way to disclaim support, either at connection time or upon receiving a challenge, seems like it provides more simplicity for the implementations that want to omit it.

From: Andrei Popov
Sent: Tuesday, October 11, 2016 11:09 AM
To: Eric Rescorla <>; Hannes Tschofenig <>; Mike Bishop <>
Subject: RE: [TLS] Making post-handshake messages optional in TLS 1.3 (#676)

+ Mike who has additional concerns with this.



From: TLS [] On Behalf Of Eric Rescorla
Sent: Tuesday, October 11, 2016 10:22 AM
To: Hannes Tschofenig <<>>
Subject: Re: [TLS] Making post-handshake messages optional in TLS 1.3 (#676)

I think it would be simpler (and deal with most cases) to only allow this for specific application
profiles (we would then allow it in HTTP/H2, perhaps with some small -bis RFC).

Here is a PR for this:

Andrei, would this cause you any problem? My impression was that this use case was only
about HTTP/H2.


On Tue, Oct 11, 2016 at 9:37 AM, Hannes Tschofenig <<>> wrote:
Hi Nick,

given my discussion with Martin in this thread I like
your idea of making the post-handshake messages optional since it allows
me to develop a TLS 1.3 client that is smaller in code size.


On 10/08/2016 03:03 AM, Nick Sullivan wrote:
> There has been a lot of discussion lately about post-handshake messages
> that do not contain application data and how to handle them. This PR is
> an attempt to make the story more explicit by adding a new
> post_handshake extension to TLS 1.3.
> Supporting all types of post-handshake messages can require extra
> complexity and logic, even when the features that these messages enable
> are not needed. Some types of connections/implementations don't need to
> support key updates (some unidirectional connections), session tickets
> (pure PSK implementations) and post-handshake client auth (most
> browsers). These are all currently SHOULDs in the spec and they don't
> need to be.
> In order to simplify the logic around dealing with post-handshake
> messages, this proposal makes support for each of these modes explicit
> via a new handshake extension. This change also makes the path to
> introducing other types of post-handshake messages in future drafts more
> explicit.
> PR:
> Nick
> _______________________________________________
> TLS mailing list

TLS mailing list<>