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 October 2006 April 2006
11 TLS User Mapping Extension
12 <draft-santesson-tls-ume-06.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 Internet-Drafts are working documents of the Internet Engineering
23 Task Force (IETF), its areas, and its working groups. Note that
24 other groups may also distribute working documents as Internet-
27 Internet-Drafts are draft documents valid for a maximum of six months
28 and may be updated, replaced, or obsoleted by other documents at any
29 time. It is inappropriate to use Internet-Drafts as reference
30 material or to cite them other than a "work in progress."
32 The list of current Internet-Drafts can be accessed at
33 http://www.ietf.org/1id-abstracts.html
35 The list of Internet-Draft Shadow Directories can be accessed at
36 http://www.ietf.org/shadow.html
41 This document specifies a TLS extension that enables clients to send
42 generic user mapping hints in a supplemental data handshake message
43 defined in RFC TBD. One such mapping hint is defined, the
44 UpnDomainHint, which may be used by a server to locate a user in a
45 directory database. Other mapping hints may be defined in other
46 documents in the future.
48 (NOTE TO RFC EDITOR: Replace "RFC TBD" with the RFC number assigned
49 to draft-santesson-tls-supp-00.txt)
56 Santesson, et. all [Page 1]
58 INTERNET DRAFT TLS User Mapping extension April 2006
63 1 Introduction ................................................ 2
64 2 User mapping extension ...................................... 3
65 3 User mapping handshake exchange ............................. 4
66 4 Message flow ................................................ 7
67 5 Security Considerations ..................................... 8
68 6 References .................................................. 9
69 7 IANA Considerations ... ...................................... 9
70 Authors' Addresses ............................................. 10
71 Acknowledgements ............................................... 10
72 Disclaimer ..................................................... 11
73 Copyright Statement ............................................ 11
77 This specification defines a TLS extension and a payload for the
78 SupplementalData handshake message, defined in RFC TBD [N6], to
79 accommodate mapping of users to their user accounts when using TLS
80 client authentication as the authentication method.
82 This specification specifies one new user mapping hint type,
83 providing means to send Domain Name hints and User Principal Name
84 hints. Other hint types may be defined in other documents in the
87 The User Principal Name (UPN) represents a name which specifies a
88 user's entry in a directory in the form of userName@domainName.
89 Traditionally Microsoft has relied on such name form to be present in
90 the client certificate when logging on to a domain account. This has
91 however several drawbacks since it prevents the use of certificates
92 with an absent UPN and also requires re-issuance of certificates or
93 issuance of multiple certificates to reflect account changes or
94 creation of new accounts. The TLS extension in combination with the
95 defined hint type provide a significant improvement to this situation
96 as it allows a single certificate to be mapped to one or more
97 accounts of the user and does not require the certificate to contain
100 The new TLS extension (user_mapping) is sent in the client hello
101 message. Per convention defined in RFC 4366 [N4], the server places
102 the same extension (user_mapping) in the server hello message, to
103 inform the client that the server understands this extension. If the
104 server does not understand the extension, it will respond with a
105 server hello omitting this extension and the client will proceed as
106 normal, ignoring the extension, and not include the
107 UserMappingDataList data in the TLS handshake.
112 Santesson, et. all [Page 2]
114 INTERNET DRAFT TLS User Mapping extension April 2006
117 If the new extension is understood, the client will inject
118 UserMappingDataList data in the SupplementalData handshake message
119 prior to the Client's Certificate message. The server will then parse
120 this message, extracting the client's domain, and store it in the
121 context for use when mapping the certificate to the user's directory
124 No other modifications to the protocol are required. The messages are
125 detailed in the following sections.
130 The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
131 "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this
132 document are to be interpreted as described in RFC 2119 [N1].
134 The syntax for the TLS User Mapping extension is defined using the
135 TLS Presentation Language, which is specified in Section 4 of [N2].
137 1.2 Design considerations
139 The reason the mapping data itself is not placed in the extension
140 portion of the client hello is to prevent broadcasting this
141 information to servers that don't understand the extension.
144 2 User mapping extension
146 A new extension type (user_mapping(TBD)) is added to the Extension
147 used in both the client hello and server hello messages. The
148 extension type is specified as follows.
152 user_mapping(TBD), (65535)
155 The "extension_data" field of this extension SHALL contain
156 "UserMappingTypeList" with a list of supported hint types where:
159 UserMappingType user_mapping_types<1..2^8-1>
160 } UserMappingTypeList;
162 Enumeration of hint types (user_mapping_types) defined in this
163 document is provided in section 3.
168 Santesson, et. all [Page 3]
170 INTERNET DRAFT TLS User Mapping extension April 2006
173 The list of user_mapping_types included in a client hello SHALL
174 signal the hint types supported by the client. The list of
175 user_mapping_types included in the server hello SHALL signal the hint
176 types preferred by the server.
178 If none of the hint types listed by the client is supported by the
179 server, the server SHALL omit the user_mapping extension in the
182 When the user_mapping extension is included in the server hello, the
183 list of hint types in "UserMappingTypeList" SHALL be either equal to,
184 or a subset of, the list provided by the client.
186 3 User mapping handshake exchange
188 The underlying structure of the SupplementalData handshake message,
189 used to carry information defined in this section, is defined in RFC
192 A new SupplementalDataType [N6] is defined to accommodate
193 communication of generic user mapping data. See RFC 2246 (TLS 1.0)
194 [N2] and RFC 4346 (TLS 1.1) [N3] for other handshake types.
196 The information in this data type carries one or more unauthenticated
197 hints, UserMappingDataList, inserted by the client side. Upon receipt
198 and successful completion of the TLS handshake, the server MAY use
199 this hint to locate the user's account from which user information
200 and credentials MAY be retrieved to support authentication based on
201 the client certificate.
203 The hint defined in this specification (upn_domain_hint) specifies
204 two fields, user_principal_name and domain_name. The domain_name
205 field MAY be used when only domain information is needed, e.g. where
206 a user have accounts in multiple domains using the same username
207 name, where that user name is known from another source (e.g. from
208 the client certificate). When the user name is also needed, the
209 user_principal_name field MAY be used to indicate both username and
210 domain name. If both fields are present, then the server can make use
211 of whichever one it chooses.
215 SupplementalDataType supp_data_type;
216 select(SupplementalDataType) {
217 case user_mapping_data: UserMappingDataList;
219 } SupplementalDataEntry;
224 Santesson, et. all [Page 4]
226 INTERNET DRAFT TLS User Mapping extension April 2006
230 user_mapping_data(TBD), (65535)
231 } SupplementalDataType;
234 The user_mapping_data(TBD) enumeration results in a new supplemental
235 data type UserMappingDataList with the following structure:
239 upn_domain_hint(0), (255)
243 opaque user_principal_name<0..2^16-1>;
244 opaque domain_name<0..2^16-1>;
248 UserMappingType user_mapping_version
249 select(UserMappingType) {
250 case upn_domain_hint:
256 UserMappingData user_mapping_data_list<1..2^16-1>;
257 }UserMappingDataList;
260 The user_principal_name field, when specified, SHALL be of the form
261 "user@domain", where "user" is a UTF-8 encoded Unicode string that
262 does not contain the "@" character, and "domain" is a domain name
263 meeting the requirements in the following paragraph.
265 The domain_name field, when specified, SHALL contain a domain name in
266 the usual text form: in other words, a sequence of one or more domain
267 labels separated by ".", each domain label starting and ending with
268 an alphanumeric character and possibly also containing "-"
269 characters. This field is an "IDN-unaware domain name slot" as
270 defined in RFC 3490 [N7] and therefore, domain names containing non-
271 ASCII characters have to be processed as described in RFC 3490 before
272 being stored in this field.
274 The UpnDomainHint MUST at least contain a non empty
275 user_principal_name or a non empty domain_name. The UpnDomainHint MAY
276 contain both user_principal_name and domain_name.
280 Santesson, et. all [Page 5]
282 INTERNET DRAFT TLS User Mapping extension April 2006
285 The UserMappingData structure contains a single mapping of type
286 UserMappingType. This structure can be leveraged to define new types
287 of user mapping hints in the future. The UserMappingDataList MAY
288 carry multiple hints; it is defined as a vector of UserMappingData
291 No preference is given to the order in which hints are specified in
292 this vector. If the client sends more then one hint then the Server
293 SHOULD use the applicable mapping supported by the server.
336 Santesson, et. all [Page 6]
338 INTERNET DRAFT TLS User Mapping extension April 2006
343 In order to negotiate to send user mapping data to a server in
344 accordance with this specification, clients MUST include an extension
345 of type "user_mapping" in the (extended) client hello, which SHALL
346 contain a list of supported hint types.
348 Servers that receive an extended client hello containing a
349 "user_mapping" extension, MAY indicate that they are willing to
350 accept user mapping data by including an extension of type
351 "user_mapping" in the (extended) server hello, which SHALL contain a
352 list of preferred hint types.
354 After negotiation of the use of user mapping has been successfully
355 completed (by exchanging hello messages including "user_mapping"
356 extensions), clients MAY send a "SupplementalData" message containing
357 the "UserMappingDataList" before the "Certificate" message. The
358 message flow is illustrated in Fig. 1 below.
363 /* with user_mapping ext */ -------->
366 /* with user-mapping ext */
370 <-------- ServerHelloDone
373 /* with UserMappingDataList */
381 Application Data <-------> Application Data
383 Fig. 1 - Message flow with user mapping data
385 * Indicates optional or situation-dependent messages that are not
386 always sent according to RFC 2246 [N2] and RFC 4346 [N3].
388 The server MUST expect and gracefully handle the case where the
392 Santesson, et. all [Page 7]
394 INTERNET DRAFT TLS User Mapping extension April 2006
397 client chooses to not send any supplementalData handshake message
398 even after successful negotiation of extensions. The client MAY at
399 its own discretion decide that the user mapping hint it initially
400 intended to send no longer is relevant for this session. One such
401 reason could be that the server certificate fails to meet certain
448 Santesson, et. all [Page 8]
450 INTERNET DRAFT TLS User Mapping extension April 2006
453 5 Security Considerations
455 The user mapping hint sent in the UserMappingDataList is
456 unauthenticated data that MUST NOT be treated as a trusted
457 identifier. Authentication of the user represented by that user
458 mapping hint MUST rely solely on validation of the client
459 certificate. One way to do this is to use the user mapping hint to
460 locate and extract a certificate of the claimed user from the trusted
461 directory and subsequently match this certificate against the
462 validated client certificate from the TLS handshake.
464 As the client is the initiator of this TLS extension, it needs to
465 determine when it is appropriate to send the User Mapping
466 Information. It may not be prudent to broadcast this information to
467 just any server at any time, as it can reveal network infrastructure
468 the client and server are using.
470 To avoid superfluously sending this information, clients SHOULD only
471 send this information if the server belongs to a domain to which the
472 client intends to authenticate using the UPN as identifier.
474 In some cases, the user mapping hint may itself be regarded as
475 sensitive. In such case the double handshake technique described in
476 [N6] can be used to provide protection for the user mapping hint
504 Santesson, et. all [Page 9]
506 INTERNET DRAFT TLS User Mapping extension April 2006
511 Normative references:
513 [N1] S. Bradner, "Key words for use in RFCs to Indicate
514 Requirement Levels", BCP 14, RFC 2119, March 1997.
516 [N2] T. Dierks, C. Allen, "The TLS Protocol Version 1.0",
517 RFC 2246, January 1999.
519 [N3] T. Dierks, E. Rescorla, "The TLS Protocol Version 1.1",
520 RFC 4346, January 2006.
522 [N4] S. Blake-Wilson, M. Nystrom, D. Hopwood, J. Mikkelsen,
523 T. Wright, "Transport Layer Security (TLS) Extensions",
524 RFC 4366, February 2006.
526 [N5] Mockapetris, P., "Domain Names - Concepts and
527 Facilities", STD 13, RFC 1034, November 1987.
529 [N6] S. Santesson, "TLS Handshake Message for Supplementary
530 Data", RFC TBD (currently: draft-santesson-tls-supp-02,
533 [N7] P. Faltstrom, P. Hoffman, A. Costello, "Internationalizing
534 Domain Names in Applications (IDNA)", RFC 3490, March 2003
536 [N8] T. Narten, H. Alvestrand, "Guidelines for Writing an IANA
537 Considerations Section in RFCs", RFC 2434, October 1998
540 7 IANA Considerations
542 IANA needs to take the following actions:
544 1) Create an entry, user_mapping(TBD), in the existing registry for
545 ExtensionType (defined in RFC 4366 [N4]).
547 2) Create an entry, user_mapping_data(TBD), in the new registry for
548 SupplementalDataType (defined in draft-santesson-tls-supp-02).
550 3) Establish a registry for TLS UserMappingType values. The first
551 entry in the registry is upn_domain_hint(0). TLS UserMappingType
552 values in the inclusive range 0-63 (decimal) are assigned via RFC
553 2434 [N8] Standards Action. Values from the inclusive range 64-223
554 (decimal) are assigned via RFC 2434 Specification Required. Values
555 from the inclusive range 224-255 (decimal) are reserved for RFC 2434
560 Santesson, et. all [Page 10]
562 INTERNET DRAFT TLS User Mapping extension April 2006
574 EMail: stefans(at)microsoft.com
580 Redmond, WA 98052-6399
583 Email: arimed(at)microsoft.com
589 Redmond, WA 98052-6399
592 Email: joshball(at)microsoft.com
598 The authors extend a special thanks to Russ Housley, Eric Resocorla
599 and Paul Leach for their substantial contributions.
616 Santesson, et. all [Page 11]
618 INTERNET DRAFT TLS User Mapping extension April 2006
623 This document and the information contained herein are provided on an
624 "AS IS" basis and THE CONTRIBUTOR, THE ORGANIZATION HE/SHE REPRESENTS
625 OR IS SPONSORED BY (IF ANY), THE INTERNET SOCIETY AND THE INTERNET
626 ENGINEERING TASK FORCE DISCLAIM ALL WARRANTIES, EXPRESS OR IMPLIED,
627 INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE
628 INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED
629 WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
634 Copyright (C) The Internet Society (2006).
636 This document is subject to the rights, licenses and restrictions
637 contained in BCP 78, and except as set forth therein, the authors
638 retain all their rights.
672 Santesson, et. all [Page 12]