Subject: (radius) RE: Two interpretations to the NT-Key of MS-CHAP-MPPE-Keys

From: Glen Zorn <[email-masked]>
Date: Wed, 28 Jul 1999 19:34:35 -0700

The MPPE draft is correct.  In RFC 2548 I was _thinking_ "the hashed Windows
NT password _as stored on the Windows NT domain controller_" (which is a
hash), but wrote "the hashed Windows NT password".  Sorry for the confusion.

 -----Original Message-----
From: 	[email-masked] [mailto:[email-masked]] 
Sent:	Wednesday, July 21, 1999 9:51 AM
To:	Glen Zorn; [email-masked]
Subject:	Two interpretations to the NT-Key of MS-CHAP-MPPE-Keys

Glen,

There are two interpretations to the NT-Key of MS-CHAP-MPPE-Keys. One takes
the sixteen octets of the output of the function NtPasswordHash as NT-Key.
Another
one takes the sixteen octets of the output of the function PasswordHashHash
as
NT-Key. Would you please clarify this? Thanks.

Microsoft Vendor-specific RADIUS Attributes (RFC 2548) states:

  Vendor-Type
      12 for MS-CHAP-MPPE-Keys.

   Vendor-Length
      34

   Keys
      The Keys field consists of two logical sub-fields: the LM-Key and
      the NT-Key.  The LM-Key is eight octets in length and contains the
      first eight bytes of the output of the function LmPasswordHash(P,
      This hash is constructed as follows: let the plain-text password
      be represented by P.

      The NT-Key sub-field is sixteen octets in length and contains the
      first sixteen octets of the hashed Windows NT password.

And internet draft MPPE Key Derivation (Feb. 1999) states:

4.4.2.  Sample 128-bit Key Derivation

Initial Values
   Password = "clientPass"

   Challenge = 10 2d b5 df 08 5d 30 41

Step 1: NtPasswordHash(Password, PasswordHash)
   PasswordHash = 44 eb ba 8d 53 12 b8 d6 11 47 44 11 f5 69 89 ae

Step 2: PasswordHashHash = MD4(PasswordHash)
   PasswordHashHash = 41 c0 0c 58 4b d2 d9 1c 40 17 a2 a1 2f a5 9f 3f

Step 2: GetStartKey(Challenge, PasswordHashHash, InitialSessionKey)
   InitialSessionKey = a8 94 78 50 cf c0 ac ca d1 78 9f b6 2d dc dd b0

Step 3: Copy InitialSessionKey to CurrentSessionKey
   CurrentSessionKey = a8 94 78 50 cf c0 ac ca d1 78 9f b6 2d dc dd b0

Step 4: GetKey(InitialSessionKey, CurrentSessionKey, 16)
   CurrentSessionKey = 59 d1 59 bc 09 f7 6f 1d a2 a8 6a 28 ff ec 0b 1e

Zhidan Cheng

-
To unsubscribe, email [email-masked]' with
'unsubscribe ietf-radius' in the body of the message.