Comment by alkonaut
14 hours ago
Are you saying it would be impossible to have a service where the site (social media, say) would issue some sort of random token and ask me to sign it using a centralized ID service. Then I log in to the centralized id service and use it to sign the random token and bring it back to the service.
The centralized service see who I am, but not what I'm proving my age for. The social media or other site see that I have signed their token so would have the appropriate age, but not who I am.
What's impossible about this?
The problem with that is if someone gets a hold of the logs from both the centralized service and the social media site they can compare timestamps and may be able to match them up.
Most people will be doing the whole process (site gives token, person gets token signed, person returns token) as quickly as possible which limits the candidates for a match. Worse, if the central service is compromised and wants to make it easier for log matching to identify people they could purposefully introduce delays which would make it easier to distinguish people.
Most people will use the same IP address through the verification process which would really make it easy.
Yes, timestamp comparison will be possible. I don't think there is a reasonable way around it? And authentication on to someone else is also unavoidable with reasonable privacy. I think a system with both of those drawbacks is still preferable to most other options.
The way most proposals that want to support age verification (or verification of other things from a typical ID such as country) without disallowing anonymous users is to involve secure hardware.
Briefly, someone (probably your goverment) issues a digital copy of your ID cryptographically tied to a key in a hardware security module you provide. There is a protocol that can be used to demonstrate to a site that you have such an ID and that you can perform operations on it using that key, and can be used to disclose anything from the ID that you wish to disclose (e.g., what country you are in, or that your birthday on the ID is at least 18 years in the past) without disclosing any other information from the ID.
This avoids the timestamp problem because the issuer of the ID is not involved in verifying things from the ID. They have no idea when or how often people are using their IDs.
So far people working on these systems are using smart phones as the secure hardware with the keys locked behind biometrics. Google's made on open source library for implementing such systems, the EU has one nearing release after several years of development, and I believe Apple's new ID storage in Wallet supports such a system.
The EU has said that they plan to add support for security devices other than smart phones, such as stand alone security keys or smart cards.
Just let people freely register as many virtual ids as possible (and confirm with the real id). Then use that virtual ids to register in actual services.
This allows anonymity, security (no timestamps comparison), freedom of speech and expression (to have independent accounts not linked to the main virtual id).
This is no different from VPN providers. Maybe have the central authority keep no logs just like VPN companies. We already have government agencies that do that for instance the agency that handles text to speech phone calls for deaf people. Alternatively use a VPN to sign the token.