So I think from that view the eID works pretty well, it provides the minimal necessary information. The bigger issue with something like this is if you use them to enforce real name policies or stuff like that.
Edit: unless there’s a blind middleman that has tight data policies?
Hopefully some countries will do it the correct way.
AFAIK the EU age verification app works by requesting bunch of digitally signed "proof of age" tokens (openid verifiable credentials) from a government institution and sends (uses up) one when you want to prove your age to a website. The website can check the validity of these tokens without connecting to the government institution.
They are even trying to do some form of blind signature or zero-knowledge proof to have better protections.
https://ageverification.dev/av-doc-technical-specification/d...
Age verification laws are easy to circumvent and they are bad for many other reason though.
Is that worth it? No idea—but I'm willing to bet some surveillance advertisers think it's worth it.
However doing dozens of requests requires the user's approval each time which may raise red flags and I can imagine your certificate revoked.
But even then, I can volunteer my ID, keep it permanently attached to a computer running a server that allows certain requests (like the boolean age check), and then provide an API / client that allows anyone anywhere to use it to pass.
No risk to me (none of my data leaks), presumably no rate limits (the card has no way to track time; at best it could store recent request timestamps but I doubt it does).
In fact even better, use stolen or lost cards. Owner will get a new one, but the old one has no way of knowing it's voided. We can build a network that is able to sign whatever info (age, gender, city, name) you want, as long as we have one ID with such info.
If it turns out to be a real issue, we could figure out a way to implement pairwise pseudonyms, so that each ID has a pseudonym with each service that is unlinkable to other services. If you see a million requests from a pseudonym, that pseudonym probably an ID being abused and you can block it.
That’s not technical problem and it doesn’t have to be a technical solution to it. You will be committing fraud and maybe a few other crimes if underage users are involved. As soon as you will start advertising the service, you will be on law enforcement radar. Or maybe you don’t advertise it, but one of the boys using it will brag at school and get someone’s attention…
Hmm. It's not clear from the description that it is so. The government knows which site sent the request and authenticates your card, which is tied to your identity, right?
The certificate is passed to the user's ID card where that information is populated, the document is cryptographically signed, and returned to the requesting party after the user reviews and approves the transaction.
I assume it's a variant of PKI, with everyone trusting the government's root key, and each ID card storing a unique certificate signed by that root key. But an ID card will only have a single certificate, so it would be trivial to see that multiple data snippets were signed by the same certificate - and therefore the same person. That would allow a website to track users across sessions - or even across websites.
-the ID card which trusts the government PKI and has its own private key and certificate
- the application that does some certificate checks and facilitates communication between the card and an eID server
- an eID server which is connected to the PKI and regularly received short lived certificates to present to the card, does revocation checks, validity checks and a bunch of other stuff. Also provides a list of fingerprints of TLS certificates of eID services allowed for the session
- an eID service which opens a session with the eID server indicating requested data and ultimately receives this data from the eID server. They own the legalese certificate of which data they have access to.
- maybe another provider wrapping all this and the required certifications,. compliance and hardware into an easy to use API. But could also all be the same.
It could be argued that the government has influence on the eID server providers - which do the actual communication with the card and are the first to receive the data before passing it on - via access to the necessary PKI, but they're not directly involved in the communication.
You are completely correct that civil law jurisdictions have already solved this: Germany, Estonia, and many others have the all the requirements: a register of all persons available to the central authority, and crypto infrastructure to make it work.
What's missing from the UK, Canada, USA, etc. is the first part! It is hard to believe if you live in Germany, but there really is no big master list of people in those countries. There are many (many, many) lists, linked badly by many different ids. The tax registry, pension registry, drivers license registry, and visa registry are some of the big ones.
Things could be so much simpler if we had such a thing, but the politics between here and there are basically impossible.
Your birth certificate is still stored somewhere. You're still entered in a bunch of databases from the moment you're given birth to in a hospital. You still get a social security number, which you need to work, which you need to do to afford food.
Sure, all those databases might not have a neat shared primary key, but that's definitely not going to stop future Holocaust 2.0 perpetrators from joining all those tables together.
Didn't we have a recent example with DOGE ?
Then it's just a matter of making sure that everybody with the skills to do so, either refuses, or does a bad enough job to sabotage other parts of the process. (It is not hard to think of these, so I will not discuss them here.) Making the job legitimately difficult makes it easier for people to refuse to do it, and makes it more likely that the bad guys who try will find that they actually can't.
The USA 100% has this, it's just secret and much less useful for it. The SSA is 95% there.
There are also obviously better ways (https://blog.cloudflare.com/privacy-pass-standard/ possibly some variation of zero knowledge proofs) but technically this seems like a solvable problem. Money wise the IDP or in general verifier can charge users for an account and/or generated assertions.
- How can you ensure the system can't be abused if there's no identifying information passed? Don't get me wrong, this is also a problem with current systems, maybe even worse. But if it's privacy preserving, ... Almost all kids under 18 have parents or guardians. Almost all of those parents or guardians are 18 or older. So literally all you have to do to bypass age verification is steal their ID for a few minutes? There are also a myriad of solvable problems that aren't guaranteed to be solved without care, like ensuring that the same ID is not used 100,000 times.
- This is a job that is best suited for the government to handle. The internet is global though, and there are a lot of governments. In the U.S., there is in fact not one federal ID, but instead we use state IDs. I assume that means you now need to handle around 50 different state IDs to be able to verify someone's identity, but it actually gets even worse than that, because some people will have IDs, and some will have drivers licenses, because oddly enough that's just how we structure IDs here. People without drivers licenses may have state IDs which are often intentionally visibly distinct to make sure they can't be mistaken for the other. In states I'm aware of, you'll never have both, the driver's license acts as a state ID if you have one. Now scale that to every country on Earth.
- As insane as it may sound, there are plenty of people who don't have essentially any form of ID. You might think I'm over-estimating the numbers with "plenty", but even just in the United States, it's literally over 2.5 million, off the top of my head. (No idea what the best source is here.) The closest thing we have that every citizen is supposed to have is Social Security, but that isn't really usable as a form of ID for various reasons. (And frankly it's a pretty terrible means to verify someone's identity at all anymore in the Internet age, but oh well.)
I'm totally sympathetic to the fact that people really don't want their kids browsing porn on the Internet, but children basically can't pay for Internet access or afford iPhones. I think it's insane that people keep suggesting using advanced cryptography, zero-knowledge proofs, privacy pass tokens or whatever else for a problem that so clearly needs to be solved socially and not technically. (And obviously, only the surface-level aspects of this are really about porn. We all know it's deeper than that, and if it wasn't, the UK would readily exempt Wikimedia from these requirements. I hope nobody here is deluding themselves into thinking this is a noble effort.) You are literally giving your children a device that can easily obtain porn and letting them use it unsupervised. It's not like it was a secret: Avenue Q told you everything you needed to know. I get that raising kids is hard and society pressures you to do this, but isn't that the problem you'd rather tackle?
The problem is that we've let this idea that you can solve the problem like this enter the mainstream, and now that we have, even smart and reasonable people may accidentally convince themselves that it is tractable just because it is technically feasible to devise such a system. This is bad because we're going to waste a lot of energy repeating ourselves on thinking about the entirely wrong way to look at things.
There are numerous interesting and/or problematic aspects of this, but this question is perhaps the least interesting.
If your kid, or anyone else really, steals your ID then age verification is the least of your problems. They could transfer all your money, move house, get married, change your name or a myriad of other much more serious things. Willingly letting your kid use your ID would be borderline illegal and not an insurance in the world would cover it.
> literally over 2.5 million
These people have never borrowed a book, visited a doctor, paid taxes or opened a bank account? There are many things in society that require validating who you are. Surely they have some form of ID. Perhaps just a more insecure one than a cryptographically signed.
I don't think a federal identity is as far fetched as you make it sound, for better and for worse.
Yes, for most people, your kid absolutely could accomplish all of that. I absolutely could've done that as a kid. This is well-documented, you can find many cases of it actually happening. Kids can also steal your car keys and crash it, they do that. It's just that most kids don't just randomly go and commit crimes like steal all of your money, but they absolutely lie about being 18 and bypass restrictions meant for them. (Like for example, clicking 'I am 18' on websites when they're not. I've never done that, of course.)
> These people have never borrowed a book, visited a doctor, paid taxes or opened a bank account? There are many things in society that require validating who you are. Surely they have some form of ID. Perhaps just a more insecure one than a cryptographically signed.
> I don't think a federal identity is as far fetched as you make it sound, for better and for worse.
There's a lot of Americans who would have some choice words about that, and I suspect that is why we have 2.5 million Americans with no form of photo ID.
Also, I actually agree a federal ID is generally doable. I don't think it's a good solution for this problem, and I think it will be very difficult to enforce this one in the U.S. for cultural reasons.
That's only partially true. We also have federal IDs: passports, passport cards, permanent resident cards, DoD Ids, Transportation Worker IDs. There's also some other federally issued IDs listed as Real ID compliant [1], but I've never seen them so I didn't list them.
[1] https://publicpoint.fnal.gov/get-connected/Shared%20Document...
What I really mean is that among IDs you might expect every citizen to actually have, state IDs are basically the most reliable and even that only gets you around 99% of the way there.
Presumably this is the purpose of the PIN, which I assume is in the owner's head, not on the card (otherwise it would be redundant with the NFC chip).
I admit that PIN verification would make it harder to bypass the system, though to be honest with you, I think it's also not really hard to realize that some kids will still manage to figure out their parent's PIN numbers, which they will likely re-use for their bank cards and a bunch of other shit, because most people don't really want to have to come up with 10 different PIN numbers, and we all kinda get the idea that PIN numbers aren't really that secure in the first place. Adding a PIN number requirement is probably a wise idea, but it does make the system a bit more of a PITA for everyone as people will inevitably forget their PIN and need to reset it or what have you. And I reckon that's basically how each countermeasure for problems of these systems go, each one just adds a little bit more pain depending on how hell bent you are on making it work. (I think the PIN number is good enough for trying to prevent someone for stealing your identity with your ID card to an extent, but not as good against people you live with misusing your ID card.)
Of course, you could keep going. You could try to come up with counter-measures to discourage someone from re-using their ID card for other people, and probably at least limit the impact of some of these issues to make the system basically work.
Even if you really do concoct the perfect solution for one country, you then have to make sure this problem gets solved correctly in every individual federal government, and then anyone who wants to offer adult content online has to individually handle identity verification across all countries that require it.
Meanwhile, we already have a system where essentially only adults can buy devices to connect to the Internet, and Internet service plans. You can't even get a debit card in the U.S. without being at least 18 years of age.
Don't get me wrong, I love diving into the technical details just as much as anybody else here. I've learned something new almost every time there's a comment thread on the subject .
But the technical details are a distraction. That this is happening at all is the forest the technical crowd is going to miss for the trees.
Preserving some semblance of privacy on the internet is already hard enough. We do not need systems like this to encroach any farther; risks of personal privacy is so great and could be caused by such a simple innocent and subtle configuration mistake.
If it were intentional, you could call it successful nerd sniping.
If an enterprising 19-year-old sold their card and PIN to a 15-year-old and reported it lost to get a replacement, presumably there's some mechanism to stop the 'lost' card being used as proof of age?
The card communicates with an eID server via the app. This server is connected to the PKI and receives a new certificate daily-ish and also has a revocation list of blocked IDs. There's a ridiculous amount of regulation for hosting one yourself, so you get that service from one of the two or three who provide it as a service.
ID data this eID server received from the card is then sent to the eID service that initiated the session, which may either be the entity who needs it, or another service provider who wraps another set of regulation requirements and complex eID server API calls into an easy to use API for their customers.
ID data isn't actually shown to the user in the app unless it's a custom implementation that loops it all the way back from the service provider at the end.
- You do not want the government to know which websites you visit. This rules out any kind of redirect / forwarding via a government website or app.
- You do not want websites to correlate their requests, as that would allow for cross-website tracking. Request data from website A should be completely useless to website B. This rules out most regular certificate schemes.
- You do not want a website to correlate multiple data requests, as that would allow websites to create some kind of supercookie. Requests should be completely independent, and two requests from the same user should be indistinguishable from requests from two different users.
- You do not want to lose privacy when the government and the website work together. The request should still be anonymous when the two collaborate, or else there can be no reasonable assumption of privacy. This rules out most clever pass-a-one-time-code schemes.
- You want the request to be unique and time-bound. It should not be possible to replay a response, either to the same website or a different one.
- You do not want to send more data than strictly necessary. If a website needs to know if you are 18 or older, it should only receive a boolean flag.
Getting some of those properties is easy. Getting all of them at the same time? Nearly impossible. And the worst part is that I almost certainly forgot a handful of requirements!
Edit: And as Doctorow points out there are a host of other issues that arise from actually deploying a working system.
The absolute majority of porn viewers access a mainstream site like Pornhub through their home or mobile ISP, which is required to verify the owners identity. So in practice, if you're an average user (note: Hacker News users aren't average users) your ISP already knows which porn sites you visit, and your privacy is dependent entirely on your ISP not sharing that information with the government or other organizations.
If you look closely you'll see that none of your concerns are actually valid.
> You do not want the government to know which websites you visit. This rules out any kind of redirect / forwarding via a government website or app.
Technically trivial (e.g. using Referer-Policy: origin).
> You do not want websites to correlate their requests
Impossible to guarantee today.
Yes, this sucks, but this is not a failure of age verification.
> You do not want a website to correlate multiple data requests
This isn't the norm today. For example, Pornhub today already doesn't work without cookies. That doesn't stop users from flocking to it.
Still, it _would_ be technically possible to provide this; see Cloudflare Turnstile for an example. But nobody cares; neither mainstream users nor site owners want stateless websites.
> as that would allow websites to create some kind of supercookie.
No it wouldn't.
> You want the request to be unique and time-bound. It should not be possible to replay a response, either to the same website or a different one.
Technically trivial.
> You do not want to send more data than strictly necessary. If a website needs to know if you are 18 or older, it should only receive a boolean flag.
Technically trivial.
So to summarize: literally all of your concerns are easily dismissed as either easily solvable or already part of how the web works. None of it is pertinent to the topic of age verification.
There is a lot of this going on in this thread and frankly it is quite frustrating. Texas and France are two jurisdictions I know implemented privacy laws and now porn websites are collecting PII. I know this because when I traveled to Europe, my account on an adult website (gasp, yes I admit to having one) started asking me for ID. When I tried to proceed through verification with their chosen third party *the flow requested a video of my face*. Yuck. When I got back the US, it was still requesting face verification. I talked to support and, basically, once I used a French SIM card it "blew a verification fuse" and the only way to get my account back was to send that video of my face. I found this unacceptable, so I abandoned my account.
If we refuse to find a workable solution that respects privacy and is based in open standards, we are going to cede this space to private third party companies.
You're doing this thing where you pretend that public policy is only required to consider the average person's needs on their most average day. The same rhetoric can be used to argue against the vast majority of your personal freedoms.
Imagine for a second that freedom of speech doesn't exist yet. If you're just like the average person who has nothing of value to say on the average day, then you don't need freedom of speech. Utilizing freedom of speech isn't the norm, therefore demanding it as a fundamental right is unreasonable. Nobody cares and why should they, they don't have anything important to say. Case closed.
> If you look closely you'll see that none of your concerns are actually valid.
No, you just severely underestimate the challenges of designing and implementing a system that would likely take many PhD-lifetimes of effort if you wanted to be confident that your implementation doesn't completely destroy whatever is left of our online privacy.
You're potentially creating a digital panopticon, one that doesn't have any escape hatches like the current internet and yet you naively brush every concern away as "trivial" while your "solution" to one of the most pressing concerns depends on good faith collaboration from the website operator and even then incorrectly presumes that the Referer header is the only way that the government could possibly learn that information.
I do. (Just barely.)
I don't have a Personalausweis. (You only need to have either a passport or an ID card, not both.)
I have never seen a website offering login using this function, though ;-)
But then again, who wants to use their ID card for some trivial non government site just to create an account
Websites can request data from the user by sending that certificate, it opens the app, it shows you the categories of data to be send, you hold your ID card to the phone, enter the PIN, and the certificate is uploaded to the ID card which verifies it. If its valid, the ID sends back the data that is specified in the certificate.
You then get presented with exactly the data that is going to be sent to the website. You can then agree or disagree. So far that is only used to log in to government websites.
This way the government does not know which sites you visit, and you only send your age to the website.