More Tribal

  • The Tribal Pizza Website
    Now that you've looked behind the curtain, come see what's on stage!

Enter your email address:

Delivered by FeedBurner

« Dealing With The Database - The Great Impedance Mismatch (Part I) | Main | Minimizing Procrastination or the Careful Art of Negotiating with a Rogue State! »

September 17, 2007

TrackBack

TrackBack URL for this entry:
http://www.typepad.com/services/trackback/6a00d834542cf669e200e54edf95df8833

Listed below are links to weblogs that reference How do we secure your password you ask?:

Comments

Tom Moertel

It's good that you are thinking about security. Since you asked for comments, I have two.

First, use a hashing algorithm that was designed for hashing passwords (e.g., bcrypt). That way, you can make each hashing operation expensive enough to protect all but the most obvious passwords from guessing attacks, should your database fall into the wrong hands. (Remember, salt does not prevent the bad guys from attempting to guess your passwords; it only makes pre-computing hash-to-password dictionaries impractical, forcing attackers to guess each password individually.)

Second, don't use an account-recovery scheme that emails your users their passwords, even if the passwords are newly reset and random. Instead, send account-recovery tokens that your users can redeem to reset their passwords. If you reset the passwords and *then* email them, you open your user base to annoyance attacks: anybody can reset another user's account if he knows the associated login or email address. Also, if you email a new password to a user who choses to keep the password instead of changing it, that password will remain in his email records, accessible to anybody who shares (or can use) his computer.

See the following for one alternative to emailing passwords: http://blog.moertel.com/articles/2007/02/09/dont-let-password-recovery-keep-you-from-protecting-your-users

Cheers! --Tom

Michael Webb

Thanks for the feedback Tom. I read your post on password recovery. I had not really considered the annoyance attack. The approach you recommend eliminates that, very nice. We will definitely throw that on the stack for implementation.

I’m not familiar with bcrypt, but, I’m interested in researching it and considering its use for the reasons you cite above. Sounds like it will slow down a brute force attack in the case of the database getting snatched. Are you familiar with a good .NET implementation of the bcrypt algorithm?

Thanks,
Michael

Verify your Comment

Previewing your Comment

This is only a preview. Your comment has not yet been posted.

Working...
Your comment could not be posted. Error type:
Your comment has been posted. Post another comment

The letters and numbers you entered did not match the image. Please try again.

As a final step before posting your comment, enter the letters and numbers you see in the image below. This prevents automated programs from posting comments.

Having trouble reading this image? View an alternate.

Working...

Post a comment