5 INTERNET-DRAFT S. Santesson (Microsoft)
6 Updates: 2246, 4346 (once approved) A. Medvinsky (Microsoft)
7 Intended Category: Standards track J. Ball (Microsoft)
8 Expires August 2006 February 2006
11 TLS User Mapping Extension
12 <draft-santesson-tls-ume-02.txt>
17 By submitting this Internet-Draft, each author represents that any
18 applicable patent or other IPR claims of which he or she is aware
19 have been or will be disclosed, and any of which he or she becomes
20 aware will be disclosed, in accordance with Section 6 of BCP 79.
22 This document may not be modified, and derivative works of it may not
23 be created, except to publish it as an RFC and to translate it into
24 languages other than English.
26 Internet-Drafts are working documents of the Internet Engineering
27 Task Force (IETF), its areas, and its working groups. Note that
28 other groups may also distribute working documents as Internet-
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 a "work in progress."
36 The list of current Internet-Drafts can be accessed at
37 http://www.ietf.org/1id-abstracts.html
39 The list of Internet-Draft Shadow Directories can be accessed at
40 http://www.ietf.org/shadow.html
45 This document specifies a TLS extension that enables clients to send
46 generic user mapping data in a new handshake message. One such
47 mapping is defined, the UpnDomainHint, which may be used by a server
48 to locate a user in a directory database. Other mappings may be
49 defined in other documents in the future.
56 Santesson, et. all [Page 1]
58 INTERNET DRAFT TLS User Mapping extension February 2006
63 1 Introduction ................................................ 2
64 2 User mapping extension ...................................... 3
65 3 User mapping handshake protocol ............................. 4
66 4 Message flow ................................................ 6
67 5 Security Considerations ..................................... 7
68 6 References .................................................. 8
69 7 IANA Considerations ... ...................................... 8
70 Authors' Addresses ............................................. 9
71 Disclaimer ..................................................... 10
72 Copyright Statement ............................................ 10
76 This specification documents a TLS extension and a handshake message,
77 which has been defined and implemented by Microsoft to accommodate
78 mapping of users to their user accounts when using TLS client
79 authentication as the authentication method.
81 The UPN (User Principal Name) is a name form defined by Microsoft
82 which specifies a user's entry in a directory in the form of
83 userName@domainName. Traditionally Microsoft has relied on such UPN
84 names to be present in the client certificate when logging on to a
87 This has several drawbacks however since it prevents the use of
88 certificates with an absent UPN and also requires re-issuance of
89 certificates or issuance of multiple certificates to reflect account
90 changes or creation of new accounts.
92 The TLS extension defined in this document provide a significant
93 improvement to this situation since it allows a single certificate to
94 be mapped to one or more accounts of the user and does not require
95 the certificate to contain a UPN.
97 The new TLS extension (user_mapping) is sent in the client hello
98 message. Per convention defined in RFC 4366 [N4], the server places
99 the same extension (user_mapping) in the server hello message, to
100 inform the client that the server understands this extension. If the
101 server does not understand the extension, it will respond with a
102 server hello omitting this extension and the client will proceed as
103 normal, ignoring the extension, and not include the
104 UserMappingDataList message in the TLS handshake.
106 If the new extension is understood, the client will inject a new
107 handshake message prior to the Client's Certificate message. The
108 server will then parse this message, extracting the client's domain,
112 Santesson, et. all [Page 2]
114 INTERNET DRAFT TLS User Mapping extension February 2006
117 and store it in the context for use when mapping the certificate to
118 the user's directory account.
120 No other modifications to the protocol are required. The messages are
121 detailed in the following sections.
126 The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
127 "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this
128 document are to be interpreted as described in RFC 2119 [STDWORDS].
130 The syntax for the TLS User Mapping extension is defined using the
131 TLS Presentation Language, which is specified in Section 4 of [N2].
133 1.2 Design considerations
135 The reason the mapping data itself is not placed in the extension
136 portion of the client hello is to prevent broadcasting this
137 information to servers that don't understand the extension.
138 Additionally, if new mapping information were to be considered
139 confidential, the addition of a new handshake message allows the data
140 to be encrypted using the server's public key.
143 2 User mapping extension
145 A new extension type (user_mapping(n)) is added to the Extension used
146 in both the client hello and server hello messages. The extension
147 type is specified as follows.
151 user_mapping(n), (65535)
154 The "extension_data" field of this extension SHALL contain
155 "UserMappingTypeList" with a list of supported hint types where:
158 UserMappingType user_mapping_types<1..2^8-1>
159 } UserMappingTypeList;
161 Enumeration of hint types (user_mapping_types) defined in this
162 document is provided in section 3.
164 The list of user_mapping_types included in a client hello SHALL
168 Santesson, et. all [Page 3]
170 INTERNET DRAFT TLS User Mapping extension February 2006
173 signal the hint types supported by the client. The list of
174 user_mapping_types included in the server hello SHALL signal the hint
175 types preferred by the server.
177 If none of the hint types listed by the client is supported by the
178 server, the server SHALL omit the user_mapping extension in the
181 When the user_mapping extension is included in the server hello, the
182 list of hint types in "UserMappingTypeList" SHALL be either equal to,
183 or a subset of, the list provided by the client.
185 3 User mapping handshake protocol
187 A new HandshakeType (user_mapping_data) is defined to accommodate
188 communication of generic user mapping data. See RFC 2246 (TLS 1.0)
189 [N2] and RFC 4346 (TLS 1.1) [N3] for other handshake types.
191 The information in this handshake message carries an unauthenticated
192 hint, inserted by the client side. Upon receipt and successful
193 completion of the TLS handshake, the server MAY use this hint to
194 locate the user's account from which user information and credentials
195 MAY be retrieved to support authentication based on the client
200 user_mapping_data(n),(255)
204 The user_mapping_data(n) enumeration results in a new Handshake
205 Message UserMappingDataList with the following structure:
209 upn_domain_hint(0), (255)
213 opaque user_principal_name<0..2^16-1>;
214 opaque domain_name<0..2^16-1>;
218 UserMappingType user_mapping_version
219 select(UserMappingType) {
220 case upn_domain_hint:
224 Santesson, et. all [Page 4]
226 INTERNET DRAFT TLS User Mapping extension February 2006
234 UserMappingData user_mapping_data_list<1..2^16-1>;
235 }UserMappingDataList;
239 The user_principal_name parameter, when specified, SHALL be specified
244 For example the UPN 'foo@example.com' represents user 'foo' at domain
247 The domain_name parameter, when specified, SHALL contain a domain
248 name in the "preferred name syntax," as specified by RFC 1034 [N5]
250 The UpnDomainHint MUST at least contain a non empty
251 user_principal_name or a non empty domain_name. The UpnDomainHint MAY
252 contain both user_principal_name and domain_name.
254 The UserMappingData structure contains a single mapping of type
255 UserMappingType. This structure can be leveraged to define new types
256 of user mapping hints in the future. The UserMappingDataList MAY
257 carry multiple hints; it is defined as a vector of UserMappingData
260 No preference is given to the order in which hints are specified in
261 this vector. If the client sends more then one hint then the Server
262 SHOULD use the applicable mapping supported by the server.
280 Santesson, et. all [Page 5]
282 INTERNET DRAFT TLS User Mapping extension February 2006
287 In order to negotiate to send user mapping data to a server in
288 accordance with this specification, clients MUST include an extension
289 of type "user_mapping" in the (extended) client hello, which SHALL
290 contain a list of supported hint types.
292 Servers that receive an extended client hello containing a
293 "user_mapping" extension, MAY indicate that they are willing to
294 accept user mapping data by including an extension of type
295 "user_mapping" in the (extended) server hello, which SHALL contain a
296 list of preferred hint types.
298 After negotiation of the use of user mapping has been successfully
299 completed (by exchanging hello messages including "user_mapping"
300 extensions), clients MAY send a "UserMappingDataList" message before
301 the "Certificate" message. The message flow is illustrated in Fig. 1
307 /* with user_mapping ext */ -------->
310 /* with user-mapping ext */
314 <-------- ServerHelloDone
324 Application Data <-------> Application Data
326 Fig. 1 - Message flow with user mapping data
328 * Indicates optional or situation-dependent messages that are not
329 always sent according to RFC 2246 [N2] and RFC 4346 [N3].
336 Santesson, et. all [Page 6]
338 INTERNET DRAFT TLS User Mapping extension February 2006
341 5 Security Considerations
343 The UPN sent in the UserMappingDataList is unauthenticated data that
344 MUST NOT be treated as a trusted identifier. Authentication of the
345 user represented by that UPN MUST rely solely on validation of the
346 client certificate. One way to do this in the Microsoft environment
347 is to use the UPN to locate and extract a certificate of the claimed
348 user from the trusted directory and subsequently match this
349 certificate against the validated client certificate from the TLS
352 As the client is the initiator of this TLS extension, it needs to
353 determine when it is appropriate to send the User Mapping
354 Information. It may not be prudent to broadcast this information to
355 just any server at any time, as it can reveal network infrastructure
356 the client and server are using.
358 To avoid superfluously sending this information, two techniques
359 SHOULD be used to control its dissemination.
361 - The client SHOULD only send the UserMappingDataList handshake
362 message if it is agreed upon in the hello message exchange,
364 the information from being sent to a server that doesn't
365 understand the User Mapping Extension.
367 - The client SHOULD further only send this information if the
368 server belongs to a domain to which the client intends to
369 authenticate using the UPN as identifier.
392 Santesson, et. all [Page 7]
394 INTERNET DRAFT TLS User Mapping extension February 2006
399 Normative references:
401 [N1] S. Bradner, "Key words for use in RFCs to Indicate
402 Requirement Levels", BCP 14, RFC 2119, March 1997.
404 [N2] T. Dierks, C. Allen, "The TLS Protocol Version 1.0",
405 RFC 2246, January 1999.
407 [N3] T. Dierks, E. Rescorla, "The TLS Protocol Version 1.1",
408 RFC 4346, January 2006.
410 [N4] S. Blake-Wilson, M. Nystrom, D. Hopwood, J. Mikkelsen,
411 T. Wright, "Transport Layer Security (TLS) Extensions",
412 RFC 4366, February 2006.
414 [N5] Mockapetris, P., "Domain Names - Concepts and
415 Facilities", STD 13, RFC 1034, November 1987.
418 7 IANA Considerations
420 IANA needs to establish a registry for TLS UserMappingType values.
421 The first entry in the registry is upn_domain_hint(0). TLS
422 UserMappingType values in the inclusive range 0-63 (decimal) are
423 assigned via RFC 2434 [IANA] Standards Action. Values from the
424 inclusive range 64-223 (decimal) are assigned via RFC 2434
425 Specification Required. Values from the inclusive range 224-255
426 (decimal) are reserved for RFC 2434 Private Use.
448 Santesson, et. all [Page 8]
450 INTERNET DRAFT TLS User Mapping extension February 2006
453 Appendix A. IPR Disclosure
466 EMail: stefans(at)microsoft.com
472 Redmond, WA 98052-6399
474 Email: arimed(at)microsoft.com
480 Redmond, WA 98052-6399
482 Email: joshball(at)microsoft.com
504 Santesson, et. all [Page 9]
506 INTERNET DRAFT TLS User Mapping extension February 2006
511 This document and the information contained herein are provided on an
512 "AS IS" basis and THE CONTRIBUTOR, THE ORGANIZATION HE/SHE REPRESENTS
513 OR IS SPONSORED BY (IF ANY), THE INTERNET SOCIETY AND THE INTERNET
514 ENGINEERING TASK FORCE DISCLAIM ALL WARRANTIES, EXPRESS OR IMPLIED,
515 INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE
516 INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED
517 WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
522 Copyright (C) The Internet Society (2006).
524 This document is subject to the rights, licenses and restrictions
525 contained in BCP 78, and except as set forth therein, the authors
526 retain all their rights.
560 Santesson, et. all [Page 10]