[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Fuck the Usenet Cabal




Paul Bradley <[email protected]> writes:

> > ObCrypto: I was offered a 76GB changer for $350.  I thought of the followin
> > demo application: a user e-mails a piece of a Unix passwd file (password+sa
> > to a server, which looks up a password that works.  Problem is, 76GB doesn'
> > seem sufficient for the lookup table. :-( (Assume infinite time available
> > on a fast box.)
>
> I have to confess ignorance over the form of the password in the unix
> passwd file, how much salt is used, does it vary from ?nix to ?nix or is it
> pretty standard? Maybe a small(ish) lookup table/ dictionary attack could
> be mounted using this.

Suppose that 'foo' is a valid password for the account 'bar'. Unix computes
crypt(3)[similar to DES] using 8 bytes of zeros as the plaintext and the
password (56 bits) and the 'salt' (the 12-bit time-stamp of when the
password is set) as the key. Then it stores the salt and the (64-bit) result
of crypt, often in a place where regular users can read it.

When some program wants to verify that 'baz' is indeed a password for 'foo',
it extracts the salt and the encrypted string from the password database,
computes crypt(3) of salt (from the database) + the password being tried,
and sees if it matches the encryption result in the database.

This was designed by Robert Morris Sr [who really deserves more fame than
being the father of Robert Morris Jr of the worm fame] and Ken Thompson.

The purpose of the pseudo-random 'salt' is to make sure that if two accounts
have the same password, they'll still have different encryption strings in
the database (almost always).

Thus, given 12+64 bits of input, we want to get the 56 bits of output; and
the vast majority of 12+64 inputs can't happen.

A well-known attack (implemented by widely available programs such as
"crack") is to try various words from a dictionary with the 'salts' used by
the traget account(s) (usually using not the (slow) crypt(3) from the
library, but a highly optimized version of it. [The guy who wrote the
"Camel" Perl book got caught doing this at a place where he worked as a
consultant, and was prosecuted and convicted.]

To prevent dictionary attacks, many sites no longer make the encrypted
strings "easily" available to users; programs must use an API to check if a
supplied password matches. Unix admins call this "password shadowing".

---

<a href="mailto:[email protected]">Dr.Dimitri Vulis KOTM</a>
Brighton Beach Boardwalk BBS, Forest Hills, N.Y.: +1-718-261-2013, 14.4Kbps