from Hacker News

Auth0 Verifiable Credentials

by marcosnils on 11/1/22, 9:09 PM with 131 comments

  • by vintermann on 11/2/22, 7:46 AM

    Like anything OAuth2-related, it's frustratingly vague and jargony.

    Verifiable credentials is a terrible name. We have had verifiable cryptographic credentials for more than 40 years.

    What I want, is a practical protocol to prove to a third party

    1. That I am a real person (e.g, has a unique credential issued by my government)

    2. That I'm the only one currently "logged in" with them, with that credential.

    3. Without the third party, (and with as few parties as mathematically possible) knowing which of the people with a credential issued by my government I am.

    In short, to prove that I'm a real person, that I'm not running an army of sockpuppets, and yet preserve my privacy.

  • by robbie-c on 11/2/22, 8:20 AM

    Tangentially, if you’re a B2C startup like an app, avoid using auth0. Their pricing starts out cheap but once you hit 10k MAU, it’ll go from $X00 a month to a 3 year contract for $X00000.

    It’s not designed as a business for that use case, and you’ll be paying for a lot of premium features that you’ll never use.

    If something like Firebase Auth suits your use case, use that instead.

  • by CleverLikeAnOx on 11/1/22, 9:33 PM

    This places all the trust in the institution that mints verifiable credentials. (or the institution + Auth0 if they use Auth0).

    This is good for use cases where you want to assert that an organization says something about you (e.g., you have a degree).

    It is not good for use cases where you want to assert that you say something (e.g., I voted for Blah, or I authorized this transfer).

  • by cassonmars on 11/1/22, 11:00 PM

    I love that verifiable credentials are starting to make mainstream, but one thing I couldn’t glean from this page: is this purely VC from a perspective of “here’s the attributes I care to see”, or “here’s the characteristics I care to see”? To clarify: say I’m an alcohol vendor and wish to confirm that a user is 21 or older. Does the VC issuance provide a range proof that does not reveal the age, or does the VC issuance explicitly reveal the age?
  • by paxys on 11/1/22, 10:21 PM

    The only thing the web identity ecosystem needs is another independent standard – said no one ever.

    JWT is already a thing, as is X.509, OAuth/OpenID, WebAuthn... Just use a combination of these that best fits your use case.

    "But this new standard will be the true unifying one". Nope, it will not. The most it will do is get some share of usage and add to the chaos.

  • by Aeolun on 11/1/22, 10:12 PM

    Isn’t this just Json Web Tokens with a different name? (and an extra step to create a VP, presumably so the expiry on the VC can be longer).
  • by woodruffw on 11/1/22, 10:26 PM

    I wonder what the benefits of this versus e.g. OpenID Connect[1] are: OIDC is already semi-widely adopted, reuses a popular underlying envelope scheme (JWTs), and performs a similar type of proof (that some identity provider claims something about an identity).

    [1]: https://openid.net/connect/

  • by OJFord on 11/2/22, 11:22 AM

    Call me a cynic but all this proves is that someone vouched for the stated credential being associated with a key I currently hold?

    i.e. you have to check imperial.ac.uk/.well-known/auth0-vc.pub or whatever, and if that matches, still all you know is that I have the key (or device, whatever), not necessarily that it was truly me. And if you don't check the issuer (or don't trust it's claim - impeerial.ac.uk says that the bearer has a degree from imperial.ac.uk for example) then it doesn't tell you anything.

    Of course that's not really avoidable... but I can't think of a use case for this that doesn't just reduce to 'the issuer may as well just publish the contents' - it's useful when you want to only selectively share a credential from party A with party B, and it's something that B has reason to doubt/verify... but I can't think of an example?

  • by dudebod on 11/1/22, 11:25 PM

    Im interested to know why opt for basic asymmetric cryptography (is this like a ECDSA scheme?) when there are so many advances in zero knowledge proofs to allow for queryable data?
  • by siliconc0w on 11/2/22, 1:53 AM

    It'd be nice if you could just assert facts on a verifiable credential without giving over all the information, like I want to request from my bank that they assert I have regular income > $x/mo or a savings account with at least $y. Not like financial institutions will actually adopt this unless they're forced to by regulation but I basically want to give people exactly enough to provide the service requested and no more.
  • by 6510 on 11/2/22, 6:08 AM

    I imagined one time a system a bit like a chat protocol where parties exchange many messages over a long time where the geolocation, the computer and the application are parties too. The parties each have many different kinds of credentials, one for each purpose. It would start with requesting verification for the application, it can ask step/level 1 from any party, device or application with sufficient authentication for level 1 verification of applications. (The fridge can reject the task if it doesn't feel like participating.) Level 2 is done after a few hours at a party that can do level 2 verification. The toaster like the fridge may forward the request to a different party with sufficient trust level to record, process and forward the auth request (if it feels like it) The initial party is kept in the dark on how wide spread their app auth request has been processed. Processing auth requests that enjoyed some further validation also gradually improves the trust level of the processing party. Countless handshakes take place over many years with countless other parties of increasing trust that may or may not preserve the exchange and/or geolocation. Eventually the sum of the computer, app and user credentials allows the generation of a qr code or a link that expires after 5 min or single use, which ever comes first but it will grow towards 7 days and 100 uses at security level 1. So the local pub has some potentially off-line semi-usable hand shakes from a machine/app/user combination and it previously validated a few of them including an "over 21" with a car in the neighborhood and a vending machine. Those can confirm the toaster indeed forwarded an auth request to them. Neither party needs internet, everything just works. Persecution may start long before you get to buy booze or rent a bicycle or it will catch up with you eventually. Post apocalyptic/countryside offline mode may be taken away from you.
  • by NovemberWhiskey on 11/1/22, 10:54 PM

    Pretty sure this is the same technology as used for e.g. IBM Digital Health Pass, which underlies things like NY's Excelsior Covid pass.
  • by throwaway892238 on 11/2/22, 6:31 AM

    As a "we authenticate everything" company, it's important for Auth0 to make it deadass simple for somebody to pay Auth0 (or Okta) to manage VCs. I think the idea is some company like CLEAR provides the authentication, and Auth0/Okta provides the authorization. You go to buy a beer or check into a hotel, Auth0 contacts your Issuer for verification of your CredentialType, validates the credential, returns to the vendor that you're really you, and you get the thing you want.

    It's a nice idea. But their "Try it out!" link (https://manage.auth0lab.com/) just returns "Error code: SSL_ERROR_RX_RECORD_TOO_LONG" for me (is it just me?)

  • by leovander on 11/2/22, 8:29 AM

    Looking at the credentialSubject and the rest of the format all I see is our friend SAML coming back to the limelight. Assertions, issuer, type, along with let's overload all those optional fields inside of credentialSubject instead of making separate entities or objects.
  • by adontz on 11/1/22, 10:06 PM

    I did not understand if this is somehow related to https://en.wikipedia.org/wiki/Self-sovereign_identity or not.
  • by justsomeadvice0 on 11/2/22, 4:30 AM

    What is the point here? Wikipedia tells me:

    > No proof mechanism is standardized but the data model is flexible enough to support various existing cryptographic mechanisms, such as digital signatures.

    So why even have a standard at all? It is impossible to verify the proof using this standard, which is the main point of verifiable credentials, no?

    The cryptographer in me's eye is twitching, as I consider all the completely different cryptosystems that will get shoved into "proof" that one would have to support, none of which seem to be spec'd out.

    I guess I just don't get it. What does this actually help with?

  • by jameshart on 11/1/22, 11:27 PM

    Can't immediately grasp how this avoids a MITM attack at the 'verifiable presentation' stage. Am I missing something?
  • by pfraze on 11/1/22, 11:56 PM

    VCs are typically used in conjunction with DIDs. Do they say anywhere whether they’re using DIDs and, if so, which methods?
  • by tristor on 11/2/22, 12:41 PM

    How is this fundamentally different than something like KeyBase other than the aspect of centralizing issuance control into the hands of large entities?
  • by thesimon on 11/1/22, 9:35 PM

    Wanted to take a look at the schemas linked, but identity0.io isn't even registered? oO
  • by etchalon on 11/1/22, 11:04 PM

    And not a blockchain in site.
  • by ccbccccbbcccbb on 11/2/22, 11:56 AM

    Next step: "Unfortunately, Chrome can't connect to the Internet right now. We at Google strive for a healthier, more responsible society. Please fill your vaccination details in the form below."

    For everyone feeling the kneejerk urge to downvote: https://www.bbc.com/news/world-asia-63456107

  • by egorfine on 11/2/22, 9:24 AM

    Is this another KYC?
  • by vladcodes on 11/2/22, 6:25 AM

    I would (and will) avoid anything like this by any cost.

    Rests. Survive.

  • by transfire on 11/2/22, 6:15 AM

    Ugh. The use cases listed. Sounds like a perfect match for the Chinese government.