draft-ietf-tokbind-negotiation-09.txt   draft-ietf-tokbind-negotiation-10.txt 
Internet Engineering Task Force A. Popov, Ed. Internet Engineering Task Force A. Popov, Ed.
Internet-Draft M. Nystroem Internet-Draft M. Nystroem
Intended status: Standards Track Microsoft Corp. Intended status: Standards Track Microsoft Corp.
Expires: January 21, 2018 D. Balfanz Expires: April 18, 2018 D. Balfanz
A. Langley A. Langley
Google Inc. Google Inc.
July 20, 2017 October 15, 2017
Transport Layer Security (TLS) Extension for Token Binding Protocol Transport Layer Security (TLS) Extension for Token Binding Protocol
Negotiation Negotiation
draft-ietf-tokbind-negotiation-09 draft-ietf-tokbind-negotiation-10
Abstract Abstract
This document specifies a Transport Layer Security (TLS) extension This document specifies a Transport Layer Security (TLS) extension
for the negotiation of Token Binding protocol version and key for the negotiation of Token Binding protocol version and key
parameters. parameters.
Status of This Memo Status of This Memo
This Internet-Draft is submitted in full conformance with the This Internet-Draft is submitted in full conformance with the
provisions of BCP 78 and BCP 79. provisions of BCP 78 and BCP 79.
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 http://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 January 21, 2018. This Internet-Draft will expire on April 18, 2018.
Copyright Notice Copyright Notice
Copyright (c) 2017 IETF Trust and the persons identified as the Copyright (c) 2017 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
(http://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
carefully, as they describe your rights and restrictions with respect carefully, as they describe your rights and restrictions with respect
to this document. Code Components extracted from this document must to this document. Code Components extracted from this document must
include Simplified BSD License text as described in Section 4.e of include Simplified BSD License text as described in Section 4.e of
the Trust Legal Provisions and are provided without warranty as the Trust Legal Provisions and are provided without warranty as
described in the Simplified BSD License. described in the Simplified BSD License.
Table of Contents Table of Contents
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2
skipping to change at page 3, line 10 skipping to change at page 3, line 10
enum { enum {
token_binding(24), (65535) token_binding(24), (65535)
} ExtensionType; } ExtensionType;
The "extension_data" field of this extension contains a The "extension_data" field of this extension contains a
"TokenBindingParameters" value. "TokenBindingParameters" value.
struct { struct {
uint8 major; uint8 major;
uint8 minor; uint8 minor;
} ProtocolVersion; } TB_ProtocolVersion;
enum { enum {
(255) rsa2048_pkcs1.5(0), rsa2048_pss(1), ecdsap256(2), (255)
} TokenBindingKeyParameters; } TokenBindingKeyParameters;
struct { struct {
ProtocolVersion token_binding_version; TB_ProtocolVersion token_binding_version;
TokenBindingKeyParameters key_parameters_list<1..2^8-1> TokenBindingKeyParameters key_parameters_list<1..2^8-1>
} TokenBindingParameters; } TokenBindingParameters;
"token_binding_version" indicates the version of the Token Binding "token_binding_version" indicates the version of the Token Binding
protocol the client wishes to use during this connection. This protocol the client wishes to use during this connection. If the
SHOULD be the latest (highest valued) version supported by the client supports multiple Token Binding protocol versions, it SHOULD
client. [I-D.ietf-tokbind-protocol] describes version {1, 0} of the indicate the latest (highest valued) version in
protocol. TokenBindingParameters.token_binding_version.
[I-D.ietf-tokbind-protocol] describes version {1, 0} of the protocol.
RFC EDITOR: PLEASE REMOVE THE FOLLOWING PARAGRAPH: Prototype RFC EDITOR: PLEASE REMOVE THE FOLLOWING PARAGRAPH: Prototype
implementations of Token Binding drafts can indicate support of a implementations of Token Binding drafts can indicate support of a
specific draft version, e.g. {0, 1} or {0, 2}. specific draft version, e.g. {0, 1} or {0, 2}.
"key_parameters_list" contains the list of identifiers of the Token "key_parameters_list" contains the list of identifiers of the Token
Binding key parameters supported by the client, in descending order Binding key parameters supported by the client, in descending order
of preference. [I-D.ietf-tokbind-protocol] defines an initial set of of preference. [I-D.ietf-tokbind-protocol] defines an initial set of
identifiers for Token Binding key parameters. identifiers for Token Binding key parameters.
skipping to change at page 4, line 16 skipping to change at page 4, line 19
[RFC7627] and Renegotiation Indication [RFC5746] TLS extensions. [RFC7627] and Renegotiation Indication [RFC5746] TLS extensions.
This requirement only applies when TLS 1.2 or an older TLS This requirement only applies when TLS 1.2 or an older TLS
version is used (see security considerations section below for version is used (see security considerations section below for
more details). more details).
The server will ignore any key parameters that it does not recognize. The server will ignore any key parameters that it does not recognize.
The "extension_data" field of the "token_binding" extension is The "extension_data" field of the "token_binding" extension is
structured the same as described above for the client structured the same as described above for the client
"extension_data". "extension_data".
"token_binding_version" contains the lower of the Token Binding "token_binding_version" contains the lower of:
protocol version offered by the client in the "token_binding"
extension and the highest version supported by the server. o the Token Binding protocol version offered by the client in the
"token_binding" extension and
o the highest version supported by the server.
"key_parameters_list" contains exactly one Token Binding key "key_parameters_list" contains exactly one Token Binding key
parameters identifier selected by the server from the client's list. parameters identifier selected by the server from the client's list.
4. Negotiating Token Binding Protocol Version and Key Parameters 4. Negotiating Token Binding Protocol Version and Key Parameters
It is expected that a server will have a list of Token Binding key It is expected that a server will have a list of Token Binding key
parameters identifiers that it supports, in preference order. The parameters identifiers that it supports, in preference order. The
server MUST only select an identifier that the client offered. The server MUST only select an identifier that the client offered. The
server SHOULD select the most highly preferred key parameters server SHOULD select the most highly preferred key parameters
skipping to change at page 5, line 11 skipping to change at page 5, line 17
5. TLS 1.2 or an older TLS version is used, but the Extended Master 5. TLS 1.2 or an older TLS version is used, but the Extended Master
Secret [RFC7627] and TLS Renegotiation Indication [RFC5746] Secret [RFC7627] and TLS Renegotiation Indication [RFC5746]
extensions are not negotiated (see security considerations extensions are not negotiated (see security considerations
section below for more details). section below for more details).
If the "token_binding" extension is included in the server hello and If the "token_binding" extension is included in the server hello and
the client supports the Token Binding protocol version selected by the client supports the Token Binding protocol version selected by
the server, it means that the version and key parameters have been the server, it means that the version and key parameters have been
negotiated between the client and the server and SHALL be definitive negotiated between the client and the server and SHALL be definitive
for the TLS connection. Please note that TLS 1.2 and earlier for the TLS connection. TLS 1.2 and earlier versions support
versions support renegotiation, allowing the client and server to renegotiation, allowing the client and server to renegotiate the
renegotiate the Token Binding protocol version and key parameters on Token Binding protocol version and key parameters on the same
the same connection. The client MUST use the negotiated key connection. The client MUST use the negotiated key parameters in the
parameters in the "provided_token_binding" as described in "provided_token_binding" as described in [I-D.ietf-tokbind-protocol].
[I-D.ietf-tokbind-protocol].
If the client does not support the Token Binding protocol version If the client does not support the Token Binding protocol version
selected by the server, then the connection proceeds without Token selected by the server, then the connection proceeds without Token
Binding. Binding.
Please note that the Token Binding protocol version and key Please note that the Token Binding protocol version and key
parameters are negotiated for each TLS connection, which means that parameters are negotiated for each TLS connection, which means that
the client and server include their "token_binding" extensions both the client and server include their "token_binding" extensions both
in the full TLS handshake that establishes a new TLS session and in in the full TLS handshake that establishes a new TLS session and in
the subsequent abbreviated TLS handshakes that resume the TLS the subsequent abbreviated TLS handshakes that resume the TLS
skipping to change at page 6, line 43 skipping to change at page 6, line 43
Nadalin, Michael B. Jones, Bill Cox, Nick Harper, Brian Campbell and Nadalin, Michael B. Jones, Bill Cox, Nick Harper, Brian Campbell and
others. others.
8. References 8. References
8.1. Normative References 8.1. Normative References
[I-D.ietf-tokbind-protocol] [I-D.ietf-tokbind-protocol]
Popov, A., Nystrom, M., Balfanz, D., Langley, A., and J. Popov, A., Nystrom, M., Balfanz, D., Langley, A., and J.
Hodges, "The Token Binding Protocol Version 1.0", draft- Hodges, "The Token Binding Protocol Version 1.0", draft-
ietf-tokbind-protocol-14 (work in progress), April 2017. ietf-tokbind-protocol-15 (work in progress), July 2017.
[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate
Requirement Levels", BCP 14, RFC 2119, Requirement Levels", BCP 14, RFC 2119,
DOI 10.17487/RFC2119, March 1997, DOI 10.17487/RFC2119, March 1997,
<http://www.rfc-editor.org/info/rfc2119>. <https://www.rfc-editor.org/info/rfc2119>.
[RFC5246] Dierks, T. and E. Rescorla, "The Transport Layer Security [RFC5246] Dierks, T. and E. Rescorla, "The Transport Layer Security
(TLS) Protocol Version 1.2", RFC 5246, (TLS) Protocol Version 1.2", RFC 5246,
DOI 10.17487/RFC5246, August 2008, DOI 10.17487/RFC5246, August 2008,
<http://www.rfc-editor.org/info/rfc5246>. <https://www.rfc-editor.org/info/rfc5246>.
[RFC5705] Rescorla, E., "Keying Material Exporters for Transport [RFC5705] Rescorla, E., "Keying Material Exporters for Transport
Layer Security (TLS)", RFC 5705, DOI 10.17487/RFC5705, Layer Security (TLS)", RFC 5705, DOI 10.17487/RFC5705,
March 2010, <http://www.rfc-editor.org/info/rfc5705>. March 2010, <https://www.rfc-editor.org/info/rfc5705>.
[RFC5746] Rescorla, E., Ray, M., Dispensa, S., and N. Oskov, [RFC5746] Rescorla, E., Ray, M., Dispensa, S., and N. Oskov,
"Transport Layer Security (TLS) Renegotiation Indication "Transport Layer Security (TLS) Renegotiation Indication
Extension", RFC 5746, DOI 10.17487/RFC5746, February 2010, Extension", RFC 5746, DOI 10.17487/RFC5746, February 2010,
<http://www.rfc-editor.org/info/rfc5746>. <https://www.rfc-editor.org/info/rfc5746>.
[RFC7627] Bhargavan, K., Ed., Delignat-Lavaud, A., Pironti, A., [RFC7627] Bhargavan, K., Ed., Delignat-Lavaud, A., Pironti, A.,
Langley, A., and M. Ray, "Transport Layer Security (TLS) Langley, A., and M. Ray, "Transport Layer Security (TLS)
Session Hash and Extended Master Secret Extension", Session Hash and Extended Master Secret Extension",
RFC 7627, DOI 10.17487/RFC7627, September 2015, RFC 7627, DOI 10.17487/RFC7627, September 2015,
<http://www.rfc-editor.org/info/rfc7627>. <https://www.rfc-editor.org/info/rfc7627>.
8.2. Informative References 8.2. Informative References
[TRIPLE-HS] [TRIPLE-HS]
Bhargavan, K., Delignat-Lavaud, A., Fournet, C., Pironti, Bhargavan, K., Delignat-Lavaud, A., Fournet, C., Pironti,
A., and P. Strub, "Triple Handshakes and Cookie Cutters: A., and P. Strub, "Triple Handshakes and Cookie Cutters:
Breaking and Fixing Authentication over TLS. IEEE Breaking and Fixing Authentication over TLS. IEEE
Symposium on Security and Privacy", 2014. Symposium on Security and Privacy", 2014.
Authors' Addresses Authors' Addresses
 End of changes. 18 change blocks. 
28 lines changed or deleted 31 lines changed or added

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