Many might’ve seen the Australian ban of social media for <16 y.o with no idea of how to implement it. There have been mentions of “double blind age verification”, but I can’t find any information on it.

Out of curiosity, how would you implement this with privacy in mind if you really had to?

  • chaospatterns@lemmy.world
    link
    fedilink
    English
    arrow-up
    14
    ·
    edit-2
    15 days ago

    Its possible to implement something that hides your actual age from a website, but the tricky part is hiding what website you’re visiting from an identity provider.

    Let’s walk through a wrong solution to get some fundamentals. If you’re familiar with SSO login, a website makes a request token to login the user and makes claims (these request pieces of user information.) One could simply request “is the user older than 18?” And that hides the actual age and user identity.

    The problem is how do you hide what website you’re going to from the identity provider? In most SSO style logins, you need to know the web page to redirect back to the original site. Thus leaking information about websites you probably don’t want to share.

    The problem with proposals that focus on the crypto is that they actually have to be implemented using today’s browser and HTTP standards to get people to use them.

    • iknowitwheniseeit@lemmynsfw.com
      link
      fedilink
      arrow-up
      3
      ·
      14 days ago

      It can be done. The website provider can generate a request that it forwards to you. You then pass on this request to the age verifier, who can answer “yes person is over 16” without knowing why you want to know, or who generated the request.

      The requester wouldn’t know your age, just that you were old enough.

      There are a few problems.

      One is that the website could embed some identifier in the signature of their request. But any information there can be easily send by the web site provider to the age verifier directly if they wanted so this is not a big problem.

      Another problem is that the age verifier could look at times when requests were submitted and create a sort of “fingerprint” based on when requests arrived for different sites. This could be partially helped by having browsers request age verification randomly in the background any time you use a browser.

    • hemko@lemmy.dbzer0.com
      link
      fedilink
      English
      arrow-up
      2
      ·
      15 days ago

      Could it be maybe a token signed by the verifying party living permanently on your computer (like cookie), and websites can request permission to query it to verify the age?

      • lad@programming.dev
        link
        fedilink
        English
        arrow-up
        4
        ·
        14 days ago

        Since age tends to not decrease, that may make sense: once you reach 18 you get a signed token you can use forever.

        Your token might be used by someone else, though

      • chaospatterns@lemmy.world
        link
        fedilink
        English
        arrow-up
        3
        ·
        14 days ago

        The hard part is browsers. Cookies and local storage are limited by the origin URL. You need it explicitly set on the domains you intend to visit, but those domains don’t know your age. The one that knows the age is the identity provider, but it can’t set it for all domains. There are other techniques that you could use, like a smart card combined with a browser extension to do local based user info attestation, but those are difficult to manage at a nation scale and I suspect people will struggle with them, though there are some countries that do have national smart cards (e.g. Estonia.)

    • JeremyHuntQW12@lemmy.world
      link
      fedilink
      arrow-up
      1
      arrow-down
      1
      ·
      14 days ago

      The problem is how do you hide what website you’re going to from the identity provider?

      Not only don’t you need to, you would really have to know the generator of the token because it needs to verify that you are the user that was issued the token.