Security Corner

Nov 28 2013   12:03AM GMT

Security best practice: How to store user passwords



Posted by: Ken Harthun
Tags:
Encryption
Security
Security best practice
Security management

encryptionAdobe’s October 2013 data breach was not only one of the largest breaches ever, it could have been prevented if the company had stored the user passwords correctly. They didn’t and to their great embarrassment, 150,000,000 records were exposed.

According to this article on Sophos’ Naked Security blog, Adobe made a huge cryptographic mistake. According to this article, here’s what they should have done:

…here is our minimum recommendation for safe storage of your users’ passwords:

  • Use a strong random number generator to create a salt of 16 bytes or longer.
  • Feed the salt and the password into the PBKDF2 algorithm.
  • Use HMAC-SHA-256 as the core hash inside PBKDF2.
  • Perform 10,000 iterations or more. (November 2013.)
  • Take 32 bytes (256 bits) of output from PBKDF2 as the final password hash.
  • Store the iteration count, the salt and the final hash in your password database.
  • Increase your iteration count regularly to keep up with faster cracking tools.

Whatever you do, don’t try to knit your own password storage algorithm.

It didn’t end well for Adobe, and it is unlikely to end well for you.

This also got me to thinking about password length and complexity again, so stay tuned for my latest cogitations on that matter.

 Comment on this Post

 
There was an error processing your information. Please try again later.
Thanks. We'll let you know when a new response is added.
Send me notifications when other members comment.

REGISTER or login:

Forgot Password?
By submitting you agree to receive email from TechTarget and its partners. If you reside outside of the United States, you consent to having your personal data transferred to and processed in the United States. Privacy

Forgot Password

No problem! Submit your e-mail address below. We'll send you an e-mail containing your password.

Your password has been sent to: