Want to test this technology live? Download the Google password check extension from the Chrome store
How do you protect the long-tail of sites across the web? Attackers have access to billions of usernames of passwords. User don't have resources to address this.
* But may not be accurate because only uses username.
* Privacy risk, even if sharing only SHA-1 hash of password -- what if the site is an attacker?
A note on ethics: they're only looking at this to re-secure user accounts. But any protocol they build to help users has to protect privacy as a ground principle.
1. Accessible to all users, sites
2. Actionable, not informational -- only tell passwords breached to tell you to reset
3. Breached not weak -- tell you only when your username/password is exposed
4. Near real-time -- fast enough to integrate with login flow
What if the client is adversarial? What if the server is?
But that would mean you'd need to return billions of records! That's too much.
Static serving of hashed, encrypted database. Client handles majority of work. That scales nicely for the server.
They have a CCS paper from a few years ago on how they get the data breach information they use to back the service.
on login: domain, timestamp, breach status, hashing perf
on ignore: domain, timestamp
on password change: timestamp [missed the rest of list, but I assume domain, breach status]
This helps understand whether they're nudging appropriately and helpfully
8.5 seconds to get an answer (1/2 in proof of work)
21 million logins scanned first month:
~1/2 of users saw a warning
>1.5% logins on the web are breached
Government: .2%
Finance: .3%
Email: .5%
Shopping 1.2%
News 1.9%
Entertainment ~6%
... over a lot of people that's a lot of insecurity
* we can't know where to send people to change their password
* not everyone can change password
... so that's good and want to keep working
94% of password as strong or stronger than original
* share breaches to increase coverage
* improve protocol for low-end devices
* improve UX for account recovery
A: the API is open -- they could integrate this service!
A: we thought this was OK because the site already has username/password, so the risk of adding more detail is quite small
A: because user attention is precious and credential-stuffing is such a big problem that we wanted to start there
A: we didn't have that expertise, but we modeled after everything SafeBrowsing has learned
A: because we don't want to send the username/password up to the server -- if we do it on the server we need username/password