Firefox to Warn When Saved Logins Are Found in Data Breaches
bleepingcomputer.com
bleepingcomputer.com
https://haveibeenpwned.com/API/v2
Please note rate limits/ abuse policy so everyone can use:
https://haveibeenpwned.com/API/v2#RateLimiting
(I am not affiliated)
The mechanics behind the v2 API (using k-anonymity with hashes [1]) are pretty interesting too. Troy has clearly put a lot of thought and time into what started as a pet project a few years ago and should be infinitely commended!
[0] https://blog.1password.com/finding-pwned-passwords-with-1pas...
[1] https://www.troyhunt.com/ive-just-launched-pwned-passwords-v...
I would be very concerned if my credentials are being shared in _any_ form with 3rd parties without my explicit permissions.
I hope this firefox feature is disabled by default.
[0] https://app-updates.agilebits.com/product_history/B5X [1] https://support.1password.com/kb/201907/
Just to clear this up: The code for this is actually way simpler and sends no data to either Mozilla nor HIBP. To prevent Firefox from sending data update pings to HIBP, Firefox Monitor maintains a copy of publicly available HIBP breaches and their metadata [1] in the Firefox "Remote Settings" service. [2]
Using that data, Firefox simply checks for saved logins for breached sites where the saved password is older than the breach. [3]
[1] https://haveibeenpwned.com/api/v2/breaches [2] https://wiki.mozilla.org/Firefox/RemoteSettings [3] https://hg.mozilla.org/mozilla-central/file/6484c07ff8364991...
"Firefox downloads a list of breached domain names and the date they were breached, and merely checks if you have any stored logins on any breached domains that are older then the breach date."
I've always been a huge fan of the project (and Troy) and understand that it's gotten to a point where he can't keep running it as a spare-time project, but I'm still not very happy about seeing it being shopped around. I can't see how this type of service needing to find a way to become a business will be a good thing overall, especially when it keeps getting integrated into other programs and services like this. Troy pledges that nothing will change, but every company getting acquired does that, and then things change anyway.
The best result would probably be something like Mozilla buying it and/or paying Troy to just keep doing what he's doing.
Mozilla could very well be one of the potential candidates for HIBP ownership.
They are a known candidate, but they fall further down the list on some of his criteria than he would like. However, he doesn't provide any further details on this issue.
Meanwhile, he continues to look for other candidates.
I'm no longer a fan.
Guess I shouldn't have trusted him with my personal information.
I used to download the whole file and check locally, but it’s too much of a pain to do consistently.
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.
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...
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.
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.
I've always questioned the logic making 500,000,000 passwords off limits when no connection is made to the username. Work-factor hashing algorithms, rate limiting account locking and 2FA are supposed to protect user from brute force attacks. I think they can handle an attack based on 500 million possibilities.
Now, if they matched the username/password pair, that would be great.
And all the major password cracking tools will typically try all the known bad passwords, before they try anything else. And they'll try all known likely variants, before making any potential brute-force attempts.
So, it doesn't matter if the password you want to use is on this list and you want to use it anyway, just because it has never been associated with your userid.
The simple fact that you're trying to use a known bad password that has ever been used before by anyone else, is enough to increase by many, many orders of magnitude the likelihood that someone will be able to crack your new favourite password.
Bad passwords are simply bad, regardless of who tries to use them. Some are worse than others, but they're all bad.
This aspect of HIBP helps you discover if any of your passwords have ever been cracked by anyone, and therefore now on the list of known bad passwords.
Protip to Firefox: Advertise this feature more. The other stuff I don't really care about, and didn't really convinced me to move to Firefox. Fear is an excellent motivator, however.
(+endorsement: it's a really great feature for power users)
I'm not going to get my mother to use containers to keep her banking separate from her knitted craft forums, the same way I'm not going to get her to use a password manager, but I can install the Facebook Container and buy her a book to write passwords in so she uses more than two different ones.
The new 2.x release of Facebook Container allows people to use "Log in with Facebook". To do so, it adds the site into the Facebook Container so sub-resources and 3rd-party cookies are available to the Facebook SDK js.
It warns the user before they enable this on any site.
1. most people don't need many passwords outside of the browser.
2. in-browser password managers can offer a better user-experience than standalone password managers. (although, so far, firefox's built-in password manager is lagging behind in this regard.)
3. password managers integrated into the core of the browser have a smaller attack surface than those implemented as plugins.
4. users of a particular browser already trust the browser vendor with their passwords, at least enough to let the browser see and transmit them every time the user logs in to a site.
(Disclosure: I work on Chrome, though on Developer Tools)
Both my parents use Chrome because it's already installed on Android and works fine. My attempts to convince them to Firefox didn't work out even with multiple attempts.
Is money involved in this partnership? If so, who paid whom?
What was the motivation behind this? Is there any study that shows any benefit from haveibeenpwned.com? I.e. has there been a decrease in hijacked accounts, etc?
I don't think there's been studies, but it seems obvious to me that the goal here is to prevent re-use of leaked passwords, and I'd consider it a surprising result if this wouldn't help in that.
> When we first implemented the check, about 19% of logins were greeted with the message that their password was not safe enough. Today, this has dropped down to around 11-12% and hopefully will continue to go down.
From https://www.eveonline.com/article/pu2gdi/account-security-im...
(Edit: though I wonder whether the really non-technical ones will not interpret this as having to change the displayed saved password, rather than having to visit the website.)
They're not storing your passwords remotely, though. They're asking haveibeenpwned which maintains a list of leaked login information from past breaches.
https://blog.cloudflare.com/validating-leaked-passwords-with...
[0] https://github.com/mozilla/blurts-server/blob/master/hibp.js...
As far as I understand [1] Firefox will notice you if the domain was breached and your password is older than the breach.
Also they can just query all the usernames (email addresses) of the accounts and get notifications if any of those usernames have appeared in breaches.
No, only you (well, your computer) knows if your password was found.
Essentially, the client hashes the password and then only sends the first 5 characters of the hash to HIBP. HIBP then returns the hashes of every password whose hash begins with the same characters (approx 477 matches, according to the article), and then it's up to the client to determine if there's a match.
That’s a ridiculously small number of possible values for a powerful actor trying to crack a password.
So it’s not all possible hashes with that prefix, it’s only the hashes of entries in the known passwords.
If the server was compromised, it would be able to know which users requested which hash prefixes and compare that to the “known hashes” that match that prefix. Not all passwords submitted are matches, but some are. And it’s likely that a users pattern of testing particular hash prefixes could make it much easier to crack a password.
[0] https://blog.cloudflare.com/validating-leaked-passwords-with...
Knowing the hash prefix of someone’s password doesn’t help you guess it. You can’t plan your guesses to have a matching prefix or anything. If your password is in the list, then the full hash is already out there and you should stop using it, because it’s probably been brute forced by someone or people are trying to guess it somewhere.
Are you talking about an interop standard for storing/sharing passwords, or for generating them?
Because the latter is hobbled significantly by a twisting maze of password requirements and login form implementations by sites (banks, webmail, etc).
Is what we need. You can export from Chrome to a CSV, and you can import that CSV into 1Password, but no way to get those passwords into or out of Firefox that I've found (please tell me if you have a method..).
https://github.com/kspearrin/ff-password-exporter/blob/maste... :)
It would be nice if there was a way to do this without touching the file system, although I suppose a ram backed filesystem would be a bit better, provided it didn't get swapped. But letting my passwords get stored in plain text on my spinning rust, even for just a minute or two, seems less than ideal.
which is an interop standard for websites to expose a "Change your password" page, which is a good place to start. It lets the password manager link directly to "your password for foo.com is expired/known to be leaked/weak, [change it here]"
my biggest qualm with the UX of firefox's password manager is the "master password" feature. it's a password you must enter to unlock your keychain. that's a must-have for me.
what firefox does wrong:
* it's rendered as a simple dialog prompt, identical to javascript's window.prompt. could be faked by a site for phishing.
* the unlock prompt launches once, about 30 seconds after the browser is launched (right while i'm in the middle of typing a URL) and grabs focus.
* if you don't provide a password, the prompt will show up again each time you visit a page that has a login form for which you have a saved password, even if the login form is hidden with CSS. many sites have login forms on every page.
* there's no way to unlock the keychain on a per-site basis or lock it again once you've unlocked it (besides closing the browser).
what i want is:
* when i'm about to log in to a site, i expect to provide my master password and have firefox autofill my saved password for this site only.
* if i need the password again later, or a password for a different site, i expect to have to provide my master password again.
* a dialogue that i can trust to have come from the browser itself rather than the webpage.
* not to be interrupted by the dialogue unless i need to access a saved password.
I'm just curious if they intend to fully replace third-party password managers.
For example, "password" hashes to "5DAA6", and the resulting bucket[1] lists secure hashes of several dozen passwords.
The client then generates another hash of the password (eg. "1E4C9B93F3F0682250B6CF8331B7EE68FD8"), and checks if that secure hash is in the bucket (it is, "password" has been compromised at least 3,730,471 known times).
Why would it need to send the passwords?
Could it not download a list of a every site that has ever been hacked along with their domain list and the date of the hacking, then warn you if you have a saved password for one of those domains that was saved before the domain was hacked?
Because that's what it does.
Will this feature be enabled by default?
Can this be disabled?
https://haveibeenpwned.com/API/v2#SearchingPwnedPasswordsByR...
As far as HIBP linking your email to specific breaches, well, it is essentially using public data sets so that disclosure exists already (before HIBP even enters the picture). They are a bit more reserved with certain cases (the Ashley Madison breach for example), but even then if someone wanted to locate email addresses in that breach, they'd just go get that data set.
This feature has a potential in connecting a browser (instance/session/ip) to an email (even in the form of abbreviated hash), which I would consider a security risk.
They look at breached sites and rather or not you saved a login for that site on a date before the site was breached.
What's so compelling about this website? To me, this looks like yet another silly idea people coalesce around and find important. In having a discussion about this, someone mentioned how it's not that different from Facebook and Cloudflare in managing something technical for those who don't care to, and I find this a rather decent comparison. This is yet another centralized and completely unnecessary entity.
I don't see the appeal and I don't like what I regard as a stupid idea receiving so much attention from so many groups. This isn't surprising coming from Troy Hunt, however, who I best remember as the person bitching about an ad blocker blocking an ad he found acceptable.
I'm sure there's nothing to go wrong with that wonderful plan! Taking control away from the user is a great idea!
Except that it's not.
Basically, it asks for all pwned hashes that start with the same 5 characters as your password's (hex-encoded) hash. So yes, there is an information leak (the first 5 characters of your hash), but it's an extremely unimportant one. Even knowing the first 5 characters, there's still 2^140 possible hashes it could be. And of course they would then need a pre-image attack on SHA1 to deduce your actual password from that.
More detail here: https://www.troyhunt.com/were-baking-have-i-been-pwned-into-...
Finally, I'm sure this option will be possible to disable, probably in settings but certainly in about:config.
Could it not download a list of a every site that has ever been hacked along with their domain list and the date of the hacking, then warn you if you have a saved password for one of those domains that was saved before the domain was hacked?
Because that's what it does.