

Coding Horror: You're Probably Storing Passwords Incorrectly - luccastera
http://www.codinghorror.com/blog/archives/000953.html

======
henning
"most users tend to re-use the same passwords, probably because they can't
remember the two dozen unique usernames and passwords they're forced to have.
So if you obtain their forum password, it's likely you also have the password
to something a lot more dangerous: their online banking and PayPal."

I admit to being somewhat guilty of this, but I'm astonished anyone would use
the same password for throwaway email acconts as for financial stuff. I do use
only like 2 different passwords for all my stupid little Internet forum
accounts, though.

------
gscott
With the exception of the database or backup being 'stolen' wouldn't the
addition of a 3rd variable, like a captcha code, solve brute force attacks?

I have been considering implementing something like a captcha code on my login
forms (but haven't yet).

~~~
jsjenkins168
Services like CAPTCHA are intended to solve different problems, like
protecting your web service against DoS or bot/spam attacks.

To brute force crack a password, you would really need direct access to the
digest. We are talking around the order of 2^80 attempts before finding a
collision with a algorithm like SHA-1. Checks need to happen very fast. Doing
this through a web interface is already too slow to be feasible from a time
perspective.

So really, cracking passwords is only a consideration when someone gets a hold
of all your digests (eg. your database) and can crunch away on them locally
for a long time.

~~~
thomasptacek
I'm really not sure you're talking about the same thing as, well, anybody else
doing password security. Brute force incremental crackers (read: almost every
password cracker ever written) don't attack the algorithmic strength of SHA1.
They attack the complexity of the underlying passwords, using dictionaries,
mutation functions, and statistics.

SHA1 is strong (at least in this application). Passwords are very, very weak.

------
joe
No sir. I be using SHA256 hashes and per-password salts, ever since our site's
launch.

------
ivankirigin
Django's session/user framework uses a salted hash. Does anyone have any
critiques of their method?

------
chmac
Great article, some good links, and a damned eye opener. I need to start
salting my passwords...

~~~
thomasptacek
If you have to reason through or alter what you're currently doing with
passwords, it's irresponsible of you to be storing passwords at all. Like it
or not, your users are using the same password for your web 2.0 recipe sharing
program as they are for their bank account.

Lesson: use someone else's (good) password system.

~~~
gwenhwyfaer
Is there a list of these somewhere? Which ones would you recommend?

~~~
thomasptacek
If you ship on Unix, use what your operating system ships with. Failing that,
use bcrypt, or PHK's MD5 scheme. If you must DIY, iterate the hash function
several thousand times.

------
Readmore
Seriously, people store plain-text passwords? Come on guys, surely you know
better than that!

------
jamongkad
Good thing I hash my passwords.

