Re: [Unbearable] on not listing 'Sec-Token-Binding' in the Connection header field?
Andrei Popov <Andrei.Popov@microsoft.com> Tue, 07 February 2017 22:38 UTC
Return-Path: <Andrei.Popov@microsoft.com>
X-Original-To: unbearable@ietfa.amsl.com
Delivered-To: unbearable@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id B3A6F129432 for <unbearable@ietfa.amsl.com>; Tue, 7 Feb 2017 14:38:58 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.021
X-Spam-Level:
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, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H4=-0.01, RCVD_IN_MSPIKE_WL=-0.01, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001, URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (1024-bit key) header.d=microsoft.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 SBr-VoNlKKYI for <unbearable@ietfa.amsl.com>; Tue, 7 Feb 2017 14:38:56 -0800 (PST)
Received: from NAM03-CO1-obe.outbound.protection.outlook.com (mail-co1nam03on0137.outbound.protection.outlook.com [104.47.40.137]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 6194C1294BB for <unbearable@ietf.org>; Tue, 7 Feb 2017 14:38:56 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version; bh=uvQugibEr8z1T0ZNR446oXn2qzISGCQwoZIBwU0n+kk=; b=LTqE7VO+ZuWh0r5vYoqvM4siuvbT2D7Fh42TUSmac48Y/TgTXxIhfC/3T6J6F9YQttmRZapABZHxtE2eOtv4ApK6PYZAHqfSbwoa/EGnzpSGv71XWTM6TCYjeuKELeSS/dFw1fBfR6nvBfnyh8uQUe3EoXuAMUnEBfY4jcFx9IA=
Received: from CY1PR0301MB0842.namprd03.prod.outlook.com (10.160.163.148) by CY1PR0301MB0841.namprd03.prod.outlook.com (10.160.163.147) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P384) id 15.1.888.16; Tue, 7 Feb 2017 22:38:54 +0000
Received: from CY1PR0301MB0842.namprd03.prod.outlook.com ([10.160.163.148]) by CY1PR0301MB0842.namprd03.prod.outlook.com ([10.160.163.148]) with mapi id 15.01.0888.026; Tue, 7 Feb 2017 22:38:54 +0000
From: Andrei Popov <Andrei.Popov@microsoft.com>
To: =JeffH <Jeff.Hodges@KingsMountain.com>, IETF TokBind WG <unbearable@ietf.org>
Thread-Topic: [Unbearable] on not listing 'Sec-Token-Binding' in the Connection header field?
Thread-Index: AQHSgY/umVnjYtjx7keEPN17kRprnKFeIDFQ
Date: Tue, 07 Feb 2017 22:38:54 +0000
Message-ID: <CY1PR0301MB084254BDDD2E72104D20BE9A8C430@CY1PR0301MB0842.namprd03.prod.outlook.com>
References: <e56976df-c7e7-6dde-8f27-9aeb152f66ab@KingsMountain.com>
In-Reply-To: <e56976df-c7e7-6dde-8f27-9aeb152f66ab@KingsMountain.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
authentication-results: spf=none (sender IP is ) smtp.mailfrom=Andrei.Popov@microsoft.com;
x-originating-ip: [2001:4898:80e8:9::1d2]
x-ms-office365-filtering-correlation-id: b996e95c-6d54-43bf-dcf7-08d44faa18f1
x-ms-office365-filtering-ht: Tenant
x-microsoft-antispam: UriScan:; BCL:0; PCL:0; RULEID:(22001)(48565401081); SRVR:CY1PR0301MB0841;
x-microsoft-exchange-diagnostics: 1; CY1PR0301MB0841; 7:DVg0cyVCzM+M7L4ISTCBtf5Q7924PicB9jKmfpNV7MBPSklJgrS5qVz0Y0yC/2OQVB/i6zrFd1yDsi1oVQ+b76hSkgJXZ7eUteUogxw4NvZWACdbmO5BaEmOAGW1sWkrS2d26vMOuyDPwBK9kPRF5Iy+hlPAo9AkxgyOSKZ7jbsnSDxsEH3x4MCLo1hTKKlUA51O8Hi09w2ikCbtnnXCL1Hpnxdi9RDEAioSUtQV20X+BCuvrq4EmG6OVSckOOY2IKlfqrmylMd5NcWlyhvCRtIispmHjcDx1oN7cU4zpJvhl5TauIrbHRjUWcX37+kmk/3529WwzzZgBmgSG6lPcov44fbafbmqd5HRgH+vyvGmzLdKucigc6JTiyfomSWVGELwATlvmFLrMHxt39h1bIrbQSc8z3ZVTECAXAznQlkonszB7U4M9WlvXKTosXs0QQlHs1BdaJHVuxZ2DpV1vc/3lirrB6d3jwL7VLIk8LJN9Bw/Km2dcKoXsjbQjXED9Y/eOePmCBat9LEuOgwx6GOgdlqdOAtCTh1gFrpz6UA=
x-microsoft-antispam-prvs: <CY1PR0301MB08413CB10F470F9D12ECA9128C430@CY1PR0301MB0841.namprd03.prod.outlook.com>
x-exchange-antispam-report-test: UriScan:(192374486261705)(788757137089);
x-exchange-antispam-report-cfa-test: BCL:0; PCL:0; RULEID:(61425038)(6040375)(601004)(2401047)(20170203043)(2017020603029)(5005006)(8121501046)(3002001)(10201501046)(6055026)(61426038)(61427038)(6041248)(20161123562025)(20161123558025)(20161123555025)(20161123560025)(20161123564025)(6072148); SRVR:CY1PR0301MB0841; BCL:0; PCL:0; RULEID:; SRVR:CY1PR0301MB0841;
x-forefront-prvs: 0211965D06
x-forefront-antispam-report: SFV:NSPM; SFS:(10019020)(6009001)(7916002)(39850400002)(39410400002)(39840400002)(39450400003)(39860400002)(189002)(199003)(377454003)(13464003)(5660300001)(6116002)(102836003)(92566002)(7696004)(74316002)(229853002)(2950100002)(25786008)(6506006)(6436002)(10090500001)(6306002)(9686003)(189998001)(77096006)(99286003)(55016002)(86612001)(81156014)(38730400002)(8936002)(68736007)(86362001)(81166006)(122556002)(105586002)(106356001)(101416001)(3660700001)(8990500004)(561944003)(33656002)(2906002)(10290500002)(5005710100001)(50986999)(54356999)(76176999)(106116001)(53936002)(305945005)(97736004)(2900100001)(3280700002)(7736002)(230783001)(6246003); DIR:OUT; SFP:1102; SCL:1; SRVR:CY1PR0301MB0841; H:CY1PR0301MB0842.namprd03.prod.outlook.com; FPR:; SPF:None; PTR:InfoNoRecords; MX:1; A:1; LANG:en;
received-spf: None (protection.outlook.com: microsoft.com does not designate permitted sender hosts)
spamdiagnosticoutput: 1:99
spamdiagnosticmetadata: NSPM
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-OriginatorOrg: microsoft.com
X-MS-Exchange-CrossTenant-originalarrivaltime: 07 Feb 2017 22:38:54.4959 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: 72f988bf-86f1-41af-91ab-2d7cd011db47
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY1PR0301MB0841
Archived-At: <https://mailarchive.ietf.org/arch/msg/unbearable/-YwHLuEmaQOtuAg_-pdOu0Zlj0Q>
Subject: Re: [Unbearable] on not listing 'Sec-Token-Binding' in the Connection header field?
X-BeenThere: unbearable@ietf.org
X-Mailman-Version: 2.1.17
Precedence: list
List-Id: "\"This list is for discussion of proposals for doing better than bearer tokens \(e.g. HTTP cookies, OAuth tokens etc.\) for web applications. The specific goal is chartering a WG focused on preventing security token export and replay attacks.\"" <unbearable.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/unbearable>, <mailto:unbearable-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/unbearable/>
List-Post: <mailto:unbearable@ietf.org>
List-Help: <mailto:unbearable-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/unbearable>, <mailto:unbearable-request@ietf.org?subject=subscribe>
X-List-Received-Date: Tue, 07 Feb 2017 22:38:58 -0000
When we discussed this early on, there was a strong distaste for connection headers in the HTTP community, so we've defined TB headers as per-request.
" clients MUST include the Sec-Token-
Binding header field in their HTTP requests."
We could also explicitly prohibit listing TB headers in the Connection header, if folks would like to see this clarification.
There are many reasons to keep TB headers per-request; it's not just about the proxies and terminators.
Cheers,
Andrei
-----Original Message-----
From: Unbearable [mailto:unbearable-bounces@ietf.org] On Behalf Of =JeffH
Sent: Tuesday, February 7, 2017 2:15 PM
To: IETF TokBind WG <unbearable@ietf.org>
Subject: [Unbearable] on not listing 'Sec-Token-Binding' in the Connection header field?
the below is kind of long (read it anyway :) The summary is we need to make a conscious decision regarding the Connection HTTP request header field and whether we provide guidance regarding it and the Sec-Token-Binding header (and what guidance if so), or not. This seems to have ramifications for the nascent draft-campbell-tokbind-tls-term draft, unless I'm misunderstanding things.
=JeffH
In working through the list of "Considerations for New Header Fields" at the end of rfc7231 section 8.3.1 [1], there are these two items..
o Whether it is appropriate to list the field-name in the Connection
header field (i.e., if the header field is to be hop-by-hop; see
Section 6.1 of [RFC7230]).
o Under what conditions intermediaries are allowed to insert,
delete, or modify the field's value.
Given the specifics in [RFC7230] Section 6.1 [2]..
6.1. Connection
The "Connection" header field allows the sender to indicate desired
control options for the current connection. In order to avoid
confusing downstream recipients, a proxy or gateway MUST remove or
replace any received connection options before forwarding the
message.
When a header field aside from Connection is used to supply control
information for or about the current connection, the sender MUST list
the corresponding field-name within the Connection header field. A
proxy or gateway MUST parse a received Connection header field before
a message is forwarded and, for each connection-option in this field,
remove any header field(s) from the message with the same name as the
connection-option, and then remove the Connection header field itself
(or replace it with the intermediary's own connection options for the
forwarded message).
Hence, the Connection header field provides a declarative way of
distinguishing header fields that are only intended for the immediate
recipient ("hop-by-hop") from those fields that are intended for all
recipients on the chain ("end-to-end"), enabling the message to be
self-descriptive and allowing future connection-specific extensions
to be deployed without fear that they will be blindly forwarded by
older intermediaries.
..it offhand seems that one would want to list "Sec-Token-Binding" in the Connection header field because Sec-Token-Binding is ostensibly about the connection and is hop-by-hop because TLS is hop-by-hop.
However, given our current thinking wrt TB and TLS Terminating Reverse Proxies [3], where we are contemplating one approach where such "TTRPs"
pass-through the Sec-Token-Binding header field and add a corresponding Token-Binding-Context header, one would not want to list Sec-Token-Binding in the Connection header (because a TTRP would then strip it off). However there are implementation and security considerations with this.
As one proposal, we could say in HTTPSTB something along the lines of..
[...]
Clients SHOULD NOT list the Sec-Token-Binding header field as
a connection option in the Connection header field (Section 6.1
of [RFC7230]) in order to generally enable Sec-Token-Binding
header field pass-through by intermediaries, e.g., by TLS
terminating reverse proxies (TTRP). Intermediaries MUST NOT
modify the Sec-Token-Binding header field's value. See also the
security considerations section.
[...]
Security Considerations
[...]
Not listing Sec-Token-Binding in the Connection header: this
enables TTRPs to transparently convey the Sec-Token-Binding header
field, containing a Token Binding Message, to the next tier ("backend
servers"), e.g., where security tokens containing Token Binding IDs
may be minted and validated. The communication between a TTRP and
backend servers needs to be secured against eavesdropping and
modification by unintended parties. The Token Binding Message itself
may be validated by the TTRP or by a backend server. Though, in the
latter case, the data necessary to perform such validation (i.e., the
EKM, etc.) needs to be conveyed to the entity performing it. Such
conveyance is out of scope for this specification.
Listing Sec-Token-Binding in the Connection header: if done, this
may help in ensuring that Token Binding IDs are not inadvertently
revealed to unintended parties, though may cause difficulties with
web sites employing TTRPs.
[...]
Or, we could just say "clients SHOULD list the Sec-Token-Binding header field as a connection option in the Connection header field", but that will create problems for TTRPs [3].
Or, we can just not mention the Connection header and see if anyone raises questions about it during further WG and IETF-wide review.
thoughts?
[1] <https://tools.ietf.org/html/rfc7231#section-8.3.1>
[2] <https://tools.ietf.org/html/rfc7230#section-6.1>
[3] <https://tools.ietf.org/html/draft-campbell-tokbind-tls-term>
_______________________________________________
Unbearable mailing list
Unbearable@ietf.org
https://www.ietf.org/mailman/listinfo/unbearable
- [Unbearable] on not listing 'Sec-Token-Binding' i… =JeffH
- Re: [Unbearable] on not listing 'Sec-Token-Bindin… Andrei Popov
- Re: [Unbearable] on not listing 'Sec-Token-Bindin… John Bradley
- Re: [Unbearable] on not listing 'Sec-Token-Bindin… Dirk Balfanz
- Re: [Unbearable] on not listing 'Sec-Token-Bindin… John Bradley
- Re: [Unbearable] on not listing 'Sec-Token-Bindin… Andrei Popov
- Re: [Unbearable] on not listing 'Sec-Token-Bindin… Amos Jeffries
- Re: [Unbearable] on not listing 'Sec-Token-Bindin… John Bradley
- Re: [Unbearable] on not listing 'Sec-Token-Bindin… Amos Jeffries
- Re: [Unbearable] on not listing 'Sec-Token-Bindin… Andrei Popov
- Re: [Unbearable] on not listing 'Sec-Token-Bindin… John Bradley
- Re: [Unbearable] on not listing 'Sec-Token-Bindin… =JeffH
- Re: [Unbearable] on not listing 'Sec-Token-Bindin… Brian Campbell
- Re: [Unbearable] on not listing 'Sec-Token-Bindin… Andrei Popov
- Re: [Unbearable] on not listing 'Sec-Token-Bindin… John Bradley
- Re: [Unbearable] on not listing 'Sec-Token-Bindin… Andrei Popov
- Re: [Unbearable] on not listing 'Sec-Token-Bindin… John Bradley
- Re: [Unbearable] on not listing 'Sec-Token-Bindin… Andrei Popov
- Re: [Unbearable] on not listing 'Sec-Token-Bindin… =JeffH
- Re: [Unbearable] on not listing 'Sec-Token-Bindin… Andrei Popov
- Re: [Unbearable] on not listing 'Sec-Token-Bindin… Amos Jeffries
- Re: [Unbearable] on not listing 'Sec-Token-Bindin… =JeffH