Reorder configuration file reading.
[shishi.git] / doc / specifications / draft-ietf-krb-wg-kerberos-set-passwd-06.txt
blob2454a058d08a94465185142a5ac02f8c890222ea
4 NETWORK WORKING GROUP                                        N. Williams
5 Internet-Draft                                                       Sun
6 Expires: September 6, 2007                                 March 5, 2007
9           Kerberos Set/Change Key/Password Protocol Version 2
10               draft-ietf-krb-wg-kerberos-set-passwd-06.txt
12 Status of this Memo
14    By submitting this Internet-Draft, each author represents that any
15    applicable patent or other IPR claims of which he or she is aware
16    have been or will be disclosed, and any of which he or she becomes
17    aware will be disclosed, in accordance with Section 6 of BCP 79.
19    Internet-Drafts are working documents of the Internet Engineering
20    Task Force (IETF), its areas, and its working groups.  Note that
21    other groups may also distribute working documents as Internet-
22    Drafts.
24    Internet-Drafts are draft documents valid for a maximum of six months
25    and may be updated, replaced, or obsoleted by other documents at any
26    time.  It is inappropriate to use Internet-Drafts as reference
27    material or to cite them other than as "work in progress."
29    The list of current Internet-Drafts can be accessed at
30    http://www.ietf.org/ietf/1id-abstracts.txt.
32    The list of Internet-Draft Shadow Directories can be accessed at
33    http://www.ietf.org/shadow.html.
35    This Internet-Draft will expire on September 6, 2007.
37 Copyright Notice
39    Copyright (C) The IETF Trust (2007).
55 Williams                Expires September 6, 2007               [Page 1]
57 Internet-Draft       Kerberos Set/Change Password v2          March 2007
60 Abstract
62    This document specifies an extensible protocol for setting keys and
63    changing the passwords of Kerberos V principals.
66 Table of Contents
68    1.      Conventions used in this document  . . . . . . . . . . . .  3
69    2.      Introduction . . . . . . . . . . . . . . . . . . . . . . .  4
70    3.      The Protocol . . . . . . . . . . . . . . . . . . . . . . .  5
71    3.1.    Transports . . . . . . . . . . . . . . . . . . . . . . . .  5
72    3.1.1.  Protocol Framing . . . . . . . . . . . . . . . . . . . . .  5
73    3.2.    Protocol Version Negotiation . . . . . . . . . . . . . . .  6
74    3.2.1.  Protocol Major Version Negotiation . . . . . . . . . . . .  6
75    3.2.2.  Protocol Minor Version Negotiation . . . . . . . . . . . .  7
76    3.3.    Use of Kerberos V and Key Exchange . . . . . . . . . . . .  7
77    3.4.    Use of ASN.1 . . . . . . . . . . . . . . . . . . . . . . .  8
78    3.5.    Internationalization . . . . . . . . . . . . . . . . . . .  8
79    3.5.1.  Normalization Forms for UTF-8 Strings  . . . . . . . . . .  8
80    3.5.2.  Language Negotiation . . . . . . . . . . . . . . . . . . .  8
81    3.6.    Protocol Extensibility . . . . . . . . . . . . . . . . . .  9
82    3.7.    Protocol Subsets . . . . . . . . . . . . . . . . . . . . .  9
83    4.      Protocol Elements  . . . . . . . . . . . . . . . . . . . . 10
84    4.1.    Password Quality Policies  . . . . . . . . . . . . . . . . 10
85    4.1.1.  Standard Password Quality Policies . . . . . . . . . . . . 11
86    4.2.    PDUs . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
87    4.3.    Operations . . . . . . . . . . . . . . . . . . . . . . . . 14
88    4.3.1.  Null . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
89    4.3.2.  Change Kerberos Password . . . . . . . . . . . . . . . . . 14
90    4.3.3.  Set Kerberos Password  . . . . . . . . . . . . . . . . . . 14
91    4.3.4.  Set Kerberos Keys  . . . . . . . . . . . . . . . . . . . . 14
92    4.3.5.  Generate Kerberos Keys . . . . . . . . . . . . . . . . . . 15
93    4.3.6.  Get New Keys . . . . . . . . . . . . . . . . . . . . . . . 15
94    4.3.7.  Commit New Keys  . . . . . . . . . . . . . . . . . . . . . 16
95    4.3.8.  Get Password Quality Policy  . . . . . . . . . . . . . . . 16
96    4.3.9.  Get Principal Aliases  . . . . . . . . . . . . . . . . . . 16
97    4.3.10. Get Realm's Supported Kerberos V Version and Features  . . 16
98    4.3.11. Retrieve Principal's S2K Params and Preferred Params . . . 17
99    4.4.    Principal Aliases  . . . . . . . . . . . . . . . . . . . . 17
100    4.5.    Kerberos V Feature Negotiation . . . . . . . . . . . . . . 17
101    5.      ASN.1 Module . . . . . . . . . . . . . . . . . . . . . . . 18
102    6.      Security Considerations  . . . . . . . . . . . . . . . . . 19
103    7.      References . . . . . . . . . . . . . . . . . . . . . . . . 20
104    7.1.    Normative References . . . . . . . . . . . . . . . . . . . 20
105    7.2.    Informative References . . . . . . . . . . . . . . . . . . 20
106            Author's Address . . . . . . . . . . . . . . . . . . . . . 21
107            Intellectual Property and Copyright Statements . . . . . . 22
111 Williams                Expires September 6, 2007               [Page 2]
113 Internet-Draft       Kerberos Set/Change Password v2          March 2007
116 1.  Conventions used in this document
118    The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
119    "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this
120    document are to be interpreted as described in [RFC2119].
167 Williams                Expires September 6, 2007               [Page 3]
169 Internet-Draft       Kerberos Set/Change Password v2          March 2007
172 2.  Introduction
174    Up to this point Kerberos V has lacked a single, standard protocol
175    for changing passwords and keys.  While several vendor-specific
176    protocols exist for changing Kerberos passwords/keys, none are
177    properly internationalized and all are incomplete in one respect or
178    another and none are sufficiently extensible to cope with new
179    features that may be added to Kerberos V at some future time.
181    This document defines a protocol that is somewhat backward-compatible
182    with the "kpasswd" protocol defined in [RFC3244] that uses more or
183    less the same protocol framing.
185    This new protocol is designed to be extensible and properly
186    internationalized.
223 Williams                Expires September 6, 2007               [Page 4]
225 Internet-Draft       Kerberos Set/Change Password v2          March 2007
228 3.  The Protocol
230    The structure of the protocol is quite similar to that of typical RPC
231    protocols.  Each transaction consists of a data structure specific to
232    an operation which is then wrapped in a data structure which is
233    general to all operations of the protocol.  These data structures are
234    defined with the Abstract Syntax Notation 1 (ASN.1) [CCITT.X680.2002]
235    and they are encoded using the Distinguished Encoding Rules (DER)
236    [CCITT.X690.2002].
238    All protocol data is wrapped KRB-PRIV messages, or, in some cases, a
239    KRB-ERROR, and framed in a header that is backwards compatible with
240    [RFC3244].
242 3.1.  Transports
244    The service supports only connection-oriented transports,
245    specifically TCP, and SHOULD accept requests on TCP port 464, the
246    same as in [RFC3244].
248 3.1.1.  Protocol Framing
250    Requests and responses are exchanged using the same framing as in
251    [RFC3244], but with the following differences:
253    o  the protocol number field MUST be set to 0x2 (not 0xff80 or 0x1)
255    o  the 'AP-REQ length' field of the request can be set to 0x0, in
256       which case the 'AP-REQ' field of the request is excluded
258    o  the 'KRB-PRIV' field of the request and reply is mutually
259       exclusive with the 'AP-REQ' field of the request
261    o  the 'AP-REP length' field of the reply can be set to 0x0, in which
262       case the 'AP-REP' field of the reply is excluded
264    o  all errors MUST be sent in a KRB-PRIV if the client's AP-REQ can
265       be or has been accepted by the server
267    o  any KRB-ERROR messages are framed and sent in the 'AP-REP' field
268       of the reply
270    The initial message from the client MUST carry an AP-REQ and the
271    response to any request bearing an AP-REQ MUST carry an AP-REP or
272    MUST be a KRB-ERROR.
274    Subsequent messages exchanged on the same TCP connection MAY involve
275    Kerberos V AP exchanges, but generally the client SHOULD NOT initiate
279 Williams                Expires September 6, 2007               [Page 5]
281 Internet-Draft       Kerberos Set/Change Password v2          March 2007
284    a new AP exchange except when it desires to authenticate as a
285    different principal, when the ticket last used for authentication
286    expires or when the server responds with an error indicating that the
287    client must re-authenticate.
289 3.2.  Protocol Version Negotiation
291    There are several major versions of this protocol.  Version 2 also
292    introduces a notion of protocol minor versions for use in negotiating
293    protocol extensions.  As of this time only one minor version is
294    defined for major version 2: minor version 0, defined herein.
296 3.2.1.  Protocol Major Version Negotiation
298    Version 2 clients that also support other versions, such as 0xff80,
299    as in [RFC3244], SHOULD attempt to use version 2 of the protocol
300    first.
302    Servers which do not support version 2 of this protocol typically
303    include their preferred version number in the reply and/or may
304    include a reply in the e-data of a KRB-ERROR, or in a KRB-PRIV with a
305    status code of KRB5_KPASSWD_MALFORMED.
307    Note that some [RFC3244] server implementations close the TCP
308    connection without returning any other response.  Note also that
309    there is no integrity protection for the major version number in the
310    protocol framing or for any data in a KRB-ERROR.
312    As a result change password protocol major version negotiation is
313    subject to downgrade attacks.  Therefore major version negotiation is
314    NOT RECOMMENDED.
316    Where the server indicates that it does not support version 2, the
317    client MAY, but SHOULD NOT, unless configured to do so, fall back on
318    another major version of this protocol.
320    Version 2 servers MAY respond to non-v2 requests using whatever
321    response is appropriate for the versions used by the clients, but if
322    a server does not do this or know how to do this then it MUST respond
323    with an error framed as in Section 3.1.1, using an AP-REP and KRB-
324    PRIV if the client's AP-REQ can be accepted, or a KRB-ERROR otherwise
325    and using a ProtocolErrorCode value of unsupported-major-version.
327    It is expected that implementations of as yet unspecified future
328    major versions of this protocol will be required to support version 2
329    integrity protected error replies for properly indicating no support
330    for version 2 of the protocl.  We also hope that no further major
331    versions of this protocol will be needed.
335 Williams                Expires September 6, 2007               [Page 6]
337 Internet-Draft       Kerberos Set/Change Password v2          March 2007
340 3.2.2.  Protocol Minor Version Negotiation
342    Version 2 clients are free to use whatever protocol minor version and
343    message extensions are available to them in their initial messages to
344    version 2 servers, provided that the minor versions (other than 0)
345    have been defined through IETF documents.
347    Version 2 servers MUST answer with the highest protocol minor version
348    number supported by the server and the client.
350    Version 2 clients MUST use the protocol minor version used in a
351    server's reply for any subsequent messages in the same TCP session.
353    See Section 3.6 for further description of the protocol's
354    extensibility and its relation to protocol minor versions and the
355    negotiation thereof.
357 3.3.  Use of Kerberos V and Key Exchange
359    This protocol makes use of messages defined in [RFC4120].
360    Specifically, AP-REQ, AP-REP, KRB-ERROR and KRB-PRIV.
362    All operations are to be performed by the server on behalf of the
363    client principal.
365    Clients SHOULD use "kadmin/setpw" as the principal name of the server
366    for all requests except when changing the client principal's own
367    expired password, for which they should use "kadmin/changepw".  The
368    "kadmin/changepw" service exists to allow KDCs to limit principals
369    with expired passwords to getting initial tickets to the password
370    changing service only and only for changing expired passwords.
372    Servers MUST limit clients that used the "kadmin/changepw" service
373    principal name to changing the password of the client principal.
375    The client MUST request mutual authentication and the client MUST
376    MUST request the use of sequence numbers.
378    Servers MAY force the use of INITIAL or fresh tickets for any
379    requests -- see Section 4.3.  Traditionally users with expired
380    passwords are allowed only INITIAL tickets for the password changing
381    server, therefore clients MUST support the use of INITIAL tickets.
383    Servers MUST specify a sub-session key.
385    The encrypted part of KRB-PRIVs MUST be encrypted with the server's
386    sub-session key and key usage 20 (client->server) or 21
387    (server->client).
391 Williams                Expires September 6, 2007               [Page 7]
393 Internet-Draft       Kerberos Set/Change Password v2          March 2007
396    After each new AP exchange the client and server MUST destroy the
397    session keys, if any, resulting from the previous AP exchange.
399 3.4.  Use of ASN.1
401    This protocol's messages are defined in ASN.1, using only features
402    from [CCITT.X680.2002].  All ASN.1 types defined herein are to be
403    encoded in DER [CCITT.X690.2002].  A complete ASN.1 module is given
404    in Section 5.
406    The DER encoding of the ASN.1 PDUs are exchanged wrapped in a KRB-
407    PRIV as described above and/or as e-data in KRB-ERROR messages.
409 3.5.  Internationalization
411    This protocol's request PDU carries an optional field indicating the
412    languages spoken by the client user; the client SHOULD send its list
413    of spoken languages to the server (once per-TCP session).
415    The server SHOULD localize all strings intended for display to users
416    to a language in common with the languages spoken by the client user.
418    Strings for Kerberos principal and realm names used in this protocol
419    are be constrained as per [RFC4120].
421 3.5.1.  Normalization Forms for UTF-8 Strings
423    Because Kerberos V [RFC4120] restricts principal names, realm names
424    and passwords to IA5String, this protocol uses UTF8String with an
425    extensible constraint to IA5String.
427    Future versions of Kerberos may relax this constraint; if so then a
428    minor version of this protocol should relax this constraint
429    accordingly.
431 3.5.2.  Language Negotiation
433    The server MUST pick a language from the client's input list or the
434    default language tag (see [RFC3066]) for text in its responses which
435    is meant for the user to read.
437    The server SHOULD use a language selection algorithm such that
438    consideration is first given to exact matches between the client's
439    spoken languages and the server's available locales, followed by
440    "fuzzy" matches where only the first sub-tags of the client's
441    language tag list are used for matching against the servers available
442    locales.
447 Williams                Expires September 6, 2007               [Page 8]
449 Internet-Draft       Kerberos Set/Change Password v2          March 2007
452    Servers MUST cache the optional language tag lists from prior
453    requests for use with subsequent requests that exclude the language
454    tag list.  Clients MAY expect such server behaviour and send the
455    language tag lists only once per-TCP session.  Clients SHOULD send
456    the server the language tag list at least once.
458    When the server has a message catalog for one of the client's spoken
459    languages the server SHOULD localize any text strings intended for
460    display to users.
462 3.6.  Protocol Extensibility
464    The protocol is defined in ASN.1 and uses extensibility markers
465    throughout.  As such, the module presented herein can be extended
466    within the framework of [CCITT.X680.2002].
468    Typed holes are not used in this protocol as it is very simple and
469    does not require the ability to deal with abstract data types defined
470    in different layers.  For this reason, the only way to extend this
471    protocol is by extending the ASN.1 module within the framework of the
472    IETF; all future extensions to this protocol have to be defined in
473    IETF documents unless otherwise specified in a future IETF revision
474    of this protocol.
476    A protocol minor version number is used to negotiate use of
477    extensions.  See Section 3.2.2 for the minor version negotiation.
479    Servers SHOULD ignore unknown additions to the ASN.1 types, in
480    initial requests, where the syntax allows them, except for extensions
481    to the "Op-req" type, which MUST result in an error.
483    Servers MUST respond with an error (ProtocolErrorCode value of proto-
484    unsupported-operation) to clients that use operations unknown to the
485    server.
487 3.7.  Protocol Subsets
489    The structure of the protocol is such that the ASN.1 syntaxes for the
490    various operations supported by the protocol are independent of the
491    each other.  Client and server implementations MAY implement subsets
492    of the overall protocol by removing some alternatives to the Op-req,
493    Op-rep and Op-err CHOICEs from the ASN.1 module given in Section 5.
495    For example, it should be possible to have a password-change only
496    client that cannot set principal's keys - and vice versa.
503 Williams                Expires September 6, 2007               [Page 9]
505 Internet-Draft       Kerberos Set/Change Password v2          March 2007
508 4.  Protocol Elements
510    The protocol as defined herein supports the following operations
511    relating to the management of Kerberos principal's passwords or keys:
513    o  change password (or enctypes and string-to-key parameters)
515    o  set password (administrative)
517    o  set new keys
519    o  generate new keys
521    o  get new, un-committed keys
523    o  commit new keys
525    o  get password policy name and/or description of principal
527    o  list aliases of a principal
529    o  list enctypes and version of Kerberos V supported by realm
531    The operation for retrieving a list of aliases of a principal is
532    needed where KDCs implement aliasing of principal names and allows
533    clients to properly setup their key databases when principal aliasing
534    is in use.
536    Operations such as creation or deletion of principals are outside the
537    scope of this document, and should be performed via other means, such
538    as through directories or other Kerberos administration protocols.
540    The individual operations are described in Section 4.3.
542 4.1.  Password Quality Policies
544    Servers may reject new user passwords for failing to meet password
545    quality policies.  When this happens the server must be able to
546    communicate the policy to the user so that the user may select a
547    better password.
549    The protocol allows for two ways to do this:
551    o  through error codes that identify specific password quality
552       policies known;
554    o  through localized error strings.
559 Williams                Expires September 6, 2007              [Page 10]
561 Internet-Draft       Kerberos Set/Change Password v2          March 2007
564    The use of localized error strings allows servers to convey non-
565    standard password quality policies to users, but it requires server-
566    side message catalogs for localization and support for language
567    negotiation.  The use of error codes only allows for standard
568    password quality policies that clients must be aware of a priori,
569    therefore use of error codes requires the distribution of new message
570    catalogs to clients whenever new error codes are added; this
571    simplifies servers at the expense of password quality extensibility.
573    When a server would reject a password due to its failing to meet a
574    standard password quality policy the the server MUST use the
575    appropriate error codes (see below) and the server SHOULD send a
576    localized error message to the user.
578    When a server would reject a password due to its failing to meet a
579    non-standard password quality policy (one not described herein) the
580    the server MUST send a localized error message to the user.
582 4.1.1.  Standard Password Quality Policies
584    o  pwq-too-soon
586       It is too soon for the principal to change its password or long-
587       term keys.
590    o  pwq-history
592       The new password is one that the principal has used before or is
593       too similar to a password that it has used before.
596    o  pwq-too-short
598       The new password is too short.
601    o  pwq-dictionary-words
603       The new password is or contains words that are in the dictionary.
606    o  pwq-prohibited-codepoints
608       The new password contains prohibited codepoints.
615 Williams                Expires September 6, 2007              [Page 11]
617 Internet-Draft       Kerberos Set/Change Password v2          March 2007
620    o  pwq-need-more-char-classes
622       The new password does not have characters from enough character
623       classes (lower-case letters, upper-case letters, digits,
624       punctuation, etc...).
627 4.2.  PDUs
629    The types "Request," "Response" and "Error-Response" are the ASN.1
630    module's PDUs.
632    The "Request" and "Response" PDUs are always to be sent wrapped in
633    KRB-PRIV messages, except for the "Error-Response" PDU which MUST be
634    sent as KRB-ERROR e-data (see Section 3.3) when AP exchanges fail,
635    otherwise it MUST be sent wrapped in a KRB-PRIV.
637    The ASN.1 syntax for the PDUs is given in Section 5.
639    Note that the first field of each PDU is the major version of the
640    protocol, defaulted to 2, meaning that it is never included in
641    version 2 exchanges.  Similarly, the second field of each PDU is the
642    minor version, defaulted to 0.
644    The request, responses and error PDUs consist of an outer structure
645    ("Request," "Response" and "Error-Response") containing fields common
646    to all requests, responses and errors, respectively, and an inner
647    structure for fields that are specific to each operation's requests/
648    responses.  The inner structure is optional in the case of the Error-
649    Response PDU and need not be included when generic errors occur for
650    which there is a suitable ProtocolErrorCode.
652    Specifically, the outer Request structure has a field for passing a
653    client user's spoken (read) languages to the server.  It also has two
654    optional fields for identifying the requested operation's target
655    principal's name and realm (if not sent then the server MUST use the
656    client's principal name and realm as the target).  A boolean field
657    for indicating whether or not the request should be dry-run is also
658    included; dry-runs can be used to test server policies, and servers
659    MUST NOT modify any principals when processing dry-run requests.
661    The Response and Error PDUs' outer structures include a field
662    indicating the language that the server has chosen for localization
663    of text intended to be displayed to users; this field is defaulted to
664    "i-default".  This language tag applies to all UTF8 strings in the
665    inner structure (Op-rep and Op-err) that are meant to be displayed to
666    users.
671 Williams                Expires September 6, 2007              [Page 12]
673 Internet-Draft       Kerberos Set/Change Password v2          March 2007
676    The protocol error codes are:
678    o  proto-generic-error
680       An operation-specific error ocurred, see the inner Op-error.
682    o  proto-format-error
684       The server failed to parse a message sent by the client.
686    o  proto-unsupported-major-version
688       The server does not support the major version of this protocol
689       requested by the client.
691    o  proto-unsupported-minor-version
693       The server does not support the minor version of this protocol
694       requested by the client.
696    o  proto-unsupported-operation
698       The server does not support the operation requested by the client.
700    o  proto-wrong-service-principal
702       Use kadmin/setpw for the server's principal name.
704    o  proto-re-authentication-required
706       The server demands that the client re-authenticate through a new
707       AP exchange.
709    o  proto-initial-ticket-required
711       Use of an INITIAL ticket is required for the requested operation.
713    o  proto-client-and-target-realm-mismatch
715       The server requires that the client's principal name and the
716       target principal of the operation share the same realm name.
718    o  proto-target-principal-unknown
720       The target of the client's operation is not a valid principal.
722    o  proto-authorization-failed
727 Williams                Expires September 6, 2007              [Page 13]
729 Internet-Draft       Kerberos Set/Change Password v2          March 2007
732       The client principal is not authorized to perform the requested
733       operation.
735    o  proto-fresh-ticket-required
737       The server would like the client to re-authenticate using a fresh
738       ticket.
740 4.3.  Operations
742    This section describes the semantics of each operation request and
743    response defined in the ASN.1 module in Section 5.
745 4.3.1.  Null
752 4.3.2.  Change Kerberos Password
759 4.3.3.  Set Kerberos Password
766 4.3.4.  Set Kerberos Keys
783 Williams                Expires September 6, 2007              [Page 14]
785 Internet-Draft       Kerberos Set/Change Password v2          March 2007
788 4.3.5.  Generate Kerberos Keys
795 4.3.6.  Get New Keys
839 Williams                Expires September 6, 2007              [Page 15]
841 Internet-Draft       Kerberos Set/Change Password v2          March 2007
844 4.3.7.  Commit New Keys
851 4.3.8.  Get Password Quality Policy
858 4.3.9.  Get Principal Aliases
865 4.3.10.  Get Realm's Supported Kerberos V Version and Features
895 Williams                Expires September 6, 2007              [Page 16]
897 Internet-Draft       Kerberos Set/Change Password v2          March 2007
900 4.3.11.  Retrieve Principal's S2K Params and Preferred Params
907 4.4.  Principal Aliases
909    Applications that use Kerberos often have to derive acceptor
910    principal names from hostnames entered by users.  Such hostnames may
911    be aliases, they may be fully qualified, partially qualified or not
912    qualified at all.  Some implementations have resorted to deriving
913    principal names from such hostnames by utilizing the names services
914    to canonicalize the hostname first; such practices are not secure
915    unless the name service are secure, which often aren't.
917    One method for securely deriving principal names from hostnames is to
918    alias principals at the KDC such that the KDC will issue tickets for
919    principal names which are aliases of others.  It is helpful for
920    principals to know what are their aliases as known by the KDCs.
922    Note that changing a principal's aliases is out of scope for this
923    protocol.
925 4.5.  Kerberos V Feature Negotiation
927    Principals and realms' KDCs may need to know about additional
928    Kerberos V features and extensions that they each support.  Several
929    operations (see above) provide a way for clients and servers to
930    exchange such infomration, in the form of lists of types supported
931    for the various typed holes used in Kerberos V.
951 Williams                Expires September 6, 2007              [Page 17]
953 Internet-Draft       Kerberos Set/Change Password v2          March 2007
956 5.  ASN.1 Module
1007 Williams                Expires September 6, 2007              [Page 18]
1009 Internet-Draft       Kerberos Set/Change Password v2          March 2007
1012 6.  Security Considerations
1014    Implementors and site administrators should note that the redundancy
1015    of UTF-8 encodings of passwords varies by language.  Password quality
1016    policies SHOULD, therefore, take this into account when estimating
1017    the amount of redundancy and entropy in a proposed new password.
1019    Kerberos set/change password/key protocol major version negotiation
1020    cannot be done securely; a downgrade attack is possible against
1021    clients that attempt to negotiate the protocol major version to use
1022    with a server.  It is not clear at this time that the attacker would
1023    gain much from such a downgrade attack other than denial of service
1024    (DoS) by forcing the client to use a protocol version which does not
1025    support some feature needed by the client (Kerberos V in general is
1026    subject to a variety of DoS attacks anyways [RFC4120]).  Clients
1027    SHOULD NOT negotiate support for legacy major versions of this
1028    protocol unless configured otherwise.
1030    This protocol does not have Perfect Forward Security (PFS).  As a
1031    result, any passive network snooper watching password/key changing
1032    operations who has stolen a principal's password or long-term keys
1033    can find out what the new ones are.
1063 Williams                Expires September 6, 2007              [Page 19]
1065 Internet-Draft       Kerberos Set/Change Password v2          March 2007
1068 7.  References
1070 7.1.  Normative References
1072    [CCITT.X680.2002]
1073               International International Telephone and Telegraph
1074               Consultative Committee, "Abstract Syntax Notation One
1075               (ASN.1): Specification of basic notation",
1076               CCITT Recommendation X.680, July 2002.
1078    [CCITT.X690.2002]
1079               International International Telephone and Telegraph
1080               Consultative Committee, "ASN.1 encoding rules:
1081               Specification of basic encoding Rules (BER), Canonical
1082               encoding rules (CER) and Distinguished encoding rules
1083               (DER)", CCITT Recommendation X.690, July 2002.
1085    [RFC2119]  Bradner, S., "Key words for use in RFCs to Indicate
1086               Requirement Levels", BCP 14, RFC 2119, March 1997.
1088    [RFC3066]  Alvestrand, H., "Tags for the Identification of
1089               Languages", RFC 3066, January 2001.
1091    [RFC4120]  Neuman, C., Yu, T., Hartman, S., and K. Raeburn, "The
1092               Kerberos Network Authentication Service (V5)", RFC 4120,
1093               July 2005.
1095 7.2.  Informative References
1097    [RFC3244]  Swift, M., Trostle, J., and J. Brezak, "Microsoft Windows
1098               2000 Kerberos Change Password and Set Password Protocols",
1099               RFC 3244, February 2002.
1119 Williams                Expires September 6, 2007              [Page 20]
1121 Internet-Draft       Kerberos Set/Change Password v2          March 2007
1124 Author's Address
1126    Nicolas Williams
1127    Sun Microsystems
1128    5300 Riata Trace Ct
1129    Austin, TX  78727
1130    US
1132    Email: Nicolas.Williams@sun.com
1175 Williams                Expires September 6, 2007              [Page 21]
1177 Internet-Draft       Kerberos Set/Change Password v2          March 2007
1180 Full Copyright Statement
1182    Copyright (C) The IETF Trust (2007).
1184    This document is subject to the rights, licenses and restrictions
1185    contained in BCP 78, and except as set forth therein, the authors
1186    retain all their rights.
1188    This document and the information contained herein are provided on an
1189    "AS IS" basis and THE CONTRIBUTOR, THE ORGANIZATION HE/SHE REPRESENTS
1190    OR IS SPONSORED BY (IF ANY), THE INTERNET SOCIETY, THE IETF TRUST AND
1191    THE INTERNET ENGINEERING TASK FORCE DISCLAIM ALL WARRANTIES, EXPRESS
1192    OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF
1193    THE INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED
1194    WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
1197 Intellectual Property
1199    The IETF takes no position regarding the validity or scope of any
1200    Intellectual Property Rights or other rights that might be claimed to
1201    pertain to the implementation or use of the technology described in
1202    this document or the extent to which any license under such rights
1203    might or might not be available; nor does it represent that it has
1204    made any independent effort to identify any such rights.  Information
1205    on the procedures with respect to rights in RFC documents can be
1206    found in BCP 78 and BCP 79.
1208    Copies of IPR disclosures made to the IETF Secretariat and any
1209    assurances of licenses to be made available, or the result of an
1210    attempt made to obtain a general license or permission for the use of
1211    such proprietary rights by implementers or users of this
1212    specification can be obtained from the IETF on-line IPR repository at
1213    http://www.ietf.org/ipr.
1215    The IETF invites any interested party to bring to its attention any
1216    copyrights, patents or patent applications, or other proprietary
1217    rights that may cover technology that may be required to implement
1218    this standard.  Please address the information to the IETF at
1219    ietf-ipr@ietf.org.
1222 Acknowledgment
1224    Funding for the RFC Editor function is provided by the IETF
1225    Administrative Support Activity (IASA).
1231 Williams                Expires September 6, 2007              [Page 22]