idnits 2.17.1 draft-mandyam-tokbind-attest-00.txt: Checking boilerplate required by RFC 5378 and the IETF Trust (see https://trustee.ietf.org/license-info): ---------------------------------------------------------------------------- No issues found here. Checking nits according to https://www.ietf.org/id-info/1id-guidelines.txt: ---------------------------------------------------------------------------- No issues found here. Checking nits according to https://www.ietf.org/id-info/checklist : ---------------------------------------------------------------------------- ** The document seems to lack a Security Considerations section. ** There is 1 instance of too long lines in the document, the longest one being 5 characters in excess of 72. Miscellaneous warnings: ---------------------------------------------------------------------------- == The copyright year in the IETF Trust and authors Copyright Line does not match the current year -- The document date (September 30, 2016) is 2736 days in the past. Is this intentional? Checking references for intended status: Proposed Standard ---------------------------------------------------------------------------- (See RFCs 3967 and 4897 for information about using normative references to lower-maturity documents in RFCs) == Outdated reference: A later version (-18) exists of draft-ietf-tokbind-https-05 == Outdated reference: A later version (-14) exists of draft-ietf-tokbind-negotiation-03 == Outdated reference: A later version (-19) exists of draft-ietf-tokbind-protocol-08 == Outdated reference: A later version (-04) exists of draft-birkholz-tuda-02 Summary: 2 errors (**), 0 flaws (~~), 5 warnings (==), 1 comment (--). Run idnits with the --verbose option for more detailed information about the items above. -------------------------------------------------------------------------------- 2 Token Binding Working Group G. Mandyam 3 Internet-Draft L. Lundblade 4 Intended status: Standards Track J. Azen 5 Expires: April 3, 2017 Qualcomm Technologies Inc. 6 September 30, 2016 8 Attested TLS Token Binding 9 draft-mandyam-tokbind-attest-00 11 Abstract 13 Token binding allows HTTP servers to bind bearer tokens to TLS 14 connections. In order to do this, clients or user agents must prove 15 possession of a private key. However, proof-of-possession of a 16 private key becomes truly meaningful to a server when accompanied by 17 an attestation statement. This specification describes extensions to 18 the existing token binding protocol to allow for attestation 19 statements to be sent along with the related token binding messages. 21 Status of This Memo 23 This Internet-Draft is submitted in full conformance with the 24 provisions of BCP 78 and BCP 79. 26 Internet-Drafts are working documents of the Internet Engineering 27 Task Force (IETF). Note that other groups may also distribute 28 working documents as Internet-Drafts. The list of current Internet- 29 Drafts is at http://datatracker.ietf.org/drafts/current/. 31 Internet-Drafts are draft documents valid for a maximum of six months 32 and may be updated, replaced, or obsoleted by other documents at any 33 time. It is inappropriate to use Internet-Drafts as reference 34 material or to cite them other than as "work in progress." 36 This Internet-Draft will expire on April 3, 2017. 38 Copyright Notice 40 Copyright (c) 2016 IETF Trust and the persons identified as the 41 document authors. All rights reserved. 43 This document is subject to BCP 78 and the IETF Trust's Legal 44 Provisions Relating to IETF Documents 45 (http://trustee.ietf.org/license-info) in effect on the date of 46 publication of this document. Please review these documents 47 carefully, as they describe your rights and restrictions with respect 48 to this document. Code Components extracted from this document must 49 include Simplified BSD License text as described in Section 4.e of 50 the Trust Legal Provisions and are provided without warranty as 51 described in the Simplified BSD License. 53 Table of Contents 55 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 56 2. Attestation Enhancement to TLS Token Binding Negotiation . . 3 57 3. Attestation Enhancement to TLS Token Binding Message . . . . 4 58 4. Attestation Suppression . . . . . . . . . . . . . . . . . . . 5 59 5. Example - Platform Attestation for Anomaly Detection . . . . 5 60 6. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 6 61 7. References . . . . . . . . . . . . . . . . . . . . . . . . . 6 62 7.1. Normative References . . . . . . . . . . . . . . . . . . 6 63 7.2. Informative References . . . . . . . . . . . . . . . . . 6 64 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 6 66 1. Introduction 68 [I-D.ietf-tokbind-protocol] and [I-D.ietf-tokbind-negotiation] 69 describe a framework whereby servers can leverage cryptographically- 70 bound authentication tokens to verify TLS connections. This is 71 useful for prevention of man-in-the-middle attacks on TLS sessions, 72 and provides a mechanism by which identity federation systems can be 73 leveraged by a relying party to verify a client based on proof-of- 74 possession of a private key. 76 Once the use of token binding is negotiated as part of the TLS 77 handshake, an application layer message (the Token Binding message) 78 may be sent from the client to the relying party whose primary 79 purpose is to encapsulate a signature over a value associated with 80 the current TLS session (Exported Key Material, i.e. EKM - see 81 [I-D.ietf-tokbind-protocol]). 83 Proof-of-possession of a private key is useful to a relying party, 84 but the associated signature in the Token Binding message does not 85 provide an indication as to how the private key is stored and in what 86 kind of environment the associated cryptographic operation takes 87 place. This information may be required by a relying party in order 88 to satisfy requirements regarding client platform integrity. 89 Therefore, attestations are sometimes required by relying parties in 90 order for them to accept signatures from clients. As per the 91 definition in [I-D.birkholz-tuda], "remote attestation describes the 92 attempt to determine the integrity and trustworthiness of an endpoint 93 -- the attestee -- over a network to another endpoint -- the verifier 94 -- without direct access." Attestation statements are therefore 95 widely used in any server verification operation that leverages 96 client cryptography. 98 TLS token binding can therefore be enhanced with remote attestation 99 statements. The attestation statement can be used to augment Token 100 Binding message. Moreover, the attestation may optionally be 101 included by the client as part of TLS negotiation 102 [I-D.ietf-tokbind-negotiation]. This could be used by a relying 103 party for several different purpose, including (1) to determine 104 whether to accept token binding messages from the associated client, 105 or (2) require an additional mechanism for binding the TLS connection 106 to an authentication operation by the client. In addition, the 107 attestation can accompany the token binding message as a separate 108 application protocol message. 110 2. Attestation Enhancement to TLS Token Binding Negotiation 112 [I-D.ietf-tokbind-negotiation] provides the necessary extensions 113 tothe TLS handshake that allows for TLS token binding to be 114 negotiated as part of any connection. It is necessary that the TLS 115 client and server agree on the parameters that attach to the token 116 binding session, and these extensions to TLS messaging make that 117 possible. 119 A new TLS extension would be defined, "attested token binding", and 120 used in the client hello. 122 enum { 123 attested_token_binding(TBD), (65535) 124 } ExtensionType; 126 Based on this extension, the "TokenBindingParameters" extension data 127 is modified to include attestation: 129 struct { 130 uint8 major; 131 uint8 minor; 132 } ProtocolVersion; 134 enum { 135 (255) 136 } TokenBindingKeyParameters 138 enum { 139 packed(0), tpmv1 (1), tpmv2 (2),(255) 140 } AttestationType 142 struct { 143 ProtocolVersion token_binding_version; 144 AttestationType token_binding_attestation_type; 145 TokenBindingKeyParameters key_parameters_list<1...2^8-1>; 146 attestation_length_bytes<1..2^8-1>; 147 attestation_data<1..2^(8*attestation_length_bytes)> 148 } TokenBindingParameters; 150 3. Attestation Enhancement to TLS Token Binding Message 152 The attestation statement can be processed 'in-band' as part of the 153 Token Binding Message itself. However, many attestation statements 154 include a signature. Therefore including attestation data as part of 155 the Token Binding Message does not appear to provide any discernible 156 advantage, while introducing additional complexity in server 157 processing of the Token Binding message. Therefore a new HTTP header 158 field is defined to accompany the Sec-Token-Binding header defined in 159 [I-D.ietf-tokbind-https]: 161 Sec-Token-Binding-Attestation: 163 The attestation data itself is determined as: 165 enum { 166 packed(0), tpmv1 (1), tpmv2 (2),(255) 167 } AttestationType; 168 struct { 169 AttestationType token_binding_attestation_type; 170 attestation_length_bytes<1..2^8-1>; 171 attestation_data<1..2^(8*attestation_length_bytes)> 172 } AttestationData; 174 4. Attestation Suppression 176 It may be desirable to suppress attestation after the initial TLS 177 handshake when the attestation is originally sent. This can be 178 desirable if the attestation statement does not change over time. In 179 this case, the TLS extension to be used would be "attested token 180 binding with suppression", and would be used in the client hello. 182 enum { 183 attested_token_binding_suppressed(TBD), (65535) 184 } ExtensionType; 186 The "TokenBindingParameters" extension data is as defined previously. 187 However, after the initial TLS handshake, the Sec-Token-Binding- 188 Attestation header will not be sent in ensuing HTTP transactions 189 corresponding to this TLS negotiation. 191 5. Example - Platform Attestation for Anomaly Detection 193 An example of where a platform-based attestation is useful can be for 194 remote attestation based on client traffic anomaly detection. Many 195 network infrastructure deployments employ network traffic monitors 196 for anomalous pattern detection. Examples of anomalous patterns 197 detectable in the TLS handshake could be unexpected cipher suite 198 negotiation for a given source/destination pairing. In this case, it 199 may be desirable for a client-enhanced attestation reflecting for 200 instance that an expected offered cipher suite in the client hello 201 message is present or the originating browser integrity is intact 202 through a hash over the browser application package. This 203 attestation could also be delivered as part of an application- 204 encapsulated message, but this attestation may not be available to 205 network traffic monitors that cannot decrypt application-layer 206 traffic. Due to the presence of the remote attestation in the client 207 hello, a network traffic monitor can verify the attestation and 208 potentially emit alerts based on an unexpected attestation. 210 6. IANA Considerations 212 This memo includes no request to IANA. 214 7. References 216 7.1. Normative References 218 [I-D.ietf-tokbind-https] 219 Popov, A., Nystrom, M., Balfanz, D., Langley, A., and J. 220 Hodges, "Token Binding over HTTP", draft-ietf-tokbind- 221 https-05 (work in progress), July 2016. 223 [I-D.ietf-tokbind-negotiation] 224 Popov, A., Nystrom, M., Balfanz, D., and A. Langley, 225 "Transport Layer Security (TLS) Extension for Token 226 Binding Protocol Negotiation", draft-ietf-tokbind- 227 negotiation-03 (work in progress), July 2016. 229 [I-D.ietf-tokbind-protocol] 230 Popov, A., Nystrom, M., Balfanz, D., Langley, A., and J. 231 Hodges, "The Token Binding Protocol Version 1.0", draft- 232 ietf-tokbind-protocol-08 (work in progress), July 2016. 234 7.2. Informative References 236 [I-D.birkholz-tuda] 237 Fuchs, A., Birkholz, H., McDonald, I., and C. Bormann, 238 "Time-Based Uni-Directional Attestation", draft-birkholz- 239 tuda-02 (work in progress), July 2016. 241 Authors' Addresses 243 Giridhar Mandyam 244 Qualcomm Technologies Inc. 245 5775 Morehouse Drive 246 San Diego, California 92121 247 USA 249 Phone: +1 858 651 7200 250 Email: mandyam@qti.qualcomm.com 251 Laurence Lundblade 252 Qualcomm Technologies Inc. 253 5775 Morehouse Drive 254 San Diego, California 92121 255 USA 257 Phone: +1 858 658 3584 258 Email: llundbla@qti.qualcomm.com 260 Jon Azen 261 Qualcomm Technologies Inc. 262 5775 Morehouse Drive 263 San Diego, California 92121 264 USA 266 Phone: +1 858 651 9476 267 Email: jazen@qti.qualcomm.com