8 ms·
> But the only way to do this is to require ID checks, effectively regulating and destroying the anonymous nature of the internet That seems intuitive, but it'
by jlokier 3y ago
> But the only way to do this is to require ID checks, effectively regulating and destroying the anonymous nature of the internet
That seems intuitive, but it's not actually true. I suggest looking up zero-knowledge proofs.
Using modern cryptography, it is easy to send a machine-generated proof to your social media provider that your government-provided ID says your age is ≥ 16, without revealing anything else about you to the service provider (not even your age), and without having to communicate with the government either.
The government doesn't learn which web sites you visit, and the web sites don't learn anything about you other than you are certified to be age ≥ 16. The proofs are unique to each site, so web sites can't use them to collude with each other.
That kind of "smart ID" doesn't have to be with the government, although that's often a natural starting point for ID information. There are methods which do the same based on a consensus of people and entities that know you, for example. That might be better from a human rights perspective, given how many people do not have citizenship rights.
> (and probably unconstitutional under the First Amendment, to boot.)
If it would be unconstitutional to require identity-revealing or age-revealing ID checks for social media, that's all the more reason to investigate modern technical solutions we have to those problems.
- lukev 3y agoIt'd be cool if any of the proposed bills actually suggested something like this. They do not. They specify an ID check.
- delichon 3y ago[flagged]
- freetanga 3y agoYou are free to express yourself in a park. You are not free to enter the White House to express yourself. Enforcing a property owners right to refuse entry (digital or physical) does not prevent you from expressing yourself, but rather from doing it that specific property. Social Networks are not a public space
- IanCal 3y agoFreedom of speech isn't, as a US legal term, about being able to post on privately owned websites.
- NegativeK 3y agoIt is about the government's (state and federal) ability to regulate if you can post on privately owned websites.
- riversflow 3y ago> There is no age limit to that restriction Wrong I’m afraid. Minors don’t have full rights, that’s why their bag/locker/car can be searched randomly, why they can have speech abridged, why they can’t see NC-17 movies(edit: scratch that one). The supreme court has weighed against minors many times.
- delichon 3y ago> why they can’t see NC-17 movies The first amendment is a restriction on Congress, and does not apply to the private Motion Picture Association that maintains the film rating system. > why they can have speech abridged I don't think that's true of federal law. There are cases, such as in school, where more restrictions are permitted to the school. But those restrictions are not based on age.
- reaperman 3y ago> There are cases, such as in school, where more restrictions are permitted to the school. But those restrictions are not based on age. After 18 you can choose whether to be in school or not. Those restrictions are voluntary for adults but compulsory for minors (who do not get to choose whether they go to public school, private school, homeschool, or just pass the GED)
- Longlius 3y ago>why they can’t see NC-17 movies This is not a law, this is a voluntary regulation undertaken by the motion picture industry.
- riversflow 3y agoGood call, edited.
- datavirtue 3y ago”that’s why their bag/locker/car can be searched randomly" This has always disgusted me about public school. No better way to erode rights and democracy than ingraining absolute tyranny in children. I was never search but I was convicted and punished many times on zero evidence, just some authority assuming I did something.
- reaperman 3y agoMinors dont get full constitutional protections. I think they should have more rights than they do, but the first amendment is already more limited for minors than for adults. Tinker v. Des Moines has repeatedly been chipped away (e.g. Bethel School District v. Frasier). Minors cant produce pornography. Minors have their freedom of association and expression limited by employment laws. Minors speech is not free at home due to parental control or at school. Minors can’t consent to medical treatment which limits their ability to discuss sensitive issues. Minors cant vote or run for public office, which limits their direct participation in political expression and civil engagement.
- delichon 3y ago[flagged]
- PH95VuimJjqBqy 3y agodo you _want_ 3 year olds voting? All that would do is give people with children multiple votes.
- emporas 3y agoDefinitely, we can use a government issued id, or we can create our own. Social graphs i call em. Zero knowledge proofs have so many ground breaking applications. I have made a comment in the past, relevant to how could a social graph be build, without the need of any government [1]. We can create effectively one million new governments to compete with existing ones. [1] https://news.ycombinator.com/item?id=36421679 https://news.ycombinator.com/item?id=36421679
- paulryanrogers 3y agoGovernments monopolize violence. At least at the foundational level. When too many of them compete at once it can get very messy very quickly.
- emporas 3y agoLet's suppose that 1 million new governments are founded, and violence still can be enforced only by the existing ones. The new governments will be in charge of ids, signatures, property ownership and reputation. Governments of Rust programmers, or Python programmers, or football players, or pool players, or truck drivers will be created. When a citizen of Rust programmers social graph uploads code, he can prove his citizenship via his id. We may not even know his name, but he can prove his citizenship. He can sign his code via his signature, even pull request in other projects. He can prove his ownership of an IT company, as it's CEO, the stock shares and what not. And he will be tied to a reputation system, so when a supply attack happens, his reputation will be tainted. Other citizens of Rust's social graph, will be able to single out the id of the developer, and future code from him will be rejected, as well as code from non-citizens. Speaking of supply chains, how about the king of supply chains of products and physical goods? By transferring products around, in a more trustworthy way, by random people tied to reputation, Amazon may get a little bit of competition ain't it? see also an older comment of mine https://news.ycombinator.com/item?id=38800744 https://news.ycombinator.com/item?id=38800744
- dotancohen 3y agoGovernment is not the correct word to use for this idea.
- satellite2 3y agoI'm not a cryptographer so I might miss something but I have the impression that - either a stolen card can be reused thousands of time meaning that it's so easy to get a fake that it's not worth the implementation cost - either there is away to uniquely identify a card and then it becomes another identifier like tracking ids.
- neom 3y agoIt would be neat if some authority like the passport office or social security office also provided a virtual ID that includes the features OP described and allowed specific individual attributes to be shared or not shared, revoked any time, much like when you authenticate a 3rd party app to gmail or etc.
- shuntress 3y agoThese are the things that the post office should be handling.
- smeej 3y agoPutting on my conspiracy hat for a minute: They don't want to make it easy for you to authenticate anonymously. They obtain their surveillance data from the companies that tie you, individually, to your data. They'd be shooting themselves in the feet.
- plorg 3y agoYeah, hell no.
- ndriscoll 3y agoAssuming you can make active queries to the verifier, you could do something like - Have your backend generate a temporary AES key, and create a request to the verifier saying "please encrypt a response using AES key A indicating that the user coming from ip X.Y.Z.W is over 16". Encrypt it with a known public key for the verifier. Save the temporary AES key to the user's session store. - Hand that request to the user, who hands it to the verifier. The verifier authenticates the user and gives them the encrypted okay response. - User gives the response back to your backend. Potentially the user could still get someone to auth for them, but it'd at least have to be coming from the same IP address that the user tried to use to log into the service. The verifier could become suspicious if it sees lots of requests for the same user coming from different IP addresses, and the service would become suspicious if it saw lots of users verifying from the same IP address, so reselling wouldn't work. You could still find an over-16 friend and have them authenticate you without raising suspicions though, much like you can find an over-21 friend to buy you beer and cigarettes. Since you use a different key with each user request, the verifier can't identify the requesting service. Both the service and the verifier know the user's IP, so that's not sensitive. If you used this scheme for over-16 vs. over-18 vs. over-21 services, the verifier does learn what level of service you are trying to access (i.e. are you buying alcohol, looking at porn, or signing up for social media). Harmonizing all age-restricted vices to a single age of majority can mitigate that. Or, you could choose to reveal the age bucket to the service instead of the verifier by having the verifier always send back the maximum bucket you qualify for instead of the service asking whether the user is in a specific bucket.
- johnhenry 3y ago> I suggest looking up zero-knowledge proofs. Sure, but is the Florida legislature actually looking into stuff like this?
- dotancohen 3y agoWhy would they, when it is not in the governments interest?
- thomastjeffery 3y agoYou can send a proof that someone's government-provided ID says that their age is ≥ 16. That's not enough proof to levy a requirement.
- Aurornis 3y ago> The government doesn't learn which web sites you visit, and the web sites don't learn anything about you other than you are certified to be age ≥ 16. If the zero-knowledge proof doesn't communicate anything other than the result of an age check, then the trivial exploit is for 1 person to upload an ID to the internet and every kid everywhere to use it. It's not sufficient to check if someone has access to an ID where the age is over a threshold. Implementing a 1:1 linkage of real world ID to social media account closes the loophole where people borrow, steal, or duplicate IDs to bypass the check.
- vlovich123 3y agoAs I mentioned elsewhere, you’re falling for letting perfect be the enemy of good. The ZKP + phone biometrics only needs to raise the cost of bypass above what adolescents have access to. And no, you can’t just share the same ID because there’s revocation support in the mDL and it’s difficult to extract the raw data once it’s stored on the trusted element. This is very similar to how credit cards on phones work which are generally very difficult to steal.
- Aurornis 3y agoSorry, you’re not thinking like a group of 15 year olds trying to get online. The revocation list means nothing when they can get ahold of someone’s older sibling’s ID and sign up for social media. Did everyone just forget what it’s like to an ambitious kid who wants to get online? Do people really think a platform that needs people to jump through these hoops and use this imaginary international ID architecture is feasible? Does anyone really think that kids won’t just set their location to Estonia and/or use a VPN to circumvent all of this?
- protocolture 3y agoThis. The parties that this will detriment are all older people. Kids will simply bypass it.
- vlovich123 3y ago
- dotancohen 3y agoThe government need not know what sites you visit. It is damaging enough that the government know that you are visiting sites that require an age verification. You can then be flagged for parallel construction if you should, I don't know, start a rival political party.
- dullcrisp 3y agoNot if this were widespread. I wouldn’t be too bothered if the government knew that I either watched an R-rated movie or rented a car or purchased alcohol or created a Facebook account.
- brewdad 3y agoNow do need an abortion or sought out gender affirming care. Today’s “no big deal” can become tomorrow’s privacy nightmare.
- ndriscoll 3y agoYou missed the either in GP's comment. i.e. they know you did one of those things because you requested an over-18 token, but not which one. The more covered activities there are, the more uncertainty they have about why you might have asked for a token.
- harimau777 3y agoThis isn't really my area of expertise, is there a way to know for sure that those are all the same token? Or could the government just lie and say they are all the same when in reality they can really differentiate.
- ndriscoll 3y agoThe government would have to document the API for requesting tokens for anyone to use it. I suggested a scheme here[0] where it's clear that the government doesn't get any information about the service (unless the service re-uses AES keys) and the service doesn't get any information about the user other than whether they're in the appropriate age group. Potentially there could be coordination between .gov and the service to track users by having each side store the temporary AES key and reconcile out-of-band. But .gov has other ways they could get that information anyway if they have cooperation from businesses (e.g. asking your ISP for your IP address, and asking the service provider for a list of user IPs). [0] https://news.ycombinator.com/item?id=39183486 https://news.ycombinator.com/item?id=39183486
- fennecbutt 3y agoWe did a hackathon at work and one of the guys from one of my project teams covered this stuff as his project. I trust that it _would_ work 100%,but what I don't trust is that a government would implement it properly and securely, because no government works like that lmao (even NZ's great one). I mean living in the UK now I got like a dozen different fucking gov numbers for all manner of things, dvla, NHS, nin, other tax numbers, visa, etc...why isn't there just one number or identity. Gov.uk sites are mostly pretty stellar besides.
- jcranmer 3y ago> Using modern cryptography, it is easy to send a machine-generated proof to your social media provider that your government-provided ID says your age is ≥ 16, without revealing anything else about you to the service provider (not even your age), and without having to communicate with the government either. There's just one problem. How does the machine proving your age know that you are who you say you are? Modern cryptography doesn't have any tools whatsoever that can prove anything about the real body currently operating the machine--it can never have such a tool. And the closest thing that people can think of to a solution is "biometrics," which immediately raises lots of privacy concerns.
- Aerbil313 3y ago> the closest thing that people can think of to a solution is "biometrics," which immediately raises lots of privacy concerns. Is using FaceID a privacy concern? This mechanism can be built into phones much like passkeys.
- protocolture 3y agoI dont want government crapware on my device to access the internet. I also dont want third party crapware on my device to access the internet. "wowee it can be done without revealing my identity to anyone but the government or the corp running the chain" No thanks
- mirekrusin 3y agoIdentity is not revealed.
- sangnoir 3y agoDo you think the NSA would balk at that challenge?
- mirekrusin 3y agoIt doesn't have to be based on crypto designed by NSA, does it?
- sangnoir 3y agoDesign is far from the only threat vector. Any implementation that is less than perfect is prone to all kinds of attacks. A few years ago, there was a report that the NSA could decrypt a double-digit percentage of encrypted web traffic thanks to a larger-than-expected bag of factored primes they keep handy.
- mirekrusin 3y agoGreat story, are you claiming that NSA can infer from zero-knowledge proofs inputs, maybe map cryptographic hashes to plain input text or something of that nature?
- sangnoir 3y agoNo, but I bet a dollar that NSA isn't just going to collectively fold hands and say "These schemes and implementations are too good and too secure for us to break. We'll ignore the meta data, network analysis, side channels and our data centers that can store 2 days worth of internet traffic; we'll give up and focus on defensive security only"
- px43 3y agoA super interesting example of this is the proof-of-passport project. https://github.com/zk-passport/proof-of-passport https://github.com/zk-passport/proof-of-passport Today you can scan your passport with your phone, and get enough digitally signed material chained up to nation level passport authorities to prove anything derived from the information on your passport. You could prove to an arbitrary verifier that you have a US passport, that your first name starts with the letter F, and that you were born in July before 1970, and literally share zero other information.
- xyzzy123 3y agoThe selective disclosure is super cool, I wonder how it works since smthing like a hash of DG1 is what is actually signed, how can you selectively disclose verified data from "inside" the hashed area? It does not sound very feasible to me but I am not an expert in zk-snarks etc. There are some wrinkles that prevent passport data being used more broadly - technically it is a TOS violation to verify passports / use the ICAO pkd without explicit permission from ICAO or by direct agreement with the passport holder's CSCA (country signing certificate authority). Some CSCAs allow open use but many do not. Also, without being too pedantic about it, what you are able to prove is more like possession of a document. An rfid passport (or rfid dump & mrz) - or in fact any kind of identity document - does not prove that you are the subject - you need some kind of biometric bind for that.
- px43 3y agoZK circuts have gotten really fancy lately, to the point where full blown ZK virtual machines are a thing, which means you can write a program in rust or whatever, compile it to riscv, and then run it on the risc zero zkVM. (https://github.com/risc0 https://github.com/risc0) This means you can literally just write a rust program that reads in the private data, verifies the signature, reads the first byte in the name string and confirms that it matches what you expect, and then after everything looks good, it returns "true", otherwise it returns "false". This all would happen on your phone when you scan a QR code or something that makes the request, then you send the validity proof you generated to the verifier, they can see that the output was true, and nothing else. In theory, the private data would be stored on a trusted device you own, like your phone or something, so someone who steals your phone would have a hard time using your identity. Using fancy blockchain stuff you could even to a one time registration of your passport such that even if someone steals your passport, they wouldn't be able to import as a usable ZK credential. Presumably there would be some logic around it so you can re-register after a delay period or something, giving the current credential holder a chance to revoke new enrollment requests or whatever. So, yes, proving your exact identity to a website isn't perfect, but it's easy enough to make it really noisy if someone is trying to tamper with your identity, and maybe that's good enough. If you want to go the trusted hardware route, you could make someone take a picture of their face with some sort of trusted hardware camera on their phone or laptop, and then use some zkml magic to make sure it kinda looks like the face on the passport data. Given the right resources, trusted hardware is never that hard to tamper with, so I don't like that solution very much. What's often more important in an online context is that your credential is unique. It doesn't matter who you are, it matters that you've never used this credential to sign up for a twitter account, or get past a cloudflare captcha, or any other captcha use case. If you steal 10 passports, maybe you can set up a bot that will automatically vote for something 10 times, but at least you can't vote millions of times. This is sybil resistance, and it's massively important for a ton of things.
- endgame 3y agoAnd as with electronic voting, the contract will go to the lowest bidder with the worst security, not the company that's got the CS chops to do it right.
- janalsncm 3y agoSo I hash some combination of ID, name and birthday and send it to Facebook to create an account. Facebook relays that hashed info to a government server which responds with a binary yes/no. Of course you need to trust that the hash is not reversable. That doesn’t stop kids from using Facebook, but it stops kids’ ID from being used to create an account.
- Aerbil313 3y agoThanks for bringing this solution up. Many people are unaware of Zero-Knowledge proofs are actually possible. Probably because it's very counter intuitive.
- Jakob-G 3y agoBut in reality this would not hide age, for example if a child signs up for Facebook, the only information revealed is that they are <16 years old. But once they turn 16, they want to have an unrestricted Facebook experience, so they will send a new token to Facebook, showing that they are older then 16 now. Facebook can now record the day the user does this and will now know the approximate birthday of a person. Sure, the user might not do this right on their birthday, probably in a span of a few weeks, but they will still have a good understanding of the age. This system would still be better then having to reveal your whole Id with all details.