draft-ietf-tokbind-negotiation-02.txt   draft-ietf-tokbind-negotiation-03.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: July 11, 2016 D. Balfanz Expires: January 8, 2017 D. Balfanz
A. Langley A. Langley
Google Inc. Google Inc.
January 8, 2016 July 7, 2016
Transport Layer Security (TLS) Extension for Token Binding Protocol Transport Layer Security (TLS) Extension for Token Binding Protocol
Negotiation Negotiation
draft-ietf-tokbind-negotiation-02 draft-ietf-tokbind-negotiation-03
Abstract Abstract
This document specifies a Transport Layer Security (TLS) [RFC5246] This document specifies a Transport Layer Security (TLS) [RFC5246]
extension for the negotiation of Token Binding protocol extension for the negotiation of Token Binding protocol
[I-D.ietf-tokbind-protocol] version and key parameters. [I-D.ietf-tokbind-protocol] version and key 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 http://datatracker.ietf.org/drafts/current/. Drafts is at http://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 July 11, 2016. This Internet-Draft will expire on January 8, 2017.
Copyright Notice Copyright Notice
Copyright (c) 2016 IETF Trust and the persons identified as the Copyright (c) 2016 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 (http://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 15 skipping to change at page 2, line 15
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 . . . . . . 3
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 . . . . . . . . . . . . . . . . . . . . . 5
6. Security Considerations . . . . . . . . . . . . . . . . . . . 6 6. Security Considerations . . . . . . . . . . . . . . . . . . . 5
6.1. Downgrade Attacks . . . . . . . . . . . . . . . . . . . . 6 6.1. Downgrade Attacks . . . . . . . . . . . . . . . . . . . . 5
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 . . . . . . . . . . . . . . . . . . . . . . . . 5
7. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 6 7. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 6
8. References . . . . . . . . . . . . . . . . . . . . . . . . . 7 8. References . . . . . . . . . . . . . . . . . . . . . . . . . 6
8.1. Normative References . . . . . . . . . . . . . . . . . . 7 8.1. Normative References . . . . . . . . . . . . . . . . . . 6
8.2. Informative References . . . . . . . . . . . . . . . . . 7 8.2. Informative References . . . . . . . . . . . . . . . . . 7
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 8 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 7
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 extension to accomplish this negotiation without a new TLS extension to accomplish this negotiation without
introducing additional network round-trips. introducing additional network round-trips.
skipping to change at page 3, line 11 skipping to change at page 3, line 11
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; } ProtocolVersion;
enum { enum {
rsa2048_pkcs1.5(0), rsa2048_pss(1), ecdsap256(2), (255) (255)
} TokenBindingKeyParameters; } TokenBindingKeyParameters;
struct { struct {
ProtocolVersion token_binding_version; 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. This
SHOULD be the latest (highest valued) version supported by the SHOULD be the latest (highest valued) version supported by the
client. [I-D.ietf-tokbind-protocol] describes version {1, 0} of the client. [I-D.ietf-tokbind-protocol] describes version {1, 0} of the
protocol. Prototype implementations of Token Binding drafts can protocol. Prototype implementations of Token Binding drafts can
indicate support of a specific draft version, e.g. {0, 1} or {0, 2}. indicate support of a 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. of preference. [I-D.ietf-tokbind-protocol] defines an initial set of
identifiers for Token Binding key parameters.
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 5, line 25 skipping to change at page 5, line 25
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
session. session.
5. IANA Considerations 5. IANA Considerations
This document defines a new TLS extension "token_binding", which This document defines a new TLS extension "token_binding", which
needs to be added to the IANA "Transport Layer Security (TLS) needs to be added to the IANA "Transport Layer Security (TLS)
Extensions" registry. Extensions" registry.
This document establishes a registry for identifiers of Token Binding This document uses "Token Binding Key Parameters" registry originally
key parameters entitled "Token Binding Key Parameters" under the created in [I-D.ietf-tokbind-protocol]. This document creates no new
"Token Binding Protocol" heading. registrations in this registry.
Entries in this registry require the following fields:
o Value: The octet value that identifies a set of Token Binding key
parameters (0-255).
o Description: The description of the Token Binding key parameters.
o Specification: A reference to a specification that defines the
Token Binding key parameters.
This registry operates under the "Expert Review" policy as defined in
[RFC5226]. The designated expert is advised to encourage the
inclusion of a reference to a permanent and readily available
specification that enables the creation of interoperable
implementations using the identified set of Token Binding key
parameters.
An initial set of registrations for this registry follows:
Value: 0
Description: rsa2048_pkcs1.5
Specification: this document
Value: 1
Description: rsa2048_pss
Specification: this document
Value: 2
Description: ecdsap256
Specification: this document
6. Security Considerations 6. Security Considerations
6.1. Downgrade Attacks 6.1. Downgrade Attacks
The Token Binding protocol version and key parameters are negotiated The Token Binding protocol version and key parameters are negotiated
via "token_binding" extension within the TLS handshake. TLS prevents via "token_binding" extension within the TLS handshake. TLS prevents
active attackers from modifying the messages of the TLS handshake, active attackers from modifying the messages of the TLS handshake,
therefore it is not possible for the attacker to remove or modify the therefore it is not possible for the attacker to remove or modify the
"token_binding" extension. The signature algorithm and key length "token_binding" extension. The signature algorithm and key length
skipping to change at page 6, line 45 skipping to change at page 6, line 8
allowing the attacker to synchronize exported keying material between allowing the attacker to synchronize exported keying material between
TLS connections. The attacker can then successfully replay bound TLS connections. The attacker can then successfully replay bound
tokens. For this reason, the Token Binding protocol MUST NOT be tokens. For this reason, the Token Binding protocol MUST NOT be
negotiated with these TLS versions, unless the Extended Master Secret negotiated with these TLS versions, unless the Extended Master Secret
[RFC7627] and Renegotiation Indication [RFC5746] TLS extensions have [RFC7627] and Renegotiation Indication [RFC5746] TLS extensions have
also been negotiated. also been negotiated.
7. Acknowledgements 7. Acknowledgements
This document incorporates comments and suggestions offered by Eric This document incorporates comments and suggestions offered by Eric
Rescorla, Gabriel Montenegro, Martin Thomson, Vinod Anupam, Bill Cox, Rescorla, Gabriel Montenegro, Martin Thomson, Vinod Anupam, Anthony
Nick Harper and others. Nadalin, Michael Jones, Bill Cox, Nick Harper, Brian Campbell and
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., and A. Langley, "The Popov, A., Nystrom, M., Balfanz, D., Langley, A., and J.
Token Binding Protocol Version 1.0", draft-ietf-tokbind- Hodges, "The Token Binding Protocol Version 1.0", draft-
protocol-03 (work in progress), October 2015. ietf-tokbind-protocol-06 (work in progress), May 2016.
[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>. <http://www.rfc-editor.org/info/rfc2119>.
[RFC5226] Narten, T. and H. Alvestrand, "Guidelines for Writing an [RFC5226] Narten, T. and H. Alvestrand, "Guidelines for Writing an
IANA Considerations Section in RFCs", BCP 26, RFC 5226, IANA Considerations Section in RFCs", BCP 26, RFC 5226,
DOI 10.17487/RFC5226, May 2008, DOI 10.17487/RFC5226, May 2008,
<http://www.rfc-editor.org/info/rfc5226>. <http://www.rfc-editor.org/info/rfc5226>.
 End of changes. 13 change blocks. 
56 lines changed or deleted 22 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/