Asking users to upload a government ID is the surest way to know they're real and that they only have one account. It also means you now hold a pile of passports and driver's licences: a breach target, a compliance burden, and a step that makes many people abandon sign-up. This guide explains how to get the benefit of an ID check without keeping the identity.
What you actually need from an ID check
Most sites don't need to know who a user is. They need two facts:
- This is a real person, not a bot or a fake.
- This person doesn't already have an account here.
A traditional ID check (KYC) answers both, but by handing you everything: name, birth date, address, document number and photos. Unless you're legally required to know your customer, as banks and some marketplaces are, most of that is risk without benefit.
The problem with storing IDs
- Breaches. Identity documents are among the most valuable data an attacker can steal, and the most damaging to the people they belong to.
- Regulation. Privacy laws such as the GDPR and US state privacy laws put duties on whoever holds identity data. Face data used in the check can fall under biometric laws such as Illinois' BIPA.
- Abandonment. Many legitimate users won't upload an ID to a site they've just found, especially for communities and apps where privacy matters.
- Cost. Each check costs money, and people who use many sites get checked again and again.
The alternative: verification that hands you only a yes
The privacy-preserving approach puts a third party between the ID check and your site. The person verifies once with that service; your site receives only the answers it needs.
Human Pass works this way:
- The person verifies once, with a government ID and a liveness check, through an identity-verification provider.
- Human Pass keeps one-way fingerprints of the document, never the document, the name or the birth date. That's enough to recognise the same document again, so one person can't create two Human Passes, but not enough to reconstruct who they are.
- Your site gets a signed answer: "verified, unique person", plus an ID for that person on your site. It's the same every time they sign in, so one person means one account, and different from the ID any other site gets, so people can't be tracked between sites.
There's nothing for you to store beyond that ID, and nothing to breach. If you need one more fact, such as "over 21", it can be shared as a yes or no, only with the person's consent.
What to tell your users
The way you ask matters as much as the technology:
- Say what you get and what you don't: "We'll know you're a real, unique person. We won't see your ID or learn your name."
- Explain why: fewer bots, scammers and fake accounts for everyone.
- Make it a one-time step. With a reusable service like Human Pass, a person who verified on another site just signs in.
When you do need full identity
Some businesses must know exactly who their customers are: regulated financial services, some marketplaces paying out money, and age-restricted sales in some places. Privacy-preserving verification doesn't replace KYC there. It complements it everywhere else, and can cover the steps before a full check is required, such as sign-up and community access.