I used to download the whole file and check locally, but it’s too much of a pain to do consistently.
I used to download the whole file and check locally, but it’s too much of a pain to do consistently.
I applaud them for limiting the risk. But when the information shared with them let’s a bad guy know the 500 possible matches out of trillions, that’s not good.
It’s not literally clear text, which is nice. But it’s not without risk. And it’s not a good practice to share portions of password hashes with untrusted parties. Like a friendly hacker who runs a nonprofit site or whatever company buys it.
Effectively, since HIBP asks for 5 characters of the hash, the space is the same as if the full hash were 5 characters shorter.
I guess it’s only a 1:500 if the password has been pwned. In which case, the owner should promptly change it and remove the risk.
Thanks, I didn’t think of that. For some reason I was stuck in thinking that all passwords have been pwned and in the file.
Anyone who takes my security recommendations is already familiar enough of my math vs informed prejudices balance.
Thats not how it works. You hash your password first and then take the first 6 chars of the hash to query the api. The api then returns all of the hashes that begin with those 6 chars and you scan the results for your full hash.
https://blog.cloudflare.com/validating-leaked-passwords-with...
https://blog.cynosureprime.com/2017/08/320-million-hashes-ex...
I wonder if segments of the list are around to create a password-blacklist
edit: previous discussion https://news.ycombinator.com/item?id=16799826
However, this shouldn't be alarming.
1) Attackers already have the plaintext password of these hashes. That's why they're in HIBP's repository in the first place.
2) You should already assume most sites/apps don't have proper security hygiene. Password re-use is what will get you. If you wish to warn your users if they're reusing a password, then HIBP's API should already do well for that.
3) You have truly astronomical odds of generating the same password as one in a leaked database should yours contain enough bits of entropy. Remember that GPU's are making millions of guesses per second in the first place when cracking passwords, and significantly slower if the hashing algorithm protects against GPU attacks.
Even less so with the strategy of just sending a small hashed part of the password to HIBP like others already explained.
Troy’s site asks you to send passwords? Not just login identifiers like an email or username?
In that case, you should AT LEAST be sending a hash of a password, a very key-strengthened hash (like sha2 done 1000 times) and on his side Troy can see if it matches anything.
I really feel Troy has handled HIBP very, very carefully, honestly, and with the utmost transparency so far. He seems to have put in a lot of thought into everything - whether it is rolling out a feature or planning the future of HIBP.