Closed cloudiirain closed 8 years ago
@SunDwarf has declared Flask-Security <3
I'm happy with that and so is @GetRektByMe
Firebase also allows traditional username/password logins as well.
That way we'd only have to store user tokens in the database, no matter the auth method used. Further, we'd only get access to the users information (e-mail) when we need it.
So, even if the database is compromised, the attackers wouldn't even get a list of e-mails, just a bunch of tokens which would be pretty much impossible to de-hash.
Yes, but then you have the issue of trusting anyone else with your security details (which is a big no)
That's always an issue. One way, the users would have to trust us , and the other, trust Google And honestly I would trust Google with security details more than ourselves, because let's face it, if Google gets compromised, the world has much bigger issues. Also: https://www.youtube.com/watch?v=8ZtInClXe1Q
We don't want to risk our user's private information getting compromised. In my opinion, NOT doing authentication ourselves is the best way to do that. And further, its not like Google is just storing a HashMap, of user auth data. All they're doing is hashing the data (and salting) we send them and comparing the hashes. With their vast amount of experience on the matter, I'm pretty sure Google would do a good job. And if you're worried about DMCA people knocking on Google's door, they would probably say, "we don't have that information" because they don't store that information in plain text, and the salted hashes can't be undone.
In the end, you still have to send the data over the wire. Who knows if that's compromised or not?
It doesn't matter what company you use, you're still sending it to a third-party, which you don't have control over, or control over the intermeditary parties transmitting the data.
Again, that is still an issue regardless. The user still has to send their password to us. However, the issue is the storage and actual authentication process. And there are not intermediary parties, just us and Google. If you don't trust TLS 1.2, we might as well give up.
For that matter, who knows if the user's machine is compromised or not, or the ISP is compromised or not? There are a dozen holes in authentication, I'm trying to solve just a few.
If we just DON'T store passwords and e-mails we can further protect the users' information.
Saving both of these links for later reading.
I personally think both of you have valid points. I do think that using Firebase is more secure then storing data locally -- however, it's a business decision. Flask-Security should be secure enough for production, but how much more secure you want to be is a whole another question.
I'm going to start a branch with Flask-Security because the documentation is straightforward and Fuyu has experience in it (which is very valuable, by standards). ...also part of me just doesn't want to go through the process of making accounts and setting up data stores with Firebase. ;-; ...because laziness. :c (If we did end up going with Firebase, I think @viggy96 might need to do most of the setup since you seem to be familiar with it). Flask-Security is personally more familiar to me because most web frameworks have a similar extension.
Decided on Flask-Security
Switched to hashing with scrypt
Summary
We need to discuss and decide on what auth system to use.
Current Opinions
Some Auth Extensions commonly used with Flask
(Note I haven't looked into most of these carefully. If you have existing experience with any of these, feedback is appreciated)
If you find blog articles or posts commenting on Flask auth, share them please!