ietf
[Top] [All Lists]

IETF LC Gen-ART review of draft-harkins-salted-eap-pwd-06

2016-09-05 20:31:14
Document: draft-harkins-salted-eap-pwd-06
Reviewer: Dale R. Worley
Review Date: 2016-09-05
IETF LC End Date: 2016-09-22

I am the assigned Gen-ART reviewer for this draft. The General Area
Review Team (Gen-ART) reviews all IETF documents being processed
by the IESG for the IETF Chair.  Please treat these comments just
like any other last call comments.

For more information, please see the FAQ at
<http://wiki.tools.ietf.org/area/gen/trac/wiki/GenArtfaq>.

This draft is basically ready for publication, but has possible nits
that should be considered for fixing before publication.

Minor issues:

2.5.  Payload Modifications

The construction of the EAP-pwd-Commit/Request message limits the salt
to 255 octets, or 2040 bits.  This probably ought to be mentioned in
section 2.1 where the length of the salt is discussed.

Is there any reason to be concerned that 2040 bits will be inadequate
in the near-to-medium future?

Nits/editorial comments:

Abstract

   It included support for raw keys and RFC2751-style double
   hashing of a password but did not include support for salted
   passwords.

I believe that the reference to RFC 2751 is incorrect.  Probably what
is meant is RFC 2759 (see the reference thereto in RFC 5931).  In any
case, the referenced RFC should be listed as a reference.

1.1.  Background

   Databases of stored passwords present an attractive target for
   attack-- get access to the database, learn the passwords.

Normally, the spacing before and after "--" is the same.  There are
also examples of this in sections 2.1 and 5.  Perhaps discuss this
with the RFC Editor concerning the meaning the authors want to
associate with this punctuation.

2.1.  Password Pre-Processing

   o  TBD8: OpaqueString and a UNIX crypt() ([CRY])

Probably change "a UNIX crypt" to "UNIX crypt".

   o  TBD5: OpaqueString and a random salt with SHA-1 ([SHS])

For TBD5-TBD8, it might be clearer to say "OpaqueString and then ...",
as all of them have a two-phase structure.

2.3.  Using UNIX crypt

   Different algorithms are supported with the UNIX crypt() function.
   The particular algorithm used is indicated by prepending an encoding
   of "setting" to the passed salt.  The specific algorithm used is
   opaque to EAP-pwd as the entire salt, including the encoded
   "setting", is passed as an opaque string for interpretation by
   crypt().

This seems to be an awkward way to phrase this.  From the outside,
there appears to be one crypt() function with two arguments.  The
"particular algorithm used" is just crypt() specialized with a fixed
value of one argument.  But any two-argument function can be
specialized with a fixed argument, and usually one does not describe
all the resulting functions as a "particular algorithm".

This text did deceive me upon the first reading.  I thought that
different versions of Unix provided different crypt functions and the
salt included a selector value to select the correct version.  But
looking at the referenced cypt manual page corrected me.

Perhaps this section could be left out entirely, as the details aren't
needed in this specification, and the referenced crypt manual page
gives the needed information.

5.  Security Considerations

   there is no dictionary attack needed to recover the plaintext
   password.

This is correct but doesn't emphasize the important point.  Perhaps

   since the plaintext password need not be recovered, no dictionary
   attack is needed

--

   While the immediate effect of such a compromise would be the
   compromised server,

I think changing "would be the compromised server" to "would be the
compromise of the server" would make this clearer.

It might be worth noting that any salted password remote authorization
protocol has the same limitation as this draft's method, viz., that
disclosure of the hash of the salted password allows an attacker to
impersonate a client.  That is, that this method is not somehow
deficient because it also has that property.

(What makes the Unix salted-password database immune to disclosure is
that the OS controls the preparation of the user-given password; it's
not a remote authorization system and so an attacker must enter the
unsalted password.)

Dale

<Prev in Thread] Current Thread [Next in Thread>