If we're ok with "mostly fix it but if a few teenagers get through it's not the end of the world," then there are a few simple measures that could help a lot:
- Keep an eye out for any credentials posted online, and put those on the revocation list.
- Keep expirations short (and auto-renew).
- Keep the credentials in phone secure enclaves and USB hardware "wallets."
- Consider including private information like name/dob/ssn or credit card number in the credentials, so users have good reason not to share. (We could consider making USB hardware optional if we do this.)
Given secure hardware it might be possible to prevent proxies entirely, the same way we prevent other MITM attacks.
Failing that, we could start by making it illegal to run proxies. Installing a proxy on your phone would mean getting an app from a criminal, not checked by an app store, and giving the criminal a way to pay you. I wouldn't expect this to happen all that much. Installing on a computer, using a VPN, taking payment via anonymous cryptocurrency, sure, if the VPN isn't compromised. But I wouldn't expect all that many people to do all this. Generating the proofs is a bit expensive so you wouldn't have huge capacity per person.
Criminals in foreign countries could do it with stolen credentials, and they'd only need one. But our teenagers would have to pay a foreign company for the service, and for porn at least they could just pay a foreign porn site directly. For phones, the teenager would have to install an app to use the proxy, which is another dodgy untrusted app (on android, and not possible at all on iphone), and it's easier for parents to check what apps are on the phone than to check what websites the kid visits. And social media gets less appealing if a lot of your friends aren't on it.
If we want to lock things down harder we could go with criminal penalties for intentionally sharing your credentials, which I do not support, but would still be better than pervasive surveillance of everything we do online.
Requiring everyone to have secure cryptographic hardware would in one sense be annoying, but less so if we use it for other things too.
This is an argument about a crypto algorithm. If you somehow fix the mathematical problems I'll start checking how it behaves under ddos conditions and you best have a good answer. And I'm an amateur. With your attitude, I'd strongly advise against mailing the openbsd lists.
> Criminals in foreign countries could do it with stolen credentials, and they'd only need one. But our teenagers would have to pay a foreign company for the service, and ...
Indeed. You see the problem.
So now you're moving to making the system insecure (and obviously insecure). That was also not acceptable ...
You can have the system be:
* anonymous, but guaranteed to be insecure
* secure (or at least, as long as you get to use the police to go after "criminals"), but not anonymous
> If we want to lock things down harder we could go with criminal penalties for intentionally sharing your credentials, which I do not support, but would still be better than pervasive surveillance of everything we do online.
The only way to do this would be regular and surprise offline inspections of every device. Aside from being extremely impractical to do, it would also be much worse than online surveillance.
I'll note that you skipped over my point that even with a "perfect" system, teens could still pay foreign porn sites etc directly. And that using a proxy would require installing an untrusted app on the phone, which would be relatively easy for parents to monitor and could be prevented entirely on iPhone. And that we can probably fix proxies with secure hardware anyway.
And no, the police idea that I do not support would not require surprise inspections. It just requires careless teenagers to occasionally reveal their identities online, with enough evidence to convince a judge to issue a warrant. It's dumb to make a federal case out of this, but not as dumb as losing all privacy and anonymity online. And, as I mentioned, this is not something actually required to make the idea workable.
I'm not going to keep repeating myself so I think I'm done here unless you have a point I haven't addressed in previous comments.
The reason is that:
- We send a random number from the server at the beginning which is associated with the session, so a proxy can't just replay the encrypted proof.
- We pass the server key into the proof, so a MITM attack would give the wrong server key to the client, and the real server wouldn't be able to verify the proof.
Then with each request the secure hardware can provide encrypt(sessionid, nonce).
So, once again: you can have a secure system XOR you can have anonimity.
(to say nothing of the fact that because of EU regulations the secure element is not app accessible on either apple or android. So you won't just be dependent on Google/Apple, you'll be using their APIs (which report every authentication to them) every single time an ID is needed)
If you can identify the device even just with a unique identifier, it's not anonymous.
The whole point of zero knowledge is that you can prove you have possession of information with particular properties, without having to actually reveal the information. I explained how to use this in my first reply to you. You're just repeating your claim without bothering to understand the first thing about the technology I'm talking about.
Age verification itself is a change to regulations. Obviously to make a private system, our regulations would have to change in a way that allows that, instead of in a way that destroys all privacy as they're attempting now.
I showed how to eliminate proxies, and without that, the only hole is the credentials themselves getting passed around. If that happens at a small scale between people who know each other, it's a minor problem. If a credential gets posted online and widely shared, it's easy to notice and revoke it.
And you go in circles. One post, you drop anonymity, I point out that leads to security problem, next post you drop security and ... you get back anonymity, I point that out and, guess where we go from there? I mean your list of replies is becoming an ever stronger argument for what you're denying.
The reason we keep switching back and forth is that every time you make objection A, and I explain how the system addresses that, you switch to objection B, ignoring that I already explained how the system addresses that as well.
Which means your effectiveness is nothing if you have actual anonymity, because you can't catch who proxies. So you have a critical problem one way ... AND the other way.