Re: Values to use for a salt?

From: Scott Cleven-Mulcahy (scottcm3_at_hotmail.com)
Date: 12/18/03

  • Next message: Brian Hatch: "Re: Values to use for a salt?"
    To: secprog@securityfocus.com
    Date: Wed, 17 Dec 2003 21:57:31 -0600
    
    

    I think you're missing the point of using salt.

    Yes, it helps protect against isolated brute force cracks by further
    randomizing a password's hash code, but this is a minor feature. Using the
    extended ASCII set in a password serve's the same purpose. Regardless, I
    certainly wouldn't rely upon salt to improve the quality of an individual's
    password.

    The importance of using salt is that it protects against hash code
    comparing. Ideally, each password is hashed with a different salt value.
    When this is done, the hash code of identical passwords is not identical.
    One of the problems with LM and NTLM v1 passwords is salt wasn't used. As a
    result, once you found one password you knew the password of anyone else
    that has the same hash code.

    There are other methods that can protect against hash code comparison, but
    using larger character sets in a password is not one of them.

    On a related note, earlier someone asked if it was advisable to use the
    user's account name as the salt value. The answer is no. To be effective,
    the salt value should be kept secret. In essence, what we're talking about
    are HMACs (hashed method authentication codes). HMACs are only as good as
    the secrecy of the key - and account names are not secret.

    Depending on the length of time the hash code had to stand up and the value
    of the information you're protecting, you could use the account name as
    *part* of the key. A common technique is to take some data, hash it, drop
    some of the bits and use the remainder as the key. In a highly simplified
    example you could use Hash(account name + MAC address + IP address + Date +
    Time to the nearest minute), drop enough bits off the end to make it the
    right size and that could be the key. Depending on the difficulty in
    regenerating the key it may stand up if the key is changed frequently and/or
    the data holds little or no value in a short amount of time.

    In order to validate the hash code, the validating system computes all hash
    values (there are multiple valid keys) for each minute within a window of
    time. If any of the codes match the hash code is considered valid. This is
    basically what Kerberos does (and is why authentication doesn't work in a
    Windows 2000+ network if the time isn't synchronized within 5 minutes).

    Hope this helps,
    Scott Mulcahy

    -----Original Message-----
    From: Marian Ion [mailto:marian.ion@e-licitatie.ro]
    Sent: Wednesday, December 17, 2003 3:01 AM
    To: CraigSecurity@blazemail.com; secprog@securityfocus.com
    Subject: Re: Values to use for a salt?

    Hi all,

    Don't you think using extendedASCII set will dramatically increase the
    performance of any algorithm currently in use? Imagine what a pass like
    "|¤W-|[V.|1D-|`â-|Ë3-|%-|F0-| " means for a cracker: (selected from line
    22 (I think...) from regedit.exe). Imagine using Unicode characters for keys
    .....
    Will you still need salt and others?

    Marian Ion

    _________________________________________________________________
    Enjoy the holiday season with great tips from MSN.
    http://special.msn.com/network/happyholidays.armx


  • Next message: Brian Hatch: "Re: Values to use for a salt?"

    Relevant Pages

    • Re: Values to use for a salt?
      ... there are definitely situations where salt is not secret. ... Protection of each user's hash code becomes important to prevent ... The problem is that now you must map username to password hash ... The authentication process now looks like this: ...
      (SecProg)
    • Re: Values to use for a salt?
      ... Yes, for some algorithms, and some applications (like domain ... better methods started) salt is necessary. ... > randomizing a password's hash code, but this is a minor feature. ... > are HMACs (hashed method authentication codes). ...
      (SecProg)
    • RE: Values to use for a salt?
      ... >hash' doesn't make much sense to me. ... generates the same hash code for every password that is "MyPassword". ... The salt value is not supposed to be kept secret, ... I allowed myself to digress from password salt into HMAC. ...
      (SecProg)
    • Re: Salting with hash data
      ... "salt" in normal usage means a value that is visible to the attacker. ... It doesn't matter what algorithm generates it. ... you have to protect the key. ...
      (sci.crypt)
    • Re: Another victim of overhydration
      ... protect you, think again. ... There's not enough salt in GA to ... There's enough in the endurance formula to make quite a lot of ... I am convinced the safest thing to do is to drink when you are ...
      (rec.running)

  • Quantcast