Re: Windows passwords

From: David Magda (dmagda+trace030725_at_ee.ryerson.ca)
Date: 08/09/03

  • Next message: beldar: "should I unplug this box?"
    Date: 08 Aug 2003 19:07:54 -0400
    
    

    Henrik Falk <shienarier@linux.nu> writes:

    > I am rather new to both newsgroups and unix passwords, so i hope this
    > message will work out fine.
    >
    > I was reading the new paper about being able to crack windows passwords
    > quickly. And that windows doesn't use any randomness (salt).
    > While *nix does. What randomness does *nix use?
    > What exactly IS the salt?

    It's a random value added to the password before it is
    hashed/encrypted. This is to make it more difficult to brute the
    hashed value. An example:

    If two users (alice & bob) both have the same password, say
    "GuessMe", then under Windows, both alice's and bob's password will
    result in the same hash. So if someone gets hold of the password
    database, and looks at the stored hased values they'll see both alice
    and bob have the same one. This is because

        PW_alice = "GuessMe" and
        PW_bob = "GuessMe"

    so

        Hash(PW_alice) = Hash(PW_bob)

    But with a salt you add some randomness. So although the PW_alice and
    PW_bob are the same, the stored value is

        Hash(SALT_alice + PW_alice)
        Hash(SALT_bob + PW_bob)

    where

        SALT_alice != SALT_bob

    therefore

          Hash(SALT_alice + PW_alice) != Hash(SALT_bob + PW_bob)

    There is a probability that the two salts will be the same, but it is
    generally not too big.

    With cracking passwords what you can do is take the most common
    possibilities (only alphabet characters) and pre-compute the
    hashes. You then try to acquire the password file of a system and
    compare the values you have there with your pre-computed values. Any
    values that match you instantly know the user's password.

    What the salt does is add to the values you must compute. You have to
    compute

        Hash(SALT_1 + PW), Hash(SALT_2 + PW), ..., Hash(SALT_N + PW)

    where PW is the password you are pre-computing, and salts SALT_1 to
    SALT_N are all possible salt values. This can add a lot of
    comptation. In the case of traditional Unix DES passwords there are
    4096 possible salt values. Newer hashing methods have more salt
    values.

    -- 
    David Magda <dmagda at ee.ryerson.ca>, http://www.magda.ca/
    Because the innovator has for enemies all those who have done well under
    the old conditions, and lukewarm defenders in those who may do well 
    under the new. -- Niccolo Machiavelli, _The Prince_, Chapter VI
    

  • Next message: beldar: "should I unplug this box?"

    Relevant Pages

    • Re: Password authentication using unix crypt
      ... trouble authenticating the password (the single salt ones) generated ... by AIX, at the web application which is running on Windows 2003. ... salt works fine. ...
      (comp.unix.aix)
    • Re: Windows passwords - salts?
      ... What I mean by salt is that, for example, UNIX appends a 12bit string ... To explain what I'm thinking (and if its the same as a seed in Windows) ... The lack of salting is a relic of a much earlier time when it was not ... targeted attack on one user account and password. ...
      (microsoft.public.windows.server.security)
    • Re: protel Demo?????
      ... One definitely has to take Pooh Bear's comments with a grain of salt. ... phoney weak Windows GUI is an intuitive Windows program? ... Windows GUI) and P99SE since 2000) and will take Protel's interface over ... product for the past nearly 10 years and never writing it as a true Windows ...
      (sci.electronics.cad)
    • Re: online backgammon bot infested
      ... salt can build a bot with or without this document. ... Any *Windows* programmer. ...
      (rec.games.backgammon)
    • Re: Windows passwords
      ... Does all the hashes in my /etc/shadow use the same salt? ... >> I was reading the new paper about being able to crack windows passwords ... And that windows doesn't use any randomness. ... > possibilities and pre-compute the ...
      (comp.security.unix)