Hacker News new | ask | show | jobs
by jonny_noog 6438 days ago
Doesn't using the same password everywhere (particularly if it's also your online banking password) qualify it as a "shit password" as I so eloquently put it? :)

In any case, I accept that there should be some degree of responsibility taken by the developer to try and protect their users information, lest we get the whole Reddit situation.

But as someone once said, you can't make the Internet idiot proof.

1 comments

Perhaps that doesn't make it a "shit password", but it certainly is a "shit password policy".

Regardless, you can't realistically force your users to not have a "shit password policy". What you can do, however, is make sure that your app is probably not the point of failure for their password.

You can't make the internet idiot-proof, but you can make your apps reasonably malicious-person proof, and it's viewed by some (me) to be close to a moral responsibility of yours to do so - you either already know about, or are probably easily able to learn about "good" security policy, and ways to store users passwords and do validation while minimizing the risk of a malicious person acquiring your users passwords.

That is not to say that writing your own authentication / password storage scheme is something that you just shouldn't ever do - it can certainly be educational and entertaining - but 9 times out of 10 what you write probably shouldn't be used in production.

Hmm, so now we're moving onto 90% of the time you shouldn't use your own authentication / password storage scheme in production? So now it's not just the encryption algorithm, it's the whole login/permissions system that I should rip out? I'm not even going to touch that one, sorry.

This whole conversation is based on the above users belief that unless you are using bcrypt to encrypt the passwords in your database, you are doing a moral disservice to your users. I and at least one other guy have chosen for varying reasons to use salted SHA256.

If anyone can prove to me that salted SHA256 is easily crackable, not by NSA super computers, but by some guy who just might want to steal the database of my little application and crack my users passwords, then I will strongly reconsider my choice. This is not a dick size competition, I'm not a security expert, I'm not challenging anyone to prove me wrong, because I don't think I have the first hand knowledge to know if I'm right or not. But all the material I have found so far tells me that salted SHA256 is still viable encryption for my purposes.

If it's not, then I am genuinely interested to see the conclusive proof.

I wasn't necessarily saying you should rip anything out of your system. I haven't examined it, nor am I an expert on security (encryption, particularly is a rather complicated area filled with implementations with very subtle flaws, possibly undiscovered).

I wasn't trying to come of as critical of you, although I can see how my post could be read that way - I was just making the point that homegrown stuff in this area has a notorious reputation for being unreliable.

I would argue that if using bcrypt makes your passwords harder to crack than using SHA256, there isn't much of a reason to keep using SHA256 - salted or not - regardless of how hard SHA256 is to crack.

And yes, 90% of the time, authentication / password storage schemes exist for whatever framework or platform that you're using that have been thoroughly tested by people who probably know their stuff better than you or I - and, from a security standpoint, it's probably better to use their scheme as opposed to writing one yourself.

I can see where you're coming from. And trust me, I'm keenly aware that there are many people who have a better understanding of this and other issues than I do. This is the main reason why I'm using a framework to begin with.

However, as far as I can tell, none of the ready made authentication/password storage schemes for Rails use bcrypt in a cross-platform way, if they did I'd switch over. Where does that leave us? You can take that as a rhetorical question if you like.

That is a tough spot. I don't use RoR, so I can't offer much advice other than opening a ticket on your preferred methods bug tracker, or creating a patch - assuming they're open source and you're willing / able to do so.