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