Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

NIST defines "credential" differently #1047

Closed
OR13 opened this issue Feb 16, 2023 · 19 comments
Closed

NIST defines "credential" differently #1047

OR13 opened this issue Feb 16, 2023 · 19 comments

Comments

@OR13
Copy link
Contributor

OR13 commented Feb 16, 2023

https://nvlpubs.nist.gov/nistpubs/SpecialPublications/NIST.SP.800-63-4.ipd.pdf

Screen Shot 2023-02-16 at 2 48 09 PM

EDITED to clarify the ask:

The working group should provide citations for other vocabularies, and explain why their definitions are useable or not.

We should also refer to https://www.ietf.org/rfc/rfc4949.txt

@mwherman2000
Copy link

@OR13 It's the old, legacy, person-centric view of identifiers and identities ...like the early, early versions of the DID spec.

@PatStLouis
Copy link

Defines differently than what definition?

Furthermore, this definition of credential relates exclusively to the realm of authentication within the scope of this document, as stated in the Appendix A.1 section:

"A wide variety of terms is used in the realm of authentication. [...] Many of these terms lack a single, consistent definition, warranting careful attention to how the terms are defined here."

The dictionary defines credentials as: That which entitles one to confidence, credit, or authority.

In the digital realm this could be further interpreted as a mean to authenticate an entity or to prove claims about an entity.

Can you clarify how you feel this poses an issue and to what degree?

@RieksJ
Copy link

RieksJ commented Feb 21, 2023

What's the problem? It is widely known and accepted that the meaning of a term is scoped, i.e. restricted to a particular scope/context.

