Internet DRAFT - draft-kaduk-afs3-rxkad-k5-kdf

draft-kaduk-afs3-rxkad-k5-kdf







Network Working Group                                              Kaduk
Internet-Draft                                                       MIT
Intended status: Informational                            March 12, 2014
Expires: September 13, 2014


                  krb5 based key derivation for rxkad
                    draft-kaduk-afs3-rxkad-k5-kdf-00

Abstract

   This document describes two extensions to the rxkad security class
   for the RX RPC protocol, rxkad-k5 and rxkad-kdf. rxkad currently
   relies on the Kerberos Key Distribution Center to support single-DES
   encryption types, which are increasingly disabled by default in
   Kerberos implementations.  This document provides a framework for
   rxkad to support long-term service keys with strong enctypes
   (rxkad-k5), and a key derivation procedure to allow Kerberos session
   keys with strong enctypes to be used with rxkad (rxkad-kdf).

Status of This Memo

   This Internet-Draft is submitted in full conformance with the
   provisions of BCP 78 and BCP 79.

   Internet-Drafts are working documents of the Internet Engineering
   Task Force (IETF).  Note that other groups may also distribute
   working documents as Internet-Drafts.  The list of current Internet-
   Drafts is at http://datatracker.ietf.org/drafts/current/.

   Internet-Drafts are draft documents valid for a maximum of six months
   and may be updated, replaced, or obsoleted by other documents at any
   time.  It is inappropriate to use Internet-Drafts as reference
   material or to cite them other than as "work in progress."

   This Internet-Draft will expire on September 13, 2014.

