Update gnulib files.
[shishi.git] / doc / specifications / draft-ietf-cat-kerberos-passwords-04.txt
blobc8181ef44432b2d40922da1ea65270e38af2e134
3 INTERNET-DRAFT                                         Clifford Neuman
4 <draft-ietf-cat-kerberos-passwords-04.txt>                         ISI
5 Updates: RFC 1510                                            Glen Zorn
6 November 18, 1998                                Microsoft Corporation
7                                                       Jonathan Trostle
8                                                  CyberSAFE Corporation
9                                                          Ken Hornstein
10                                                                ITT/NRL
14       Integrating Single-use Authentication Mechanisms with Kerberos
17 0. Status Of this Memo
18    This document is an Internet-Draft.   Internet-Drafts  are  working
19    documents of the Internet Engineering Task Force (IETF), its areas,
20    and its working groups.  Note that other groups may also distribute
21    working documents as Internet-Drafts.
23    Internet-Drafts are draft documents valid  for  a  maximum  of  six
24    months  and  may  be updated, replaced, or obsoleted by other docu-
25    ments at any time.  It is inappropriate to use  Internet-Drafts  as
26    reference  material  or  to  cite them other than as ``work in pro-
27    gress.''
29    To learn the current status of any Internet-Draft, please check the
30    ``1id-abstracts.txt'' listing contained in the Internet-Drafts Sha-
31    dow Directories on ds.internic.net (US East  Coast),  nic.nordu.net
32    (Europe),  ftp.isi.edu  (US  West Coast), or munnari.oz.au (Pacific
33    Rim).
35    The distribution of  this  memo  is  unlimited.   It  is  filed  as
36    <draft-ietf-cat-kerberos-passwords-04.txt>,  and   expires  May 11,
37    1999.  Please send comments to the authors.
40 1. Abstract
41    This document defines extensions to the Kerberos protocol  specifi-
42    cation  [RFC1510]  which  provide  a  method  by which a variety of
43    single-use authentication mechanisms may be  supported  within  the
44    protocol.  The method defined specifies a standard fashion in which
45    the preauthentication data and error data fields in  Kerberos  mes-
46    sages may be used to support single-use authentication mechanisms.
49 2. Terminology
50    To simplify the following discussion, we will  define  those  terms
51    which  may be unfamiliar to the audience or specific to the discus-
52    sion itself.
54    Single-use Preauthentication Data (SPD):  Data sent in the  padata-
55    value field of a Kerberos V5 message proving that knowledge of cer-
56    tain unique information is held by a principal.   This  information
60 Neuman, Zorn, Hornstein                                       [Page 1]
66 INTERNET-DRAFT                                       November 18, 1998
69    may  or  may not be identical to the single-use authentication data
70    input to the client.  For example, in the case of S/Key, the  prin-
71    cipal  might  input  a one-time password (in any of several forms);
72    the knowledge of  this  one-time  password  is  taken  to  indicate
73    knowledge of the principal's secret passphrase.  Similarly, the SPD
74    may or may not contain the provided single-use authentication data.
75    For  instance,  if  a  given  single-use  authentication  mechanism
76    includes a token which generates an encryption key for a  supported
77    cryptosystem, that key could be used to encrypt portions of the SPD
78    before transmission.  As long as the verification  process  of  the
79    mechanism was capable of independently generating the same key, the
80    successful decryption of the SPD would provide assurance  that  the
81    originator  of  the message was in possession of the token, as well
82    as whatever information the token required to generate the  encryp-
83    tion key.
85    Single-use Authentication Mechanism (SAM):  A system for generating
86    and verifying authentication data which is usable only once.
88    Single-use Authentication Data (SAD):  SAM-specific  data  provided
89    by  a principal as input to client software to be used in the crea-
90    tion of SPD.
93 3. Motivation and Scope
94    Several  single-use  authentication  mechanisms  are  currently  in
95    widespread  use, including hardware-based schemes from vendors such
96    as  Enigma  Logic,  Digital  Pathways  and  Security  Dynamics  and
97    software-based  methods  like  S/Key [RFC1760].  The hardware-based
98    schemes typically require that  the  authenticating  user  carry  a
99    small,  credit-card-sized  electronic device (called a token) which
100    is used  to  generate  unique  authentication  data.   Some  tokens
101    require  the  user  to  enter data into the device.  This input may
102    take the form of a Personal Identification Number (PIN), a  server-
103    generated  challenge  string  or  both.   Other tokens do not use a
104    challenge-response technique, instead spontaneously generating  new
105    and unique authentication data every few seconds.  These tokens are
106    usually time-synchronized with a server.  The use of one-time pass-
107    words  and  token cards as an authentication mechanism has steadily
108    increased over the past few years; in addition, the Internet Archi-
109    tecture  Board  has  encouraged the use of SAMs to improve Internet
110    security [RFC1636].
112    The widespread acceptance of Kerberos within the Internet community
113    has  produced  considerable demand for the integration of SAM tech-
114    nology with the authentication protocol.  Several currently  avail-
115    able  implementations of Kerberos include support for some types of
116    token cards, but the implementations are either not  interoperable,
117    or  would require the release of source code (not always an option)
118    to make them interoperate.  This memo attempts to remedy that prob-
119    lem  by specifying a method in which SAM data may be securely tran-
120    sported in Kerberos V5 messages in a standard, extensible  fashion.
121    This  document  does  not,  however,  attempt  to precisely specify
122    either the generation or verification of SAM data,  since  this  is
126 Neuman, Zorn, Hornstein                                       [Page 2]
132 INTERNET-DRAFT                                       November 18, 1998
135    likely to be SAM-specific; nor does it dictate the conditions under
136    which SAM data must be included in Kerberos messages, since we con-
137    sider this to be a matter of local policy.
140 4. Generic Approach - Two Models
141    As outlined above, there are essentially two  types  of  single-use
142    authentication  mechanisms:  challenge/response and time-based.  In
143    order to support challenge/response mechanisms,  the  Kerberos  Key
144    Distribution  Center  (KDC)  must communicate the appropriate chal-
145    lenge string to the user, via the  client  software.   Furthermore,
146    some  challenge/response  mechanisms  require tight synchronization
147    between all instances of the KDC and the client.   One  example  is
148    S/Key  and  its variants.  If the KDC and client do not perform the
149    same number of message digest iterations, the protocol  will  fail;
150    worse, it might be possible for an eavesdopping attacker to capture
151    a valid S/Key passcode and replay it to a KDC replica which had  an
152    outdated iteration number.  In the time-based case, no challenge is
153    required.  This  naturally  gives  rise  to  two  modes  of  client
154    behavior, described below.
157 4.1 Challenge/Response Model
158    The client begins with an initial KRB_AS_REQ message  to  the  KDC,
159    possibly using existing preauthentication methods (PA-ENC-TIMESTAMP
160    (encrypted  timestamp),  PA-OSF-DCE  (DCE),  etc.).   Depending  on
161    whether  preauthentication  is  used,  the  user  may or may not be
162    prompted at this time for a Kerberos password.   If  (for  example)
163    encrypted  timestamp  preauthentication is used, then the user will
164    be prompted; on the other hand, if no preauthentication is  in  use
165    the  prompt  for  the  password may be deferred (possibly forever).
166    Note that the use of preauthentication here may  allow  an  offline
167    guessing  attack  against  the  Kerberos password separate from the
168    SPD.  However, if the use of a SAM is required, then  the  password
169    by itself is not sufficient for authentication.  (Specify character
170    strings as UTF-8)
172    The KDC will determine in an implementation-  and  policy-dependent
173    fashion if the client is required to utilize a single-use authenti-
174    cation mechanism.  For  example,  the  implementation  may  use  IP
175    address screening to require principals authenticating from outside
176    a firewall to use a SAM, while principals on the inside  need  not.
177    If  SAM  usage  is  required,  then  the  KDC  will  respond with a
178    KRB_ERROR   message,   with   the   error-code   field    set    to
179    KDC_ERR_PREAUTH_REQUIRED  and the e-data field containing the ASN.1
180    structure that is a sequence of PA-DATA fields.
182    If the type of one of the PA-DATA fields  is  PA-SAM-REDIRECT,  the
183    client  should  re-execute  the  authentication  protocol  from the
184    beginning, directing messages to another of the KDCs for the realm.
185    This  is done to allow some methods to require that a single KDC be
186    used for SAM authentication when tight  synchronization  is  needed
187    between all replicas and the KDC database propagation code does not
188    provide such synchronization.  The corresponding padata-value  will
192 Neuman, Zorn, Hornstein                                       [Page 3]
198 INTERNET-DRAFT                                       November 18, 1998
201    contain an encoded sequence of host addresses [RFC1510], from which
202    the client must choose the KDC to be contacted next.
204    Otherwise, if one of  the  PA-DATA  fields  has  the  type  PA-SAM-
205    CHALLENGE,  the  exchange  will continue as described in section 5,
206    below.
209 4.2 Time-based Model
210    For mechanisms where no challenge is required,  the  user  (or  the
211    client  software  being  utilized)  may  or  may  not know a priori
212    whether SAM usage is required.  If it does not know, then the  ini-
213    tial exchange may proceed as above.  If it is known that a use of a
214    single-use authentication mechanism  is  required  then  the  first
215    exchange  can  be  skipped  and the authentication will continue as
216    follows.
219 5. Authentication Using Passcodes
220    Prior to performing preauthentication using a single-use  authenti-
221    cation  mechanism,  the  client  must  know  whether a challenge is
222    required (if the client doesn't have this information prior to  its
223    sending  the  first  KRB_AS_REQ message, it will be informed of the
224    requirement by the KDC, as described in section  4.1).  The  client
225    does  NOT need to know the specific type of SAM in use.  If a chal-
226    lenge is required the client will be sent the challenge by the KDC.
227    This  means that a client supporting SAMs will be able to work with
228    new methods without modification.  The challenge, as  well  as  all
229    other prompts mentioned herein, can be internationalized by the KDC
230    on a per-principal basis.
232    If a KRB_ERROR message is received from the KDC indicating that SAM
233    usage  is required, that message will include in its e-data field a
234    PA-DATA structure that encodes information  about  the  SAM  to  be
235    used.   This  includes  whether a challenge is required, and if so,
236    the challenge itself; and informational data about the type of  SAM
237    that  is  in  use,  and how to prompt for the SAD.  The SAM type is
238    informational only and does not affect the behavior of the  client.
239    The  prompt  is also informational and may be presented to the user
240    by the client, or it may be safely ignored.
258 Neuman, Zorn, Hornstein                                       [Page 4]
264 INTERNET-DRAFT                                       November 18, 1998
267    The ASN.1 definition for the SAM challenge is:
269           PA-SAM-CHALLENGE ::= SEQUENCE {
270               sam-type[0]                 INTEGER,
271               sam-flags[1]                SAMFlags,
272               sam-type-name[2]            GeneralString OPTIONAL,
273               sam-track-id[3]             GeneralString OPTIONAL,
274               sam-challenge-label[4]      GeneralString OPTIONAL,
275               sam-challenge[5]            GeneralString OPTIONAL,
276               sam-response-prompt[6]      GeneralString OPTIONAL,
277               sam-pk-for-sad[7]           EncryptionKey OPTIONAL,
278               sam-nonce[8]                INTEGER OPTIONAL,
279               sam-cksum[9]                Checksum OPTIONAL
280           }
282           SAMFlags ::= BIT STRING {
283               use-sad-as-key[0],
284               send-encrypted-sad[1],
285               must-pk-encrypt-sad[2]
286           }
288    The sam-type field is informational only, but it must be  specified
289    and sam-type values must be registered with the IANA.
291    Initially defined values of the sam-type codes are:
293        PA_SAM_TYPE_ENIGMA     1   -- Enigma Logic
294        PA_SAM_TYPE_DIGI_PATH  2   -- Digital Pathways
295        PA_SAM_TYPE_SKEY_K0    3   -- S/key where  KDC has key 0
296        PA_SAM_TYPE_SKEY       4   -- Traditional S/Key
297        PA_SAM_TYPE_SECURID    5   -- Security Dynamics
298        PA_SAM_TYPE_CRYPTOCARD 6   -- CRYPTOCard
300    PA_SAM_TYPE_SECURID, PA_SAM_TYPE_DIGI_PATH, PA_SAM_TYPE_ENIGMA, and
301    PA_SAM_TYPE_CRYPTOCARD     represent     popular    token    cards.
302    PA_SAM_TYPE_SKEY is the traditional S/Key protocol,  in  which  the
303    SAD  verifier  does  not  have  knowledge  of the principal's S/Key
304    secret.  PA_SAM_TYPE_SKEY_K0 is a variant of S/Key  that  uses  the
305    same  SAD  and PC software or hardware device, but where the zeroth
306    key (the S/Key secret) is actually stored on, and can be  used  by,
307    the  SAD verifier to independently generate the correct authentica-
308    tion data.
310    Note that using  PA_SAM_TYPE_SKEY_K0  gives  up  one  advantage  of
311    S/Key, viz., that the information required to generate the SAD need
312    not be stored on the host; but since the SAD verifier (which may be
313    the  KDC) is assumed to be more secure than other hosts on the net-
314    work, it may be acceptable to give up this advantage in some situa-
315    tions.  The advantage of using this S/Key variant is that the secu-
316    rity of the network protocol is strengthened since the SAD need not
317    be  sent  from the client to the KDC.  Thus, the SAD can be used as
318    part of the key used to encrypt the encrypted parts of both the SPD
319    and the KRB_AS_REP message, rather than being sent protected by the
320    principal's Kerberos secret key  which  may  have  been  previously
324 Neuman, Zorn, Hornstein                                       [Page 5]
330 INTERNET-DRAFT                                       November 18, 1998
333    exposed  to an attacker (see section 6, below).  In any case, there
334    is a definite advantage to being interoperable with the S/Key algo-
335    rithm.
337    Due to the volatility of, and rapid developments in,  the  area  of
338    single-use   authentication   mechanisms  (both  software-only  and
339    hardware supported), any subsequently defined sam-type  codes  will
340    be maintained by the IANA.
342    The sam-flags field indicates whether the SAD is known by  the  KDC
343    (in which case it can be used as part of the encryption key for the
344    ensuing KRB_AS_REP message), or if it must be provided to  the  KDC
345    in a recoverable manner.  If it is known to the KDC, use-sad-as-key
346    indicates that the SAD alone will be used to generate  the  encryp-
347    tion  key  for  the forthcoming KRB_AS_REQ and KRB_AS_REP messages,
348    and that the user will not need  to  also  enter  a  password.   We
349    recommend that this option not be used, and that the principal also
350    enter the Kerberos password, but for some situations,  presentation
351    of  the SAD alone may be acceptable.  If the single-use authentica-
352    tion data is not known (and cannot be generated or  discovered)  by
353    the  KDC, then send-encrypted-sad flag will be set, indicating that
354    the SAD must be sent to the KDC  encrypted  under  the  principal's
355    secret  key.   If neither use-sad-as-key nor send-encrypted-sad are
356    set, the client may assume that the KDC knows the SAD, but the Ker-
357    beros  password  should  be  used  along  with  the passcode in the
358    derivation  of  the  encryption  key  (see  below).   The  must-pk-
359    encrypt-sad  flag  is reserved for future use.  If this flag is set
360    and a client does not support the must-pk-encrypt-sad option (to be
361    defined  in  a  separate  document), the client will not be able to
362    complete the authentication and must notify the user.
364    Note that there are specific constraints on the  integrity  of  the
365    PA-SAM-CHALLENGE when some of these options are specified.  In par-
366    ticular, if any of these flags are set,  a  cryptographic  checksum
367    must  be present and verified.  If absent, or the checksum does not
368    match the request, the challenge must be considered invalid and the
369    user notified.
371    The optional sam-type-name field is a UTF-8  character  string  for
372    informational  use only.  It may be used by the client to display a
373    short description of the type of single-use authentication  mechan-
374    ism to be used.
376    The optional sam-track-id field may be returned by the KDC  in  the
377    KRB_ERROR  message.   If present, the client should copy this field
378    into the corresponding field of the SAM response sent in the subse-
379    quent  KRB_AS_REQ  message.   This  field may be used by the KDC to
380    match challenges and responses.  It might  be  a  suitably  encoded
381    integer,  or  even  be encrypted data with the KDC state encoded so
382    that the KDC doesn't have to maintain the state internally.
384    The sam-challenge-label field is informational and optional.  If it
385    is  included, is will be an UTF-8 encoded character.  If present, a
386    client may choose to precede the presentation of the challenge with
390 Neuman, Zorn, Hornstein                                       [Page 6]
396 INTERNET-DRAFT                                       November 18, 1998
399    this  string.   For  example,  if  the  challenge is 135773 and the
400    string in the sam-challenge-label field  is  "Enter  the  following
401    number on your card", the client may choose to display to the user:
403           Enter the following number on your card: 135773
405    If no challenge label was presented, or if the  client  chooses  to
406    ignore it, the client might display instead:
408           Challenge from authentication server: 135773
410    If the sam-checksum field is empty the  sam-challenge-label  should
411    be  ignored,  since  in  that  case it may have been modified by an
412    adversary.  Internationalization is supported by allowing  customi-
413    zation  of the challenge label and other strings on a per-principal
414    basis.  Note that this character string  should  be  encoded  using
415    UTF-8.
417    The optional sam-challenge field contains a  string  that  will  be
418    needed  by  the  user to generate a suitable response.  If the sam-
419    challenge field is left out, it indicates that the SAM in use  does
420    not  require  a  challenge,  and that the authorized user should be
421    able to produce the correct SAD without one.  If the  sam-challenge
422    field  is present, it is the data that is used by the SAD generator
423    to create the SAD to be used in the production of  the  SPD  to  be
424    included in the response.
426    The sam-response-prompt field is informational  and  optional.   If
427    present, a client may choose to precede the prompt for the response
428    with the specified string; however, it should not be  used  if  the
429    sam-checksum field is empty, since in that case the prompt may have
430    been modified by an adversary.  If this field is empty  the  prompt
431    displayed will be hardcoded into the application, such as
433           Passcode:
435    sam-pk-for-sad is  an  optional  field.   It  is  included  in  the
436    interest  of  future  extensability  of  the protocol to the use of
437    public-key cryptography.
439    The sam-nonce field is optional.  If present, it should conform  to
440    the  specification  of  the  nonce  field  in a KRB_KDC_REQ message
441    [RFC1510].
443    The optional sam-cksum field contains a cryptographic  checksum  of
444    the preceding fields, protected using the same key as that used for
445    preauthentication in the initial  KRB_AS_REQ  message.   While  any
446    secure  checksum method may be used, the RSA-MD5-DES type is recom-
447    mended and must be supported by  the  client.   This  field  should
448    always be present if the initial KRB_AS_REQ message included a form
449    of cryptographic preauthentication (such as PA_ENC_TIMESTAMP).   If
450    the  initial  message included preauthentication, but this field is
451    missing in the response, the client should reject the response.  If
452    this  field  is  present, the client should verify its correctness:
456 Neuman, Zorn, Hornstein                                       [Page 7]
462 INTERNET-DRAFT                                       November 18, 1998
465    if the sam-cksum field is present in the KRB_ERROR message, but not
466    verified  by  the  client,  then an attacker can change the message
467    contents at will.  Such a change could  cause  unexpected  instruc-
468    tions  to  be  displayed to the user in the prompt string, or allow
469    the denial of service through the presentation of an invalid  chal-
470    lenge.   Another  effect  of  a change might be to effect a limited
471    chosen plaintext attack on the Kerberos password where the attacker
472    picks the nonce, and the challenge.
474    Note that it is possible for the KDC to  generate  a  cryptographic
475    checksum  for  this message using the users' secret key even though
476    no cryptographic  preauthentication  was  present  in  the  initial
477    AS_REQ  message.  Doing so, however, makes material available which
478    enables an offline guessing attack against that key.
480    If the client is performing SAM preauthentication  in  the  initial
481    message,  without receipt of a PA-SAM-CHALLENGE (i.e. without wait-
482    ing for the KRB_ERROR message), and the SAM in use does not require
483    a  challenge, the client will prompt for the SAD in an application-
484    specific manner.
486    Once the user has been prompted for and entered the SAD (and possi-
487    bly the Kerberos password), the client will derive a key to be used
488    to encrypt the preauthentication data  for  a  KRB_AS_REQ  message.
489    This key will be determined as follows:
491           By default, the key is derived from the password and the SAD
492           by running each through the string_to_key function [RFC1510]
493           separately; i.e., K1  =  string_to_key(password)  and  K2  =
494           string_to_key(SAD).  The K1 and K2 are then combined to form
495           a single key K in a manner specific to the type of key being
496           generated.   For DES keys, K will be formed by XORing K1 and
497           K2, then correcting the parity of K.  If the result  matches
498           a  "weak" or "semiweak" key as described in the DES specifi-
499           cation,  it  is  XORed   with   the   hexadecimal   constant
500           00000000000000F0.
502           If the send-encrypted-sad flag  is  set,  the  key  will  be
503           derived   by   running  the  Kerberos  password  though  the
504           string_to_key function in the normal fashion.
506           If the use-sad-as-key flag is set and the integrity  of  the
507           PA-SAM-CHALLENGE  PADATA  field  can  be  verified using the
508           sam-cksum  field,  then  the  SAD   is   run   through   the
509           string_to_key function and the result is used as the encryp-
510           tion key for the request.  WARNING: the  use  of  single-use
511           authentication data in this manner is NOT recommended unless
512           the range of the SAD is large enough to make  an  exhaustive
513           off-line  search  impractical  and the risks involved in the
514           use of SAD alone are  fully  considered.   Also,  note  that
515           without  the availability to the KDC of a relatively static,
516           unique secret key shared with the user, the only  mechanisms
517           that  can  be  used  to protect the integrity of the PA-SAM-
518           CHALLENGE PADATA  field  are  based  on  either  public  key
522 Neuman, Zorn, Hornstein                                       [Page 8]
528 INTERNET-DRAFT                                       November 18, 1998
531           cryptography  or  the  KDC's  a  priori knowledge of the SAD
532           itself.  In the latter case, the client must obtain the  SAD
533           from  the  user  and  use  it to verify the integrity of the
534           challenge before the new KRB_AS_REQ message is sent.
536           The sam-pk-for-sad field is reserved  for  future  use.   If
537           this  field is not empty and the client does not support the
538           use of public-key encryption for SAD (to  be  defined  in  a
539           separate  document), the client will not be able to complete
540           the authentication and must notify the user.
542    The client will then send another KRB_AS_REQ message  to  the  KDC,
543    but  with  a padata field with padata-type equal to PA-SAM-RESPONSE
544    and padata-value defined as follows:
546           PA-SAM-RESPONSE ::= SEQUENCE {
547               sam-type[0]                 INTEGER,
548               sam-flags[1]                SAMFlags,
549               sam-track-id[2]             GeneralString OPTIONAL,
550               sam-enc-key[3]              EncryptedData
551                                              -- PA-ENC-SAM-KEY,
552               sam-enc-nonce-or-ts[4]      EncryptedData
553                                              -- PA-ENC-SAM-RESPONSE-ENC,
554               sam-nonce[5]                INTEGER OPTIONAL,
555               sam-patimestamp[6]          KerberosTime OPTIONAL
556           }
558               PA-ENC-SAM-KEY ::= SEQUENCE {
559                            sam-key[0]                 EncryptionKey
560               }
562           PA-ENC-SAM-RESPONSE-ENC ::= SEQUENCE {
563                sam-nonce[0]               INTEGER OPTIONAL,
564                sam-timestamp[1]           KerberosTime OPTIONAL,
565                sam-usec[2]                INTEGER OPTIONAL,
566                sam-sad[3]            GeneralString OPTIONAL
567           }
569    The source of the data included in  the  PA-SAM-RESPONSE  structure
570    depends upon whether or not a KRB_ERROR message was received by the
571    client from the KDC.
573    If an error reply was received, the sam-type and  sam-flags  fields
574    will  contain copies of the same fields from the error message.  If
575    the sam-nonce field was present in the KRB_ERROR message, then  the
576    PA-ENC-SAM-RESPONSE-ENC  structure returned to the KDC will include
577    that value, encrypted as described above, the nonce  field  in  the
578    KRB_AS_REQ  message will contain a plaintext copy of the same value
579    and the sam-timestamp field in the  PA-ENC-SAM-RESPONSE-ENC  struc-
580    ture  will  be empty.  If a sam-timestamp is present in the PA-ENC-
581    SAM-RESPONSE, the sam-patimestamp field must  be  supplied  in  the
582    PA-SAM-RESPONSE.   If a KRB_ERROR message was received but the sam-
583    nonce field was omitted from it, the encrypted data will contain  a
584    timestamp  encrypted  in the same manner, the sam-patimestamp field
588 Neuman, Zorn, Hornstein                                       [Page 9]
594 INTERNET-DRAFT                                       November 18, 1998
597    will contain an unencrypted copy of the same value,  and  the  sam-
598    nonce  field will be empty.  In either case, if the send-encrypted-
599    sad flag is set in the sam-flags field of the  error  message,  the
600    sam-sad  field  must  contain the entered single-use authentication
601    data.
603    If no error reply was received  (i.e.,  the  client  knows  that  a
604    single-use  authentication  mechanism  is to be used), the sam-type
605    field must be set to a value chosen from  the  list  of  registered
606    sam-type codes.
608    The value of the sam-flags field may vary depending upon  the  type
609    of  SAM  in use, but in all cases the must-pk-encrypt-sad flag must
610    be zero.  If the send-encrypted-sad flag is set, the sam-sad  field
611    must contain the entered single-use authentication data.
613    Note that is there is no sam-track-id in the request, it should  be
614    omitted in the response.
616    The sam-enc-key field is reserved for future use.
618    Upon receipt the KDC validates this PADATA in  much  the  same  way
619    that  it  validates  the  PA-ENC-TS preauthentication method except
620    that it uses the SAD (if available,  and  possibly  in  conjunction
621    with  saved  state information or portions of the preauthentication
622    data) to determine  the  correct  key(s)  required  to  verify  the
623    encrypted  data.   Note that if the KDC uses the sam-track-id field
624    to encode its state, the KDC is responsible for including  informa-
625    tion in that field to detect modification or replay by an attacker.
627    The rest of the processing of the request proceeds normally, except
628    that  instead  of  being  encrypted  in  the user's secret key, the
629    KRB_AS_REP message is encrypted in the key obtained  above.   Note,
630    however, that some single-use authentication mechanisms may require
631    further KRB_AS_REQ/KRB_ERROR exchanges to complete  authentication;
632    for example, in order to allow the server to resynchronize with the
633    drifting clock on a time-based token card.  In these cases the  KDC
634    may  respond  with another KRB_ERROR message containing a different
635    sam-type value, along with appropriate prompts  and/or  challenges.
636    This  sequence  of  exchanges  will  continue  until authentication
637    either succeeds or fails.
640 6. Security considerations
641    Single-use authentication  mechanisms  requiring  the  use  of  the
642    send-encrypted-sad  option are discouraged as their use on the net-
643    work is less secure than the case where a combination of the  users
644    password  and  SAD  is  used as the encryption key.  In particular,
645    when  the  send-encrypted-sad  option  is  used,  an  attacker  who
646    observes the response and is in possession of the users' secret key
647    (which doesn't change from login to  login)  can  use  the  key  to
648    decrypt the response and obtain the single-use authentication data.
649    This is dependent on the SAM technology used.
654 Neuman, Zorn, Hornstein                                      [Page 10]
660 INTERNET-DRAFT                                       November 18, 1998
663    If the KDC sets the must-pk-encrypt-sad flag of the sam-flags field
664    but  the  client  software  being  used does not support public-key
665    cryptography, it is possible that legitimate users  may  be  denied
666    service.
668    An attacker in possession of the users encryption key (again, which
669    doesn't   change   from   login   to   login)   might  be  able  to
670    generate/modify a SAM challenge and attach the  appropriate  check-
671    sum.   This  affects  the  security  of both the send-encrypted-sad
672    option and the must-pk-encrypt-sad option.
675 7. Expiration
676    This Internet-Draft expires on Feburary 11, 1999.
679 8. References
681    [RFC1510]
682         The Kerberos Network Authentication System; Kohl  and  Neuman;
683         September 1993.
685    [RFC1760]
686         The S/Key One-Time Password System; Haller; February 1995
688    [RFC1636]
689         Report of IAB Workshop on Security in the  Internet  Architec-
690         ture; Braden, Clark, Crocker and Huitema; June 1994
720 Neuman, Zorn, Hornstein                                      [Page 11]
726 INTERNET-DRAFT                                       November 18, 1998
729 9. Authors' Addresses
730    B. Clifford Neuman
731    USC/Information Sciences Institute
732    4676 Admiralty Way #1001
733    Marina del Rey, CA 90292-6695
735    Phone: 310-822-1511
736    EMail: bcn@isi.edu
739    Glen Zorn
740    Microsoft Corporation
741    One Microsoft Way
742    Redmond, WA 98052
744    Phone: 206-703-1559
745    EMail: glennz@microsoft.com
748    Ken Hornstein
749    ITT/US Naval Research Lab
750    4555 Overlook Avenue
751    Washington, DC 20375
753    Phone: 202-404-4765
754    EMail: kenh@cmf.nrl.navy.mil
786 Neuman, Zorn, Hornstein                                      [Page 12]