draft-ietf-tokbind-negotiation-12.txt   draft-ietf-tokbind-negotiation-13.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: November 1, 2018 D. Balfanz Expires: November 10, 2018 D. Balfanz
A. Langley A. Langley
Google Inc. Google Inc.
April 30, 2018 May 9, 2018
Transport Layer Security (TLS) Extension for Token Binding Protocol Transport Layer Security (TLS) Extension for Token Binding Protocol
Negotiation Negotiation
draft-ietf-tokbind-negotiation-12 draft-ietf-tokbind-negotiation-13
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
skipping to change at page 1, line 36 skipping to change at page 1, line 36
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 November 1, 2018. This Internet-Draft will expire on November 10, 2018.
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 12 skipping to change at page 2, line 12
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
1.1. Requirements Language . . . . . . . . . . . . . . . . . . 2 1.1. Requirements Language . . . . . . . . . . . . . . . . . . 2
2. Token Binding Negotiation Client Hello Extension . . . . . . 2 2. Token Binding Negotiation Client Hello Extension . . . . . . 2
3. Token Binding Negotiation Server Hello Extension . . . . . . 3 3. Token Binding Negotiation Server Hello Extension . . . . . . 4
4. Negotiating Token Binding Protocol Version and Key Parameters 4 4. Negotiating Token Binding Protocol Version and Key Parameters 4
5. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 5 5. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 6
6. Security Considerations . . . . . . . . . . . . . . . . . . . 6 6. Security Considerations . . . . . . . . . . . . . . . . . . . 6
6.1. Downgrade Attacks . . . . . . . . . . . . . . . . . . . . 6 6.1. Downgrade Attacks . . . . . . . . . . . . . . . . . . . . 6
6.2. Triple Handshake Vulnerability in TLS 1.2 and Older TLS 6.2. Triple Handshake Vulnerability in TLS 1.2 and Older TLS
Versions . . . . . . . . . . . . . . . . . . . . . . . . 6 Versions . . . . . . . . . . . . . . . . . . . . . . . . 6
7. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 6 7. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 7
8. References . . . . . . . . . . . . . . . . . . . . . . . . . 7 8. References . . . . . . . . . . . . . . . . . . . . . . . . . 7
8.1. Normative References . . . . . . . . . . . . . . . . . . 7 8.1. Normative References . . . . . . . . . . . . . . . . . . 7
8.2. Informative References . . . . . . . . . . . . . . . . . 7 8.2. Informative References . . . . . . . . . . . . . . . . . 8
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 7 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 8
1. Introduction 1. Introduction
In order to use the Token Binding protocol In order to use the Token Binding protocol
[I-D.ietf-tokbind-protocol], the client and server need to agree on [I-D.ietf-tokbind-protocol], the client and server need to agree on
the Token Binding protocol version and the parameters (signature the Token Binding protocol version and the parameters (signature
algorithm, length) of the Token Binding key. This document specifies algorithm, length) of the Token Binding key. This document specifies
a new TLS [RFC5246] extension to accomplish this negotiation without a new TLS [RFC5246] extension to accomplish this negotiation without
introducing additional network round-trips in TLS 1.2 and earlier introducing additional network round-trips in TLS 1.2 and earlier
versions. The negotiation of the Token Binding protocol and key versions. The negotiation of the Token Binding protocol and key
parameters in combination with TLS 1.3 and later versions is beyond parameters in combination with TLS 1.3 and later versions is beyond
the scope of this document. the scope of this document.
1.1. Requirements Language 1.1. Requirements Language
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
"SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and
document are to be interpreted as described in [RFC2119]. "OPTIONAL" in this document are to be interpreted as described in BCP
14 [RFC2119] [RFC8174] when, and only when, they appear in all
capitals, as shown here.
2. Token Binding Negotiation Client Hello Extension 2. Token Binding Negotiation Client Hello Extension
The client uses the "token_binding" TLS extension to indicate the The client uses the "token_binding" TLS extension to indicate the
highest supported Token Binding protocol version and key parameters. highest supported Token Binding protocol version and key parameters.
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;
} TB_ProtocolVersion; } TB_ProtocolVersion;
enum { enum {
rsa2048_pkcs1.5(0), rsa2048_pss(1), ecdsap256(2), (255) rsa2048_pkcs1.5(0), rsa2048_pss(1), ecdsap256(2), (255)
skipping to change at page 3, line 42 skipping to change at page 3, line 47
selected by the server, then the connection proceeds without Token selected by the server, then the connection proceeds without Token
Binding. [I-D.ietf-tokbind-protocol] describes version {1, 0} of the Binding. [I-D.ietf-tokbind-protocol] describes version {1, 0} of the
protocol. 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] establishes an IANA
identifiers for Token Binding key parameters. registry for Token Binding key parameter identifiers.
3. Token Binding Negotiation Server Hello Extension 3. Token Binding Negotiation Server Hello Extension
The server uses the "token_binding" TLS extension to indicate support The server uses the "token_binding" TLS extension to indicate support
for the Token Binding protocol and to select the protocol version and for the Token Binding protocol and to select the protocol version and
key parameters. key parameters.
The server that supports Token Binding and receives a client hello The server that supports Token Binding and receives a client hello
message containing the "token_binding" extension will include the message containing the "token_binding" extension will include the
"token_binding" extension in the server hello if all of the following "token_binding" extension in the server hello if all of the following
skipping to change at page 4, line 32 skipping to change at page 4, line 38
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: "token_binding_version" contains the lower of:
o the Token Binding protocol version offered by the client in the o the Token Binding protocol version offered by the client in the
"token_binding" extension and "token_binding" extension and
o the highest version supported by the server. o the highest Token Binding protocol 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 38 skipping to change at page 5, line 44
Token Binding protocol version and key parameters on the same Token Binding protocol version and key parameters on the same
connection. The client MUST use the negotiated key parameters in the connection. The client MUST use the negotiated key parameters in the
"provided_token_binding" as described in [I-D.ietf-tokbind-protocol]. "provided_token_binding" as described in [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. There is no requirement for the client to support any Token Binding. There is no requirement for the client to support any Token
Binding versions other than the one advertised in the client's Binding versions other than the one advertised in the client's
"token_binding" extension. "token_binding" extension.
Client and server applications can choose to handle failure to
negotiate Token Binding in a variety of ways, e.g.: continue using
the connection as usual, shorten the lifetime of tokens issued during
this connection, require stronger authentication, terminate the
connection, etc.
The Token Binding protocol version and key parameters are negotiated The Token Binding protocol version and key parameters are negotiated
for each TLS connection, which means that the client and server for each TLS connection, which means that the client and server
include their "token_binding" extensions both in the full TLS include their "token_binding" extensions both in the full TLS
handshake that establishes a new TLS session and in the subsequent handshake that establishes a new TLS session and in the subsequent
abbreviated TLS handshakes that resume the TLS session. abbreviated TLS handshakes that resume the TLS session.
5. IANA Considerations 5. IANA Considerations
This document updates the TLS "ExtensionType Values" registry. IANA This document updates the TLS "ExtensionType Values" registry. IANA
has provided the following temporary registration for the has provided the following temporary registration for the
skipping to change at page 7, line 39 skipping to change at page 8, line 5
"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,
<https://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,
<https://www.rfc-editor.org/info/rfc7627>. <https://www.rfc-editor.org/info/rfc7627>.
[RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC
2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174,
May 2017, <https://www.rfc-editor.org/info/rfc8174>.
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
Andrei Popov (editor) Andrei Popov (editor)
Microsoft Corp. Microsoft Corp.
USA USA
Email: andreipo@microsoft.com Email: andreipo@microsoft.com
Magnus Nystroem Magnus Nystroem
Microsoft Corp. Microsoft Corp.
USA USA
 End of changes. 15 change blocks. 
14 lines changed or deleted 29 lines changed or added

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