Apologies if this isn’t the right place to ask this, but I thought actual developers with a deep understanding of how technology actually works would be the people to ask!
If you were tasked with setting up a safe and secure way to do this, how would you do it differently than what the UK government is proposing? How could it be done such that I wouldn’t have to worry about my privacy and the threat of government suppression? Is it even theoretically possible to accomplish such a task at such a scale?
Cheers!
EDIT: Just to be clear: I’m not in favour of age verification laws. But they’re on their way regardless. My question is purely about the implementation and technology of the thing, rather than the ethics or efficacy of it. Can this seemingly-inevitable privacy hellscape be done in a non-hellscapish way?


The short answer is yes, it can.
I actually think the best method is to put the onus on parents to parent in the way they think best, while giving them effective tools with which to do it. Parental controls should be baked into the OS, and sites should be required to hook into these parental controls via an API. The system could even have the capability, optionally, to block based on a crowd-sourced list, so it can still be effective against non-compliant sites. There would be no privacy problems, because no private information is ever shared. There isn’t even a middleman who has to see any identification at any point.
However, if the goal is to have specific age verification that actually enforces age, it’s still possible. I know of two main ways.
Here’s the first: https://crypto.stackexchange.com/a/96283
It has the downside of requiring a physical device like a passport or some specific trusted long-running locally-kept identity store held by the user. But it’s otherwise very good.
Another option does not require anything extra be kept by the user, but does slightly compromise privacy. The Government will not be able to track each time the user tries to access age-gated content, or even know what sources of age-gated content are being accessed, but they will know how many different sites the user has requested access to. And sites requiring age verification will not get access to any information they didn’t already have other than the simple answer to the question “is this user old enough?” It works like this:
Tthat can uniquely identify that user.B(T). Nobody who receivesB(T)can learn anything about the user.B(T)and whatever evidence is needed to verify age.S(B(T))and returns it to the user.S(T). This allows them to see that it is the same tokenTrepresenting the user, and to know that it was signed by the AVS, indicating that the user is of age.All of the moving around of the token can be automated by the browser/app, if it’s designed to be able to do that. Unfortunately a typical OAuth-style redirect system probably would not work (someone with more knowledge please correct me), because it would expose to the AVS what site the token is being generated for via redirect URLs. So the behaviour would need to be created bespoke. Or a user could have a file downloaded and be asked to share it manually.
The AVS could also be private third parties rather than governments, if necessary. Since it probably relies on government ID, I think it’s better for the government to do it, but technologically there’s no problem with private companies doing it. They would still not gain any information about which sites you access. Only that a user with this ID card tried to access an age-gated site.
There’s also a potential exposure of information due to timing. If site X has a user begin the age verification flow at 8:01, and the AVS receives a request at 8:02, and the site receives a return response with a signed token at 8:05, then the government can, with a subpoena (or the consent of site X) work out that the user who started it at 8:01 and return at 8:05 is probably the same person who started verifying themselves at 8:02. Or at least narrow it down considerably. Making the redirect process manual would give the user the option to delay that, if they wanted even more privacy.
The site would probably want to store the unblinded, signed token, as long-term proof that they have indeed verified the user’s age with the AVS. A subsequent subpoena would not give the Government any information they could not have obtained from a subpoena in an un-age-verified system, assuming the token does not include a timestamp.
Contracts only for those 18 and older… So no internet for anyone under 18, or else the parents have to sign the contracts and take responsibility for their upbringing, etc… Oh, damn…
I’m not sure what you mean. Nobody’s talking about contracts?
Exactly, that’s the problem. That’s where age verification comes into play (at least in Europe). It doesn’t matter whether it’s prepaid or not. If a minor has internet access, it’s automatically considered to have parental consent. (No anonymous Internet connections… No anonymous SIM cards… Everything has already been verified with real data.
Do you want to register for internet service? You need to provide valid information and be of legal age.
Do you want a prepaid SIM card? You can only register for one with valid information and only if you are of legal age.
So we’ve had age verification in place for a long time. )