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?
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.
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.
[1] https://blog.cryptographyengineering.com/2018/10/19/lets-tal...