Copyright Notice

   Copyright (c) 2014 IETF Trust and the persons identified as the
   document authors.  All rights reserved.

   This document is subject to BCP 78 and the IETF Trust's Legal
   Provisions Relating to IETF Documents
   (http://trustee.ietf.org/license-info) in effect on the date of
   publication of this document.  Please review these documents
   carefully, as they describe your rights and restrictions with respect
   to this document.



Kaduk                  Expires September 13, 2014               [Page 1]

Internet-Draft     krb5 based key derivation for rxkad        March 2014


Table of Contents

   1.  Introduction  . . . . . . . . . . . . . . . . . . . . . . . .   2
     1.1.  Requirements Language . . . . . . . . . . . . . . . . . .   3
   2.  Indicating Protocol Support . . . . . . . . . . . . . . . . .   3
   3.  Strong Service Keys . . . . . . . . . . . . . . . . . . . . .   4
   4.  Key Derivation  . . . . . . . . . . . . . . . . . . . . . . .   4
     4.1.  DES enctypes  . . . . . . . . . . . . . . . . . . . . . .   5
     4.2.  Preparing a Random Seed . . . . . . . . . . . . . . . . .   5
     4.3.  Key Derivation Function . . . . . . . . . . . . . . . . .   5
   5.  AFS-3 Registry Considerations . . . . . . . . . . . . . . . .   7
   6.  IANA Considerations . . . . . . . . . . . . . . . . . . . . .   7
   7.  Security Considerations . . . . . . . . . . . . . . . . . . .   7
     7.1.  DES weakness  . . . . . . . . . . . . . . . . . . . . . .   7
     7.2.  MD5 weakness  . . . . . . . . . . . . . . . . . . . . . .   7
     7.3.  Enctype portability . . . . . . . . . . . . . . . . . . .   8
   8.  References  . . . . . . . . . . . . . . . . . . . . . . . . .   8
     8.1.  Informational References  . . . . . . . . . . . . . . . .   8
     8.2.  Normative References  . . . . . . . . . . . . . . . . . .   8
   Appendix A.  Historical Version Compatibility . . . . . . . . . .   9
   Appendix B.  Test Vectors . . . . . . . . . . . . . . . . . . . .  10
   Appendix C.  Acknowledgments  . . . . . . . . . . . . . . . . . .  12
   Author's Address  . . . . . . . . . . . . . . . . . . . . . . . .  12

1.  Introduction

   rxkad-k5 and rxkad-kdf are extensions to the rxkad Kerberos [RFC4120]
   based security class for the rx [RX] protocol. rxkad provides
   authentication, confidentiality and integrity protection for rx RPC
   calls but is limited to single-DES encryption types.  The original
   incarnation of rxkad used version 4 of the Kerberos protocol, but
   limited support was later added for using version 5 of the Kerberos
   protocol, but only with single-DES enctypes, which remain deeply
   ingrained in the rxkad protocol.

   Kerberos version 4 is obsolete and the use of single-DES enctypes is
   deprecated [RFC6649].  Accordingly, the administrators of Kerberos
   realms are eager to fully disable the use of single DES for Kerberos
   service and session tickets.  However, rxkad's dependence on single
   DES is a major obstacle to such changes for many sites.  Providing a
   way to use stronger encryption types for the Kerberos tickets used by
   rxkad will enable modernization of Kerberos Key Distribution Centers
   (KDCs).

   rxkad-k5 allows the service long-term key to use a strong enctype,
   and requires changes only to AFS servers.  rxkad-kdf allows the
   short-term Kerberos session key to use a strong RFC 3961 enctype
   [RFC3961], and requires changes to both clients and servers.



Kaduk                  Expires September 13, 2014               [Page 2]

Internet-Draft     krb5 based key derivation for rxkad        March 2014


1.1.  Requirements Language

   The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
   "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this
   document are to be interpreted as described in RFC 2119 [RFC2119].

2.  Indicating Protocol Support

   rxkad does not provide a facility for negotiating support for an
   extended feature set.  Within a given interaction, a new revision of
   the protocol for that interaction may be indicated by changing the
   size of a data structure, but this does not generalize well and is
   ill-suited for indicating a global protocol change.

   Therefore, an out-of-band mechanism is used to indicate support for
   the rxkad-k5 and rxkad-kdf extensions.  The KDC is entrusted to
   signal this information: the KDC has access to the list of supported
   encryption types for both the client and the service, as well as the
   encryption type(s) used for the service principal's long-term key(s).
   The presence of a non-DES long-term key for the service principal
   indicates service support for strong service keys (rxkad-k5), and the
   ability to use non-DES session keys for either client or service
   indicates that the client or service, respectively, is able to
   support key derivation (rxkad-kdf).

   The use of key derivation to obtain a shared DES key between client
   and service is preferred to requesting a DES key directly from the
   KDC.  This mechanism is chosen because Kerberos best practices
   indicate that weak cryptography (including single-DES) should not be
   enabled, both on the KDC and on user machines.  AFS with rxkad does
   require DES keys, owing to the wire protocol format, but it is
   desired to contain the use of weak cryptography entirely within AFS,
   so that Kerberos deployments may comply with current best practices
   (which are increasingly being mandated by organizational compliance
   departments).

   Per standard Kerberos operation, the administrator MUST NOT configure
   the AFS service principal with non-DES enctypes in the KDC database
   until the AFS server supports strong enctypes for the long-term
   service key.  The KDC MUST NOT issue a non-DES session key for the
   AFS service principal in a service ticket unless the server supports
   session key derivation.  The client MUST NOT include non-DES enctypes
   in its TGS-REQ for the AFS service ticket if the client does not
   support key derivation.  This is a new requirement not present in the
   existing (implicit) rxkad specification, but all known
   implementations of the aklog and afslog utilities are in compliance
   with it (see Appendix A.  Some klog.krb5 implementations are not in




Kaduk                  Expires September 13, 2014               [Page 3]

Internet-Draft     krb5 based key derivation for rxkad        March 2014


   compliance, and will break when the rxkad-kdf extension is enabled
   for the AFS service.

   It is common for KDC implementations to indicate service support for
   (session-key) enctypes by the enctypes available in the key list of
   the service principal, which in practice requires servers to
   implement support for rxkad-k5 and rxkad-kdf simultaneously.

3.  Strong Service Keys

   Modifying rxkad to add support for strong service keys (rxkad-k5)
   requires only minimal protocol change.  The Kerberos service ticket
   is handled as an opaque blob by the client and passed to the server
   as an authentication token.  This behavior is independent of the
   ticket enctype.  As long as the service ticket fits in the buffer
   allocated by rxkad, client support for strong service keys is already
   present for clients using krb5 natively.  Legacy deployments using
   krb4 or a krb524 service will not be able to use the rxkad-k5
   extension.

   The server operation for rxkad-k5 is also straightforward: the server
   receives the client's token and decrypts it using the service long-
   term key.  The session key contained within the ticket is then used
   as in normal operation.

4.  Key Derivation

   When both client and server have indicated to the KDC their support
   for rxkad-kdf key derivation (that is, non-DES session key enctypes),
   the KDC will return a service ticket to the client containing a
   session key with a non-DES enctype.  The rxkad security class
   requires a DES key for operation, so a key derivation function is
   employed to generate a DES key from the session key contained in the
   service ticket.

   The key-derivation process follows the algorithm of NIST SP800-108
   [NIST-SP-800-108] using HMAC-MD5 in counter mode as the pseudo-random
   function.  However, this KDF procedure requires that the input key to
   the derivation function be a random or pseudo-random string of bits.
   This property does not hold for all RFC3961 enctypes, in particular,
   the single- and triple-DES families of enctypes have keys which
   include parity bits.  Other enctypes, including enctypes 4, 6, 8, 9,
   10, 11, 12, 13, 14, and 15, do not have a random key per se, and are
   completely unsuitable for use as session keys for rxkad-kdf.







Kaduk                  Expires September 13, 2014               [Page 4]

Internet-Draft     krb5 based key derivation for rxkad        March 2014


4.1.  DES enctypes

   When the service ticket returned by the KDC contains a session key
   whose enctype is from the single-DES family (des-cbc-crc, des-cbc-
   md4, des-cbc-md5), the session key can be used as-is by rxkad and no
   key derivation is necessary.

4.2.  Preparing a Random Seed

   When the service ticket returned by the KDC contains a session key
   whose enctype is from the triple-DES family (des3-cbc-md5, des3-cbc-
   sha1, des3-cbc-sha1-kd), the session key is not a cryptographic key
   in the definition of NIST SP 800-108.  In order to produce a random
   seed from the session key, it is necessary to reverse the RFC3961
   random-to-key operation.  For triple-DES enctypes, the random-to-key
   operation is just the addition of parity bits (expanding a 56-bit
   random keystring to a 64-bit DES key).  Reversing the operation thus
   requires the removal of the parity bits.  The random-to-key operation
   (and thus its inverse) are defined to interchange between 56-bit
   random strings and 64-bit DES keys; to convert a triple-DES key to a
   168-bit random string the key-to-random operation must be performed
   individually on the three components, and then the resulting 56-bit
   random strings concatenated.

   key-to-random:
         1  2  3  4  5  6  7 63
         9 10 11 12 13 14 15 62
        17 18 19 20 21 22 23 61
        25 26 27 28 29 30 31 60
        33 34 35 36 37 38 39 59
        41 42 43 44 45 46 47 58
        49 50 51 52 53 54 55 57

   The output bit order of the 56 random bits extractable from a 64-bit
   DES key.  The eight parity bits are discarded.

   The (concatenated) output random bitstreams are used as input for the
   key derivation step.

4.3.  Key Derivation Function

   Once a random bitstring has been obtained for use as an input key
   (whether directly as the key of a suitable RFC 3961 enctype or as the
   output of a key-to-random operation), key derivation of a DES key can
   proceed.

   The output of HMAC-MD5 is the output length of MD5, that is, 128
   bits.  Since a DES keys occupies only 64 bits, standard application



Kaduk                  Expires September 13, 2014               [Page 5]

Internet-Draft     krb5 based key derivation for rxkad        March 2014


   of NIST SP800-108 would use a value of 1 for the n (number of
   iterations) parameter, as only one application of the PRF would be
   necessary to produce the output key.  However, single-DES has the
   complication that a certain handful of keys are weak and should not
   be used.  Therefore, we use a larger value of n (255) and discard PRF
   outputs which produce weak DES keys, until a non-weak key is
   produced.

   In normal operation, the KDF output in counter mode is the
   concatenation of the output of the PRF with incremented counter
   values.  rxkad-kdf does not strictly speaking use the concatenation
   of the output with incremented counter values, but still provides for
   computation of the PRF output with incremented counter values.  The
   input to each PRF application is a random seed to key the hash (the
   same key for each iteration), and an input string to the PRF.  This
   input string is defined as the concatenation of the counter variable,
   an application-specific "label" (with NUL byte terminator), a
   "context" specific to this particular key derivation, and the length
   of output key material needed.  In the October 2009 revision of NIST
   SP 800-108, it is permitted to omit one or more of these fields from
   PRF input string if that field is not needed.  For rxkad-kdf usage,
   the "context" field is omitted, as the input key comes from the
   session key of a Kerberos service ticket for an AFS service
   principal, and no other key derivations are expected to be performed
   using this session key.  The label for this KDF is the constant
   string "rxkad".  The KDF specification is then:

   K(i) = PRF(Ks, [i]_2 || Label || 0x00 || [L]_2)

         || is the concatenation operation.

         Ks is the random key used to seed the hash (that is, the output
         of the key-to-random operation for triple-DES keys, and the key
         itself for other enctypes).

         [i]_2 is the value of the counter variable encoded as a binary
         string of 8 bits.

         Label is the literal string "rxkad".

         0x00 is a NUL byte (eight zero bits).

         [L]_2 is the integer value 64, encoded as a binary string of
         32-bits (in network byte order).

   The key derivation procedure for rxkad-kdf is to first compute K(1)
   and take the first 64 bits of output.  This 64-bit value is then
   converted to a DES key by replacing the eighth bit of each octet with



Kaduk                  Expires September 13, 2014               [Page 6]

Internet-Draft     krb5 based key derivation for rxkad        March 2014


   the parity of the other seven bits in the octet.  If this DES key is
   not a weak key, the key derivation is finished.  If it is a weak key,
   then the algorithm proceeds iteratively, repeating the extraction-
   and-parity-fixup procedure with K(2), K(3), ..., K(255), until a non-
   weak key is produced.  If all 255 possible K(i) produce weak keys,
   then key derivation fails and the rxkad-kdf extension is unusable
   with that Kerberos service ticket.

5.  AFS-3 Registry Considerations

   This document makes no request of the AFS-3 Registrar.

6.  IANA Considerations

   This document includes no request to IANA.

7.  Security Considerations

7.1.  DES weakness

   The rxkad-kdf procedure defined in this document allows AFS to
   operate in a Kerberos realm with single-DES enctypes disabled on the
   KDC.  However, single-DES (or rather, its weakened variant fcrypt,
   which uses DES keys) is still used to protect all encrypted or
   checksummed rxkad traffic.  Therefore, that traffic is only protected
   by weak cryptography.  The main security gain from the extensions
   specified in this document comes from rxkad-k5, in particular the
   provisioning of strong enctypes for the long-term AFS service key, as
   the compromise of that key is tantamount to complete compromise of
   the cell.  Although administrative access to the cell still uses
   single-DES for encryption of network traffic, that single-DES key is
   time limited and may be resistant to brute-force key recovery prior
   to its expiration.

7.2.  MD5 weakness

   MD5 is a rather old hash function and is weak with respect to
   collision resistance [RFC6151].  Since this document uses the output
   of MD5 as a secret key, this weakness does not affect the security of
   the algorithm.  Per RFC 6151, HMAC-MD5 is still acceptable, though
   the scope of some attacks are not well understood.  Given that
   single-DES is known to be critically weak and the output of HMAC-MD5
   is used to produce a single-DES key in this document, it appears that
   the strength of single-DES remains the limiting factor in the
   security of the rxkad-kdf system.






Kaduk                  Expires September 13, 2014               [Page 7]

Internet-Draft     krb5 based key derivation for rxkad        March 2014


7.3.  Enctype portability

   The rxkad-kdf procedure requires an RFC 3961 enctype that has a
   random key.  Some enctypes do not have this property and are
   unsuitable for use with rxkad-kdf; it is possible that in the future,
   new enctypes will be created that will share this property.
   Implementors should be aware of this possibility.  In order to obtain
   a random bitstring from an RFC 3961 enctype's random key, it is
   necessary to invert the random-to-key operation of enctypes for which
   this operation is not the identity function.  At present, the only
   enctypes with a non-trivial random-to-key operation are the single-
   DES and triple-DES families.  It is not expected that future enctypes
   will be created with non-trivial random-to-key functions, but
   implementors should be aware of this possibility.

8.  References

8.1.  Informational References

   [RX]       Zeldovich, N., "RX protocol specification", October 2002.

8.2.  Normative References

   [RFC2119]  Bradner, S., "Key words for use in RFCs to Indicate
              Requirement Levels", BCP 14, RFC 2119, March 1997.

   [RFC3961]  Raeburn, K., "Encryption and Checksum Specifications for
              Kerberos 5", RFC 3961, February 2005.

   [RFC4120]  Neuman, C., Yu, T., Hartman, S., and K. Raeburn, "The
              Kerberos Network Authentication Service (V5)", RFC 4120,
              July 2005.

   [RFC6151]  Turner, S. and L. Chen, "Updated Security Considerations
              for the MD5 Message-Digest and the HMAC-MD5 Algorithms",
              RFC 6151, March 2011.

   [RFC6649]  Hornquist Astrand, L. and T. Yu, "Deprecate DES, RC4-HMAC-
              EXP, and Other Weak Cryptographic Algorithms in Kerberos",
              BCP 179, RFC 6649, July 2012.

   [NIST-SP-800-108]
              National Institute of Standards and Technology, ,
              "Recommendation for Key Derivation Using Pseudorandom
              Functions, NIST SP800-108", SP 800-108, October 2009.






Kaduk                  Expires September 13, 2014               [Page 8]

Internet-Draft     krb5 based key derivation for rxkad        March 2014


Appendix A.  Historical Version Compatibility

   Converting a user's Kerberos credentials into an AFS token is
   traditionally performed using a klog or aklog utility, with klog
   corresponding roughly to krb4 and aklog to krb5.  Known
   implementations of aklog explicitly request a single-DES encryption
   type for the session key, with the following caveats.

   Many deployments of IBM AFS (which used its own kaserver as a
   Kerberos 4 KDC) were converted to use krb5 for authentication via an
   unofficial "AFS-krb5 migration kit", distributed informally from site
   to site.  It is difficult to obtain all versions of this migration
   kit which were distributed, but the aklog utility included in
   versions 1.2, 1.3, and 2.0 of the migration kit explicitly request a
   single-DES encryption type for the session key.  Specific information
   about other versions is not readily available, but it seems likely
   that this behavior was introduced at an early stage.

   OpenAFS imported an aklog utility from the migration kit into its
   tree on 19 November 2004, with the code to explicitly request
   ETYPE_DES_CBC_CRC commented out.  That code was uncommented on 19
   June 2005.  No releases were made on a stable release branch during
   this period, though the development releases 1.3.75 through 1.3.84
   did contain this buggy code.  The next release after 1.3.84 was
   1.4.0; the 1.4.0 release contains an aklog utility that correctly
   requests a single-DES session key.

   The Arla AFS client appears to depend on the Heimdal Kerberos
   distribution for obtaining AFS credentials.  The core Heimdal routine
   supplying AFS authentication from krb5 credentials, get_cred() in the
   source file afskrb5.c, has explicitly requested a DES session key
   since 19 October 1999; the first Heimdal release containing this code
   was Heimdal 0.2b.  Heimdal's AFS through krb5 support was introduced
   on 15 August 1997, and first appeared in release 0.0e.  At that time,
   single-DES was the primary enctype available, and support for triple-
   DES was still under development.

   The "kAFS" incomplete AFS client included with the linux kernel does
   not include a utility to obtain credentials -- a primitive utility is
   separately available.  This utility only supports krb4
   authentication.

   OpenAFS supplies a klog.krb5 utility with the semantics of the
   traditional (krb4) klog utility that uses krb5 for authentication.
   This utility was first imported into the source tree on 27 October
   2006, but was not installed as part of the distribution until 28 June
   2008.  The first release version containing klog.krb5 was OpenAFS
   1.4.8; it was also present as of the 1.6.0 release.  Code to



Kaduk                  Expires September 13, 2014               [Page 9]

Internet-Draft     krb5 based key derivation for rxkad        March 2014


   explicitly request ENCTYPE_DES_CBC_CRC was added on 14 October 2011,
   and was first present in the 1.6.1 release.  This code was never
   added to the 1.4.x branch, so klog.krb5 is incompatible with the
   rxkad-kdf extension on all 1.4.x releases which contain a klog.krb5
   utility.

   Arla does not appear to provide a utility with klog semantics that
   uses krb5 for authentication.

   No other AFS implementations are known to the author.

Appendix B.  Test Vectors

   Some test vectors for the key-to-random operation and KDF application
   are presented.

   in :=   0 1 1 1 0 1 0 1  75
           1 0 1 0 1 0 1 1  ab
           0 1 0 1 0 0 0 1  51
           0 0 1 1 0 1 1 1  37
           1 1 1 0 0 1 0 1  e5
           0 0 1 0 0 1 0 1  25
           1 1 1 1 0 0 1 0  f2
           1 1 1 0 0 0 0 0  e0
   key-to-random(in) :=
           0 1 1 1 0 1 0 0  74
           1 0 1 0 1 0 1 0  aa
           0 1 0 1 0 0 0 0  50
           0 0 1 1 0 1 1 0  36
           1 1 1 0 0 1 0 1  e5
           0 0 1 0 0 1 0 1  25
           1 1 1 1 0 0 1 1  f3

   The key-to-random operation on a single DES keyblock.  The hex
   representation of each byte is presented for convenience.

   in :=   1 0 1 1 0 1 1 0   b6
           0 1 0 0 0 0 0 0   40
           0 1 1 1 0 0 0 0   70
           0 0 0 0 0 1 0 0   04
           0 1 1 1 0 0 0 0   70
           1 0 0 0 0 1 1 0   86
           0 0 0 0 1 0 0 0   08
           1 0 1 0 1 1 1 0   ae
           1 0 1 1 0 1 1 0   b6
           1 0 1 1 1 1 1 1   bf
           1 1 0 0 0 1 1 1   c7
           1 1 0 1 0 0 0 0   d0



Kaduk                  Expires September 13, 2014              [Page 10]

Internet-Draft     krb5 based key derivation for rxkad        March 2014


           1 1 1 0 0 1 0 1   e5
           1 1 1 1 1 1 0 1   fd
           0 0 1 0 0 0 1 1   23
           1 1 1 0 0 1 1 0   e6
           0 1 1 1 1 0 1 0   7a
           0 1 1 0 0 1 1 1   67
           0 0 0 1 1 1 1 1   1f
           1 0 1 1 0 1 0 1   b5
           0 1 0 0 1 0 0 1   49
           1 0 0 1 0 0 0 1   91
           1 0 0 1 1 0 1 1   9b
           1 1 1 1 1 1 0 1   fd
   key-to-random(in) :=
           1 0 1 1 1 1 1 1   b7
           0 1 0 0 0 0 0 1   41
           0 1 1 1 0 0 0 1   71
           0 0 0 0 0 1 0 0   04
           0 1 1 1 0 0 0 1   71
           1 0 0 0 0 1 1 0   86
           0 0 0 0 1 0 0 1   09
           1 0 1 1 0 1 1 1   b7
           1 0 1 1 1 1 1 1   bf
           1 1 0 0 0 1 1 0   c6
           1 1 0 1 0 0 0 0   d0
           1 1 1 0 0 1 0 1   e5
           1 1 1 1 1 1 0 1   fd
           0 0 1 0 0 0 1 1   23
           0 1 1 1 1 0 1 0   7a
           0 1 1 0 0 1 1 1   67
           0 0 0 1 1 1 1 1   1f
           1 0 1 1 0 1 0 1   b5
           0 1 0 0 1 0 0 1   49
           1 0 0 1 0 0 0 1   91
           1 0 0 1 1 0 1 1   9b

   The key-to-random operation performed on a triple-DES keyblock.
   Though equivalent resistance to brute-force attacks is provided by
   having the first and third keyblock be identical, the Heimdal
   Kerberos implementation produces three independent random DES keys
   for a triple-DES key.  The hex representation of each byte is
   presented for convenience.










Kaduk                  Expires September 13, 2014              [Page 11]

Internet-Draft     krb5 based key derivation for rxkad        March 2014


   Random input seed:
           11010100  d4
           10101100  ac
           01000011  43
           10000110  86
           11001000  c8
           11011101  dd
           10101110  ae
           10100011  a3
           01010001  51
           10110101  b5
           00110101  35
           11111110  fe
           01111000  78
           11110010  f2
           10110011  c3
           00111000  38

   Derived DES key:
           00011010  1a
           11001110  ce
           00010101  15
           00111011  3b
           10110011  b3
           10111001  b9
           10010001  91
           00001110  0e

   A key-derivation function test vector, using a 128-bit random string
   as input.  The hex representation of each byte is presented for
   convenience.

Appendix C.  Acknowledgments

   rxkad-k5 and rxkad-kdf are the brainchild of Chaskiel Grundman and
   Alexander Chernyakhovsky; this document is a description of the
   protocol that they have implemented.

Author's Address

   Benjamin Kaduk
   MIT Kerberos Consortium

   Email: kaduk@mit.edu







Kaduk                  Expires September 13, 2014              [Page 12]