News for hackers. Stuff that matters.
Re:Robinhood Stored Passwords in Plaintext by fortenforge on Wednesday July 24, 2019 @05:59PM (#20520309)
If you hash the password on the client, then the hash essentially becomes the new password and you haven't solved anything. What you're looking for is a password authenticated key agreement in which one party authenticates to another without an eavesdropper learning any secret [1]. For whatever reason, no major websites use PAKEs today.

[1] https://blog.cryptographyengineering.com/2018/10/19/lets-tal...

Re:Robinhood Stored Passwords in Plaintext by mnem on Wednesday July 24, 2019 @06:09PM (#20520436)
I agree that it becomes the new password, but it prevents your own site becoming a contributor to credential stuffing attacks - if you don’t have the clear password transmitted to your systems, you can’t leak it accidentally in logs or through poor DB practices.

I wonder why PAKEs haven’t caught on?

Re:Robinhood Stored Passwords in Plaintext by ynniv on Wednesday July 24, 2019 @06:14PM (#20520502)
Anything faster than bcrypt is practically clear text due to brute forcing, and running bcrypt inside the user interface is needlessly expensive. The common practice is to ensure that passwords are checked and discarded before they can be accidentally disclosed, or to avoid re-usable passwords altogether. Production logs should also only be accessible when there is a direct need. Sometimes this still fails, but it is relatively rare in well run sites.
Re:Robinhood Stored Passwords in Plaintext by jsw on Wednesday July 24, 2019 @06:36PM (#20520711)
The AWS Cognito User Pool Authentication Flow utilizes an augmented PAKE (SRP). I imagine there are a number of major sites that use Cognito along with the SRP auth flows baked into their std libs. I know I've used it a number of times.
Re:Robinhood Stored Passwords in Plaintext by sroussey on Thursday July 25, 2019 @01:41AM (#20522861)
I implemented SRP a decade ago — it has issues, and thus a lot of revisions. It also leaks your salt and you can’t use a pepper. There is Opaque (see the play on PAKE! but it’s new and difficult to search for).
Re:Robinhood Stored Passwords in Plaintext by gdhbcc on Wednesday July 24, 2019 @06:07PM (#20520417)
But you have. It means even if you refuse your passwords elsewhere, only the website that was compromised is compromised.
Re:Robinhood Stored Passwords in Plaintext by allset_ on Wednesday July 24, 2019 @06:33PM (#20520682)
You can (and should) store the salt server-side. Moving the hashing to the client does not solve anything.
Re:Robinhood Stored Passwords in Plaintext by rocqua on Wednesday July 24, 2019 @06:27PM (#20520626)
Really, that should be a salted hadh to really defend against password reuse.
Re:Robinhood Stored Passwords in Plaintext by Someone1234 on Wednesday July 24, 2019 @08:41PM (#20521608)
Blizzard Entertainment uses a PAKE implementation (SRP).

This article (somewhat ironically) talks about it:

https://arstechnica.com/information-technology/2012/08/hacke...

Re:Robinhood Stored Passwords in Plaintext by mehrdadn on Wednesday July 24, 2019 @07:50PM (#20521305)
I don't know PAKE to know if this is equivalent to it, but you can use a timestamp + hash to avoid sending anything equivalent to a password. The caveat is your system needs to have the correct time set. But otherwise it works fine.