Re: [Unbearable] on not listing 'Sec-Token-Binding' in the Connection header field?
John Bradley <ve7jtb@ve7jtb.com> Tue, 07 February 2017 22:39 UTC
Return-Path: <ve7jtb@ve7jtb.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 99B5F1294EE for <unbearable@ietfa.amsl.com>; Tue, 7 Feb 2017 14:39:16 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.6
X-Spam-Level:
X-Spam-Status: No, score=-2.6 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, RCVD_IN_DNSWL_LOW=-0.7, SPF_PASS=-0.001, URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=ve7jtb-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 LPpfZkC9y4kR for <unbearable@ietfa.amsl.com>; Tue, 7 Feb 2017 14:39:14 -0800 (PST)
Received: from mail-qt0-x22e.google.com (mail-qt0-x22e.google.com [IPv6:2607:f8b0:400d:c0d::22e]) (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 3BBE5129432 for <unbearable@ietf.org>; Tue, 7 Feb 2017 14:39:14 -0800 (PST)
Received: by mail-qt0-x22e.google.com with SMTP id x49so149075166qtc.2 for <unbearable@ietf.org>; Tue, 07 Feb 2017 14:39:14 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ve7jtb-com.20150623.gappssmtp.com; s=20150623; h=from:message-id:mime-version:subject:date:in-reply-to:cc:to :references; bh=8nFAHA9AFGg75hQGkiRGvedZ1P+8tuy3iTc08xP3Kgk=; b=Ds1qQu18MJ5UO6gtL9ED46GmHEcVuqclKxnwiNpQNvZ0g5ecspIFm0x2EpB4NGWnQn RqA31jZPp0RAyU0nI/tIaa5BYv3P2QXQyK/Xq0mWnOwRof6q0PDJ4teCFsZI/cD+TvDC zgsGeX/BeudwWVkcUyks2P4Vz/vHS1fBeSFgjxpJTh/xa+YbZz7krfyiht5H9Dv/AukA kMpLQrwSLQ4WwsLcan5fVIolxUNHBD0QmZdS83yo3bAPv/HROejsdhNTlCbjbIosACZj oeArygFpruiNm17vPMO08d/PSmi3x4xRMerBN+1bOZm2YCVpMLf3Csl6+zZshcoYMKWn mjdA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:message-id:mime-version:subject:date :in-reply-to:cc:to:references; bh=8nFAHA9AFGg75hQGkiRGvedZ1P+8tuy3iTc08xP3Kgk=; b=WbzH130loYhkcqwrAoUDl472JlfwlBWHF3ojij+4nHwVAsxvdBm6c7khFnEBeT94c7 I+jSd01Z5lweiFK1S0pjz/bgOFElxt/O6RB0zrhuIM2qCUrpOQC+ASbNBC0GckHxz19j hXa2d4eEjIBoD4lDI61+eeWxKLdzpqxXx444kVrbuSlC7dCTKdCaaPsSSQzM7WJRJvLm 9MqDzX5XKn34a9WjYtoxtElCPGKFS+xbN/v2TILvEU/OrEIuQe+HRmW1T72MkdEmfTK0 4FZ9y65p/juTPCk/23IqxYw80zPUTsxS2uxUIM1696NBVEGzRSm81pwkzjHyCP53LVGz Ztdg==
X-Gm-Message-State: AMke39lz12J+suVrxWtm/ZNXFOXdW+3JLUuzSbHWzHZRAsphrAfoxSzjg1CHdrukmWGyTyyJ
X-Received: by 10.200.34.81 with SMTP id p17mr15935760qtp.264.1486507153215; Tue, 07 Feb 2017 14:39:13 -0800 (PST)
Received: from [192.168.86.150] ([191.115.72.210]) by smtp.gmail.com with ESMTPSA id i132sm4560133qke.44.2017.02.07.14.39.05 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Tue, 07 Feb 2017 14:39:12 -0800 (PST)
From: John Bradley <ve7jtb@ve7jtb.com>
Message-Id: <CA552717-C67D-4BE3-AB8E-F1A4EA413E4D@ve7jtb.com>
Content-Type: multipart/signed; boundary="Apple-Mail=_279C62AC-F029-46C3-9F7F-B0B7DEF30C21"; protocol="application/pkcs7-signature"; micalg="sha1"
Mime-Version: 1.0 (Mac OS X Mail 10.2 \(3259\))
Date: Tue, 07 Feb 2017 19:38:29 -0300
In-Reply-To: <e56976df-c7e7-6dde-8f27-9aeb152f66ab@KingsMountain.com>
To: =JeffH Hodges <Jeff.Hodges@KingsMountain.com>
References: <e56976df-c7e7-6dde-8f27-9aeb152f66ab@KingsMountain.com>
X-Mailer: Apple Mail (2.3259)
Archived-At: <https://mailarchive.ietf.org/arch/msg/unbearable/DUTkQmUAB3Elkb1Hl2h2gINIta8>
Cc: IETF TokBind WG <unbearable@ietf.org>
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:39:16 -0000
The other option might be to go back to having the reverse proxy validate the token binding and allow the client to list the Sec-Token-Binding header. That would be hop by hop semantic. We should at-least document why we think that is a bad idea so we have something to point to if the issue comes up. John B. > On Feb 7, 2017, at 7:15 PM, =JeffH <Jeff.Hodges@KingsMountain.com> wrote: > > 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… 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… =JeffH
- Re: [Unbearable] on not listing 'Sec-Token-Bindin… Brian Campbell
- 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… 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… Amos Jeffries
- 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… =JeffH