Lawyers understand this. In legal texts (I've seen Dutch and EU such texts), it is common to have a terminology section that defines terms that are used within the scope of the particular text. While typically efforts are made not to be too far off with terminology in related scopes (other legal texts), the whole idea is that people (including lawyers, judges, etc.) have the same understanding of what is (not) an instance of a term.

Software engineers know this. They have namespaces, where the name in a namespace refers e.g., to a specific variable or function, that have well-defined meanings (or else the software doesn't work). Namespaces (the equivalent of a Terminology) can be inherited, and their meanings renamed, or terms redefined.

The VCDM lives in the specific context in which we want to talk, e.g., about sets of digital representations of of statements that a single party makes about a variety of entities (for which the VCDM uses the term 'credential'), and such things that also have the property of being tamper-evident and a proof of who this single party is, where the proof can be cryptographically verified (which in the VCDM terminology is a 'verifiable credential').

Having a good terminology in a context (such as VCDM) can help people to understand one another. And similar to software engineering contexts and legal contexts, this only works if people stick to the terms that are being defined, and contribute to improve their definitions such that they support us in realizing the objectives in our (VCDM) context.

Looking at terms that come from other contexts is not a bad idea per se. It can help us to realize things that we hadn't thought of earlier. But there is a real risk that the meaning which I assume is appropriate in that other context is automatically assumed to be appropriate for our own context. That isn't true in general. Software engineers and lawyers know that. We may still need to learn this.

@PatStLouis
Copy link

@RieksJ This is a great layout of this situation and the correlation with namespaces makes a lot of sense for me.

This topic got me curious enough to reach out and ask around 10 people in my circle to provide a short definition of credentials from the top of their heads. 8 out of 10 did a strong association between credentials and authentication, while 2 gave a definition related to providing documents attesting of some attribute that defines you. Given most of these people work in the tech/cybersecurity field, answers might be slightly biased.

Furthermore, it's interesting to look at the ethimology of the term "credential", which was first used as "giving authority" (credentialis) or "trust" (credentia). Credential would be more of a concept than a physical object, it just happens that we call physical objects (such as diplomas) a credential. But the true meaning here is the trust that these bring.

Now if we say, "sign-in with your credentials", we refer to sign in with your username/password (assuming here we have a basic authentication system). In the same way we can refer to a diploma as a credential, we can also refer to the information provided to login as a credential because they convey the concept of trust/authority.

One could make the argument that as we move towards a more digital era, most people will hear/use the term credentials mostly referring to authentication instead of in a situation where they would be asked to provide credentials as in merits/list of documents, further binding the use of the word with a specific thing/scope instead of a concept.

This creates an interesting communication challenge relating to the digital identity/verifiable credentials community because it's bringing the use of a term into the digital realm that already has a well established association in that environment. Now we need to have these 2 distinct use of the word coexist.

Openid defines credentials as:

A set of one or more claims about a subject made by a Credential Issuer. Note that this definition of a term "credential" in this specification is different from that in [OpenID.Core] and [RFC6749].

We can highlight similarities in all definitions that it revolves around concepts of trust/authority. And this definition clearly highlights the scope of this definition.

Great topic with a slight societal undertone. I have a hard time seeing this as an issue however and more of a challenge because there is unfortunately no solution here, only a need for stronger communication.

@RieksJ
Copy link

RieksJ commented Feb 23, 2023

@PatStLouis Yes, we can highlight similarities, make long lists of others that have definitions of a particular term, etc. I would personally not engage with that before it was clear who would actually be using such highlighted similarities and long lists.

I think, however, there is a bigger issue we need to come to grips with. The issue is that we accept that texts are being created in the context of the VCDM where terms that are actually defined, are used in a different meaning. I've seen a comment on #902) that calls to define a term that is already defined (i.e. holder. This behavior of authoring texts and accepting to work with such texts causes lots of problems which would be avoided if we just use terms as defined - raising an issue if the term needs to be adjusted.

Looking at terms that are used in other contexts, e.g. OpenID, is not bad - it can inform us as we make the definitions that we need (like lawyers do in their laws). But IMHO the VCDM does need its own terminology to address the particular VCDM issues, and only use existing ones if they are understood by us in the same way, and are appropriate within the VCDM context.

@selfissued
Copy link
Contributor

Yes, https://www.rfc-editor.org/rfc/rfc4949.html defines "credential" differently.

@Sakurann
Copy link
Contributor

+1 to clarifying that definition of credential in vc-data-model is different from the rest of the industry.
suggest to add a sentence in the end of a definition of a credential saying something like "Note that this definition of a term "credential" in this specification is different from that in XXX".

@iherman
Copy link
Member

iherman commented Apr 13, 2023

The issue was discussed in a meeting on 2023-04-12

  • no resolutions were taken
View the transcript

4.4. NIST defines "credential" differently (issue vc-data-model#1047)

See github issue vc-data-model#1047.

Brent Zundel: issue #1047.

Orie Steele: Doing a terminology review.

Orie Steele: and citing terminology issues, is a great way to start contributing!

Brent Zundel: anyone who wishes to be assigned to this issue?

Charles Lehner: sure.

Charles Lehner: (can't speak).

Charles Lehner: clehner.

Charles Lehner: cheers.

Brent Zundel: Charles in the chat will be assigned to it (voice not available).

@shigeya
Copy link
Contributor

shigeya commented Jun 21, 2023

Note, lately, I found this link at NIST helpful in finding the differences in NIST terms in various documents

https://csrc.nist.gov/glossary/term/credential

1 similar comment
@shigeya
Copy link
Contributor

shigeya commented Jun 21, 2023

Note, lately, I found this link at NIST helpful in finding the differences in NIST terms in various documents

https://csrc.nist.gov/glossary/term/credential

@iherman
Copy link
Member

iherman commented Jul 6, 2023

The issue was discussed in a meeting on 2023-07-05

  • no resolutions were taken
View the transcript

2.4. NIST defines "credential" differently (issue vc-data-model#1047)

See github issue vc-data-model#1047.

Orie Steele: all the terms needs better grounding.

Kristina Yasuda: I think it's ready for PR.

Orie Steele: possible that the normative "vocab" can help with this.

Brent Zundel: regardless, this is post-cr, yes?

Kristina Yasuda: Last time Charles agreed to be assigned - three months ago.

Orie Steele: vocab is normative now though right?

Manu Sporny: It depends upon what the PR does. I could be pre or post CR.
… Vocab is now normative, Orie.

Orie Steele: if vocab is normative, and terms are not consistent with vocab, its pre CR.

Kristina Yasuda: It may be that we will align the definition with NIST.
… What do you want to happen here, Orie?

Orie Steele: I would like to see a PR that updates the related terms.

Manu Sporny: In what way?

Orie Steele: and leverages our ability to provide citations and remove confusion.

Brent Zundel: The most conservative thing to do is to mark it pre-CR.

Kristina Yasuda: I'll mark it before CR.

@TallTed
Copy link
Member

TallTed commented Jul 7, 2023

The working group should provide citations for other vocabularies, and explain why their definitions are useable or not.

Are you asking for an exhaustive list of (links to) other vocabularies which include this term (and, I presume, every other term we define or, perhaps, use)?

That's far beyond typical, and virtually impossible to satisfy.

The NIST link @shigeya provided shows that even within NIST, there are multiple definitions for this term. That should be enough evidence that we need not catalog all other vocabularies and their definitions of this (and our other) term(s), given that we are providing clear statements of the definition(s) we're using for these terms.

@OR13
Copy link
Contributor Author

OR13 commented Aug 2, 2023

Either reference other organizations terms directly, or add an informative section supporting disambiguation

I am starting to favor the second option, since it seems the first will make spec comprehension harder.

@Sakurann Sakurann added the ready for PR This issue is ready for a Pull Request to be created to resolve it label Aug 2, 2023
@iherman
Copy link
Member

iherman commented Aug 3, 2023

The issue was discussed in a meeting on 2023-08-02

  • no resolutions were taken
View the transcript

2.5. NIST defines "credential" differently (issue vc-data-model#1047)

See github issue vc-data-model#1047.

Orie Steele: +1 to talking about test suites.

Kristina Yasuda: Manu sent out of an email about test suite adoption, we'll discuss that in an upcoming call.

Orie Steele: I think the core data model has terminology, and sometimes it aligns strongly w/ existing definition, and sometimes it doesn't... Data Integrity specs had NIST relationships with them, we should be cautious to refer to NIST w/o referring to their terminology... NIST has conflicting definitions for these things... looking at you "attestation" -- highly problematic.

Michael Prorock: also https://www.rfc-editor.org/rfc/rfc4949.html.

Orie Steele: To resolve this, we either go through our terms and add references to other sources so you can navigate them, or to create informative part wrt. disambiguation and do that outside of term list so our term list can stay clean, small, instead of us trying to rationalize how others have defined their terminology.

kgriffin-again: kgriffin-again has joined #vcwg.

Kristina Yasuda: other ways to do this?

Michael Prorock: RFC4949 defines some of this stuff -- they cite a bunch of other definitions because there are multiple definitions... would like to point to work/reviewed published -- or creating definition of term that is confusing to those trrying to integrate w/ our stuff...
… seen a lot of cases of this, NIST draft going out -- spent hours w/ NIST as did others trying to cross-reference others -- really problematic.

Kristina Yasuda: We have Charles assigned... should we add Orie?

Orie Steele: you can assign me.

Kristina Yasuda: done :).

Sebastian Crane: I don't want to negate effort of those compiling glossaries in the past, don't think average is going to look at our use of "credential" and say "my implementation isn't accurate"... it might be useful from a marketing perspective, but probably won't affect implementability of VCs.

Brent Zundel: +1.

Manu Sporny: +1 to seabass.

@OR13
Copy link
Contributor Author

OR13 commented Aug 30, 2023

Partially addressed by #1260

@iherman
Copy link
Member

iherman commented Sep 3, 2023

The issue was discussed in a meeting on 2023-08-30

  • no resolutions were taken
View the transcript

4.4. NIST defines "credential" differently (issue vc-data-model#1047)

See github issue vc-data-model#1047.

Brent Zundel: NIST defines credential differently.

Orie Steele: I definitely need to get to it.
… it might be that credential has more alignment.
… it's related to previous topic about the abstract class confidentMethod.
… I do plan to do this at some point.

Brent Zundel: is the some point anticipated before TPAC.

Orie Steele: possibly, but this should probably be post-CR.
… assuming the other PR is merged this gets to post-cr.

Brent Zundel: comments to that effect with link to PR would be helpful.

Justin Richer: the TLDR version is that 800-63 definition of credential is authenticator plus attributes.
… fundamentally this is how credentials are used in VCs.
… but that's largely based on the definition of authenticator, which is fundamental to the NIST definition of credential.
… so the W3C can align or redefine or reference.
… this term has changed about 6 times since I started working with NIST.

Orie Steele: the group has been discussing how to express "confidenceMethod" in VCs, which would express the public key that would be used for an authenticator.
… we are using similar but not the same.

Manu Sporny: Nope -- that's not the only use case for confidenceMethod -- it's not only bound to authenticators.

Brent Zundel: moving to next issue.

Orie Steele: ConfidenceMethod is a "super set" that includes authenticators?

Brent Zundel: we added context resource integrity. how do we test it?

Orie Steele: or we just need it to not be the same thing in order to justify defining it?

Dave Longley: Orie: ^not that later question, which is presuming bad faith, please don't do that.

Michael Prorock: I will be adding code for testing the jose-cose side of this.

Manu Sporny: +1 should be straightforward to add.

Justin Richer: "authenticator" per 800-63 is fundamentally about proving access to a secret, it's an intentionally wide definition that spans many technologies. It might or might not make sense for it to be used exactly the same way here. NIST is not likely to change how it's used.

Brent Zundel: should we move this to the test suite repo?

Manu Sporny: or we just test in the core data model.

Orie Steele: so its a superset, where we are not defining the behavior beyond authenticators?... I am not going to assume thats being done maliciously, but I will assert its a bad idea to do this way.

Brent Zundel: If I here no issues, I'll move to vc test suite repo.

Dave Longley: justin_r, yeah, that makes sense -- and people here have said they want some concept that also includes other "authentication mechanisms" that are not strictly related to secrets or proof of possession / use of keys.

Justin Richer: @orie I think it's more a matter of the venn diagram having some overlap that's fuzzy around the edges - not a super or subset from what I can tell.

Justin Richer: dlongley, right, which in the NIST framework would include things that aren't authenticators, which is fine.

Dave Longley: +1.

@iherman
Copy link
Member

iherman commented Sep 15, 2023

The issue was discussed in a meeting on 2023-09-14

  • no resolutions were taken
View the transcript

5.2. NIST defines "credential" differently (issue vc-data-model#1047)

See github issue vc-data-model#1047.

Manu Sporny: seabass: What is this PR supposed to be for?

Manu Sporny: Orie suggested that we added an informative section to disambiguate the terms.

Brent Zundel: I'll mark this as ready for PR with that.

@OR13 OR13 added pr exists and removed ready for PR This issue is ready for a Pull Request to be created to resolve it labels Oct 31, 2023
@msporny
Copy link
Member

msporny commented Nov 4, 2023

PR #1332 has been raised to address this issue. This issue will be closed once PR #1332 is merged.

@msporny
Copy link
Member

msporny commented Nov 17, 2023

PR #1332 has been merged, closing.

@msporny msporny closed this as completed Nov 17, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests