Updated gnulib and added hash-pjw-bare
[gnutls.git] / doc / protocol / draft-santesson-tls-ume-02.txt
blob1a2936682503f4395daed571f45c9f41ea2d9621
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>
15 Status of this Memo
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-
29    Drafts.
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
43 Abstract
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
61 Table of Contents
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
74 1.  Introduction
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
85    domain account.
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.
124 1.1  Terminology
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.
150       enum {
151            user_mapping(n), (65535)
152       } ExtensionType;
154    The "extension_data" field of this extension SHALL contain
155    "UserMappingTypeList" with a list of supported hint types where:
157       struct {
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
179    server hello.
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
196    certificate.
199       enum {
200              user_mapping_data(n),(255)
201       } HandshakeType;
204    The user_mapping_data(n) enumeration results in a new Handshake
205    Message UserMappingDataList with the following structure:
208       enum {
209              upn_domain_hint(0), (255)
210       } UserMappingType;
212       struct {
213              opaque user_principal_name<0..2^16-1>;
214              opaque domain_name<0..2^16-1>;
215       } UpnDomainHint;
217       struct {
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
229                         UpnDomainHint;
230              }
231       } UserMappingData;
233       struct{
234          UserMappingData user_mapping_data_list<1..2^16-1>;
235       }UserMappingDataList;
239    The user_principal_name parameter, when specified, SHALL be specified
240    in the form:
242       user@domain
244    For example the UPN 'foo@example.com' represents user 'foo' at domain
245    'example.com'.
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
258    structures.
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
285 4  Message flow
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
302    below.
304       Client                                               Server
306       ClientHello
307        /* with user_mapping ext */ -------->
309                                                       ServerHello
310                                       /* with user-mapping ext */
311                                                      Certificate*
312                                                ServerKeyExchange*
313                                               CertificateRequest*
314                                    <--------      ServerHelloDone
316       UserMappingDataList
317       Certificate*
318       ClientKeyExchange
319       CertificateVerify*
320       [ChangeCipherSpec]
321       Finished                     -------->
322                                                [ChangeCipherSpec]
323                                    <--------             Finished
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
350    handshake.
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,
363    preventing
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
397 6 References
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
455    TBD
457 Authors' Addresses
460    Stefan Santesson
461    Microsoft
462    Tuborg Boulevard 12
463    2900 Hellerup
464    Denmark
466    EMail: stefans(at)microsoft.com
469    Ari Medvinsky
470    Microsoft
471    One Microsoft Way
472    Redmond, WA 98052-6399
474    Email: arimed(at)microsoft.com
477    Joshua Ball
478    Microsoft
479    One Microsoft Way
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
509 Disclaimer
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.
520 Copyright Statement
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.
529 Expires August 2006
560 Santesson, et. all                                             [Page 10]