draft-ietf-tokbind-ttrp-05.txt   draft-ietf-tokbind-ttrp-06.txt 
Internet Engineering Task Force B. Campbell Internet Engineering Task Force B. Campbell
Internet-Draft Ping Identity Internet-Draft Ping Identity
Intended status: Standards Track June 21, 2018 Intended status: Standards Track July 27, 2018
Expires: December 23, 2018 Expires: January 28, 2019
HTTPS Token Binding with TLS Terminating Reverse Proxies HTTPS Token Binding with TLS Terminating Reverse Proxies
draft-ietf-tokbind-ttrp-05 draft-ietf-tokbind-ttrp-06
Abstract Abstract
This document defines HTTP header fields that enable a TLS This document defines HTTP header fields that enable a TLS
terminating reverse proxy to convey information to a backend server terminating reverse proxy to convey information to a backend server
about the validated Token Binding Message received from a client, about the validated Token Binding Message received from a client,
which enables that backend server to bind, or verify the binding of, which enables that backend server to bind, or verify the binding of,
cookies and other security tokens to the client's Token Binding key. cookies and other security tokens to the client's Token Binding key.
This facilitates the reverse proxy and backend server functioning This facilitates the reverse proxy and backend server functioning
together as though they are a single logical server side deployment together as though they are a single logical server side deployment
skipping to change at page 1, line 37 skipping to change at page 1, line 37
Internet-Drafts are working documents of the Internet Engineering Internet-Drafts are working documents of the Internet Engineering
Task Force (IETF). Note that other groups may also distribute Task Force (IETF). Note that other groups may also distribute
working documents as Internet-Drafts. The list of current Internet- working documents as Internet-Drafts. The list of current Internet-
Drafts is at https://datatracker.ietf.org/drafts/current/. Drafts is at https://datatracker.ietf.org/drafts/current/.
Internet-Drafts are draft documents valid for a maximum of six months Internet-Drafts are draft documents valid for a maximum of six months
and may be updated, replaced, or obsoleted by other documents at any and may be updated, replaced, or obsoleted by other documents at any
time. It is inappropriate to use Internet-Drafts as reference time. It is inappropriate to use Internet-Drafts as reference
material or to cite them other than as "work in progress." material or to cite them other than as "work in progress."
This Internet-Draft will expire on December 23, 2018. This Internet-Draft will expire on January 28, 2019.
Copyright Notice Copyright Notice
Copyright (c) 2018 IETF Trust and the persons identified as the Copyright (c) 2018 IETF Trust and the persons identified as the
document authors. All rights reserved. document authors. All rights reserved.
This document is subject to BCP 78 and the IETF Trust's Legal This document is subject to BCP 78 and the IETF Trust's Legal
Provisions Relating to IETF Documents Provisions Relating to IETF Documents
(https://trustee.ietf.org/license-info) in effect on the date of (https://trustee.ietf.org/license-info) in effect on the date of
publication of this document. Please review these documents publication of this document. Please review these documents
skipping to change at page 2, line 22 skipping to change at page 2, line 22
2. HTTP Header Fields and Processing Rules . . . . . . . . . . . 4 2. HTTP Header Fields and Processing Rules . . . . . . . . . . . 4
2.1. Encoding . . . . . . . . . . . . . . . . . . . . . . . . 4 2.1. Encoding . . . . . . . . . . . . . . . . . . . . . . . . 4
2.1.1. Token Binding ID . . . . . . . . . . . . . . . . . . 4 2.1.1. Token Binding ID . . . . . . . . . . . . . . . . . . 4
2.1.2. Token Binding Type . . . . . . . . . . . . . . . . . 4 2.1.2. Token Binding Type . . . . . . . . . . . . . . . . . 4
2.2. Token Binding ID HTTP Header Fields . . . . . . . . . . . 4 2.2. Token Binding ID HTTP Header Fields . . . . . . . . . . . 4
2.3. Processing Rules . . . . . . . . . . . . . . . . . . . . 5 2.3. Processing Rules . . . . . . . . . . . . . . . . . . . . 5
2.4. Examples . . . . . . . . . . . . . . . . . . . . . . . . 6 2.4. Examples . . . . . . . . . . . . . . . . . . . . . . . . 6
2.4.1. Provided Token Binding ID . . . . . . . . . . . . . . 6 2.4.1. Provided Token Binding ID . . . . . . . . . . . . . . 6
2.4.2. Provided and Referred Token Binding IDs . . . . . . . 7 2.4.2. Provided and Referred Token Binding IDs . . . . . . . 7
2.4.3. Provided and Other Token Binding IDs . . . . . . . . 8 2.4.3. Provided and Other Token Binding IDs . . . . . . . . 8
3. Security Considerations . . . . . . . . . . . . . . . . . . . 8 3. TLS Versions and Best Practices . . . . . . . . . . . . . . . 8
3.1. HTTP Headers . . . . . . . . . . . . . . . . . . . . . . 9 4. Security Considerations . . . . . . . . . . . . . . . . . . . 9
3.2. TLS Versions and Best Practices . . . . . . . . . . . . . 9 5. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 10
4. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 10 5.1. HTTP Message Header Field Names Registration . . . . . . 10
4.1. HTTP Message Header Field Names Registration . . . . . . 10 6. References . . . . . . . . . . . . . . . . . . . . . . . . . 10
5. References . . . . . . . . . . . . . . . . . . . . . . . . . 10 6.1. Normative References . . . . . . . . . . . . . . . . . . 10
5.1. Normative References . . . . . . . . . . . . . . . . . . 10 6.2. Informative References . . . . . . . . . . . . . . . . . 11
5.2. Informative References . . . . . . . . . . . . . . . . . 11
Appendix A. Acknowledgements . . . . . . . . . . . . . . . . . . 12 Appendix A. Acknowledgements . . . . . . . . . . . . . . . . . . 12
Appendix B. Document History . . . . . . . . . . . . . . . . . . 12 Appendix B. Document History . . . . . . . . . . . . . . . . . . 12
Author's Address . . . . . . . . . . . . . . . . . . . . . . . . 14 Author's Address . . . . . . . . . . . . . . . . . . . . . . . . 14
1. Introduction 1. Introduction
Token Binding over HTTP [I-D.ietf-tokbind-https] provides a mechanism Token Binding over HTTP [I-D.ietf-tokbind-https] provides a mechanism
that enables HTTP servers to cryptographically bind cookies and other that enables HTTP servers to cryptographically bind cookies and other
security tokens to a key generated by the client. When the use of security tokens to a key generated by the client. When the use of
Token Binding is negotiated in the TLS [RFC5246] handshake Token Binding is negotiated in the TLS [RFC5246] handshake
skipping to change at page 8, line 48 skipping to change at page 8, line 48
Sec-Provided-Token-Binding-ID: AgBBQA35hcCjI5GEHLLAZ0i2l2ZvQe-bSPAP Sec-Provided-Token-Binding-ID: AgBBQA35hcCjI5GEHLLAZ0i2l2ZvQe-bSPAP
7jovkZJM4wYHgmmXNd1aRpnQmXK9ghUmrdtS6p_e2uSlMXIVKOIwgys 7jovkZJM4wYHgmmXNd1aRpnQmXK9ghUmrdtS6p_e2uSlMXIVKOIwgys
Sec-Other-Token-Binding-ID: 4d.AgBBQEevBm3SEMqx6pKKyRdLHpGCb3_IldN6 Sec-Other-Token-Binding-ID: 4d.AgBBQEevBm3SEMqx6pKKyRdLHpGCb3_IldN6
GxsW2lm6gBCXrbGMaawenNzMeSgxwRmY7BW3hVuV3nPxGsV9B8N0Zic,B.AgBBQIO GxsW2lm6gBCXrbGMaawenNzMeSgxwRmY7BW3hVuV3nPxGsV9B8N0Zic,B.AgBBQIO
q3qbrcHLxvWW-E36f06xBOGguibMqkyJxJkbBHXrqOmWFuSOsWwfN02rMsUUSEJP2 q3qbrcHLxvWW-E36f06xBOGguibMqkyJxJkbBHXrqOmWFuSOsWwfN02rMsUUSEJP2
zSletxuk4exmelFKSaE zSletxuk4exmelFKSaE
Figure 8: Headers in HTTP Request to Backend Server Figure 8: Headers in HTTP Request to Backend Server
3. Security Considerations 3. TLS Versions and Best Practices
3.1. HTTP Headers
TLS 1.2 [RFC5246] is cited in this document because, at the time of
writing, it is the latest version that is widely deployed. However,
this document is applicable with other TLS versions that allow for
negotiating the use of Token Binding. [I-D.ietf-tokbind-tls13], for
example, describes Token Binding for TLS 1.3 [I-D.ietf-tls-tls13].
Implementation security considerations for TLS, including version
recommendations, can be found in Recommendations for Secure Use of
Transport Layer Security (TLS) and Datagram Transport Layer Security
(DTLS) [BCP195].
4. Security Considerations
The headers described herein enable a reverse proxy and backend The headers described herein enable a reverse proxy and backend
server to function together as though they are a single logical server to function together as though they are a single logical
server side deployment of HTTPS Token Binding. Use of the headers server side deployment of HTTPS Token Binding. Use of the headers
outside that intended use case, however, may undermine the outside that intended use case, however, may undermine the
protections afforded by Token Binding. Therefore steps MUST be taken protections afforded by Token Binding. Therefore steps MUST be taken
to prevent unintended use, both in sending the headers and in relying to prevent unintended use, both in sending the headers and in relying
on their value. on their value.
Producing and consuming the headers SHOULD be a configurable option, Producing and consuming the headers SHOULD be a configurable option,
skipping to change at page 9, line 47 skipping to change at page 10, line 7
private network such that the backend application is only able to private network such that the backend application is only able to
accept requests from the reverse proxy and the proxy can only make accept requests from the reverse proxy and the proxy can only make
requests to that server. Other deployments that meet the requests to that server. Other deployments that meet the
requirements set forth herein are also possible. requirements set forth herein are also possible.
Employing the "Sec-" header field prefix for the headers defined Employing the "Sec-" header field prefix for the headers defined
herein denotes them as forbidden header names (see [fetch-spec]), herein denotes them as forbidden header names (see [fetch-spec]),
which means they cannot be set or modified programmatically by script which means they cannot be set or modified programmatically by script
running in-browser. running in-browser.
3.2. TLS Versions and Best Practices 5. IANA Considerations
TLS 1.2 [RFC5246] is cited in this document because, at the time of
writing, it is the latest version that is widely deployed. However,
this document is applicable with other TLS versions that allow for
negotiating the use of Token Binding. [I-D.ietf-tokbind-tls13], for
example, describes Token Binding for TLS 1.3 [I-D.ietf-tls-tls13].
Implementation security considerations for TLS, including version
recommendations, can be found in Recommendations for Secure Use of
Transport Layer Security (TLS) and Datagram Transport Layer Security
(DTLS) [BCP195].
4. IANA Considerations
4.1. HTTP Message Header Field Names Registration 5.1. HTTP Message Header Field Names Registration
This document specifies the following new HTTP header fields, This document specifies the following new HTTP header fields,
registration of which is requested in the "Permanent Message Header registration of which is requested in the "Permanent Message Header
Field Names" registry defined in [RFC3864]. Field Names" registry defined in [RFC3864].
o Header Field Name: "Sec-Provided-Token-Binding-ID" o Header Field Name: "Sec-Provided-Token-Binding-ID"
o Applicable protocol: HTTP o Applicable protocol: HTTP
o Status: standard o Status: standard
o Author/change Controller: IETF o Author/change Controller: IETF
o Specification Document(s): [[ this specification ]] o Specification Document(s): [[ this specification ]]
skipping to change at page 10, line 37 skipping to change at page 10, line 33
o Status: standard o Status: standard
o Author/change Controller: IETF o Author/change Controller: IETF
o Specification Document(s): [[ this specification ]] o Specification Document(s): [[ this specification ]]
o Header Field Name: "Sec-Other-Token-Binding-ID" o Header Field Name: "Sec-Other-Token-Binding-ID"
o Applicable protocol: HTTP o Applicable protocol: HTTP
o Status: standard o Status: standard
o Author/change Controller: IETF o Author/change Controller: IETF
o Specification Document(s): [[ this specification ]] o Specification Document(s): [[ this specification ]]
5. References 6. References
5.1. Normative References 6.1. Normative References
[BCP195] Sheffer, Y., Holz, R., and P. Saint-Andre, [BCP195] Sheffer, Y., Holz, R., and P. Saint-Andre,
"Recommendations for Secure Use of Transport Layer "Recommendations for Secure Use of Transport Layer
Security (TLS) and Datagram Transport Layer Security Security (TLS) and Datagram Transport Layer Security
(DTLS)", BCP 195, RFC 7525, DOI 10.17487/RFC7525, May (DTLS)", BCP 195, RFC 7525, DOI 10.17487/RFC7525, May
2015, <http://www.rfc-editor.org/info/bcp195>. 2015, <http://www.rfc-editor.org/info/bcp195>.
[I-D.ietf-tokbind-https] [I-D.ietf-tokbind-https]
Popov, A., Nystrom, M., Balfanz, D., Langley, A., Harper, Popov, A., Nystrom, M., Balfanz, D., Langley, A., Harper,
N., and J. Hodges, "Token Binding over HTTP", draft-ietf- N., and J. Hodges, "Token Binding over HTTP", draft-ietf-
skipping to change at page 11, line 48 skipping to change at page 11, line 48
[RFC7230] Fielding, R., Ed. and J. Reschke, Ed., "Hypertext Transfer [RFC7230] Fielding, R., Ed. and J. Reschke, Ed., "Hypertext Transfer
Protocol (HTTP/1.1): Message Syntax and Routing", Protocol (HTTP/1.1): Message Syntax and Routing",
RFC 7230, DOI 10.17487/RFC7230, June 2014, RFC 7230, DOI 10.17487/RFC7230, June 2014,
<https://www.rfc-editor.org/info/rfc7230>. <https://www.rfc-editor.org/info/rfc7230>.
[RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC [RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC
2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174, 2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174,
May 2017, <https://www.rfc-editor.org/info/rfc8174>. May 2017, <https://www.rfc-editor.org/info/rfc8174>.
5.2. Informative References 6.2. Informative References
[fetch-spec] [fetch-spec]
WhatWG, "Fetch", Living Standard , WhatWG, "Fetch", Living Standard ,
<https://fetch.spec.whatwg.org/>. <https://fetch.spec.whatwg.org/>.
[I-D.ietf-tls-tls13] [I-D.ietf-tls-tls13]
Rescorla, E., "The Transport Layer Security (TLS) Protocol Rescorla, E., "The Transport Layer Security (TLS) Protocol
Version 1.3", draft-ietf-tls-tls13-28 (work in progress), Version 1.3", draft-ietf-tls-tls13-28 (work in progress),
March 2018. March 2018.
skipping to change at page 12, line 32 skipping to change at page 12, line 32
The author would like to thank the following people for their various The author would like to thank the following people for their various
contributions to the specification: Vinod Anupam, Dirk Balfanz, John contributions to the specification: Vinod Anupam, Dirk Balfanz, John
Bradley, William Denniss, Nick Harper, Jeff Hodges, Subodh Iyengar, Bradley, William Denniss, Nick Harper, Jeff Hodges, Subodh Iyengar,
Leif Johansson, Michael B. Jones, Yoav Nir, James Manger, Andrei Leif Johansson, Michael B. Jones, Yoav Nir, James Manger, Andrei
Popov, Eric Rescorla, Piotr Sikora, Martin Thomson, and Hans Zandbelt Popov, Eric Rescorla, Piotr Sikora, Martin Thomson, and Hans Zandbelt
Appendix B. Document History Appendix B. Document History
[[ to be removed by the RFC Editor before publication as an RFC ]] [[ to be removed by the RFC Editor before publication as an RFC ]]
draft-ietf-tokbind-ttrp-06
o Move TLS Versions and Best Practices out of Security
Considerations to its own top-level section.
draft-ietf-tokbind-ttrp-05 draft-ietf-tokbind-ttrp-05
o Editorial updates. o Editorial updates.
o Change one character in the last example to help emphasize the o Change one character in the last example to help emphasize the
case-insensitivity of hex. case-insensitivity of hex.
o Add a TLS Versions and Best Practices section with BCP195 and also o Add a TLS Versions and Best Practices section with BCP195 and also
mention of ietf-tokbind-tls13 and ietf-tls-tls13. mention of ietf-tokbind-tls13 and ietf-tls-tls13.
skipping to change at page 13, line 5 skipping to change at page 13, line 9
o Add an example with Sec-Other-Token-Binding-ID. o Add an example with Sec-Other-Token-Binding-ID.
o Use the HEXDIG core ABNF rule for EncodedTokenBindingType and o Use the HEXDIG core ABNF rule for EncodedTokenBindingType and
mention case-insensitive in the text. mention case-insensitive in the text.
o Minor editorial fixes. o Minor editorial fixes.
o Add to the Acknowledgements and remove the 'and others' bit. o Add to the Acknowledgements and remove the 'and others' bit.
draft-ietf-tokbind-ttrp-03
o Add a header to allow for additional token binding types other o Add a header to allow for additional token binding types other
than provided and referred to be conveyed. than provided and referred to be conveyed.
o Reword the Abstract somewhat for (hopefully) improved readability. o Reword the Abstract somewhat for (hopefully) improved readability.
o Minor editorial and formatting updates. o Minor editorial and formatting updates.
draft-ietf-tokbind-ttrp-02 draft-ietf-tokbind-ttrp-02
o Add to the Acknowledgements. o Add to the Acknowledgements.
skipping to change at page 13, line 47 skipping to change at page 14, line 5
draft-ietf-tokbind-ttrp-00 draft-ietf-tokbind-ttrp-00
o Initial WG draft from draft-campbell-tokbind-ttrp. o Initial WG draft from draft-campbell-tokbind-ttrp.
draft-campbell-tokbind-ttrp-01 draft-campbell-tokbind-ttrp-01
o Minor editorial fixes. o Minor editorial fixes.
o Add to the Acknowledgements. o Add to the Acknowledgements.
draft-campbell-tokbind-ttrp-00
o Initial draft based on 'consensus to work on the problem' from the o Initial draft based on 'consensus to work on the problem' from the
Seoul meeting [1][2] and reflecting the consensus approach from Seoul meeting [1][2] and reflecting the consensus approach from
discussions at the Chicago meeting [3]. discussions at the Chicago meeting [3].
[1] https://www.ietf.org/proceedings/97/minutes/minutes-97- [1] https://www.ietf.org/proceedings/97/minutes/minutes-97-
tokbind-01.txt (minutes from Seoul) tokbind-01.txt (minutes from Seoul)
[2] https://www.ietf.org/proceedings/97/slides/slides-97-tokbind- [2] https://www.ietf.org/proceedings/97/slides/slides-97-tokbind-
reverse-proxies-00.pdf (slides from Seoul) reverse-proxies-00.pdf (slides from Seoul)
[3] https://mailarchive.ietf.org/arch/msg/ [3] https://mailarchive.ietf.org/arch/msg/
unbearable/_ZHI8y2Vs5WMP8VMRr7zroo_sNU (summary of discussion) unbearable/_ZHI8y2Vs5WMP8VMRr7zroo_sNU (summary of discussion)
 End of changes. 13 change blocks. 
32 lines changed or deleted 36 lines changed or added

This html diff was produced by rfcdiff 1.47. The latest version is available from http://tools.ietf.org/tools/rfcdiff/