]> git.sur5r.net Git - openldap/blob - doc/drafts/draft-ietf-ldapbis-authmeth-xx.txt
relevant I-Ds
[openldap] / doc / drafts / draft-ietf-ldapbis-authmeth-xx.txt
1
2 INTERNET-DRAFT                                      Editor: R. Harrison 
3 draft-ietf-ldapbis-authmeth-10.txt                         Novell, Inc. 
4 Obsoletes: 2829, 2830                                  10 February 2003 
5 Intended Category: Draft Standard                                       
6  
7  
8                      LDAP: Authentication Methods 
9                                   and  
10                  Connection Level Security Mechanisms 
11  
12 Status of this Memo 
13  
14    This document is an Internet-Draft and is in full conformance with 
15    all provisions of Section 10 of RFC2026. 
16     
17    This document is intended to be, after appropriate review and 
18    revision, submitted to the RFC Editor as a Standard Track document. 
19    Distribution of this memo is unlimited.  Technical discussion of 
20    this document will take place on the IETF LDAP Revision Working 
21    Group mailing list <ietf-ldapbis@OpenLDAP.org>.  Please send 
22    editorial comments directly to the author 
23    <roger_harrison@novell.com>. 
24     
25    Internet-Drafts are working documents of the Internet Engineering 
26    Task Force (IETF), its areas, and its working groups.  Note that 
27    other groups may also distribute working documents as Internet-
28    Drafts. Internet-Drafts are draft documents valid for a maximum of 
29    six months and may be updated, replaced, or obsoleted by other 
30    documents at any time.  It is inappropriate to use Internet-Drafts 
31    as reference material or to cite them other than as "work in 
32    progress." 
33     
34    The list of current Internet-Drafts can be accessed at 
35    http://www.ietf.org/ietf/1id-abstracts.txt The list of Internet-
36    Draft Shadow Directories can be accessed at 
37    http://www.ietf.org/shadow.html. 
38     
39 Copyright Notice 
40     
41    Copyright (C) The Internet Society (2003).  All Rights Reserved. 
42     
43 Abstract 
44     
45    This document describes authentication methods and connection level 
46    security mechanisms of the Lightweight Directory Access Protocol 
47    (LDAP).  
48  
49    This document also details establishment of TLS (Transport Layer 
50    Security) using the Start TLS operation. 
51     
52    This document also details the simple Bind authentication method 
53    including anonymous, unauthenticated, and plain-text password 
54    methods and the SASL (Simple Authentication and Security Layer) Bind 
55  
56 Harrison                  Expires July 2004                  [Page 1] 
57 \f
58 Internet-Draft       LDAP Authentication Methods      5 December 2003 
59  
60    authentication method including the use of DIGEST-MD5 and EXTERNAL 
61    mechanisms. 
62     
63    This document describes various authentication and authorization 
64    states through which a connection to an LDAP server may pass and the 
65    actions that trigger these state changes. 
66  
67 Table of Contents 
68     
69    1. Introduction................................................3 
70    1.1. Relationship to Other Documents...........................5 
71    2. Conventions Used in this Document...........................5 
72    2.1. Glossary of Terms.........................................5 
73    2.2. Security Terms and Concepts...............................5 
74    2.3. Keywords..................................................6 
75    3. Start TLS Operation.........................................6 
76    3.1. Sequencing of the Start TLS Operation ....................6 
77    3.1.1. Start TLS Request.......................................6 
78    3.1.2. Start TLS Response......................................7 
79    3.1.3. TLS Version Negotiation.................................7 
80    3.1.4. Discovery of Resultant Security Level...................7 
81    3.1.5. Server Identity Check...................................7 
82    3.1.6. Refresh of Server Capabilities Information..............8 
83    3.2. Effects of TLS on a Client's Authorization Identity.......8 
84    3.2.1. TLS Connection Establishment Effects....................9 
85    3.2.2. Client Assertion of Authorization Identity..............9 
86    3.2.3. TLS Connection Closure Effects..........................9 
87    4. Bind Operation..............................................9 
88    4.1. Simple Authentication.....................................9 
89    4.2. SASL Authentication.......................................9 
90    5. Anonymous LDAP Association on Unbound Connections......... 10 
91    6. Anonymous Authentication ................................. 10 
92    7. Simple Authentication..................................... 10 
93    8. SASL Authentication Profile............................... 11 
94    8.1. SASL Service Name for LDAP.............................. 11 
95    8.2. SASL Authentication Initiation and Protocol Exchange.... 11 
96    8.3. Octet Where Negotiated Security Mechanisms Take Effect.. 12 
97    8.4. Determination of Supported SASL Mechanisms.............. 12 
98    8.5. Rules for Using SASL Security Layers.................... 13 
99    9. SASL EXTERNAL Mechanism................................... 13 
100    9.1. Implicit Assertion...................................... 13 
101    9.2. Explicit Assertion...................................... 14 
102    9.3. SASL Authorization Identity............................. 14 
103    9.4 Authorization Identity Syntax............................ 14 
104    10. SASL DIGEST-MD5 Mechanism................................ 15 
105    11. General Requirements for Password-based Authentication .. 15 
106    12. Invalidated Associations................................. 16 
107    13. TLS Ciphersuites......................................... 16 
108
109  
110 Harrison                  Expires July 2004                  [Page 2] 
111 \f
112 Internet-Draft       LDAP Authentication Methods      5 December 2003 
113  
114    13.1. TLS Ciphersuites Recommendations....................... 17 
115    14. Security Considerations ................................. 18 
116    14.1. Start TLS Security Considerations...................... 18 
117    15. IANA Considerations...................................... 19 
118    Acknowledgements............................................. 19 
119    Normative References......................................... 19 
120    Informative References....................................... 21 
121    Author's Address............................................. 21 
122    Appendix A. LDAP Association State Transition Tables......... 21 
123    A.1. LDAP Association States................................. 21 
124    A.2. Actions that Affect LDAP Association State.............. 22 
125    A.3. Decisions Used in Making LDAP Association State Changes. 22 
126    A.4. LDAP Association State Transition Table................. 22 
127    Appendix B. Example Deployment Scenarios..................... 23 
128    Appendix C. Authentication and Authorization Concepts........ 24 
129    C.1. Access Control Policy................................... 24 
130    C.2. Access Control Factors ................................. 24 
131    C.3. Authentication, Credentials, Identity .................. 25 
132    C.4. Authorization Identity ................................. 25 
133    Appendix D. RFC 2829 Change History ......................... 25 
134    Appendix E. RFC 2830 Change History ......................... 29 
135    Appendix F. RFC 2251 Change History ......................... 30 
136    Appendix G. Change History to Combined Document.............. 30 
137    Appendix H. Issues to be Resolved............................ 41 
138     
139     
140 1. Introduction 
141     
142    The Lightweight Directory Access Protocol (LDAP) [Protocol] is a 
143    powerful access protocol for directories. It offers means of 
144    searching, retrieving and manipulating directory content, and ways 
145    to access a rich set of security functions. 
146  
147    It is vital that these security functions be interoperable among all 
148    LDAP clients and servers on the Internet; therefore there has to be 
149    a minimum subset of security functions that is common to all 
150    implementations that claim LDAP conformance. 
151  
152    Basic threats to an LDAP directory service include: 
153  
154    (1) Unauthorized access to directory data via data-retrieval 
155        operations, 
156  
157    (2) Unauthorized access to directory data by monitoring others' 
158        access, 
159     
160    (3) Unauthorized access to reusable client authentication 
161        information by monitoring others' access, 
162     
163    (4) Unauthorized modification of directory data, 
164  
165  
166 Harrison                  Expires July 2004                  [Page 3] 
167 \f
168 Internet-Draft       LDAP Authentication Methods      5 December 2003 
169  
170    (5) Unauthorized modification of configuration information, 
171     
172    (6) Denial of Service: Use of resources (commonly in excess) in a 
173        manner intended to deny service to others. and 
174  
175    (7) Spoofing: Tricking a user or client into believing that 
176        information came from the directory when in fact it did not, 
177        either by modifying data in transit or misdirecting the client's 
178        connection. Tricking a user or client into sending privileged 
179        information to a hostile entity that appears to be the directory 
180        server but is not. Tricking a directory server into believing 
181        that information came from a particular client when in fact it 
182        came from a hostile entity. 
183     
184    (8) Hijacking of prototocol sessions. 
185  
186    Threats (1), (4), (5) and (6) are due to hostile clients. Threats 
187    (2), (3) and (7) are due to hostile agents on the path between 
188    client and server or hostile agents posing as a server, e.g. IP 
189    spoofing. 
190  
191    LDAP offers the following security mechanisms: 
192  
193    (1) Authentication by means of the Bind operation.  The Bind 
194        operation provides a simple method which supports anonymous, 
195        unauthenticated, and authenticated with password mechanisms, and 
196        the Secure Authentication and Security Layer (SASL) method which 
197        supports a wide variety of authentication mechanisms and which 
198        may be extended to support additional methods of authentication. 
199  
200    (2) Client authorization by means of access control based on the 
201        requestor's authenticated identity, 
202  
203    (3) Data integrity protection by means of TLS or SASL mechanisms 
204        with security layers that provide data integrity services, 
205  
206    (4) Data confidentiality protection against snooping by means of the 
207        TLS protocol or SASL mechanisms that provide data 
208        confidentiality services, 
209  
210    (5) Server resource usage limitation by means of administrative 
211        service limits configured on the server, and 
212  
213    (6) Server authentication by means of the TLS protocol or SASL 
214        mechanism. 
215  
216    At the moment, imposition of access controls is done by means 
217    outside the scope of LDAP. 
218     
219    It seems clear that allowing any implementation, faced with the 
220    above requirements, to simply pick and choose among the possible 
221    alternatives is not a strategy that is likely to lead to 
222    interoperability. In the absence of mandates, clients will be 
223    written that do not support any security function supported by the 
224  
225 Harrison                  Expires July 2004                  [Page 4] 
226 \f
227 Internet-Draft       LDAP Authentication Methods      5 December 2003 
228  
229    server, or worse, they will support only clear text passwords that 
230    provide inadequate security for most circumstances. 
231  
232    Given the presence of the Directory, there is a strong desire to see 
233    mechanisms where identities take the form of an LDAP distinguished 
234    name [LDAPDN] and authentication data can be stored in the 
235    directory. This means that this data must be updated outside the 
236    protocol or only updated in sessions well protected against 
237    snooping. It is also desirable to allow authentication methods to 
238    carry identities not represented as LDAP DNs that are familiar to 
239    the user or that are used in other systems. 
240     
241    The set of security mechanisms provided in LDAP and described in 
242    this document is intended to meet the security needs for a wide 
243    range of deployment scenarios and still provide a high degree of 
244    interoperability among various LDAP implementations and deployments. 
245    Appendix B contains example deployment scenarios that list the 
246    mechanisms that might be used to achieve a reasonable level of 
247    security in various circumstances. 
248     
249 1.1. Relationship to Other Documents 
250  
251    This document is an integral part of the LDAP Technical 
252    Specification [Roadmap].  
253     
254    This document obsoletes RFC 2829. 
255     
256    Sections 2 and 4 of RFC 2830 are obsoleted by [Protocol].  The 
257    remainder of RFC 2830 is obsoleted by this document.  
258     
259 2. Conventions Used in this Document 
260     
261 2.1. Glossary of Terms 
262     
263    The following terms are used in this document. To aid the reader, 
264    these terms are defined here. 
265     
266      - "user" represents any human or application entity which is 
267        accessing the directory using a directory client.  A directory 
268        client (or client) is also known as a directory user agent 
269        (DUA). 
270       
271      - "connection" and "LDAP connection" both refer to the underlying 
272        transport protocol connection between two protocol peers.  
273       
274      - "TLS connection" refers to a TLS-protected [TLS] LDAP 
275        connection.  
276       
277      - "association" and "LDAP association" both refer to the 
278        association of the LDAP connection and its current 
279        authentication and authorization state. 
280     
281 2.2. Security Terms and Concepts 
282     
283  
284 Harrison                  Expires July 2004                  [Page 5] 
285 \f
286 Internet-Draft       LDAP Authentication Methods      5 December 2003 
287  
288    In general, security terms in this document are used consistently 
289    with the definitions provided in [Glossary]. In addition, several 
290    terms and concepts relating to security, authentication, and 
291    authorization are presented in Appendix C of this document. While 
292    the formal definition of these terms and concepts is outside the 
293    scope of this document, an understanding of them is prerequisite to 
294    understanding much of the material in this document. Readers who are 
295    unfamiliar with security-related concepts are encouraged to review 
296    Appendix C before reading the remainder of this document. 
297  
298 2.3. Keywords 
299     
300    The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", 
301    "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this 
302    document are to be interpreted as described in RFC 2119 [Keyword]. 
303  
304 3. Start TLS Operation 
305     
306    The Start Transport Layer Security (Start TLS) operation defined in 
307    section 4.13 of [Protocol] provides the ability to establish [TLS] 
308    on an LDAP connection. 
309     
310 3.1. Sequencing of the Start TLS Operation 
311  
312    This section describes the overall procedures clients and servers 
313    must follow for TLS establishment. These procedures take into 
314    consideration various aspects of the overall security of the LDAP 
315    association including discovery of resultant security level and 
316    assertion of the client's authorization identity. 
317  
318    Note that the precise effects, on a client's authorization identity, 
319    of establishing TLS on an LDAP connection are described in detail in 
320    section 3.2. 
321  
322 3.1.1. Start TLS Request  
323  
324    A client may send the Start TLS extended request at any time after 
325    establishing an LDAP connection, except: 
326     
327       - when TLS is currently established on the connection, 
328       - when a multi-stage SASL negotiation is in progress on the 
329         connection, or 
330       - when there are outstanding LDAP operations on the connection. 
331     
332    The result of violating any of these requirements is a resultCode of 
333    operationsError, as described in [Protocol] section 4.13.2.2. Client 
334    implementers should note that it is possible to receive a resultCode 
335    of success for a Start TLS operation that is sent on a connection 
336    with outstanding LDAP operations if the server has sufficient time 
337    to process them prior to its receiving the Start TLS request. 
338    Implementors of clients should ensure that they do not inadvertently 
339    depend upon this race condition. 
340     
341
342  
343 Harrison                  Expires July 2004                  [Page 6] 
344 \f
345 Internet-Draft       LDAP Authentication Methods      5 December 2003 
346  
347    There is no requirement that the client have or have not already 
348    performed a Bind operation (section 4) before sending a Start TLS 
349    operation request. 
350     
351    If the client did not establish a TLS connection before sending some 
352    other request, and the server requires the client to establish a TLS 
353    connection before performing that request, the server MUST reject 
354    that request by sending a resultCode of confidentialityRequired or 
355    strongAuthRequired. 
356     
357    An LDAP server which requests that clients provide their certificate 
358    during TLS negotiation MAY use a local security policy to determine 
359    whether to successfully complete TLS negotiation if the client did 
360    not present a certificate which could be validated. 
361  
362 3.1.2. Start TLS Response 
363  
364    The server will return an extended response with the resultCode of 
365    success if it is willing and able to negotiate TLS.  It will return 
366    other resultCode values (documented in [Protocol] section 4.13.2.2) 
367    if it is unwilling or unable to do so. 
368     
369    In the successful case, the client (which has ceased to transfer 
370    LDAP requests on the connection) MUST either begin a TLS negotiation 
371    or close the connection. The client will send PDUs in the TLS Record 
372    Protocol directly over the underlying transport connection to the 
373    server to initiate [TLS] negotiation. 
374  
375 3.1.3. TLS Version Negotiation 
376  
377    Negotiating the version of TLS to be used is a part of the TLS 
378    Handshake Protocol [TLS]. Please refer to that document for details. 
379  
380 3.1.4. Discovery of Resultant Security Level 
381  
382    After a TLS connection is established on an LDAP connection, both 
383    parties must individually decide whether or not to continue based on 
384    the security level achieved. Ascertaining the TLS connection's 
385    security level is implementation dependent and accomplished by 
386    communicating with one's respective local TLS implementation. 
387  
388    If the client or server decides that the level of authentication or 
389    security is not high enough for it to continue, it SHOULD gracefully 
390    close the TLS connection immediately after the TLS negotiation has 
391    completed (see [Protocol] section 4.13.3.1 and section 3.2.3 below). 
392    If the client decides to continue, it may gracefully close the TLS 
393    connection and attempt to Start TLS again, it may send an unbind 
394    request, or it may send any other LDAP request. 
395  
396 3.1.5. Server Identity Check 
397  
398    The client MUST check its understanding of the server's hostname 
399    against the server's identity as presented in the server's 
400    Certificate message in order to prevent man-in-the-middle attacks. 
401  
402 Harrison                  Expires July 2004                  [Page 7] 
403 \f
404 Internet-Draft       LDAP Authentication Methods      5 December 2003 
405  
406  
407    Matching is performed according to these rules: 
408     
409      - The client MUST use the server provided by the user (or other 
410        trusted entity) as the value to compare against the server name 
411        as expressed in the server's certificate. A hostname derived 
412        from the user input is to be considered provided by the user 
413        only if derived in a secure fashion (e.g., DNSSEC). 
414     
415      - If a subjectAltName extension of type dNSName is present in the 
416        certificate, it SHOULD be used as the source of the server's 
417        identity. 
418          
419      - Matching is case-insensitive. 
420     
421      - The "*" wildcard character is allowed.  If present, it applies 
422        only to the left-most name component. 
423     
424        For example, *.bar.com would match a.bar.com and b.bar.com, but 
425        it would not match a.x.bar.com nor would it match bar.com.  If 
426        more than one identity of a given type is present in the 
427        certificate (e.g. more than one dNSName name), a match in any 
428        one of the set is considered acceptable. 
429     
430    If the hostname does not match the dNSName-based identity in the 
431    certificate per the above check, user-oriented clients SHOULD either 
432    notify the user (clients may give the user the opportunity to 
433    continue with the connection in any case) or terminate the 
434    connection and indicate that the server's identity is suspect. 
435    Automated clients SHOULD close the connection, returning and/or 
436    logging an error indicating that the server's identity is suspect. 
437     
438    Beyond the server identity checks described in this section, clients 
439    SHOULD be prepared to do further checking to ensure that the server 
440    is authorized to provide the service it is observed to provide. The 
441    client may need to make use of local policy information in making 
442    this determination. 
443  
444 3.1.6. Refresh of Server Capabilities Information 
445  
446    Upon TLS session establishment, the client SHOULD discard or refresh 
447    all information about the server it obtained prior to the initiation 
448    of the TLS negotiation and not obtained through secure mechanisms. 
449    This protects against active-intermediary attacks that may have 
450    altered any server capabilities information retrieved prior to TLS 
451    establishment.  
452     
453    The server may advertise different capabilities after TLS 
454    establishment. In particular, the value of supportedSASLMechanisms 
455    may be different after TLS has been negotiated (specifically, the 
456    EXTERNAL and PLAIN [PLAIN] mechanisms are likely to be listed only 
457    after a TLS negotiation has been performed). 
458     
459 3.2. Effects of TLS on a Client's Authorization Identity 
460  
461 Harrison                  Expires July 2004                  [Page 8] 
462 \f
463 Internet-Draft       LDAP Authentication Methods      5 December 2003 
464  
465  
466    This section describes the effects on a client's authorization 
467    identity brought about by establishing TLS on an LDAP connection. 
468    The default effects are described first, and next the facilities for 
469    client assertion of authorization identity are discussed including 
470    error conditions. Finally, the effects of closing the TLS connection 
471    are described. 
472  
473    Authorization identities and related concepts are described in 
474    Appendix C. 
475  
476 3.2.1. TLS Connection Establishment Effects 
477     
478    The decision to keep or invalidate the established authentication 
479    and authorization identities in place after TLS closure is a matter 
480    of local server policy.  
481  
482 3.2.2. Client Assertion of Authorization Identity 
483     
484    After successfully establishing a TLS session, a client may request 
485    that its credentials exchanged during the TLS establishment be 
486    utilized to authenticate the LDAP association and thus determine the 
487    client's authorization status. The client accomplishes this via an 
488    LDAP Bind request specifying a SASL mechanism of EXTERNAL [SASL] 
489    (section 9). LDAP server implementations SHOULD support this 
490    authentication method. 
491     
492 3.2.3. TLS Connection Closure Effects 
493     
494    The decision to keep or invalidate the established authentication 
495    and authorization identities in place after TLS closure is a matter 
496    of local server policy. 
497  
498 4. Bind Operation 
499      
500    The Bind operation defined in section 4.2 of [Protocol] allows 
501    authentication information to be exchanged between the client and 
502    server to establish a new LDAP association.  
503     
504    Upon receipt of a Bind request, the LDAP association is moved to an 
505    anonymous state and only upon successful completion of the 
506    authentication exchange (and the Bind operation) is the association 
507    moved to an authenticated state. 
508     
509 4.1. Simple Authentication  
510     
511    The simple authentication choice of the Bind Operation provides 
512    minimal facilities for establishing an anonymous association 
513    (section 6) or for establishing an LDAP association based upon 
514    credentials consisting of a name (in the form of an LDAP 
515    distinguished name [LDAPDN]) and a password (section 7). 
516     
517 4.2. SASL Authentication  
518     
519  
520 Harrison                  Expires July 2004                  [Page 9] 
521 \f
522 Internet-Draft       LDAP Authentication Methods      5 December 2003 
523  
524    The sasl authentication choice of the Bind Operation provides 
525    facilities for authenticating via SASL mechanisms (sections 8-10). 
526     
527 5. Anonymous LDAP Association on Unbound Connections 
528     
529    Prior to the successful completion of a Bind operation and during 
530    any subsequent authentication exchange, the session has an anonymous 
531    LDAP association. Among other things this implies that the client 
532    need not send a Bind Request in the first PDU of the connection. The 
533    client may send any operation request prior to binding, and the 
534    server MUST treat it as if it had been performed after an anonymous 
535    bind operation. This authentication state on an LDAP association is 
536    sometimes referred to as an implied anonymous bind. 
537  
538 6. Anonymous Authentication 
539  
540    Directory operations that modify entries or access protected 
541    attributes or entries generally require client authentication. 
542    Clients that do not intend to perform any of these operations 
543    typically use anonymous authentication. 
544     
545    An LDAP client may explicitly establish an anonymous association by 
546    sending a Bind Request with the simple authentication choice 
547    containing a value--construed as the password--of zero length. A 
548    bind request where both the name and password are of zero length is 
549    said to be an anonymous bind. A bind request where the name, a DN, 
550    is of non-zero length, and the password is of zero length is said to 
551    be an unauthenticated bind. Both variations produce an anonymous 
552    association. 
553     
554    Unauthenticated binds can have significant security issues (see 
555    section 14). Servers SHOULD by default reject unauthenticated bind 
556    requests with a resultCode of invalidCredentials, and clients may 
557    need to actively detect situations where they would make an 
558    unauthenticated bind request. 
559     
560    An LDAP server may use other information about the client provided 
561    by the lower layers or external means to grant or deny access even 
562    to anonymously authenticated clients. 
563     
564    LDAP implementations MUST support anonymous authentication. 
565  
566 7. Simple Authentication 
567  
568    An LDAP client may establish an LDAP association by sending a Bind 
569    Request with a name value consisting of an LDAP distinguished name 
570    [LDAPDN] and specifying the simple authentication choice with a 
571    password value.  
572     
573    DSAs that map the DN sent in the bind request to a directory entry 
574    with an associated set of one or more passwords will compare the 
575    presented password to the set of passwords associated with that 
576    entry. If the presented password matches any member of that set, 
577
578  
579 Harrison                  Expires July 2004                 [Page 10] 
580 \f
581 Internet-Draft       LDAP Authentication Methods      5 December 2003 
582  
583    then the server will respond with a success resultCode, otherwise 
584    the server will respond with an invalidCredentials resultCode. 
585     
586    The simple authentication choice is not suitable for authentication 
587    in environments where there is no network or transport layer 
588    confidentiality. LDAP implementations SHOULD support authentication 
589    with the "simple" authentication choice when the connection is 
590    protected against eavesdropping using TLS, as defined in section 4. 
591    LDAP implementations SHOULD NOT support authentication with the 
592    "simple" authentication choice unless the data on the connection is 
593    protected using TLS or other data confidentiality and data integrity 
594    protection. 
595  
596 8. SASL Authentication Profile 
597     
598    LDAP allows authentication via any SASL mechanism [SASL]. As LDAP 
599    includes native anonymous and plaintext authentication methods, the 
600    ANONYMOUS [ANONYMOUS] and PLAIN [PLAIN] SASL mechanisms are 
601    typically not used with LDAP. 
602  
603    Each protocol that utilizes SASL services is required to supply 
604    certain information profiling the way they are exposed through the 
605    protocol ([SASL] section 5). This section explains how each of these 
606    profiling requirements are met by LDAP. 
607     
608 8.1. SASL Service Name for LDAP 
609  
610    The SASL service name for LDAP is "ldap", which has been registered 
611    with the IANA as a GSSAPI service name. 
612     
613 8.2. SASL Authentication Initiation and Protocol Exchange 
614     
615    SASL authentication is initiated via an LDAP bind request 
616    ([Protocol] section 4.2) with the following parameters: 
617     
618       - The version is 3. 
619       - The AuthenticationChoice is sasl.  
620       - The mechanism element of the SaslCredentials sequence contains 
621         the value of the desired SASL mechanism.  
622       - The optional credentials field of the SaslCredentials sequence 
623         may be used to provide an initial client response for 
624         mechanisms that are defined to have the client send data first 
625         (see [SASL] sections 5 and 5.1). 
626     
627    In general, a SASL authentication protocol exchange consists of a 
628    series of server challenges and client responses, the contents of 
629    which are specific to and defined by the SASL mechanism. Thus for 
630    some SASL authentication mechanisms, it may be necessary for the 
631    client to respond to one or more server challenges by invoking the 
632    BindRequest multiple times. A challenge is indicated by the server 
633    sending a BindResponse with the resultCode set to 
634    saslBindInProgress. This indicates that the server requires the 
635    client to send a new bind request with the same sasl mechanism to 
636    continue the authentication process. 
637  
638 Harrison                  Expires July 2004                 [Page 11] 
639 \f
640 Internet-Draft       LDAP Authentication Methods      5 December 2003 
641  
642     
643    To the encapsulating protocol, these challenges and responses are 
644    opaque binary tokens of arbitrary length. LDAP servers use the 
645    serverSaslCreds field, an OCTET STRING, in a bind response message 
646    to transmit each challenge. LDAP clients use the credentials field, 
647    an OCTET STRING, in the SaslCredentials sequence of a bind request 
648    message to transmit each response. Note that unlike some Internet 
649    protocols where SASL is used, LDAP is not text-based, thus no Base64 
650    transformations are performed on these challenge and response 
651    values. 
652     
653    Clients sending a bind request with the sasl choice selected SHOULD 
654    NOT send a value in the name field. Servers receiving a bind request 
655    with the sasl choice selected SHALL ignore any value in the name 
656    field. 
657     
658    A client may abort a SASL bind negotiation by sending a BindRequest 
659    with a different value in the mechanism field of SaslCredentials, or 
660    an AuthenticationChoice other than sasl.  
661         
662    If the client sends a BindRequest with the sasl mechanism field as 
663    an empty string, the server MUST return a BindResponse with 
664    authMethodNotSupported as the resultCode. This will allow clients to 
665    abort a negotiation if it wishes to try again with the same SASL 
666    mechanism. 
667     
668    The server indicates completion of the SASL challenge-response 
669    exchange by responding with a bind response in which the resultCode 
670    is either success, or an error indication. 
671     
672    The serverSaslCreds field in the bind response can be used to 
673    include an optional challenge with a success notification for 
674    mechanisms which are defined to have the server send additional data 
675    along with the indication of successful completion. 
676  
677 8.3. Octet Where Negotiated Security Mechanisms Take Effect 
678  
679    SASL security layers take effect following the transmission by the 
680    server and reception by the client of the final successful 
681    BindResponse in the exchange. 
682  
683    Once a SASL security layer providing integrity or confidentiality 
684    services takes effect, the layer remains in effect until a new layer 
685    is installed (i.e. at the first octet following the final 
686    BindResponse of the bind operation that caused the new layer to take 
687    effect). 
688          
689 8.4. Determination of Supported SASL Mechanisms 
690     
691    Clients may determine the SASL mechanisms a server supports by  
692    reading the 'supportedSASLMechanisms ' attribute from the root DSE 
693    (DSA-Specific Entry) ([Models] section 5.1).  The values of this 
694    attribute, if any, list the mechanisms the server supports in the 
695    current LDAP session state. 
696  
697 Harrison                  Expires July 2004                 [Page 12] 
698 \f
699 Internet-Draft       LDAP Authentication Methods      5 December 2003 
700  
701     
702    LDAP servers SHOULD allow an anonymously-bound client to retrieve 
703    the supportedSASLMechanisms attribute of the root DSE. 
704  
705 8.5. Rules for Using SASL Security Layers 
706     
707    If a SASL security layer is negotiated, the client SHOULD discard 
708    information about the server it obtained prior to the initiation of 
709    the SASL negotiation and not obtained through secure mechanisms.  
710     
711    If a lower level security layer (such as TLS) is negotiated, any 
712    SASL security services SHALL be layered on top of such security 
713    layers regardless of the order of their negotiation. In all other 
714    respects, SASL security services and other security layers act 
715    independently, e.g. if both TLS and SASL security service are in 
716    effect removing the SASL security service does not affect the 
717    continuing service of TLS and vice versa. 
718     
719    Because SASL mechanisms provide critical security functions, clients 
720    and servers should allow the user to specify what mechanisms are 
721    acceptable and allow only those mechanisms to be used. 
722  
723 9. SASL EXTERNAL Mechanism 
724     
725    A client can use the EXTERNAL SASL [SASL] mechanism to request the 
726    LDAP server to make use of security credentials exchanged by a lower 
727    security layer (such as by TLS authentication or IP-level security 
728    [SecArch]).  
729     
730    If the client's authentication credentials have not been established 
731    at a lower security layer, the SASL EXTERNAL bind MUST fail with a 
732    resultCode of inappropriateAuthentication.  Any client 
733    authentication and authorization state of the LDAP association is 
734    lost, so the LDAP association is in an anonymous state after the 
735    failure (see [Protocol] section 4.2.1). In such a situation, the 
736    state of any established security layer is unaffected. 
737  
738    A client may either implicitly request that its LDAP authorization 
739    identity be derived from a lower layer or it may explicitly provide 
740    an authorization identity and assert that it be used in combination 
741    with its authenticated TLS credentials. The former is known as an 
742    implicit assertion, and the latter as an explicit assertion. 
743     
744 9.1. Implicit Assertion 
745     
746    An implicit authorization identity assertion is performed by 
747    invoking a Bind request of the SASL form using the EXTERNAL 
748    mechanism name that does not include the optional credentials octet 
749    string (found within the SaslCredentials sequence in the Bind 
750    Request). The server will derive the client's authorization identity 
751    from the authentication identity supplied by the security layer 
752    (e.g., a public key certificate used during TLS establishment) 
753    according to local policy. The underlying mechanics of how this is 
754    accomplished are implementation specific. 
755  
756 Harrison                  Expires July 2004                 [Page 13] 
757 \f
758 Internet-Draft       LDAP Authentication Methods      5 December 2003 
759  
760     
761 9.2. Explicit Assertion 
762     
763    An explicit authorization identity assertion is performed by 
764    invoking a Bind request of the SASL form using the EXTERNAL 
765    mechanism name that includes the credentials octet string. This 
766    string MUST be constructed as documented in section 3.4.1. 
767     
768    The server MUST verify that the client's authentication identity as 
769    supplied in its TLS credentials is permitted to be mapped to the 
770    asserted authorization identity. The server MUST reject the Bind 
771    operation with an invalidCredentials resultCode in the Bind response 
772    if the client is not so authorized. 
773  
774 9.3. SASL Authorization Identity 
775  
776    When the EXTERNAL SASL mechanism is being negotiated, if the 
777    SaslCredentials credentials field is present, it contains an 
778    authorization identity. Other mechanisms define the location of the 
779    authorization identity in the credentials field. In either case, the 
780    authorization identity is represented in the authzId form described 
781    below. 
782  
783 9.4 Authorization Identity Syntax 
784     
785    The authorization identity is a string of [UTF-8] encoded [Unicode] 
786    characters corresponding to the following [ABNF] grammar: 
787  
788    authzId = dnAuthzId / uAuthzId 
789  
790    DNCOLON  = %x64 %x6e %x3a ; "dn:" 
791    UCOLON = %x75 %x3a ; "u:" 
792     
793    ; distinguished-name-based authz id. 
794    dnAuthzId = DNCOLON distinguishedName 
795  
796    ; unspecified authorization id, UTF-8 encoded. 
797    uAuthzId = UCOLON userid 
798    userid = *UTF8    ; syntax unspecified 
799     
800    where the <distinguishedName> production is defined in section 3 of 
801    [LDAPDN] and <UTF8> production is defined in section 1.3 of 
802    [Models]. 
803  
804    In order to support additional specific authorization identity 
805    forms, future updates to this specification may add new choices 
806    supporting other forms may be added to the authzId production.  
807     
808    The dnAuthzId choice allows clients to assert authorization 
809    identities in the form of a distinguished name to be matched in 
810    accordance with the distinguishedNameMatch matching rule [Syntaxes]. 
811    The decision to allow or disallow an authentication identity to have 
812    access to the requested authorization identity is a matter of local 
813
814  
815 Harrison                  Expires July 2004                 [Page 14] 
816 \f
817 Internet-Draft       LDAP Authentication Methods      5 December 2003 
818  
819    policy ([SASL] section 4.2). For this reason there is no requirement 
820    that the asserted dn be that of an entry in directory. 
821     
822    The uAuthzId choice allows for compatibility with clients that wish 
823    to assert an authorization identity to a local directory but do not 
824    have that identity in distinguished name form. The value contained 
825    within a uAuthzId MUST be prepared using [SASLPrep] before being 
826    compared octet-wise. The format of userid is defined as only a 
827    sequence of [UTF-8] encoded [Unicode] characters, and further 
828    interpretation is subject to prior agreement between the client and 
829    server. 
830  
831    For example, the userid could identify a user of a specific 
832    directory service or be a login name or the local-part of an RFC 822 
833    email address. A uAuthzId SHOULD NOT be assumed to be globally 
834    unique. 
835  
836 10. SASL DIGEST-MD5 Mechanism 
837     
838    LDAP servers that implement any authentication method or mechanism 
839    other than simple anonymous bind MUST implement the SASL 
840    DIGEST-MD5 mechanism [DIGEST-MD5].  This provides client 
841    authentication with protection against passive eavesdropping attacks 
842    but does not provide protection against active intermediary attacks.  
843    DIGEST-MD5 also provides data integrity and data confidentiality 
844    capabilities. 
845     
846     
847    Support for subsequent authentication ([DIGEST-MD5] section 2.2) is 
848    OPTIONAL in clients and servers. 
849     
850    Implementers must take care to ensure that they maintain the 
851    semantics of the DIGEST-MD5 specification even when handling data 
852    that has different semantics in the LDAP protocol. 
853    For example, the SASL DIGEST-MD5 authentication mechanism utilizes 
854    realm and username values ([DIGEST-MD5] section 2.1) which are 
855    syntactically simple strings and semantically simple realm and 
856    username values. These values are not LDAP DNs, and there is no 
857    requirement that they be represented or treated as such. Username 
858    and realm values that look like LDAP DNs in form, e.g. <cn=bob, 
859    dc=example,dc=com>, are syntactically allowed, however DIGEST-MD5 
860    treats them as simple strings for comparison purposes. To illustrate 
861    further, the two DNs <cn=Bob,dc=example,dc=com> (upper case "B") and 
862    <cn=bob,dc=example,dc=com> (lower case "b") are equivalent when 
863    being compared semantically as LDAP DNs because the cn attribute is 
864    defined to be case insensitive, however the two values are not 
865    equivalent if they represent username values in DIGEST-MD5 because 
866    [SASLPrep] semantics are used by DIGEST-MD5.  
867  
868 11. General Requirements for Password-based Authentication 
869     
870    The transmission of passwords in the clear--typically for 
871    authentication or modification--poses a significant security risk. 
872    This risk can be avoided by using SASL authentication [SASL] 
873  
874 Harrison                  Expires July 2004                 [Page 15] 
875 \f
876 Internet-Draft       LDAP Authentication Methods      5 December 2003 
877  
878    mechanisms that do not transmit passwords in the clear or by 
879    negotiating transport or session layer confidentiality services 
880    before transmitting password values. 
881     
882    To mitigate the security risks associated with the use of passwords, 
883    a server implementation MUST implement a configuration that at the 
884    time of authentication or password modification, requires: 
885     
886      1) A Start TLS encryption layer has been successfully negotiated. 
887       
888       OR 
889       
890      2) Some other confidentiality mechanism that protects the password 
891         value from snooping has been provided. 
892       
893       OR 
894       
895      3) The server returns a resultCode of confidentialityRequired for 
896         the operation (i.e. simple bind with password value, SASL bind 
897         transmitting a password value in the clear, add or modify 
898         including a userPassword value, etc.), even if the password 
899         value is correct. 
900  
901 12. Invalidated Associations 
902  
903    The server may, at any time, invalidate the association, e.g. if the 
904    established security association between the client and server has 
905    unexpectedly failed or been compromised.  The association remains 
906    invalidated until the next successful bind request.  While the 
907    association is invalidated, the server may reject any operation 
908    request other than Bind, Unbind, and Start TLS by responding with a 
909    resultCode of strongAuthRequired to indicate that the client needs 
910    to bind to reestablish its authentication state before performing 
911    the requested operation. 
912  
913 13. TLS Ciphersuites 
914  
915         A client or server that supports TLS MUST support 
916         TLS_DHE_DSS_WITH_3DES_EDE_CBC_SHA. Servers SHOULD NOT support 
917         weaker ciphersuites unless other data integrity and 
918         confidentiality protection (such as a SASL security layer) is 
919         in place 
920     
921    Several issues should be considered when selecting TLS ciphersuites 
922    that are appropriate for use in a given circumstance. These issues 
923    include the following: 
924     
925      - The ciphersuite's ability to provide adequate confidentiality 
926        protection for passwords and other data sent over the LDAP 
927        connection. Client and server implementers should recognize that 
928        some TLS ciphersuites provide no confidentiality protection 
929        while other ciphersuites that do provide confidentiality 
930        protection may be vulnerable to being cracked using brute force 
931
932  
933 Harrison                  Expires July 2004                 [Page 16] 
934 \f
935 Internet-Draft       LDAP Authentication Methods      5 December 2003 
936  
937        methods, especially in light of ever-increasing CPU speeds that 
938        reduce the time needed to successfully mount such attacks. 
939       
940        Client and server implementers SHOULD carefully consider the 
941        value of the password or data being protected versus the level 
942        of confidentially protection provided by the ciphersuite to 
943        ensure that the level of protection afforded by the ciphersuite 
944        is appropriate. 
945       
946      - The ciphersuite's vulnerability (or lack thereof) to man-in-the-
947        middle attacks. Ciphersuites vulnerable to man-in-the-middle 
948        attacks SHOULD NOT be used to protect passwords or sensitive 
949        data, unless the network configuration is such that the danger 
950        of a man-in-the-middle attack is tolerable. 
951  
952 13.1. TLS Ciphersuites Recommendations 
953     
954    As of the writing of this document, the following recommendations 
955    regarding TLS ciphersuites are applicable. Because circumstances are 
956    constantly changing, this list must not be considered exhaustive, 
957    but is hoped that it will serve as a useful starting point for 
958    implementers.  
959     
960    The following ciphersuites defined in [TLS] MUST NOT be used for 
961    confidentiality protection of passwords or data: 
962  
963          TLS_NULL_WITH_NULL_NULL 
964          TLS_RSA_WITH_NULL_MD5 
965          TLS_RSA_WITH_NULL_SHA 
966  
967    The following ciphersuites defined in [TLS] can be cracked easily 
968    (less than a day of CPU time on a standard CPU in 2000) and are NOT 
969    RECOMMENDED for use in confidentiality protection of passwords or 
970    data. 
971  
972          TLS_RSA_EXPORT_WITH_RC4_40_MD5 
973          TLS_RSA_EXPORT_WITH_RC2_CBC_40_MD5 
974          TLS_RSA_EXPORT_WITH_DES40_CBC_SHA 
975          TLS_DH_DSS_EXPORT_WITH_DES40_CBC_SHA 
976          TLS_DH_RSA_EXPORT_WITH_DES40_CBC_SHA 
977          TLS_DHE_DSS_EXPORT_WITH_DES40_CBC_SHA 
978          TLS_DHE_RSA_EXPORT_WITH_DES40_CBC_SHA 
979          TLS_DH_anon_EXPORT_WITH_RC4_40_MD5 
980          TLS_DH_anon_EXPORT_WITH_DES40_CBC_SHA 
981  
982    The following ciphersuites are vulnerable to man-in-the-middle 
983    attacks: 
984  
985          TLS_DH_anon_EXPORT_WITH_RC4_40_MD5 
986          TLS_DH_anon_WITH_RC4_128_MD5 
987          TLS_DH_anon_EXPORT_WITH_DES40_CBC_SHA 
988          TLS_DH_anon_WITH_DES_CBC_SHA 
989          TLS_DH_anon_WITH_3DES_EDE_CBC_SHA 
990  
991  
992 Harrison                  Expires July 2004                 [Page 17] 
993 \f
994 Internet-Draft       LDAP Authentication Methods      5 December 2003 
995  
996     
997  
998 14. Security Considerations 
999     
1000    Security issues are discussed throughout this memo; the unsurprising 
1001    conclusion is that mandatory security is important and that session 
1002    confidentiality protection is required when snooping is a problem. 
1003     
1004    Servers can minimize denial of service attacks by timing out idle 
1005    connections, and returning the unwillingToPerform resultCode rather 
1006    than performing computationally expensive operations requested by 
1007    unauthorized clients. 
1008     
1009    The use of cleartext passwords and other unprotected authentication 
1010    credentials is strongly discouraged over open networks when the 
1011    underlying transport service cannot guarantee confidentiality. 
1012     
1013    Operational experience shows that clients can (and frequently do) 
1014    misuse unauthenticated bind (see section 5.1).  For example, a 
1015    client program might make a decision to grant access to non-
1016    directory information on the basis of completing a successful bind 
1017    operation. Some LDAP server implementations will return a success 
1018    response to an unauthenticated bind thus leaving the client with the 
1019    impression that the server has successfully authenticated the 
1020    identity represented by the user name, when in effect, an anonymous 
1021    LDAP association has been created. Clients that use the results from 
1022    a simple bind operation to make authorization decisions should 
1023    actively detect unauthenticated bind requests (via the empty 
1024    password value) and react appropriately. 
1025     
1026    Access control SHOULD always be applied when reading sensitive 
1027    information or updating directory information. 
1028  
1029    A connection on which the client has not established connection  
1030    integrity and privacy services (e.g via Start TLS, IPSec or a 
1031    suitable SASL mechanism) is subject to man-in-the-middle attacks to 
1032    view and modify information in transit. 
1033     
1034 14.1. Start TLS Security Considerations 
1035     
1036    The goals of using the TLS protocol with LDAP are to ensure 
1037    connection confidentiality and integrity, and to optionally provide 
1038    for authentication. [TLS] expressly provides these capabilities. 
1039     
1040    All security gained via use of the Start TLS operation is gained by 
1041    the use of TLS itself. The Start TLS operation, on its own, does not 
1042    provide any additional security. 
1043     
1044    Once established, TLS only provides for and ensures confidentiality 
1045    and integrity of the operations and data in transit over the LDAP 
1046    connection--and only if the implementations on the client and server 
1047    support and negotiate it. The use of TLS does not provide or ensure 
1048    for confidentiality and/or non-repudiation of the data housed by an 
1049
1050  
1051 Harrison                  Expires July 2004                 [Page 18] 
1052 \f
1053 Internet-Draft       LDAP Authentication Methods      5 December 2003 
1054  
1055    LDAP-based directory server. Nor does it secure the data from 
1056    inspection by the server administrators.  
1057      
1058    The level of security provided though the use of TLS depends 
1059    directly on both the quality of the TLS implementation used and the 
1060    style of usage of that implementation. Additionally, an active-
1061    intermediary attacker can remove the Start TLS extended operation 
1062    from the supported attribute of the root DSE. Therefore, both 
1063    parties SHOULD independently ascertain and consent to the security 
1064    level achieved once TLS is established and before beginning use of 
1065    the TLS connection. For example, the security level of the TLS 
1066    connection might have been negotiated down to plaintext. 
1067     
1068    Clients SHOULD either warn the user when the security level achieved 
1069    does not provide data confidentiality and/or integrity protection, 
1070    or be configurable to refuse to proceed without an acceptable level 
1071    of security. 
1072     
1073    Client and server implementors SHOULD take measures to ensure proper 
1074    protection of credentials and other confidential data where such 
1075    measures are not otherwise provided by the TLS implementation. 
1076     
1077    Server implementors SHOULD allow for server administrators to elect 
1078    whether and when connection confidentiality and/or integrity is 
1079    required, as well as elect whether and when client authentication 
1080    via TLS is required. 
1081     
1082    Additional security considerations relating to the EXTERNAL 
1083    mechanism to negotiate TLS can be found in [SASL] and [TLS]. 
1084     
1085 15. IANA Considerations 
1086     
1087    The following IANA considerations apply to this document: 
1088     
1089    Please update the GSSAPI service name registry to point to [Roadmap] 
1090    and this document. 
1091     
1092    [To be completed] 
1093     
1094 Acknowledgements 
1095     
1096    This document combines information originally contained in RFC 2829 
1097    and RFC 2830. The editor acknowledges the work of Harald Tveit 
1098    Alvestrand, Jeff Hodges, Tim Howes, Steve Kille, RL "Bob" Morgan , 
1099    and Mark Wahl, each of whom authored one or more of these documents. 
1100  
1101    This document is based upon input of the IETF LDAP Revision working 
1102    group. The contributions and suggestions made by its members in 
1103    shaping the contents and technical accuracy of this document is 
1104    greatly appreciated. 
1105     
1106 Normative References 
1107  
1108
1109  
1110 Harrison                  Expires July 2004                 [Page 19] 
1111 \f
1112 Internet-Draft       LDAP Authentication Methods      5 December 2003 
1113  
1114    [ABNF]       Crocker, D., Ed. and P. Overell, "Augmented BNF for 
1115                 Syntax Specifications: ABNF", RFC 2234, November 1997. 
1116     
1117    [DIGEST-MD5] Leach, P. C. Newman, and A. Melnikov, "Using Digest 
1118                 Authentication as a SASL Mechanism", draft-ietf-sasl-
1119                 rfc2831bis-xx.txt, a work in progress.  
1120     
1121    [Keyword]    Bradner, S., "Key Words for use in RFCs to Indicate 
1122                 Requirement Levels", BCP 14, RFC 2119, March 1997. 
1123     
1124    [LDAPDN]     Zeilenga, Kurt D. (editor), "LDAP: String 
1125                 Representation of Distinguished Names", draft-ietf-
1126                 ldapbis-dn-xx.txt, a work in progress. 
1127     
1128    [Models]     Zeilenga, Kurt D. (editor), "LDAP: Directory 
1129                 Information Models", draft-ietf-ldapbis-models-xx.txt, 
1130                 a work in progress. 
1131     
1132    [Protocol]   Sermersheim, J., "LDAP: The Protocol", draft-ietf-
1133                 ldapbis-protocol-xx.txt, a work in progress. 
1134     
1135    [Roadmap]    K. Zeilenga, "LDAP: Technical Specification Road Map", 
1136                 draft-ietf-ldapbis-roadmap-xx.txt, a work in progress. 
1137     
1138    [SASL]       Melnikov, A. (editor), "Simple Authentication and 
1139                 Security Layer (SASL)", draft-ietf-sasl-rfc2222bis-
1140                 xx.txt, a work in progress. 
1141     
1142    [SASLPrep]   Zeilenga, K., "Stringprep profile for user names and 
1143                 passwords", draft-ietf-sasl-saslprep-xx.txt, (a work in 
1144                 progress). 
1145     
1146    [StringPrep] Hoffman P. and M. Blanchet, "Preparation of 
1147                 Internationalized Strings ('stringprep')", draft-
1148                 hoffman-rfc3454bis-xx.txt, a work in progress.  
1149     
1150    [Syntaxes]   Legg, S. (editor), "LDAP: Syntaxes and Matching Rules", 
1151                 draft-ietf-ldapbis-syntaxes-xx.txt, a work in progress. 
1152     
1153    [TLS]        Dierks, T. and C. Allen. "The TLS Protocol Version 
1154                 1.1", draft-ietf-tls-rfc2246-bis-xx.txt, a work in 
1155                 progress. 
1156     
1157    [UTF-8]      Yergeau, F., "UTF-8, a transformation format of ISO 
1158                 10646", RFC 3629, STD 63, November 2003. 
1159     
1160    [Unicode]    The Unicode Consortium, "The Unicode Standard, Version 
1161                 3.2.0" is defined by "The Unicode Standard, Version 
1162                 3.0" (Reading, MA, Addison-Wesley, 2000. ISBN 0-201-
1163                 61633-5), as amended by the "Unicode Standard Annex 
1164                 #27: Unicode 3.1" 
1165                 (http://www.unicode.org/reports/tr27/) and by the 
1166                 "Unicode Standard Annex #28: Unicode 3.2" 
1167                 (http://www.unicode.org/reports/tr28/). 
1168  
1169 Harrison                  Expires July 2004                 [Page 20] 
1170 \f
1171 Internet-Draft       LDAP Authentication Methods      5 December 2003 
1172  
1173  
1174 Informative References 
1175  
1176    [ANONYMOUS]  Zeilenga, K.,"Anonymous SASL Mechanism", draft-
1177                 zeilenga-sasl-anon-xx.txt, a work in progress. 
1178     
1179    [Glossary]   Shirey, R., "Internet Security Glossary", RFC 2828, May 
1180                 2000. 
1181     
1182    [PLAIN]      Zeilenga, K.,"Plain SASL Mechanism", draft-zeilenga-
1183                 sasl-plain-xx.txt, a work in progress. 
1184     
1185    [SecArch]    Kent, S. and R. Atkinson, "Security Architecture for 
1186                 the Internet Protocol", RFC 2401, November 1998. 
1187  
1188  
1189 Author's Address 
1190  
1191    Roger Harrison 
1192    Novell, Inc. 
1193    1800 S. Novell Place 
1194    Provo, UT 84606 
1195    USA 
1196    +1 801 861 2642 
1197    roger_harrison@novell.com 
1198  
1199 Appendix A. LDAP Association State Transition Tables 
1200     
1201    This section provides a state transition table to represent a state 
1202    diagram for the various authentication and TLS states through which 
1203    an LDAP association may pass during the course of its existence and 
1204    the actions that cause these changes in state.   
1205     
1206    This section is based entirely on information found in this document 
1207    and other documents that are part of the LDAP Technical 
1208    Specification [Roadmap]. As such, it is strictly informational in 
1209    nature. 
1210     
1211 A.1. LDAP Association States 
1212     
1213    The following table lists the valid LDAP association states and 
1214    provides a description of each state. The ID for each state is used 
1215    in the state transition table in section A.4. 
1216     
1217    ID State Description 
1218    -- -------------------------------------------------------------- 
1219    S1 Anonymous 
1220           no Authentication ID is associated with the LDAP connection 
1221           no Authorization ID is in force 
1222    S2 Authenticated 
1223           Authentication ID = I 
1224           Authorization ID = X 
1225    S3 Authenticated SASL EXTERNAL, implicit authorization ID 
1226  
1227 Harrison                  Expires July 2004                 [Page 21] 
1228 \f
1229 Internet-Draft       LDAP Authentication Methods      5 December 2003 
1230  
1231           Authentication ID = J 
1232           Authorization ID = Y 
1233    S4 Authenticated SASL EXTERNAL, explicit authorization ID  
1234           Authentication ID = J 
1235           Authorization ID = Z 
1236  
1237 A.2. Actions that Affect LDAP Association State 
1238     
1239    The following table lists the actions that can affect the 
1240    authentication and authorization state of an LDAP association. The 
1241    ID for each action is used in the state transition table in section 
1242    A.4. 
1243     
1244    ID  Action 
1245    --  -------------------------------------------------------------- 
1246    A1  Client bind request fails 
1247    A2  Client successfully performs anonymous simple bind 
1248    A3  Client successfully performs unauthenticated simple bind 
1249    A4  Client successfully performs simple bind with name and 
1250         password OR SASL bind with any mechanism except EXTERNAL using 
1251         an authentication ID = I that maps to authorization ID X 
1252    A5  Client Binds SASL EXTERNAL with implicit assertion of 
1253         authorization ID (section 3.3.6.1)]. The current 
1254         authentication ID maps to authorization ID = Y. 
1255    A6  Client Binds SASL EXTERNAL with explicit assertion of 
1256         authorization ID = Z (section 3.3.6.2)] 
1257    A7  Client abandons a bind operation, and server processes the 
1258         abandon 
1259    A8  Client abandons a bind operation, and server does not process 
1260         the abandon 
1261    A9  Client Start TLS request fails 
1262    A10 Client Start TLS request succeeds 
1263    A11 Client or Server: graceful TLS closure ([Protocol] section 
1264         4.13.3.1.) 
1265                                                   
1266 A.3. Decisions Used in Making LDAP Association State Changes 
1267     
1268    Certain changes in the authentication and authorization state of an 
1269    LDAP association are only allowed if the server can affirmatively 
1270    answer a question. These questions are applied as part of the 
1271    criteria for allowing or disallowing a state transition in the state 
1272    transition table in section A.4.  
1273     
1274    ID Decision Question 
1275    -- -------------------------------------------------------------- 
1276    D1 Are lower-layer credentials available? 
1277    D2 Can lower-layer credentials for Auth ID "K" be mapped to 
1278        asserted AuthZID "L"? 
1279     
1280 A.4. LDAP Association State Transition Table 
1281     
1282    The LDAP Association table below lists the valid authentication and 
1283    authorization states for an LDAP association and the actions that 
1284  
1285 Harrison                  Expires July 2004                 [Page 22] 
1286 \f
1287 Internet-Draft       LDAP Authentication Methods      5 December 2003 
1288  
1289    could affect them. For any given row in the table, the Current State 
1290    column gives the state of an LDAP association, the Action column 
1291    gives an action that could affect the state of an LDAP assocation, 
1292    and the Next State column gives the resulting state of an LDAP 
1293    association after the action occurs. 
1294     
1295    S1, the initial state for the state machine described in this table, 
1296    is the authentication state when an LDAP connection is initially 
1297    established. 
1298     
1299    Current            Next    
1300     State  Action    State  Comment 
1301    ------- -------   -----  --------------------------------------- 
1302      Any   A1          S1    [Protocol] section 4.2.1 
1303      Any   A2          S1    Section 6 
1304      Any   A3          S1    Section 6 
1305      Any   A4          S2    Sections 6.1, 6.2 
1306      Any   A5,         S1    Failed bind, section 3.3.6 
1307             D1=no 
1308      Any   A5,         S3     
1309             D1=yes 
1310      Any   A6,         S1    failed bind, section 3.3.6 
1311             D1=no 
1312      Any   A6,         S1    failed bind, section 3.3.6.2 
1313             D1=yes,  
1314             D2=no 
1315      Any   A6,         S4     
1316             D1=yes, 
1317             D2=yes 
1318      Any   A7          S1    [Protocol] section 4.2.1. Clients 
1319                                cannot detect this state. 
1320      Any   A8          no    [Protocol] section 4.2.1. Clients 
1321                       change  cannot detect this state.  
1322      Any   A9          no    [Protocol] section 4.13.2.2 
1323                       change 
1324      Any   A10         no    Section 4.2.1 
1325                       change 
1326      Any   A11         S1    Section 4.2.3 
1327  
1328 Appendix B. Example Deployment Scenarios 
1329  
1330    The following scenarios are typical for LDAP directories on the 
1331    Internet, and have different security requirements. (In the 
1332    following discussion, "sensitive data" refers to information whose 
1333    disclosure, alteration, destruction, or loss would adversely affect 
1334    the interests or business of its owner or user. Also note that there 
1335    may be data that is protected but not sensitive.) This is not 
1336    intended to be a comprehensive list; other scenarios are possible, 
1337    especially on physically protected networks. 
1338     
1339    (1) A read-only directory, containing no sensitive data, accessible 
1340        to "anyone", and TCP connection hijacking or IP spoofing is not 
1341        a problem. Anonymous authentication, described in section 7, is 
1342  
1343 Harrison                  Expires July 2004                 [Page 23] 
1344 \f
1345 Internet-Draft       LDAP Authentication Methods      5 December 2003 
1346  
1347        suitable for this type of deployment, and requires no additional 
1348        security functions except administrative service limits. 
1349  
1350    (2) A read-only directory containing no sensitive data; read access 
1351        is granted based on identity. TCP connection hijacking is not 
1352        currently a problem. This scenario requires data confidentiality 
1353        for sensitive authentication information AND data integrity for 
1354        all authentication information. 
1355  
1356    (3) A read-only directory containing no sensitive data; and the 
1357        client needs to ensure the identity of the directory server and 
1358        that the directory data is not modified while being returned 
1359        from the server. A data origin authentication service AND data 
1360        integrity service are required. 
1361  
1362    (4) A read-write directory, containing no sensitive data; read 
1363        access is available to "anyone", update access to properly 
1364        authorized persons. TCP connection hijacking is not currently a 
1365        problem. This scenario requires data confidentiality for 
1366        sensitive authentication information AND data integrity for all 
1367        authentication information. 
1368     
1369    (5) A directory containing sensitive data. This scenario requires 
1370        data confidentiality protection AND secure authentication. 
1371  
1372 Appendix C. Authentication and Authorization Concepts 
1373  
1374    This appendix defines basic terms, concepts, and interrelationships 
1375    regarding authentication, authorization, credentials, and identity. 
1376    These concepts are used in describing how various security 
1377    approaches are utilized in client authentication and authorization. 
1378  
1379 C.1. Access Control Policy 
1380  
1381    An access control policy is a set of rules defining the protection 
1382    of resources, generally in terms of the capabilities of persons or 
1383    other entities accessing those resources. Security objects and 
1384    mechanisms, such as those described here, enable the expression of 
1385    access control policies and their enforcement.        
1386  
1387 C.2. Access Control Factors 
1388  
1389    A request, when it is being processed by a server, may be associated 
1390    with a wide variety of security-related factors (section 4.2 of 
1391    [Protocol]). The server uses these factors to determine whether and 
1392    how to process the request. These are called access control factors 
1393    (ACFs). They might include source IP address, encryption strength, 
1394    the type of operation being requested, time of day, etc. Some 
1395    factors may be specific to the request itself, others may be 
1396    associated with the connection via which the request is transmitted, 
1397    others (e.g. time of day) may be "environmental". 
1398  
1399    Access control policies are expressed in terms of access control 
1400    factors. E.g., a request having ACFs i,j,k can perform operation Y 
1401  
1402 Harrison                  Expires July 2004                 [Page 24] 
1403 \f
1404 Internet-Draft       LDAP Authentication Methods      5 December 2003 
1405  
1406    on resource Z. The set of ACFs that a server makes available for 
1407    such expressions is implementation-specific. 
1408  
1409 C.3. Authentication, Credentials, Identity 
1410  
1411    Authentication credentials are the evidence supplied by one party to 
1412    another, asserting the identity of the supplying party (e.g. a user) 
1413    who is attempting to establish an association with the other party 
1414    (typically a server). Authentication is the process of generating, 
1415    transmitting, and verifying these credentials and thus the identity 
1416    they assert. An authentication identity is the name presented in a 
1417    credential. 
1418  
1419    There are many forms of authentication credentials -- the form used 
1420    depends upon the particular authentication mechanism negotiated by 
1421    the parties. For example: X.509 certificates, Kerberos tickets, 
1422    simple identity and password pairs. Note that an authentication 
1423    mechanism may constrain the form of authentication identities used 
1424    with it. 
1425  
1426 C.4. Authorization Identity 
1427  
1428    An authorization identity is one kind of access control factor. It 
1429    is the name of the user or other entity that requests that 
1430    operations be performed. Access control policies are often expressed 
1431    in terms of authorization identities; e.g., entity X can perform 
1432    operation Y on resource Z. 
1433  
1434    The authorization identity bound to an association is often exactly 
1435    the same as the authentication identity presented by the client, but 
1436    it may be different. SASL allows clients to specify an authorization 
1437    identity distinct from the authentication identity asserted by the 
1438    client's credentials. This permits agents such as proxy servers to 
1439    authenticate using their own credentials, yet request the access 
1440    privileges of the identity for which they are proxying [SASL]. Also, 
1441    the form of authentication identity supplied by a service like TLS 
1442    may not correspond to the authorization identities used to express a 
1443    server's access control policy, requiring a server-specific mapping 
1444    to be done. The method by which a server composes and validates an 
1445    authorization identity from the authentication credentials supplied 
1446    by a client is implementation-specific. 
1447  
1448 Appendix D. RFC 2829 Change History 
1449     
1450    This appendix lists the changes made to the text of RFC 2829 in 
1451    preparing this document. 
1452     
1453 D.0. General Editorial Changes 
1454    Version -00 
1455     
1456      - Changed other instances of the term LDAP to LDAP where v3 of the 
1457        protocol is implied. Also made all references to LDAP use the 
1458        same wording. 
1459     
1460  
1461 Harrison                  Expires July 2004                 [Page 25] 
1462 \f
1463 Internet-Draft       LDAP Authentication Methods      5 December 2003 
1464  
1465      - Miscellaneous grammatical changes to improve readability. 
1466       
1467      - Made capitalization in section headings consistent. 
1468       
1469    Version -01 
1470       
1471      - Changed title to reflect inclusion of material from RFC 2830 and 
1472        2251. 
1473     
1474 D.1. Changes to Section 1 
1475     
1476    Version -01 
1477     
1478      - Moved conventions used in document to a separate section. 
1479     
1480 D.2. Changes to Section 2 
1481     
1482    Version -01 
1483     
1484      - Moved section to an appendix. 
1485     
1486 D.3. Changes to Section 3 
1487     
1488    Version -01 
1489     
1490      - Moved section to an appendix. 
1491     
1492 D.4 Changes to Section 4 
1493     
1494    Version -00 
1495     
1496      - Changed "Distinguished Name" to "LDAP distinguished name". 
1497  
1498 D.5. Changes to Section 5 
1499     
1500    Version -00 
1501     
1502      - Added the following sentence: "Servers SHOULD NOT allow clients 
1503        with anonymous authentication to modify directory entries or 
1504        access sensitive information in directory entries." 
1505     
1506 D.5.1. Changes to Section 5.1 
1507     
1508    Version -00 
1509     
1510      - Replaced the text describing the procedure for performing an 
1511        anonymous bind (protocol) with a reference to section 4.2 of RFC 
1512        2251 (the protocol spec). 
1513       
1514    Version -01 
1515       
1516      - Brought text describing procedure for performing an anonymous 
1517        bind from section 4.2 of RFC 2251 bis.  This text will be 
1518        removed from the draft standard version of that document.  
1519  
1520 Harrison                  Expires July 2004                 [Page 26] 
1521 \f
1522 Internet-Draft       LDAP Authentication Methods      5 December 2003 
1523  
1524     
1525 D.6. Changes to Section 6. 
1526     
1527    Version -00 
1528       
1529      Reorganized text in section 6.1 as follows: 
1530     
1531      1. Added a new section (6.1) titled "Simple Authentication" and 
1532        moved one of two introductory paragraphs for section 6 into 
1533        section 6.1. Added sentences to the paragraph indicating: 
1534     
1535         a. simple authentication is not suitable for environments where 
1536         confidentiality is not available. 
1537          
1538         b. LDAP implementations SHOULD NOT support simple 
1539         authentication unless confidentiality and data integrity 
1540         mechanisms are in force. 
1541     
1542      2. Moved first paragraph of section 6 (beginning with "LDAP 
1543        implementations MUST support authentication with a password...") 
1544        to section on Digest Authentication (Now section 6.2). 
1545       
1546 D.6.1. Changes to Section 6.1. 
1547     
1548    Version -00 Renamed section to 6.2 
1549     
1550      - Added sentence from original section 6 indicating that the 
1551        DIGEST-MD5 SASL mechanism is required for all conforming LDAP 
1552        implementations 
1553     
1554 D.6.2. Changes to Section 6.2 
1555     
1556    Version -00 
1557       
1558      - Renamed section to 6.3 
1559     
1560      - Reworded first paragraph to remove reference to user and the 
1561        userPassword password attribute Made the first paragraph more 
1562        general by simply saying that if a directory supports simple 
1563        authentication that the simple bind operation MAY performed 
1564        following negotiation of a TLS ciphersuite that supports 
1565        confidentiality. 
1566     
1567      - Replaced "the name of the user's entry" with "a DN" since not 
1568        all bind operations are performed on behalf of a "user." 
1569     
1570      - Added Section 6.3.1 heading just prior to paragraph 5. 
1571     
1572      - Paragraph 5: replaced "The server" with "DSAs that map the DN 
1573        sent in the bind request to a directory entry with a 
1574        userPassword attribute." 
1575     
1576 D.6.3. Changes to section 6.3. 
1577     
1578  
1579 Harrison                  Expires July 2004                 [Page 27] 
1580 \f
1581 Internet-Draft       LDAP Authentication Methods      5 December 2003 
1582  
1583      Version -00 
1584       
1585      - Renamed to section 6.4. 
1586     
1587 D.7. Changes to section 7. 
1588     
1589    none 
1590     
1591 D.7.1. Changes to section 7.1. 
1592     
1593    Version -00 
1594       
1595      - Clarified the entity issuing a certificate by moving the phrase 
1596        "to have issued the certificate" immediately after 
1597        "Certification Authority." 
1598  
1599 D.8. Changes to section 8. 
1600  
1601    Version -00 
1602       
1603      - Removed the first paragraph because simple authentication is 
1604        covered explicitly in section 6. 
1605       
1606      - Added section 8.1. heading just prior to second paragraph. 
1607       
1608      - Added section 8.2. heading just prior to third paragraph. 
1609       
1610      - Added section 8.3. heading just prior to fourth paragraph. 
1611       
1612    Version -01 
1613       
1614      - Moved entire section 8 of RFC 2829 into section 3.4 (Using SASL 
1615        for Other Security Services) to bring material on SASL 
1616        mechanisms together into one location. 
1617  
1618 D.9. Changes to section 9. 
1619  
1620    Version -00 
1621       
1622      - Paragraph 2: changed "EXTERNAL mechanism" to "EXTERNAL SASL 
1623        mechanism." 
1624       
1625      - Added section 9.1. heading. 
1626       
1627      - Modified a comment in the ABNF from "unspecified userid" to 
1628        "unspecified authz id". 
1629       
1630      - Deleted sentence, "A utf8string is defined to be the UTF-8 
1631        encoding of one or more ISO 10646 characters," because it is 
1632        redundant. 
1633       
1634      - Added section 9.1.1. heading. 
1635       
1636      - Added section 9.1.2. heading. 
1637  
1638 Harrison                  Expires July 2004                 [Page 28] 
1639 \f
1640 Internet-Draft       LDAP Authentication Methods      5 December 2003 
1641  
1642       
1643    Version -01 
1644       
1645      - Moved entire section 9 to become section 3.5 so that it would be 
1646        with other SASL material. 
1647  
1648 D.10. Changes to Section 10. 
1649       
1650    Version -00 
1651       
1652      - Updated reference to cracking from a week of CPU time in 1997 to 
1653        be a day of CPU time in 2000. 
1654       
1655      - Added text: "These ciphersuites are NOT RECOMMENDED for use... 
1656        and server implementers SHOULD" to sentence just prior the 
1657        second list of ciphersuites. 
1658       
1659      - Added text: "and MAY support other ciphersuites offering 
1660        equivalent or better protection," to the last paragraph of the 
1661        section. 
1662       
1663 D.11. Changes to Section 11. 
1664       
1665    Version -01 
1666       
1667      - Moved to section 3.6 to be with other SASL material. 
1668       
1669 D.12. Changes to Section 12. 
1670       
1671    Version -00 
1672     
1673      - Inserted new section 12 that specifies when SASL protections 
1674        begin following SASL negotiation, etc. The original section 12 
1675        is renumbered to become section 13. 
1676       
1677    Version -01 
1678     
1679      - Moved to section 3.7 to be with other SASL material. 
1680       
1681 D.13. Changes to Section 13 (original section 12). 
1682  
1683    None 
1684     
1685 Appendix E. RFC 2830 Change History 
1686     
1687    This appendix lists the changes made to the text of RFC 2830 in 
1688    preparing this document. 
1689     
1690 E.0. General Editorial Changes 
1691     
1692      - Material showing the PDUs for the Start TLS response was broken 
1693        out into a new section. 
1694       
1695
1696  
1697 Harrison                  Expires July 2004                 [Page 29] 
1698 \f
1699 Internet-Draft       LDAP Authentication Methods      5 December 2003 
1700  
1701      - The wording of the definition of the Start TLS request and Start 
1702        TLS response was changed to make them parallel. NO changes were 
1703        made to the ASN.1 definition or the associated values of the 
1704        parameters. 
1705       
1706      - A separate section heading for graceful TLS closure was added 
1707        for parallelism with section on abrupt TLS closure. 
1708  
1709 Appendix F. RFC 2251 Change History 
1710     
1711    This appendix lists the changes made to the text of RFC 2251 in 
1712    preparing this document. 
1713     
1714 F.0. General Editorial Changes 
1715     
1716      - All material from section 4.2 of RFC 2251 was moved into this 
1717        document. 
1718       
1719      - A new section was created for the Bind Request 
1720       
1721      - Section 4.2.1 of RFC 2251 (Sequencing Bind Request) was moved 
1722        after the section on the Bind Response for parallelism with the 
1723        presentation of the Start TLS operations. The section was also 
1724        subdivided to explicitly call out the various effects being 
1725        described within it. 
1726        
1727      - All SASL profile information from RFC 2829 was brought within 
1728        the discussion of the Bind operation (primarily sections 4.4 - 
1729        4.7). 
1730  
1731 Appendix G. Change History to Combined Document 
1732     
1733 G.1. Changes for draft-ldap-bis-authmeth-02 
1734     
1735    General 
1736     
1737      - Added references to other LDAP standard documents, to sections 
1738        within the document, and fixed broken references. 
1739       
1740      - General editorial changes--punctuation, spelling, formatting, 
1741        etc. 
1742     
1743    Section 1. 
1744     
1745      - Added glossary of terms and added sub-section headings 
1746     
1747    Section 2. 
1748     
1749      - Clarified security mechanisms 3, 4, & 5 and brought language in 
1750        line with IETF security glossary. 
1751     
1752    Section 3. 
1753     
1754
1755  
1756 Harrison                  Expires July 2004                 [Page 30] 
1757 \f
1758 Internet-Draft       LDAP Authentication Methods      5 December 2003 
1759  
1760      - Brought language in requirement (3) in line with security 
1761        glossary. 
1762       
1763      - Clarified that information fetched prior to initiation of TLS 
1764        negotiation must be discarded 
1765       
1766      -Clarified that information fetched prior to initiation of SASL 
1767        negotiation must be discarded 
1768       
1769      - Rewrote paragraph on SASL negotiation requirements to clarify 
1770        intent 
1771     
1772    Section 4.4. 
1773  
1774      - Added stipulation that sasl choice allows for any SASL mechanism 
1775        not prohibited by this document. (Resolved conflict between this 
1776        statement and one that prohibited use of ANONYMOUS and PLAIN 
1777        SASL mechanisms.) 
1778     
1779    Section 5.3.6 
1780     
1781      - Added a.x.bar.com to wildcard matching example on hostname 
1782        check. 
1783     
1784    Section 6 
1785     
1786      - Added LDAP Association State Transition Tables to show the 
1787        various states through which an LDAP association may pass along 
1788        with the actions and decisions required to traverse from state 
1789        to state. 
1790     
1791    Appendix A 
1792     
1793      - Brought security terminology in line with IETF security glossary 
1794        throughout the appendix. 
1795     
1796 G.2. Changes for draft-ldap-bis-authmeth-03 
1797     
1798    General 
1799     
1800      - Added introductory notes and changed title of document and 
1801        references to conform to WG chair suggestions for the overall 
1802        technical specification. 
1803       
1804      - Several issues--H.13, H.14, H.16, H.17--were resolved without 
1805        requiring changes to the document. 
1806     
1807    Section 3 
1808     
1809      - Removed reference to /etc/passwd file and associated text.  
1810  
1811    Section 4 
1812     
1813
1814  
1815 Harrison                  Expires July 2004                 [Page 31] 
1816 \f
1817 Internet-Draft       LDAP Authentication Methods      5 December 2003 
1818  
1819      - Removed sections 4.1, 4.2 and parts of section 4.3. This 
1820        information was being duplicated in the protocol specification 
1821        and will now reside there permanently. 
1822    Section 4.2 
1823     
1824      - changed words, "not recommended" to "strongly discouraged" 
1825     
1826    Section 4.3 
1827       
1828      - Based on ldapbis WG discussion at IETF52 two sentences were 
1829        added indicating that clients SHOULD NOT send a DN value when 
1830        binding with the sasl choice and servers SHALL ignore any value 
1831        received in this circumstance. 
1832      -  
1833     
1834    Section 8.3.1 
1835     
1836      - Generalized the language of this section to not refer to any 
1837        specific password attribute or to refer to the directory entry 
1838        as a "user" entry. 
1839     
1840    Section 11 
1841     
1842      - Added security consideration regarding misuse of unauthenticated 
1843        access. 
1844       
1845      - Added security consideration requiring access control to be 
1846        applied only to authenticated users and recommending it be 
1847        applied when reading sensitive information or updating directory 
1848        information. 
1849       
1850  
1851 G.3. Changes for draft-ldap-bis-authmeth-04 
1852     
1853    General 
1854     
1855      - Changed references to use [RFCnnnn] format wherever possible. 
1856        (References to works in progress still use [name] format.) 
1857      - Various edits to correct typos and bring field names, etc. in 
1858        line with specification in [Protocol] draft. 
1859       
1860      - Several issues--H.13, H.14, H.16, H.17--were resolved without 
1861        requiring changes to the document. 
1862     
1863    Section 4.4.1. 
1864     
1865      - Changed ABNF grammar to use productions that are like those in 
1866        the model draft. 
1867     
1868    Section 5 
1869       
1870      - Removed sections 5.1, 5.2, and 5.4 that will be added to 
1871        [Protocol]. Renumbered sections to accommodate this change. 
1872      -  
1873  
1874 Harrison                  Expires July 2004                 [Page 32] 
1875 \f
1876 Internet-Draft       LDAP Authentication Methods      5 December 2003 
1877  
1878     
1879    Section 6 
1880     
1881      - Reviewed LDAP Association State table for completeness and 
1882        accuracy. Renumbered actions A3, A4, and A5 to be A5, A3, and A4 
1883        respectively. Re-ordered several lines in the table to ensure 
1884        that actions are in ascending order (makes analyzing the table 
1885        much more logical). Added action A2 to several states where it 
1886        was missing and valid. Added actions A7 and A8 placeholders to 
1887        states S1, S2, S4 and S5 pending resolution of issue H.28. 
1888       
1889    Section 11 
1890     
1891      - Modified security consideration (originally added in -03) 
1892        requiring access control to be applied only to authenticated 
1893        users. This seems nonsensical because anonymous users may have 
1894        access control applied to limit permissible actions. 
1895      -   
1896    Section 13 
1897     
1898      - Verified all normative references and moved informative 
1899        references to a new section 14. 
1900       
1901 G.4. Changes for draft-ldap-bis-authmeth-05 
1902     
1903    General 
1904     
1905      - General editory changes to fix punctuation, spelling, line 
1906        length issues, etc. 
1907      - Verified and updated intra- and inter-document references 
1908        throughout. 
1909      - Document-wide review for proper usage of RFC 2119 keywords with 
1910        several changes to correct improper usage. 
1911  
1912    Abstract 
1913      - Updated to match current contents of documents. This was needed 
1914        due to movement of material on Bind and Start TLS operations to  
1915        [Protocol] in this revision. 
1916     
1917    Section 3. 
1918     
1919      - Renamed section to "Rationale for LDAP Security Mechanisms" and 
1920        removed text that did not support this theme. Part of the 
1921        motivation for this change was to remove the implication of the 
1922        previous section title, "Required Security Mechanisms", and 
1923        other text found in the section that everything in the section 
1924        was a requirement 
1925       
1926      - Information from several removed paragraphs that describe 
1927        deployment scenarios will be added Appendix A in the next 
1928        revision of the draft. 
1929  
1930       
1931
1932  
1933 Harrison                  Expires July 2004                 [Page 33] 
1934 \f
1935 Internet-Draft       LDAP Authentication Methods      5 December 2003 
1936  
1937      - Paragraph beginning, " If TLS is negotiated, the client MUST 
1938        discard all information..." was moved to section 5.1.7 and 
1939        integrated with related material there. 
1940       
1941      - Paragraph beginning, "If a SASL security layer is negotiated..." 
1942        was moved to section 4.2 
1943       
1944    Section 4.l. 
1945     
1946      - Changed wording of first paragraph to clarify meaning. 
1947     
1948    Section 4.2. 
1949      - Added paragraph from section 3 of -04 beginning, "If a SASL 
1950        security layer is negotiated..." 
1951     
1952    Section 4.3.3. 
1953      - Renamed to "Other SASL Mechanisms" and completely rewrote the 
1954        section (one sentence) to generalize the treatment of SASL 
1955        mechanisms not explicitly mentioned in this document.  
1956     
1957    Section 4.4.1. 
1958     
1959      - Added paragraph beginning, "The dnAuthzID choice allows client 
1960        applications..." to clarify whether DN form authorization 
1961        identities have to also have a corresponding directory entry. 
1962        This change was based on editor's perception of WG consensus. 
1963       
1964      - Made minor clarifying edits in the paragraph beginning, "The 
1965        uAuthzID choice allows for compatibility..." 
1966     
1967    Section 5.1.1. 
1968       
1969      - Made minor clarifying edits in the last paragraph of the 
1970        section. 
1971       
1972    Section 5.1.7. 
1973       
1974      - Wording from section 3 paragraph beginning " If TLS is 
1975        negotiated, the client MUST discard all information..." was 
1976        moved to this section and integrated with existing text. 
1977       
1978    Section 5.2. 
1979     
1980      - Changed usage of "TLS connection" to "TLS session" throughout. 
1981       
1982      - Removed empty section 5.2.1 and renumbered sections it had 
1983        previously contained. 
1984     
1985    Section 8. 
1986     
1987      - Added introductory paragraph at beginning of section. 
1988  
1989    Section 8.1. 
1990     
1991  
1992 Harrison                  Expires July 2004                 [Page 34] 
1993 \f
1994 Internet-Draft       LDAP Authentication Methods      5 December 2003 
1995  
1996      - Changed term  "data privacy" to "data confidentiality" to be 
1997        consistent with usage in rest of document.  
1998     
1999    Section 8.2. 
2000     
2001      - Changed first paragraph to require implementations that 
2002        implement *password-based* authentication to implement and 
2003        support DIGEST-MD5 SASL authentication. 
2004     
2005    Section 11. 
2006     
2007      - First paragraph: changed "session encryption" to "session 
2008        confidentiality protection" to be consistent with usage in rest 
2009        of document. 
2010     
2011    Appendix B. 
2012     
2013      - Began changes to incorporate information on deployment scenarios 
2014        removed from section 3. 
2015  
2016 G.5. Changes for draft-ldap-bis-authmeth-06 
2017  
2018       
2019    General 
2020     
2021      - Combined Section 2 (Introduction) and Section 3 (Motivation) and 
2022        moved Introduction to section 1. All following sections numbers 
2023        were decremented by one as result. 
2024       
2025      - Edits to fix typos, I-D nits, etc. 
2026       
2027      - Opened several new issues in Appendix G based on feedback from 
2028        WG. Some of these have been resolved. Others require further 
2029        discussion. 
2030       
2031    Section 1 
2032       
2033      - Added additional example of spoofing under threat (7). 
2034       
2035    Section 2.1 
2036       
2037      - Changed definition of "LDAP association" and added terms, 
2038        "connection" and "TLS connection" to bring usage in line with 
2039        [Protocol]. 
2040       
2041    Section 4.1.6 
2042       
2043      - Clarified sentence stating that the client MUST NOT use derived 
2044        forms of DNS names. 
2045     
2046    Section 5.1 
2047     
2048      - Began edits to LDAP Association state table to clarify meaning 
2049        of various states and actions. 
2050  
2051 Harrison                  Expires July 2004                 [Page 35] 
2052 \f
2053 Internet-Draft       LDAP Authentication Methods      5 December 2003 
2054  
2055       
2056      - Added action A9 to cover abandoned bind operation and added 
2057        appropriate transitions to the state transition table to 
2058        accommodate it. 
2059       
2060    Section 7.2 
2061       
2062      - Replaced first paragraph to clarify that the "DIGEST-MD5" SASL 
2063        mechanism is required to implement. 
2064     
2065    Section 9 
2066       
2067      - Rewrote the section to make the advice more applicable over the 
2068        long term, i.e. more "timeless." The intent of content in the 
2069        original section was preserved. 
2070  
2071    Section 10 
2072       
2073      - Added a clarifying example to the consideration regarding misuse 
2074        of unauthenticated access.  
2075  
2076 G.6. Changes for draft-ldap-bis-authmeth-07 
2077  
2078       
2079    General 
2080       
2081      - Updated external and internal references to accommodate changes 
2082        in recent drafts. 
2083       
2084      - Opened several new issues in Appendix G based on feedback from 
2085        WG. Some of these have been resolved. Others require further 
2086        discussion. 
2087       
2088    Section 3 
2089     
2090      - Rewrote much of section 3.3 to meet the SASL profile 
2091        requirements of draft-ietf-sasl-rfc2222bis-xx.txt section 5. 
2092       
2093      - Changed treatement of SASL ANONYMOUS and PLAIN mechanisms to 
2094        bring in line with WG consensus. 
2095     
2096    Section 4 
2097     
2098      - Note to implementers in section 4.1.1 based on operational 
2099        experience. 
2100     
2101      - Clarification on client continuing by performing a Start TLS 
2102        with TLS already established in section 4.1.4. 
2103     
2104      - Moved verification of mapping of client's authentication ID to 
2105        asserted authorization ID to apply only to explicit assertion. 
2106        The local policy in place for implicit assertion is adequate. 
2107     
2108    Section 7 
2109  
2110 Harrison                  Expires July 2004                 [Page 36] 
2111 \f
2112 Internet-Draft       LDAP Authentication Methods      5 December 2003 
2113  
2114     
2115      - Removed most of section 7.2 as the information is now covered 
2116        adequately via the new SASL profile in section 3.3. Added note 
2117        to implementors regarding the treatment of username and realm 
2118        values in DIGEST-MD5. 
2119     
2120      - Section 7.3. Minor clarifications in wording. 
2121     
2122      - Section 7.3.1. Clarification that a match of the presented value 
2123        to any member of the set of stored passwords constitutes a 
2124        successful authentication. 
2125     
2126 G.7. Changes for draft-ldap-bis-authmeth-08 
2127  
2128       
2129    General 
2130       
2131      - Changed usage from LDAPv3 to LDAP for usage consistency across 
2132        LDAP technical specification. 
2133       
2134      - Fixed a number of usage nits for consistency and to bring doc in 
2135        conformance with publication guidelines. 
2136  
2137    Abstract 
2138       
2139      - Significant cleanup and rewording of abstract based on WG 
2140        feedback. 
2141       
2142    Section 2.1 
2143       
2144      - New definition of user. 
2145       
2146    Section 3 
2147       
2148      - Added 1.5 sentences at end of introductory paragraph indicating 
2149        the effect of the Bind op on the LDAP association. 
2150       
2151    Section 3.1 
2152       
2153      - Retitled section and clarified wording 
2154       
2155    Section 3.2 
2156  
2157      - Clarified that simple authentication choice provides three types 
2158        of authentication: anonymous, unauthenticated, and simple 
2159        password. 
2160       
2161    Section 3.3.3 
2162       
2163      - New wording clarifying when negotiated security mechanisms take 
2164        effect. 
2165       
2166    Section 3.3.5 
2167       
2168  
2169 Harrison                  Expires July 2004                 [Page 37] 
2170 \f
2171 Internet-Draft       LDAP Authentication Methods      5 December 2003 
2172  
2173      - Changed requirement to discard information about server fetched 
2174        prior to SASL negotiation from MUST to SHOULD to allow for 
2175        information obtained through secure mechanisms. 
2176       
2177    Section 3.3.6 
2178       
2179      - Simplified wording of first paragraph based on suggestion from 
2180        WG. 
2181       
2182    Section 3.4 
2183       
2184      - Minor clarifications in wording. 
2185       
2186    Section 3.4.1 
2187       
2188      - Minor clarifications in wording in first sentence. 
2189      - Explicitly called out that the DN value in the dnAuthzID form is 
2190        to be matched using DN matching rules. 
2191      - Called out that the uAuthzID MUST be prepared using SASLprep 
2192        rules before being compared. 
2193      - Clarified requirement on assuming global uniqueness by changing 
2194        a "generally... MUST" wording to "SHOULD". 
2195       
2196    Section 4.1.1 
2197       
2198      - Simplified wording describing conditions when Start TLS cannot 
2199        be sent. 
2200      - Simplified wording in note to implementers regarding race 
2201        condition with outstanding LDAP operations on connection. 
2202  
2203    Section 4.1.5 
2204       
2205      - Removed section and moved relevant text to section 4.2.2. 
2206  
2207    Section 4.1.6  
2208       
2209      - Renumbered to 4.1.5. 
2210      - Updated server identity check rules for server's name based on 
2211        WG list discussion. 
2212       
2213    Section 4.1.7 
2214       
2215      - Renumbered to 4.1.6 
2216      - Changed requirement to discard information about server fetched 
2217        prior to TLS negotion from MUST to SHOULD to allow for 
2218        information obtained through secure mechanisms. 
2219  
2220    Section 6.1 
2221       
2222      - Clarified wording. 
2223      - Added definition of anonymous and unauthenticated binds. 
2224  
2225    Section 10 
2226       
2227  
2228 Harrison                  Expires July 2004                 [Page 38] 
2229 \f
2230 Internet-Draft       LDAP Authentication Methods      5 December 2003 
2231  
2232      - Added security consideration (moved from elsewhere) discouraging 
2233        use of cleartext passwords on unprotected communication 
2234        channels. 
2235  
2236    Section 11 
2237       
2238      - Added an IANA consideration to update GSSAPI service name 
2239        registry to point to [Roadmap] and [Authmeth] 
2240       
2241 G.8. Changes for draft-ldap-bis-authmeth-09 
2242  
2243       
2244    General 
2245       
2246      - Updated section references within document 
2247      - Changed reference tags to match other docs in LDAP TS 
2248      - Used non-quoted names for all SAL mechanisms 
2249     
2250    Abstract 
2251  
2252      - Inspected keyword usage and removed several improper usages. 
2253       
2254      - Removed sentence saying DIGEST-MD5 is LDAP's mandatory-to-
2255        implement mechanism. This is covered elsewhere in document. 
2256  
2257      - Moved section 5, authentication state table, of -08 draft to 
2258        section 8 of -09 and completely rewrote it. 
2259  
2260    Section 1 
2261       
2262      - Reworded sentence beginning, "It is also desireable to allow 
2263        authentication methods to carry identities based on existingù
2264        non-LDAP DN-forms..." 
2265      - Clarified relationship of this document to other documents in 
2266        the LDAP TS. 
2267     
2268    Section 3.3.5 
2269       
2270      - Removed paragraph beginning,"If the client is configured to 
2271        support multiple SASL mechanisms..." because the actions 
2272        specified in the paragraph do not provide the protections 
2273        indicated. Added a new paragraph indicating that clients and 
2274        server should allow specification of acceptable mechanisms and 
2275        only allow those mechanisms to be used. 
2276       
2277      - Clarified independent behavior when TLS and SASL security layers 
2278        are both in force (e.g. one being removed doesn't affect the 
2279        other). 
2280     
2281    Section 3.3.6 
2282       
2283      - Moved most of section 4.2.2, Client Assertion of Authorization 
2284        Identity, to sections 3.3.6, 3.3.6.1, and 3.3.6.2.  
2285     
2286  
2287 Harrison                  Expires July 2004                 [Page 39] 
2288 \f
2289 Internet-Draft       LDAP Authentication Methods      5 December 2003 
2290  
2291    Section 3.3.6.4 
2292       
2293      - Moved some normative comments into text body. 
2294     
2295    Section 4.1.2 
2296       
2297      - Non success resultCode values are valid if server is *unwilling* 
2298        or unable to negotiate TLS. 
2299     
2300    Section 4.2.1 
2301       
2302      - Rewrote entire section based on WG feedback. 
2303  
2304    Section 4.2.2 
2305       
2306      - Moved most of this section to 3.3.6 for better document flow. 
2307  
2308    Section 4.2.3 
2309       
2310      - Rewrote entire section based on WG feedback. 
2311  
2312    Section 5.1 
2313       
2314      - Moved imperative language regarding unauthenticated access from 
2315        security considerations to here. 
2316     
2317    Section 6 
2318       
2319      - Added several paragraphs regarding the risks of transmitting 
2320        passwords in the clear and requiring server implementations to 
2321        provide a specific configuration that reduces these risks. 
2322  
2323    Section 6.2 
2324       
2325      - Added sentence describing protections provided by DIGEST-MD5 
2326        method. 
2327      - Changed DNs in exmple to be dc=example,dc=com. 
2328     
2329    Section 10 
2330       
2331      - Updated consideration on use of cleartext passwords to include 
2332        other unprotected authentication credentials 
2333      - Substantial rework of consideration on misuse of unauthenticated 
2334        bind. 
2335  
2336 G.9. Changes for draft-ldap-bis-authmeth-10 
2337  
2338       
2339      - Reorganized content of sections 3-9 to improve document flow and 
2340        reduce redundancy. 
2341      - Resolved issue of effect of Start TLS and TLS closure on LDAP 
2342        association state. 
2343      - Made numerous minor wording changes based on WG feedback. 
2344      - Updated list of threats for Section 1. 
2345  
2346 Harrison                  Expires July 2004                 [Page 40] 
2347 \f
2348 Internet-Draft       LDAP Authentication Methods      5 December 2003 
2349  
2350      - Recommendation that servers should not support weaker TLS 
2351        ciphersuites unless other protection is in place. 
2352      - Moved authentication state table to appendix and relettered 
2353        appendices. 
2354  
2355 Appendix H. Issues to be Resolved 
2356     
2357    This appendix lists open questions and issues that need to be 
2358    resolved before work on this document is deemed complete. 
2359  
2360 H.1. 
2361  
2362    Section 1 lists 6 security mechanisms that can be used by LDAP 
2363    servers. I'm not sure what mechanism 5, "Resource limitation by 
2364    means of administrative limits on service controls" means. 
2365     
2366    Status: resolved. Changed wording to "administrative service limits" 
2367    to clarify meaning. 
2368  
2369 H.2. 
2370  
2371    Section 2 paragraph 1 defines the term, "sensitive." Do we want to 
2372    bring this term and other security-related terms in alignment with 
2373    usage with the IETF security glossary (RFC 2828)? 
2374     
2375    Status: resolved. WG input at IETF 51 was that we should do this, so 
2376    the appropriate changes have been made. 
2377  
2378 H.3. 
2379  
2380    Section 2, deployment scenario 2: What is meant by the term "secure 
2381    authentication function?" 
2382     
2383    Status: resolved. Based on the idea that a "secure authentication 
2384    function" could be provided by TLS, I changed the wording to require 
2385    data confidentiality for sensitive authentication information and 
2386    data integrity for all authentication information. 
2387  
2388 H.4. 
2389  
2390    Section 3, deployment scenario 3: What is meant by the phrase, 
2391    "directory data is authenticated by the server?" 
2392     
2393    Status: resolved. I interpreted this to mean the ability to ensure 
2394    the identity of the directory server and the integrity of the data 
2395    sent from that server to the client, and explictly stated such. 
2396  
2397 H.5. 
2398  
2399    Section 4 paragraph 3: What is meant by the phrase, "this means that 
2400    either this data is useless for faking authentication (like the Unix 
2401    "/etc/passwd" file format used to be)?" 
2402     
2403
2404  
2405 Harrison                  Expires July 2004                 [Page 41] 
2406 \f
2407 Internet-Draft       LDAP Authentication Methods      5 December 2003 
2408  
2409    Status: resolved. Discussion at IETF 52 along with discussions with 
2410    the original authors of this material have convinced us that this 
2411    reference is simply too arcane to be left in place. In -03 the text 
2412    has been modified to focus on the need to either update password 
2413    information in a protected fashion outside of the protocol or to 
2414    update it in session well protected against snooping, and the 
2415    reference to /etc/passwd has been removed. 
2416  
2417 H.6. 
2418  
2419    Section 4 paragraph 7 begins: "For a directory needing session 
2420    protection..." Is this referring to data confidentiality or data 
2421    integrity or both? 
2422     
2423    Status: resolved. Changed wording to say, "For a directory needing 
2424    data security (both data integrity and data confidentiality)..." 
2425  
2426 H.7. 
2427  
2428    Section 4 paragraph 8 indicates that "information about the server 
2429    fetched prior to the TLS negotiation" must be discarded. Do we want 
2430    to explicitly state that this applies to information fetched prior 
2431    to the *completion* of the TLS negotiation or is this going too far? 
2432     
2433    Status: resolved. Based on comments in the IETF 51 LDAPBIS WG 
2434    meeting, this has been changed to explicitly state, "fetched prior 
2435    to the initiation of the TLS negotiation..." 
2436  
2437 H.8. 
2438  
2439    Section 4 paragraph 9 indicates that clients SHOULD check the 
2440    supportedSASLMechanisms list both before and after a SASL security 
2441    layer is negotiated to ensure that they are using the best available 
2442    security mechanism supported mutually by the client and server. A 
2443    note at the end of the paragraph indicates that this is a SHOULD 
2444    since there are environments where the client might get a list of 
2445    supported SASL mechanisms from a different trusted source. 
2446  
2447    I wonder if the intent of this could be restated more plainly using 
2448    one of these two approaches (I've paraphrased for the sake of 
2449    brevity): 
2450  
2451         Approach 1: Clients SHOULD check the supportedSASLMechanisms 
2452         list both before and after SASL negotiation or clients SHOULD 
2453         use a different trusted source to determine available supported 
2454         SASL mechanisms. 
2455     
2456         Approach 2: Clients MUST check the supportedSASLMechanisms list 
2457         both before and after SASL negotiation UNLESS they use a 
2458         different trusted source to determine available supported SASL 
2459         mechanisms. 
2460     
2461
2462
2463  
2464 Harrison                  Expires July 2004                 [Page 42] 
2465 \f
2466 Internet-Draft       LDAP Authentication Methods      5 December 2003 
2467  
2468    Status: resolved. WG input at IETF 51 was that Approach 1 was 
2469    probably best. I ended up keeping the basic structure similar to the 
2470    original to meet this intent. 
2471  
2472 H.9. 
2473  
2474    Section 6.3.1 states: "DSAs that map the DN sent in the bind request 
2475    to a directory entry with a userPassword attribute will... compare 
2476    [each value in the named user's entry]... with the presented 
2477    password."  This implies that this applies only to user entries with 
2478    userPassword attributes.  What about other types of entries that 
2479    might allow passwords and might store in the password information in 
2480    other attributes?  Do we want to make this text more general? 
2481     
2482    Status: resolved in -03 draft by generalizing section 8.3.1 to not 
2483    refer to any specific password attribute and by removing the term 
2484    "user" in referring to the directory entry specified by the DN in 
2485    the bind request. 
2486     
2487 H.10 userPassword and simple bind 
2488     
2489    We need to be sure that we don't require userPassword to be the only 
2490    attribute used for authenticating via simple bind. (See 2251 sec 4.2 
2491    and authmeth 6.3.1. Work with Jim Sermersheim on resolution to this. 
2492    On publication state something like: "This is the specific 
2493    implementation of what we discussed in our general reorg 
2494    conversation on the list." (Source: Kurt Zeilenga) 
2495     
2496    Status: resolved in -03 draft by generalizing section 8.3.1 to not 
2497    refer to any specific password attribute and by removing the term 
2498    "user" in referring to the directory entry specified by the DN in 
2499    the bind request. 
2500  
2501 H.11. Meaning of LDAP Association 
2502     
2503    The original RFC 2830 uses the term "LDAP association" in describing 
2504    a connection between an LDAP client and server regardless of the 
2505    state of TLS on that connection. This term needs to be defined or 
2506    possibly changed.  
2507     
2508    Status: resolved. at IETF 51 Bob Morgan indicated that the term 
2509    "LDAP association" was intended to distinguish the LDAP-level 
2510    connection from the TLS-level connection.  This still needs to be 
2511    clarified somewhere in the draft. Added "LDAP association" to a 
2512    glossary in section 1. 
2513     
2514 H.12. Is DIGEST-MD5 mandatory for all implementations? 
2515     
2516    Reading 2829bis I think DIGEST-MD5 is mandatory ONLY IF your server 
2517    supports password based authentication...but the following makes it 
2518    sound mandatory to provide BOTH password authentication AND DIGEST-
2519    MD5:  
2520     
2521    "6.2. Digest authentication  
2522  
2523 Harrison                  Expires July 2004                 [Page 43] 
2524 \f
2525 Internet-Draft       LDAP Authentication Methods      5 December 2003 
2526  
2527     
2528    LDAP implementations MUST support authentication with a password  
2529    using the DIGEST-MD5 SASL mechanism for password protection, as  
2530    defined in section 6.1."  
2531     
2532    The thing is for acl it would be nice (though not critical) to be 
2533    able to default the required authentication level for a subject to a 
2534    single "fairly secure" mechanism--if there is no such mandatory 
2535    authentication scheme then you cannot do that. (Source: Rob Byrne) 
2536     
2537    Status: resolved. -00 version of the draft added a sentence at the 
2538    beginning of section 8.2 stating that LDAP server implementations 
2539    must support this method. 
2540     
2541 H.13. Ordering of authentication levels requested 
2542  
2543    Again on the subject of authentication level, is it possible to  
2544    define an ordering on authentication levels which defines their 
2545    relative "strengths" ? This would be useful in acl as you could say 
2546    things like"a given aci grants access to a given subject at this 
2547    authentication level AND ABOVE". David Chadwick raised this before 
2548    in the context of denying access to a subject at a given 
2549    authentication level, in which case he wanted to express "deny 
2550    access to this subject at this authentication level AND TO ALL 
2551    IDENTITIES AUTHENTICATED BELOW THAT LEVEL". (Source: Rob Byrne) 
2552     
2553    Status: out of scope. This is outside the scope of this document and 
2554    will not be addressed. 
2555     
2556 H.14. Document vulnerabilities of various mechanisms 
2557  
2558    While I'm here...in 2829, I think it would be good to have some  
2559    comments or explicit reference to a place where the security 
2560    properties of the particular mandatory authentication schemes are 
2561    outlined. When I say "security properties" I mean stuff like "This 
2562    scheme is vulnerable to such and such attacks, is only safe if the 
2563    key size is > 50, this hash is widely considered the best, etc...". 
2564    I think an LDAP implementor is likely to be interested in that 
2565    information, without having to wade through the security RFCs. 
2566    (Source: Rob Byrne) 
2567     
2568    Status: out of scope. This is outside the scope of this document and 
2569    will not be addressed. 
2570     
2571 H.15. Include a Start TLS state transition table 
2572     
2573    The pictoral representation it is nominally based on is here (URL 
2574    possibly folded): 
2575     
2576    http://www.stanford.edu/~hodges/doc/LDAPAssociationStateDiagram-
2577    1999-12-14.html 
2578  
2579    (Source: Jeff Hodges) 
2580     
2581  
2582 Harrison                  Expires July 2004                 [Page 44] 
2583 \f
2584 Internet-Draft       LDAP Authentication Methods      5 December 2003 
2585  
2586    Status: Resolved.  
2587     
2588    Table provided in -03. Review of content for accuracy in -04. 
2589    Additional review is needed, plus comments from WG members indicate 
2590    that additional description of each state's meaning would be 
2591    helpful. 
2592     
2593    Did a significant revision of state transition table in -09. Changes 
2594    were based on suggestions from WG and greatly simplified overall 
2595    table. 
2596     
2597 H.16. Empty sasl credentials question 
2598  
2599    I spent some more time looking microscopically at ldap-auth-methods 
2600    and ldap-ext-tls drafts. The drafts say that the credential must 
2601    have the form dn:xxx or u:xxx or be absent, and although they don't 
2602    say what to do in the case of an empty octet string I would say that 
2603    we could send protocolError (claim it is a bad PDU).  
2604     
2605    There is still the question of what to do if the credential is 'dn:' 
2606    (or 'u:') followed by the empty string. (Source: ariel@columbia.edu 
2607    via Jeff Hodges) 
2608     
2609    Status: resolved. Kurt Zeilenga indicated during ldapbis WG 
2610    discussion at IETF 52 that SASL AuthzID credentials empty and absent 
2611    are equivalent in the latest SASL ID. This resolves the issue.  
2612     
2613 H.17. Hostname check from MUST to SHOULD? 
2614     
2615    I am uneasy about the hostname check. My experience from PKI with 
2616    HTTP probably is a contributing factor; we have people using the 
2617    short hostname to get to a server which naturally has the FQDN in 
2618    the certificate, no end of problems. I have a certificate on my 
2619    laptop which has the FQDN for the casse when the system is on our 
2620    Columbia network with a fixed IP; when I dial in however, I have 
2621    some horrible dialup name, and using the local https server becomes 
2622    annoying. Issuing a certificate in the name 'localhost' is not a 
2623    solution! Wildcard match does not solve this problem. For these 
2624    reasons I am inclined to argue for 'SHOULD' instead of  
2625    'MUST' in paragraph...  
2626     
2627    Also, The hostname check against the name in the certificate is a 
2628    very weak means of preventing man-in-the-middle attacks; the proper 
2629    solution is not here yet (SecureDNS or some equivalent). Faking out 
2630    DNS is not so hard, and we see this sort of thing in the press on a 
2631    pretty regular basis, where site A hijacks the DNS server for site B 
2632    and gets all their requests. Some mention of this should be made in 
2633    the draft. (Source: ariel@columbia.edu via Jeff Hodges) 
2634     
2635    Status: resolved. Based on discussion at IETF 52 ldapbis WG meeting, 
2636    this text will stand as it is. The check is a MUST, but the behavior 
2637    afterward is a SHOULD. This gives server implementations the room to 
2638    maneuver as needed. 
2639     
2640  
2641 Harrison                  Expires July 2004                 [Page 45] 
2642 \f
2643 Internet-Draft       LDAP Authentication Methods      5 December 2003 
2644  
2645 H.18. Must SASL DN exist in the directory?  
2646     
2647    If the 'dn:' form of sasl creds is used, is it the intention of the 
2648    draft(ers) that this DN must exist in the directory and the client 
2649    will have the privileges associated with that entry, or can the 
2650    server map the sasl DN to perhaps some other DN in the directory,  
2651    in an implementation-dependent fashion?  
2652     
2653    We already know that if *no* sasl credentials are presented, the DN 
2654    or altname in the client certificate may be mapped to a DN in an 
2655    implementation-dependent fashion, or indeed to something not in the 
2656    directory at all. (Right?)  (Source: ariel@columbia.edu via Jeff 
2657    Hodges) 
2658     
2659    Status: resolved. (11/12/02)Based on my research I propose that the 
2660    DN MUST exist in the directory when the DN form of sasl creds is 
2661    used. I have made this proposal to the ldapbis mailing list. 
2662     
2663    (11/21/02) Feedback from mailing list has proposed removing this 
2664    paragraph entirely because (1) explicit assertion of authorization 
2665    identity should only be done when proxying (2) mapping of the 
2666    asserted authorization identity is implementation specific and 
2667    policy driven [SASL] section 4.2, and (3) keeping this paragraph is 
2668    not required for interoperability. 
2669     
2670 H.19. DN used in conjunction with SASL mechanism 
2671     
2672    We need to specify whether the DN field in Bind operation can/cannot 
2673    be used when SASL mechanism is specified. (source: RL Bob) 
2674     
2675    Status: resolved. (-03) Based on ldapbis WG discussion at IETF52 two 
2676    sentences were added to section 4.3 indicating that clients SHOULD 
2677    NOT send a DN value when binding with the sasl choice and servers 
2678    SHALL ignore any value received in this circumstance. During edits 
2679    for -04 version of draft it was noted that [Protocol] section 4.2 
2680    conflicts with this draft. The editor of [Protocol] has been 
2681    notified of the discrepancy, and they have been handled. 
2682     
2683 H.20. Bind states 
2684     
2685    Differences between unauthenticated and anonymous. There are four 
2686    states you can get into. One is completely undefined (this is now 
2687    explicitly called out in [Protocol]).  This text needs to be moved 
2688    from [Protocol] to this draft. (source: Jim Sermersheim) 
2689     
2690    Status: Resolved. There are four states: (1) no name, no password 
2691    (anon); (2) name, no password (anon); (3) no name, password 
2692    (invalid); (4) name, password (simple bind).  States 1, 2, and 4 are 
2693    called out in [AuthMeth]. State 3 is called out in [Protocol]; this 
2694    seems appropriate based on review of alternatives. 
2695  
2696 H.21. Misuse of unauthenticated access 
2697  
2698
2699  
2700 Harrison                  Expires July 2004                 [Page 46] 
2701 \f
2702 Internet-Draft       LDAP Authentication Methods      5 December 2003 
2703  
2704    Add a security consideration that operational experience shows that 
2705    clients can misuse unauthenticated access (simple bind with name but 
2706    no password).  Servers SHOULD by default reject authentication 
2707    requests that have a DN with an empty password with an error of 
2708    invalidCredentials. (Source: Kurt Zeilenga and Chris Newman (Sun)) 
2709     
2710    Status: Resolved. Added to security considerations in -03. 
2711     
2712 H.22. Need to move Start TLS protocol information to [Protocol] 
2713  
2714    Status: Resolved. Removed Sections 5.1, 5.2, and 5.4 for -04 and 
2715    they are [Protocol] -11. 
2716  
2717 H.23. Split Normative and Non-normative references into separate 
2718 sections. 
2719  
2720    Status: Resolved. Changes made in -04 
2721  
2722 H.24. What is the authentication state if a Bind operation is 
2723 abandoned? 
2724  
2725    Status: Resolved. 
2726     
2727    (3/24/03) This following text appears in section 4.2.1 of [Protocol] 
2728    revision -13 to cover what happens if a bind operation is abandoned: 
2729      
2730    A failed or abandoned Bind Operation has the effect of leaving the 
2731    connection in an anonymous state. To arrive at a known 
2732    authentication state after abandoning a bind operation, clients may 
2733    unbind, rebind, or make use of the BindResponse. 
2734     
2735    (6/28/03): The state table in section 6 of [AuthMeth] has been 
2736    updated to reflect this wording.  
2737  
2738 H.25. Difference between checking server hostname and server's 
2739 canonical DNS name in Server Identity Check? 
2740  
2741    Section 4.1.6: I now understand the intent of the check (prevent 
2742    man-in-the-middle attacks).  But what is the subtle difference 
2743    between the "server hostname" and the "server's canonical DNS name"? 
2744    (Source: Tim Hahn) 
2745     
2746    Status: Resolved.  
2747     
2748    (11/12/02) Sent suggested wording change to this paragraph to the 
2749    ldapbis mail list and also asked for opinion as to whether we should 
2750    discuss the distinction between server DNS hostname and server 
2751    canonical DNS hostname in [AuthMeth]. 
2752     
2753    (11/21/02): RL Bob Morgan will provide wording that allows 
2754    derivations of the name that are provided securely. 
2755     
2756    (6/28/03): posted to the WG list asking Bob or any other WG member 
2757    who is knowledgeable about the issues involved to help me with 
2758  
2759 Harrison                  Expires July 2004                 [Page 47] 
2760 \f
2761 Internet-Draft       LDAP Authentication Methods      5 December 2003 
2762  
2763    wording or other information I can use to make this change and close 
2764    the work item. 
2765     
2766    (10/08/03): Based on WG list feedback, I've updated this text to 
2767    read what I judge to be the WG consensus, "The client MUST use the 
2768    server provided by the user (or other trusted entity) as the value 
2769    to compare against the server name as expressed in the server's 
2770    certificate. A hostname derived from the user input is to be 
2771    considered provided by the user only if derived in a secure fashion 
2772    (e.g., DNSSEC)." 
2773     
2774     
2775 H.26. Server Identity Check using servers located via SRV records 
2776     
2777    Section 4.1.6: What should be done if the server was found using SRV 
2778    records based on the "locate" draft/RFC? (Source: Tim Hahn). 
2779          
2780    Status: Resolved. Section 5 of draft-ietf-ldapext-locate-08 
2781    specifically calls out how the server identity should be performed 
2782    if the server is located using the method defined in that draft. 
2783    This is the right location for this information, and the coverage 
2784    appears to be adequate. 
2785     
2786 H.27 Inconsistency in effect of TLS closure on LDAP association. 
2787     
2788    Section 4.4.1 of authmeth -03 (section 4.1 of RFC2830) states that 
2789    TLS closure alert will leave the LDAP association intact. Contrast 
2790    this with Section 4.5.2 (section 5.2 of RFC2830) that says that the 
2791    closure of the TLS connection MUST cause the LDAP association to 
2792    move to an anonymous authentication. 
2793     
2794    Status: Resolved. (11/12/02) This is actually a [Protocol] issue 
2795    because these sections have now been moved to [Protocol] -11. I have 
2796    proposed the following text for Section 4.4.1 of [AuthMeth] -03 
2797    (section 4.13.3.1 of [Protocol]) to resolve this apparent 
2798    discrepancy: 
2799     
2800    "Either the client or server MAY terminate the TLS connection on an 
2801    LDAP association by sending a TLS closure alert.  The LDAP 
2802    connection remains open for further communication after TLS closure 
2803    occurs although the authentication state of the LDAP connection is 
2804    affected (see [AuthMeth] section 4.2.2). 
2805     
2806    (11/21/02): resolution to this is expected in [Protocol] -12 
2807     
2808    (06/28/03): [Protocol]-15 clarifies that a TLS closure alert 
2809    terminates the TLS connection while leaving the LDAP connection 
2810    intact. The authentication state table in [AuthMeth] specifies the 
2811    effect on the LDAP association.  
2812  
2813 H.28 Ordering of external sources of authorization identities 
2814     
2815    Section 4.3.2 implies that external sources of authorization 
2816    identities other than TLS are permitted. What is the behavior when 
2817  
2818 Harrison                  Expires July 2004                 [Page 48] 
2819 \f
2820 Internet-Draft       LDAP Authentication Methods      5 December 2003 
2821  
2822    two external sources of authentication credentials are available 
2823    (e.g. TLS and IPsec are both present (is this possible?)) and a SASL 
2824    EXTERNAL Bind operation is performed? 
2825     
2826    Status: resolved. 11/20/02: Resolved by Section 4.2 of [SASL] which 
2827    states that the decision to allow or disallow the asserted identity 
2828    is based on an implementation defined policy. 
2829     
2830 H.29 Rewrite of Section 9, TLS Ciphersuites 
2831     
2832    This section contains anachronistic references and needs to be 
2833    updated/rewritten in a way that provides useful guidance for future 
2834    readers in a way that will transcend the passage of time. 
2835     
2836    Status: Resolved. (6/28/03): Rewrote the section to cover the 
2837    general issues and considerations involved in selecting TLS 
2838    ciphersuites. 
2839     
2840 H.30 Update to Appendix A, Example Deployment Scenarios 
2841     
2842    This section needs to be updated to indicate which security 
2843    mechanisms and/or combinations of security mechanisms described 
2844    elsewhere in the document can provide the types of protections 
2845    suggested in this appendix. 
2846  
2847 H.31 Use of PLAIN SASL Mechanism 
2848     
2849    At least one LDAP server implementer has found the SASL "PLAIN" 
2850    mechanism useful in authenticating to legacy systems that do not 
2851    represent authentication identities as DNs. Section 3.3.1 appears to 
2852    implicitly disallow the use of the SASL "PLAIN" mechanism with LDAP. 
2853    Should we allow the use of this mechanism? I.e. is this "SASL" 
2854    "PLAIN" MUST NOT be used with LDAP, or is it simply that LDAP 
2855    doesn't define bindings for these mechanism. If SASL "PLAIN" is 
2856    allowed, the following adjustments will be needed to section 3.3.1: 
2857    (a) change section heading, (b) remove reference to "PLAIN" in the 
2858    section, (c) ensure wording of last sentence regarding non-DN 
2859    AuthZIDs is consistent with rest of the section. 
2860     
2861    Status: Resolved. 
2862     
2863    (6/28/03): email to WG list stating issue and asking if we should 
2864    remove the reference to SASL "PLAIN". 
2865     
2866    For -07 draft I've generalized the SASL profile in section 3.3 to 
2867    allow any SASL mechanism. 
2868     
2869     
2870 H.32 Clarification on use of SASL mechanisms 
2871     
2872    Section 3.3.1: BTW, what _are_ the "ANONYMOUS" and "PLAIN" SASL 
2873    mechanisms?  They are not defined in RFC2222.  If you refer to other 
2874    SASL mechanisms than those in rfc2222, Maybe you should only list 
2875
2876  
2877 Harrison                  Expires July 2004                 [Page 49] 
2878 \f
2879 Internet-Draft       LDAP Authentication Methods      5 December 2003 
2880  
2881    which mechanisms _are_used, instead of which ones are _not. (Source: 
2882    Hallvard Furuseth) 
2883     
2884    I (Kurt Zeilenga) note[s] as well that the ANONYMOUS/PLAIN section 
2885    (4.2) should 
2886    be deleted.  ANONYMOUS and PLAIN, like in other mechanism, 
2887    can be used in LDAP if a) supported and b) enabled.  I note 
2888    that they each offer capabilities not found in their simple 
2889    bind equivalents (and hence are used in some deployments). 
2890    For example, PLAIN (over TLS) is quite useful when interacting 
2891    with legacy authentication subsystems.  (Source: Kurt Zeilenga) 
2892     
2893    Status: Resolved. 
2894     
2895    For -07 draft I've generalized the SASL profile in section 3.3 to 
2896    allow any SASL mechanism. 
2897     
2898     
2899     
2900 H.33 Clarification on use of password protection based on AuthZID form 
2901     
2902    Section 3.3.1: "If an authorization identity of a form different 
2903    from a DN is requested by the client, a mechanism that protects the 
2904    password in transit SHOULD be used." What has that to do with DNs?  
2905    A mechanism that protects the password in transit should be used in 
2906    any case, shouldn't it? 
2907     
2908    Status: Resolved. 
2909     
2910    In -08 draft this text was removed. There is already a general 
2911    security consideration that covers this issue. 
2912     
2913     
2914 H.34 Clarification on use of matching rules in Server Identity Check 
2915     
2916    The text in section 4.1.6 isn't explicit on whether all rules apply 
2917    to both CN and dNSName values.  The text should be clear as to which 
2918    rules apply to which values....  in particular, the wildcard 
2919    rules. (Source: Kurt Zeilenga) 
2920     
2921     
2922 H.35 Requested Additions to Security Considerations 
2923     
2924    Requested to mention hostile servers which the user might have been 
2925    fooled to into contacting. Which mechanisms that are standardized by 
2926    the LDAP standard do/do not disclose the user's password to the 
2927    server? (Or to servers doing man-in-the-middle attack? Or is that a 
2928    stupid question?) 
2929     
2930    Requested to mention denial of service attacks.  
2931     
2932    Requested list of methods that need/don't need the server to know 
2933    the user's plaintext password. (I say 'know' instead of 'store' 
2934
2935  
2936 Harrison                  Expires July 2004                 [Page 50] 
2937 \f
2938 Internet-Draft       LDAP Authentication Methods      5 December 2003 
2939  
2940    because it could still store the password encrypted, but in a way 
2941    which it knows how to decrypt.) 
2942     
2943    (Source: Hallvard Furuseth) 
2944     
2945 H.36 Add reference to definition of DIGEST-MD5 
2946     
2947    Need a reference to the definition of DIGEST-MD5 SASL mechanism in 
2948    section 7.2 (Source: Hallvard Furuseth) 
2949     
2950    Status: Resolved. A reference to to the DIGEST-MD5 SASL mechanism, 
2951    [DigestAuth], is included in the -07 revision. 
2952     
2953 H.37 Clarification on procedure for certificate-based authentication 
2954  
2955     
2956    8.1. Certificate-based authentication with TLS states: "Following 
2957    the successful completion of TLS negotiation, the client will send 
2958    an LDAP bind request with the SASL "EXTERNAL" mechanism." Is this 
2959    immediately following, or just some time later? Should the wording, 
2960    "the client will send..." actually read, "the client MUST send..."? 
2961     
2962    Status: Resolved. In -10 this text has been absorbed into the SASL 
2963    EXTERNAL mechanism section.   
2964     
2965 H.38 Effect of Start TLS on authentication state 
2966     
2967    Should the server drop all knowledge of connection, i.e. return to 
2968    anonymous state, if it gets a Start TLS request on a connection that 
2969    has successfully bound using the simple method? 
2970     
2971    Status: Resolved. In -09 the effect on an LDAP association by a 
2972    Start TLS operation is made a matter of local policy. This is based 
2973    on editorÆs perception of WG consensus gaged by conversations at 
2974    IETF 58 and subsequent discussion on the WG  mail list. 
2975     
2976 H.39 Be sure that there is a consideration in [SCHEMA] that discusses 
2977 multiple password values in userPassword 
2978  
2979    Allowing multiple values obviously does raise a number of security 
2980    considerations and these need to be discussed in the document. 
2981     
2982    Certainly applications which intend to replace the userPassword with 
2983    new value(s) should use modify/replaceValues (or 
2984    modify/deleteAttribute+addAttribute). Additionally, server 
2985    implementations should be encouraged to provide administrative 
2986    controls which, if enabled, restrict userPassword to one value. 
2987     
2988 H.40. Clarify need to verify mapping between authentication identity 
2989 and resulting authorization identity on implicit assertion of AuthZID. 
2990  
2991    4.2.2.3. Error Conditions 
2992       
2993    "For either form of assertion, the server MUST verify that the 
2994  
2995 Harrison                  Expires July 2004                 [Page 51] 
2996 \f
2997 Internet-Draft       LDAP Authentication Methods      5 December 2003 
2998  
2999    client's authentication identity as supplied in its TLS credentials 
3000    is permitted to be mapped to the asserted authorization identity." 
3001     
3002    This makes sense for the explicit assertion case, but seems to be  
3003    ambiguous for the implicit case. 
3004    IMHO, the mapping can be done as two steps: 
3005    a). deriving LDAP authentication identity from TLS credentials; If t 
3006    this steps fails, EXTERNAL mechanism returns failure. 
3007    b). verify that the authorization identity is allowed for the 
3008    derived authentication identity. This is always "noop" for the 
3009    implicit case. 
3010    I am not sure that the text is saying this. 
3011    (Source: Alexey Melnikov email 8/1/2003 5:30:43 PM) 
3012     
3013    Status: Resolved in -07. After reading the comments and the text of 
3014    the draft, I believe that this should be clarified. The local policy 
3015    used to map the AuthNID to the AuthZID in the implicit case is 
3016    sufficient and that no additional verification is useful or needed. 
3017    This text has been moved to apply only to the explicit assertion 
3018    case. 
3019     
3020 H.41. Section 7.2 contains unnecessary and misleading detail. 
3021     
3022    " I am not sure why this section is required in the document. 
3023    DIGEST-MD5 is defined in a separate document and there should be 
3024    nothing magical about its usage in LDAP. If DIGEST-MD5 description 
3025    creates confusion for LDAP implementors, let's fix the DIGEST-MD5 
3026    document! Also, this section tries to redefine DIGEST-MD5 behavior, 
3027    which is explicitly prohibited by the SASL specification." 
3028    (Source: Alexey Melnikov: email 8/1/2003 5:30:43 PM) 
3029     
3030    Status: Resolved. 
3031     
3032    After reading the comments and the text of the draft plus the 
3033    related text in draft-ietf-sasl-rfc2831bis-02.txt plus 
3034    http://www.ietf.org/internet-drafts/draft-ietf-sasl-rfc2222bis-
3035    02.txt, I am inclined to agree with Alexey. In -07 I rewrote section 
3036    3.3 (SASL mechanisms) to match the profiling requirements 
3037    rfc2831bis. I then dramatically reduced the material in section 7.2 
3038    to a bare minimum and let the SASL profile stand on its own.   
3039  
3040 H.42. Does change for H.41 cause interoperability issue? 
3041     
3042    There is one issue with the way the authmeth draft is currently 
3043    written that changes the SASL DIGEST-MD5 behavior on the way the 
3044    server responds with the subsequent authentication information . 
3045    This has been documented in this fashion since RFC 2829 (section 
3046    6.1) was originally published and may cause an interoperability 
3047    issue at this point if it changed to follow the DIGEST-MD5 spec (as 
3048    it was in -07 of AuthMeth). Take this issue to the list. 
3049     
3050    Status: Resolved 
3051     
3052
3053  
3054 Harrison                  Expires July 2004                 [Page 52] 
3055 \f
3056 Internet-Draft       LDAP Authentication Methods      5 December 2003 
3057  
3058    (10/08/03) This item was discussed on the WG list between 5/2/03 and 
3059    5/9/03. Consensus apppears to support the notion that RFC 2829 was 
3060    in error and that the semantics of RFC 2831 are correct and should 
3061    be reflected in authmeth. This is already the case as of the -07 
3062    draft. 
3063  
3064 H.43. DIGEST-MD5 Realms recommendations for LDAP 
3065     
3066    From http://www.ietf.org/internet-drafts/draft-ietf-sasl-rfc2222bis-
3067    02.txt: A protocol profile SHOULD provide a guidance how realms are 
3068    to be constructed and used in the protocol and MAY further restrict 
3069    its syntax and protocol-specific semantics." 
3070     
3071    I don't believe that any such guidance exists within the LDAP TS. 
3072    The most likely place for this to reside is in the authmeth draft. 
3073     
3074    Related email from Alexey Melnikov (8/4/2003 1:08:40 PM): 
3075     
3076    "The problem I have with the document is that it references realm 
3077    without explaining what it is (or at least some examples of valid 
3078    values). For LDAP, some recommendations should be given. For 
3079    example: 
3080    1). Use a hardcoded string as the realm (one of the implementations 
3081    I worked on was doing that) 
3082    2). Use hostname (realm==host) or domain/cluster name (realm 
3083    includes multiple hosts). 
3084    3). Use a node in DIT above user entry, for example for "cn=Barbara  
3085    Jensen, ou=Accounting, o=Ace Industry, c=US" 
3086     and "cn=John Doe, ou=Accounting, o=Ace Industry, c=US" realm can be  
3087    "ou=Accounting, o=Ace Industry, c=US" 
3088    (or "o=Ace Industry, c=US"); for "cn=Gern Jensen, ou=Product 
3089    Testing,o=Ace Industry, c=US" realm can be "ou=Product Testing, 
3090    o=Ace Industry, c=US". 
3091     
3092    Of course other choices are possible. 
3093     
3094    Alexey 
3095     
3096    To summarize:  I'd like authmeth to define a realm name for use with 
3097    Digest-MD5 that corresponds to LDAP DNs known to this server.  
3098    Authzid is okay, but perhaps could be better put into context. 
3099     
3100     
3101    John  McMeeking (5/12/2003) 
3102     
3103    Status: Resolved. 
3104     
3105    draft-ietf-sasl-rfc2222bis-03.txt no longer requires this 
3106    information in a SASL protocol. In addition, the ldapbis WG chairs 
3107    have ruled this work out of scope. Individuals are welcome to make 
3108    submissions to provide guidance on the use of realm and realm values 
3109    in LDAP. 
3110     
3111 H.44. Use of DNs in usernames and realms in DIGEST-MD5 
3112  
3113 Harrison                  Expires July 2004                 [Page 53] 
3114 \f
3115 Internet-Draft       LDAP Authentication Methods      5 December 2003 
3116  
3117     
3118    In reading the discussion on the mailing list, I reach the following 
3119    conclusions: 
3120     
3121    DIGEST-MD5 username and realm are simple strings. The syntax of 
3122    these strings allows strings that look like DNs in form, however, 
3123    DIGEST-MD5 treats them a simple strings for comparision purposes. 
3124    For example, the DNs cn=roger, o=US and cn=roger,o=us are equivalent 
3125    when being compared semantically as DNs, however, these would be 
3126    considered two different username values in DIGEST-MD5 because 
3127    simple octet-wise semantics (rather than DN semantics) are used to 
3128    compare username values in DIGEST-MD5. Ditto for realm values. 
3129     
3130    Status: Resolved. 
3131     
3132    In -07 revision I added notes to implementors expressing this issue 
3133    in section 7.2.  
3134     
3135 H.45: Open Issue: Is Simple+TLS mandatory to implement? 
3136     
3137    Going forward, it would be much better to clarify that simple 
3138    +TLS is to be used for DN/password credentials and DIGEST-MD5 
3139    (or PLAIN+TLS) be used for username/password credentials. (Kurt 
3140    Zeilenga, 5/12/2003) 
3141     
3142    I don't believe you can mandate simple/TLS! At the time RFC 2829 was 
3143    debated, a large number on the WG wanted this. They did not get 
3144    their way because of the complexity of the solution. It was argued 
3145    that a password-based method would be better. I think they believed 
3146    it would still be DN/password, though. (Ron Ramsay, 5/12/2003) 
3147     
3148    This was officially opened as an issue by WG co-chair Kurt Zeilenga 
3149    on 5/12/03. Little direct discussion has occurred since, however 
3150    there has been significant discussion on the use of DN values as the 
3151    username for DIGEST-MD5. 
3152     
3153    Status: Resolved. 
3154     
3155    Based on WG list discussion, Kurt Zeilenga has gaged a lack of WG 
3156    consensus that Simple+TLS should be mandatory to implement. No 
3157    further discussion is necessary. 
3158     
3159  
3160 Intellectual Property Rights 
3161  
3162    The IETF takes no position regarding the validity or scope of any 
3163    intellectual property or other rights that might be claimed to 
3164    pertain to the implementation or use of the technology described in 
3165    this document or the extent to which any license under such rights 
3166    might or might not be available; neither does it represent that it 
3167    has made any effort to identify any such rights.  Information on the 
3168    IETF's procedures with respect to rights in standards-track and 
3169    standards-related documentation can be found in BCP-11.  Copies of 
3170    claims of rights made available for publication and any assurances 
3171  
3172 Harrison                  Expires July 2004                 [Page 54] 
3173 \f
3174 Internet-Draft       LDAP Authentication Methods      5 December 2003 
3175  
3176    of licenses to be made available, or the result of an attempt made 
3177    to obtain a general license or permission for the use of such 
3178    proprietary rights by implementors or users of this specification 
3179    can be obtained from the IETF Secretariat. 
3180     
3181    The IETF invites any interested party to bring to its attention any 
3182    copyrights, patents or patent applications, or other proprietary 
3183    rights which may cover technology that may be required to practice 
3184    this standard.  Please address the information to the IETF Executive 
3185    Director. 
3186  
3187 Full Copyright 
3188  
3189    Copyright (C) The Internet Society (2003). All Rights Reserved. 
3190  
3191    This document and translations of it may be copied and furnished to 
3192    others, and derivative works that comment on or otherwise explain it 
3193    or assist in its implementation may be prepared, copied, published 
3194    and distributed, in whole or in part, without restriction of any 
3195    kind, provided that the above copyright notice and this paragraph 
3196    are included on all such copies and derivative works. However, this 
3197    document itself may not be modified in any way, such as by removing 
3198    the copyright notice or references to the Internet Society or other 
3199    Internet organizations, except as needed for the purpose of 
3200    developing Internet standards in which case the procedures for 
3201    copyrights defined in the Internet Standards process must be 
3202    followed, or as required to translate it into languages other than 
3203    English. 
3204  
3205
3206
3207
3208
3209
3210
3211
3212
3213
3214
3215
3216
3217
3218
3219
3220
3221
3222
3223
3224
3225
3226
3227
3228
3229
3230  
3231 Harrison                  Expires July 2004                 [Page 55] 
3232 \f
3233