]> git.ipfire.org Git - thirdparty/gnutls.git/commitdiff
Add.
authorSimon Josefsson <simon@josefsson.org>
Thu, 16 Feb 2006 09:32:48 +0000 (09:32 +0000)
committerSimon Josefsson <simon@josefsson.org>
Thu, 16 Feb 2006 09:32:48 +0000 (09:32 +0000)
doc/protocol/draft-santesson-tls-ume-02.txt [new file with mode: 0644]

diff --git a/doc/protocol/draft-santesson-tls-ume-02.txt b/doc/protocol/draft-santesson-tls-ume-02.txt
new file mode 100644 (file)
index 0000000..1a29366
--- /dev/null
@@ -0,0 +1,560 @@
+
+
+
+
+INTERNET-DRAFT                                  S. Santesson (Microsoft)
+Updates: 2246, 4346 (once approved)             A. Medvinsky (Microsoft)
+Intended Category: Standards track                   J. Ball (Microsoft)
+Expires August 2006                                        February 2006
+
+
+                       TLS User Mapping Extension
+                    <draft-santesson-tls-ume-02.txt>
+
+
+Status of this Memo
+
+   By submitting this Internet-Draft, each author represents that any
+   applicable patent or other IPR claims of which he or she is aware
+   have been or will be disclosed, and any of which he or she becomes
+   aware will be disclosed, in accordance with Section 6 of BCP 79.
+
+   This document may not be modified, and derivative works of it may not
+   be created, except to publish it as an RFC and to translate it into
+   languages other than English.
+
+   Internet-Drafts are working documents of the Internet Engineering
+   Task Force (IETF), its areas, and its working groups.  Note that
+   other groups may also distribute working documents as Internet-
+   Drafts.
+
+   Internet-Drafts are draft documents valid for a maximum of six months
+   and may be updated, replaced, or obsoleted by other documents at any
+   time.  It is inappropriate to use Internet-Drafts as reference
+   material or to cite them other than a "work in progress."
+
+   The list of current Internet-Drafts can be accessed at
+   http://www.ietf.org/1id-abstracts.html
+
+   The list of Internet-Draft Shadow Directories can be accessed at
+   http://www.ietf.org/shadow.html
+
+
+Abstract
+
+   This document specifies a TLS extension that enables clients to send
+   generic user mapping data in a new handshake message. One such
+   mapping is defined, the UpnDomainHint, which may be used by a server
+   to locate a user in a directory database. Other mappings may be
+   defined in other documents in the future.
+
+
+
+
+
+
+Santesson, et. all                                              [Page 1]
+\f
+INTERNET DRAFT         TLS User Mapping extension          February 2006
+
+
+Table of Contents
+
+   1  Introduction ................................................    2
+   2  User mapping extension ......................................    3
+   3  User mapping handshake protocol .............................    4
+   4  Message flow ................................................    6
+   5  Security Considerations .....................................    7
+   6  References ..................................................    8
+   7 IANA Considerations ... ......................................    8
+   Authors' Addresses .............................................    9
+   Disclaimer .....................................................   10
+   Copyright Statement ............................................   10
+
+1.  Introduction
+
+   This specification documents a TLS extension and a handshake message,
+   which has been defined and implemented by Microsoft to accommodate
+   mapping of users to their user accounts when using TLS client
+   authentication as the authentication method.
+
+   The UPN (User Principal Name) is a name form defined by Microsoft
+   which specifies a user's entry in a directory in the form of
+   userName@domainName.  Traditionally Microsoft has relied on such UPN
+   names to be present in the client certificate when logging on to a
+   domain account.
+
+   This has several drawbacks however since it prevents the use of
+   certificates with an absent UPN and also requires re-issuance of
+   certificates or issuance of multiple certificates to reflect account
+   changes or creation of new accounts.
+
+   The TLS extension defined in this document provide a significant
+   improvement to this situation since it allows a single certificate to
+   be mapped to one or more accounts of the user and does not require
+   the certificate to contain a UPN.
+
+   The new TLS extension (user_mapping) is sent in the client hello
+   message. Per convention defined in RFC 4366 [N4], the server places
+   the same extension (user_mapping) in the server hello message, to
+   inform the client that the server understands this extension. If the
+   server does not understand the extension, it will respond with a
+   server hello omitting this extension and the client will proceed as
+   normal, ignoring the extension, and not include the
+   UserMappingDataList message in the TLS handshake.
+
+   If the new extension is understood, the client will inject a new
+   handshake message prior to the Client's Certificate message. The
+   server will then parse this message, extracting the client's domain,
+
+
+
+Santesson, et. all                                              [Page 2]
+\f
+INTERNET DRAFT         TLS User Mapping extension          February 2006
+
+
+   and store it in the context for use when mapping the certificate to
+   the user's directory account.
+
+   No other modifications to the protocol are required. The messages are
+   detailed in the following sections.
+
+
+1.1  Terminology
+
+   The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
+   "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this
+   document are to be interpreted as described in RFC 2119 [STDWORDS].
+
+   The syntax for the TLS User Mapping extension is defined using the
+   TLS Presentation Language, which is specified in Section 4 of [N2].
+
+1.2  Design considerations
+
+   The reason the mapping data itself is not placed in the extension
+   portion of the client hello is to prevent broadcasting this
+   information to servers that don't understand the extension.
+   Additionally, if new mapping information were to be considered
+   confidential, the addition of a new handshake message allows the data
+   to be encrypted using the server's public key.
+
+
+2  User mapping extension
+
+   A new extension type (user_mapping(n)) is added to the Extension used
+   in both the client hello and server hello messages. The extension
+   type is specified as follows.
+
+
+      enum {
+           user_mapping(n), (65535)
+      } ExtensionType;
+
+   The "extension_data" field of this extension SHALL contain
+   "UserMappingTypeList" with a list of supported hint types where:
+
+      struct {
+            UserMappingType user_mapping_types<1..2^8-1>
+      } UserMappingTypeList;
+
+   Enumeration of hint types (user_mapping_types) defined in this
+   document is provided in section 3.
+
+   The list of user_mapping_types included in a client hello SHALL
+
+
+
+Santesson, et. all                                              [Page 3]
+\f
+INTERNET DRAFT         TLS User Mapping extension          February 2006
+
+
+   signal the hint types supported by the client. The list of
+   user_mapping_types included in the server hello SHALL signal the hint
+   types preferred by the server.
+
+   If none of the hint types listed by the client is supported by the
+   server, the server SHALL omit the user_mapping extension in the
+   server hello.
+
+   When the user_mapping extension is included in the server hello, the
+   list of hint types in "UserMappingTypeList" SHALL be either equal to,
+   or a subset of, the list provided by the client.
+
+3  User mapping handshake protocol
+
+   A new HandshakeType (user_mapping_data) is defined to accommodate
+   communication of generic user mapping data. See RFC 2246 (TLS 1.0)
+   [N2] and RFC 4346 (TLS 1.1) [N3] for other handshake types.
+
+   The information in this handshake message carries an unauthenticated
+   hint, inserted by the client side. Upon receipt and successful
+   completion of the TLS handshake, the server MAY use this hint to
+   locate the user's account from which user information and credentials
+   MAY be retrieved to support authentication based on the client
+   certificate.
+
+
+      enum {
+             user_mapping_data(n),(255)
+      } HandshakeType;
+
+
+   The user_mapping_data(n) enumeration results in a new Handshake
+   Message UserMappingDataList with the following structure:
+
+
+      enum {
+             upn_domain_hint(0), (255)
+      } UserMappingType;
+
+      struct {
+             opaque user_principal_name<0..2^16-1>;
+             opaque domain_name<0..2^16-1>;
+      } UpnDomainHint;
+
+      struct {
+             UserMappingType user_mapping_version
+             select(UserMappingType) {
+                   case upn_domain_hint:
+
+
+
+Santesson, et. all                                              [Page 4]
+\f
+INTERNET DRAFT         TLS User Mapping extension          February 2006
+
+
+                        UpnDomainHint;
+             }
+      } UserMappingData;
+
+      struct{
+         UserMappingData user_mapping_data_list<1..2^16-1>;
+      }UserMappingDataList;
+
+
+
+   The user_principal_name parameter, when specified, SHALL be specified
+   in the form:
+
+      user@domain
+
+   For example the UPN 'foo@example.com' represents user 'foo' at domain
+   'example.com'.
+
+   The domain_name parameter, when specified, SHALL contain a domain
+   name in the "preferred name syntax," as specified by RFC 1034 [N5]
+
+   The UpnDomainHint MUST at least contain a non empty
+   user_principal_name or a non empty domain_name. The UpnDomainHint MAY
+   contain both user_principal_name and domain_name.
+
+   The UserMappingData structure contains a single mapping of type
+   UserMappingType.  This structure can be leveraged to define new types
+   of user mapping hints in the future.  The UserMappingDataList MAY
+   carry multiple hints; it is defined as a vector of UserMappingData
+   structures.
+
+   No preference is given to the order in which hints are specified in
+   this vector.  If the client sends more then one hint then the Server
+   SHOULD use the applicable mapping supported by the server.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Santesson, et. all                                              [Page 5]
+\f
+INTERNET DRAFT         TLS User Mapping extension          February 2006
+
+
+4  Message flow
+
+   In order to negotiate to send user mapping data to a server in
+   accordance with this specification, clients MUST include an extension
+   of type "user_mapping" in the (extended) client hello, which SHALL
+   contain a list of supported hint types.
+
+   Servers that receive an extended client hello containing a
+   "user_mapping" extension, MAY indicate that they are willing to
+   accept user mapping data by including an extension of type
+   "user_mapping" in the (extended) server hello, which SHALL contain a
+   list of preferred hint types.
+
+   After negotiation of the use of user mapping has been successfully
+   completed (by exchanging hello messages including "user_mapping"
+   extensions), clients MAY send a "UserMappingDataList" message before
+   the "Certificate" message. The message flow is illustrated in Fig. 1
+   below.
+
+      Client                                               Server
+
+      ClientHello
+       /* with user_mapping ext */ -------->
+
+                                                      ServerHello
+                                      /* with user-mapping ext */
+                                                     Certificate*
+                                               ServerKeyExchange*
+                                              CertificateRequest*
+                                   <--------      ServerHelloDone
+
+      UserMappingDataList
+      Certificate*
+      ClientKeyExchange
+      CertificateVerify*
+      [ChangeCipherSpec]
+      Finished                     -------->
+                                               [ChangeCipherSpec]
+                                   <--------             Finished
+      Application Data             <------->     Application Data
+
+             Fig. 1 - Message flow with user mapping data
+
+   * Indicates optional or situation-dependent messages that are not
+   always sent according to RFC 2246 [N2] and RFC 4346 [N3].
+
+
+
+
+
+
+Santesson, et. all                                              [Page 6]
+\f
+INTERNET DRAFT         TLS User Mapping extension          February 2006
+
+
+5  Security Considerations
+
+   The UPN sent in the UserMappingDataList is unauthenticated data that
+   MUST NOT be treated as a trusted identifier. Authentication of the
+   user represented by that UPN MUST rely solely on validation of the
+   client certificate. One way to do this in the Microsoft environment
+   is to use the UPN to locate and extract a certificate of the claimed
+   user from the trusted directory and subsequently match this
+   certificate against the validated client certificate from the TLS
+   handshake.
+
+   As the client is the initiator of this TLS extension, it needs to
+   determine when it is appropriate to send the User Mapping
+   Information. It may not be prudent to broadcast this information to
+   just any server at any time, as it can reveal network infrastructure
+   the client and server are using.
+
+   To avoid superfluously sending this information, two techniques
+   SHOULD be used to control its dissemination.
+
+      - The client SHOULD only send the UserMappingDataList handshake
+        message if it is agreed upon in the hello message exchange,
+   preventing
+        the information from being sent to a server that doesn't
+        understand the User Mapping Extension.
+
+      - The client SHOULD further only send this information if the
+        server belongs to a domain to which the client intends to
+        authenticate using the UPN as identifier.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Santesson, et. all                                              [Page 7]
+\f
+INTERNET DRAFT         TLS User Mapping extension          February 2006
+
+
+6 References
+
+   Normative references:
+
+   [N1]        S. Bradner, "Key words for use in RFCs to Indicate
+               Requirement Levels", BCP 14, RFC 2119, March 1997.
+
+   [N2]        T. Dierks, C. Allen, "The TLS Protocol Version 1.0",
+               RFC 2246, January 1999.
+
+   [N3]        T. Dierks, E. Rescorla, "The TLS Protocol Version 1.1",
+               RFC 4346, January 2006.
+
+   [N4]        S. Blake-Wilson, M. Nystrom, D. Hopwood, J. Mikkelsen,
+               T. Wright, "Transport Layer Security (TLS) Extensions",
+               RFC 4366, February 2006.
+
+   [N5]        Mockapetris, P., "Domain Names - Concepts and
+               Facilities", STD 13, RFC 1034, November 1987.
+
+
+7 IANA Considerations
+
+   IANA needs to establish a registry for TLS UserMappingType values.
+   The first entry in the registry is upn_domain_hint(0). TLS
+   UserMappingType values in the inclusive range 0-63 (decimal) are
+   assigned via RFC 2434 [IANA] Standards Action.  Values from the
+   inclusive range 64-223 (decimal) are assigned via RFC 2434
+   Specification Required.  Values from the inclusive range 224-255
+   (decimal) are reserved for RFC 2434 Private Use.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Santesson, et. all                                              [Page 8]
+\f
+INTERNET DRAFT         TLS User Mapping extension          February 2006
+
+
+Appendix A. IPR Disclosure
+
+   TBD
+
+Authors' Addresses
+
+
+   Stefan Santesson
+   Microsoft
+   Tuborg Boulevard 12
+   2900 Hellerup
+   Denmark
+
+   EMail: stefans(at)microsoft.com
+
+
+   Ari Medvinsky
+   Microsoft
+   One Microsoft Way
+   Redmond, WA 98052-6399
+
+   Email: arimed(at)microsoft.com
+
+
+   Joshua Ball
+   Microsoft
+   One Microsoft Way
+   Redmond, WA 98052-6399
+
+   Email: joshball(at)microsoft.com
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Santesson, et. all                                              [Page 9]
+\f
+INTERNET DRAFT         TLS User Mapping extension          February 2006
+
+
+Disclaimer
+
+   This document and the information contained herein are provided on an
+   "AS IS" basis and THE CONTRIBUTOR, THE ORGANIZATION HE/SHE REPRESENTS
+   OR IS SPONSORED BY (IF ANY), THE INTERNET SOCIETY AND THE INTERNET
+   ENGINEERING TASK FORCE DISCLAIM ALL WARRANTIES, EXPRESS OR IMPLIED,
+   INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE
+   INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED
+   WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
+
+
+Copyright Statement
+
+   Copyright (C) The Internet Society (2006).
+
+   This document is subject to the rights, licenses and restrictions
+   contained in BCP 78, and except as set forth therein, the authors
+   retain all their rights.
+
+
+Expires August 2006
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Santesson, et. all                                             [Page 10]