Hacker News new | past | comments | ask | show | jobs | submit login
Bad Security at Evite (fnord1.blog.ca)
13 points by ardell on Feb 28, 2009 | hide | past | favorite | 22 comments



Didn't we have this discussion about password hashing already a few weeks ago?

If someone's snooping on your email, I think you've got bigger problems than a lost password, tbh.

As for hashing, again, if someone can get on the server and download the whole database, you've got bigger problems than password hashing.

I'm not saying this is a good practice, but I just don't think it's as big a problem as this guy is making it out.

Also, there's a balance between security and usability. For some kinds of users, not being able to tell them their password is actually a problem. Sites that are able to do that will have a competitive edge in getting those users. So the question is one of balance between usability and security, not just one of security.


I disagree that not being able to tell someone their password is a usability problem. Having a password reset system is just as usable and significantly more secure than having to store passwords in plain text.

And both of your arguments about having bigger problems are fundamentally flawed. Sure, if someone does get your db, you have a big problem, but that doesn't mean you shouldn't take precautions so that if it somehow happens they can't read it like a book. It's kind of like you're saying cars shouldn't have airbags because it's harder to honk the horn and if you do get in an accident, you've got bigger problems.

And someone snooping on your email is as easy as you accessing your webmail on an unencrypted wifi connection. Do you think everyone in the world makes sure they use the ssl version of their webmail in public? Because if not, sniffing packets is trivially easy.

My point is that the situations you mentioned only become bigger problems when you make no effort to protect these things.


> Do you think everyone in the world makes sure they use the ssl version of their webmail in public?

I know techies who don't use GMail who don't bother to explicitly using https://mail.google.com - I don't know why.


I didn't realize until recently, but GMail now has an option to automatically use https. It is under https://mail.google.com/mail/#settings at the bottom, and is turned off by default.


And there was an automated tool released last year to mess with those who don't do that:

http://www.google.com/search?hl=en&q=https+gmail+cookie+...


I prefer 1 way hashed passwords. But why assume they are doing it in plain text? Why not a two way encryption?


True, two way hashing is better than nothing, but it's still less secure than one way hashing (with a per-user salt) for passwords. All you need if one rogue employee and they can decrypt everyone's password. It's just difficult to justify the added risk when there usually isn't a need to retrieve the original password.

Edit: by "two way hashing" I meant encryption, not hashing. not sure where my brain was on that one...


As a practitioner in this space, I'm going to tell you that I don't know what this "two-way hashing" is that you speak of. There's a right way to store passwords and there's a wrong way. The right way is bcrypt. The wrong way is anything other than bcrypt.


Are you making a distinction between storing for verification and storing for use? The right way to store passwords when you use them to verify authentication is to hash (twitter verifying a login). The right way to store passwords when you need to use them to gain access on behalf of a user is to encrypt them (any third party "twitter application"). I ask because the first google result for "bcrypt" is http://bcrypt.sourceforge.net/ which is distinctly not hashing, where as the second one is for a ruby library interface to bcrypt hashing.


First, bcrypt is a one-way hash algorithm.

Second, the whole fuss about Twitter and OAuth is the degree to which people are not OK with giving their passwords to other people to use.


Yes, I was able to determine that bcrypt is a one-way hash algorithm. But part of my point is that the name is ambiguous because there are multiple things using that name. Even the wikipedia entry for bcrypt is for the encryption software ( http://en.wikipedia.org/wiki/Bcrypt ), not the hashing algorithm, so I was having a hard time finding out more about the algorithm other than that there is a ruby binding for it. Thankfully, the ruby docs contain references.

Consider this codinghorror posting, http://www.codinghorror.com/blog/archives/000953.html , where Atwood confuses the reasons why third-party websites would need to obscure passwords in the first paragraph and quoted section (a third party needs the plaintext of the password in order to offer integration services (assuming things like remote keys and oauth are not provided), so storing a hash of the password is meaningless in that context).

And I only used twitter and twitter applications as an example of a ecosystem that has, up until their oauth deployment, multiple consumers of passwords for different purposes (twitter for authentication, apps for integration), as a way to point out the confusion.


It's a really big problem.

If you lose your whole database to an attacker, you have a big problem.

If you lose your whole database to an attacker, and you stored recoverable passwords in it, everyone has a big problem.

There'd be something to debate here if fixing this problem wasn't 5-10 lines of code. But that's what it is. 5-10 lines of code to keep yourself from compromising tens of thousands of (email, password) pairs. There is no debate to have here.


I agree that storing passwords in plaintext is an anti pattern. But with a one-way-password-encryption setup you need a password resetting system, which is more than 5-10 lines of code.


You need many of those same lines of code to do password recovery if you store plaintext.


Use Anyvite.

http://anyvite.com


Evite is willing to sacrifice security for usability. Which makes sense, because it doesn't really matter if someone hacks your Evite account.


I don't think hacking the evite account is the problem. With many people using the same password across multiple accounts, getting their evite password may also be giving the password to countless other systems. So they are essentially sacrificing the security of their users, not just their own application.


I agree that people do that, and that ideally a website would would not email someone their password for the simple reason that people do recycle passwords.

But, the onus here should really be on the user. If they are careless enough to use the same password for everything, they are indicating that they are willing to trade some security for convenience. In my opinion, emailing users their password is just another security/convenience trade-off. I'd be upset to get my password sent in plantext from my bank, but not an invite website.


Sending your password after signup doesn't necessarily mean they're storing it permanently.


You're absolutely correct, but in evite's case they are storing them permanently. That's actually the reason I posted this was that I forgot my password and requested a reset (~5 years after signup) and they sent it to me in plain text.


And it doesn't mean they're storing it in cleartext either. For some reason I don't think he'd understand how virtual attributes work, though...


Progressive postal-mailed me a letter with password on it when they sent my first insurance cards.

I think some health insurance sites do the same thing.




Consider applying for YC's W25 batch! Applications are open till Nov 12.

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: