Skip to content

A moderate rework of the introductory text and images #56

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

Merged
merged 21 commits into from
Jul 22, 2017

Conversation

msporny
Copy link
Member

@msporny msporny commented Jun 10, 2017

This is a moderate rework of the introductory text and images for the specification for the purposes of making the introductory section of the FPWD easier to read for newcomers.

@msporny msporny added this to the FPWD milestone Jun 10, 2017
@msporny msporny requested a review from burnburn June 10, 2017 17:36
@msporny
Copy link
Member Author

msporny commented Jun 10, 2017

Ok, this is ready to be reviewed. It's far from perfect, but what I think we're going for here is "good enough for a FPWD". I didn't touch the Data Model section at all, and just updated the titles of the "representations" sections. If you want to preview a live version of the document, it can be found here (note images won't be visible because of a bug in htmlpreview.github.io):

https://htmlpreview.github.io/?https://github.com/raw/w3c/vc-data-model/msporny-fpwd-prose-cleanup/index.html

Please review @jandrieu @burnburn @gkellogg and @dlongley.

@msporny
Copy link
Member Author

msporny commented Jun 10, 2017

@liamquin - I can't assign a number of our WG members (@jandrieu @gkellogg and @dlongley) to review the document, which means they're not a part of the team yet. Any chance we can add them?

@jandrieu
Copy link
Contributor

jandrieu commented Jun 13, 2017

The use of email as the first example claim jumped out a bit. Although we can put an email in a claim, an email on its own isn't generally a statement about a subject. An email address's primary purpose isn't to identify ourselves to online services (it's to provide a service endpoint for receiving messages), and when we do, that's us making a claim about ourselves, i.e., that we are the person at that email address rather than than someone else claiming that we are that person. I think, in fact, an email alone can't be a claim without an additional subject and issuer, in contrast to the other examples which more clearly communicate the pattern of an authority making a claim about a subject.

Since we have three other examples in that section (which is repeated in the abstract and the introduction), I'd suggest we drop it.

Copy link
Contributor

@dlongley dlongley left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is only a partial review -- I'll do a more thorough one when I can later.

index.html Outdated
various online services. For example, we use
email addresses to identify ourselves to online services,
driver's licenses to prove that we are capable of operating a
motor vehicle, university degrees to prove we are well-trained
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

well trained

index.html Outdated
driver's licenses to prove that we are capable of operating a
motor vehicle, university degrees to prove we are well-trained
and knowledgeable, and government-issued passports to travel
between countries and access financial services. It is the
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The lead in sentence for this section indicated that we use claims to gain access to online services, yet, this following sentence that is meant to enumerate examples of that -- actually enumerates examples of non-online services and regulatory compliance. We should change the lead in:

"We use claims made by others about us to gain access to services or to prove our compliance with rules and regulations."

But that last bit is too formal for this introduction. I'll have to try and think of a more colloquial way of saying that.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Opening the document with a promise to "gain access to various online services" seems like the antithesis of what our goal and charter is. That smacks of "credentials = authentication" and it makes me fairly uncomfortable. It doesn't set the right context for what we're actually doing.

The rest of the paragraph is better -- proving we can drive a car, being well trained and knowledgable, travel between countries, and access to financial services are great.

How about striking "We typically use claims made by others about us to gain access to various online services" and replacing it with:

Regardless of the digital or physical space, nearly every interaction where one individual is asking another for permission, access, or a benefit relies on trust and the ability of the individual to make a claim that the other can verify.

index.html Outdated
between countries and access financial services. It is the
goal of this specification to provide a standard way to
express these sorts of claims on the Web in a way that is
automatically verifiable.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

automatically verifiable ... I don't think it's clear what's being verified. We need language that is more like:

"express these sorts of claims on the Web such that their authorship can be cryptographically verified."

index.html Outdated
and knowledgeable, and government-issued passports to travel
between countries and access financial services. This specification
provides a standard way to express these sorts of claims on the Web in
a way that is automatically verifiable.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Just a note here that whatever changes we make in the abstract need to be copied here.

@msporny
Copy link
Member Author

msporny commented Jun 13, 2017

The use of email as the first example claim jumped out a bit.

I don't disagree with you and @dlongley is working on a reword of the text that might make more sense.

Some background: When a website asks you for your email address, they're doing at least one thing: Asking how they should get in touch with you.

They may also use that information to create a database record for you (even though that's a horrible design).

Email today, is self-reported. The website has no idea if that's a valid email address unless they email the address and get a response with a valid token. In fact, this is what most sites to today and is one of the reasons "Login with Facebook" and "Login with Google" have become popular. They don't need to implement email address verification as Google/Facebook has done it for the website maintainer.

An email verifiable claim serves the same purpose. For example, you can have a claim that says: "The entity with did:example:12345 has a verified email of [email protected] signed GOOGLE. So, when you log into a site, rather than asking for your email address, they can ask you for a email address credential.

email alone can't be a claim without an additional subject and issuer

That's true, but in some cases, since mailto:[email protected] is a valid URI, it can be used as a subject. I'm not recommending that anyone do this, just that the verifiable claims data model supports it.

@jandrieu
Copy link
Contributor

jandrieu commented Jun 13, 2017

In the group calls there had been discussion about reviewing the terminology. We did some of that in the "identity" PR. Is this PR an appropriate place to review the terms defined in the introduction?

In particular, both holder and issuer feel like a mismatch for the important characteristics of those roles.

For "holder", it's not clear to me what control means without bundling it into a specific control mechanism such as a specific DID method. In the Joram engagement model, Joram never technically "held" any particular claims in any digital/physical sense. Nor did he fully control their creation (once he authorized a steward by giving them a pairwise identifier, the steward then issued the claim and recorded it in the datastore). Like most distributed systems, that data store was never "held" by any single individual.

The defining role for Joram was two-fold. First, he coined pairwise identifiers so that stewards could create claims with him as a subject without using a common, correlatable identifier. Second, he presented claims made by one steward to other stewards to access services such as healthcare. One presumption baked into our discourse is that the presenter of a claim is the controller of that claim in some manner other than its presentation. I think this is often the case--especially when using public keys and DIDs to prove control of identifiers, but there's nothing innately wrong with presenting a claim which stands on its own without proving that the presenter controls it.

For example, presenting a claim that encompasses my driver's license with enough biometric information (picture, height, etc.) such that the inspector can verify the authorship of the claim (the DMV) and separately correlate the biometric with my physical person. In this use case, its irrelevant whether or not I control the private half of a key pair. The claim/credential itself provides everything needed to be useful.

Instead of "holder" and "control", I'd suggest "presenter" and "offers":

presenter
An entity that offers one or more verifiable claims to an inspector

For "issuer", I think the important role is not the mechanics of issuing, but rather the authority of the statement. Anyone can be a legitimate issuer and anyone can make a statement about someone on their own authority. However, when we evaluate a potential claim, the relevant question is not whether or not someone is a legitimate issuer for that particular claim (the mechanics of issuing aren't subject to questions of legitimacy other than technical corruption). Rather, the important question is whether or not the statement maker is a legitimate authority for the statement.

This is a key distinction from the legacy discourse around self-issued claims. In many circles, while such claims were valid mechanically, the issuer wasn't recognized as a legitimate authority. As such, support for self-issued claims never really took off. With verifiable claims, we not only enable claims from any source--including self-issued claims--we can co-opt the legitimacy of existing authorities in a way that previous identity/attribute architectures did not. By focusing on the embedded question of legitimate authority, I think we highlight both the fluidity of an open approach while embracing the value of existing authorities to participate in the claims ecosystem.

Also, I don't think the transmittal of the claim is innate to the role of the authority/issuer. You could easily imaging such claims being created and then made available at a well-known URL.

Instead of "issuer", I'd suggest "authority" and remove "transmittal"

authority
An entity that creates a verifiable claim, making a statement about a particular subject. Examples of issuers include corporations, governments, and individuals.

@jandrieu
Copy link
Contributor

@msporny On today's call, you mentioned that "holders" also receive claims, but I don't think that's innate to the architecture. In Joram's case, all the claims were stored in the distributed store. In many cases, I think even the JSON-LD that is the claim or credential will never actually be held by the "holder", as a DID or other URL would suffice for presenting the claim to an inspector.

I understand that in many cases, the "holder" may also want to verify the claim is what they think it is, but in that case the functional role is that of "inspector". There isn't an innate requirement for a holder to verify the claim and it would muddy the water if everything an inspector can do we attach to the holder.

Could you unpack what you meant on the call?

@stonematt
Copy link
Contributor

@jandrieu with respect to the term holder... there are often challenges inherent in using generic and abstract terms and the case is no different here. In the professional licensure case, a governing body defines license requirements, a professional completes the requirements and earns status in the license, and a prospective employer confirms the professional is in good standing. Whether the professional ever holds a physical or digital artifact representing status isn't material, the professional "holds" rights to the benefits and privileges of status and holds control over access and sharing destinations. They are the primary invested party in that discrete fact.

When we had the initial debate on vocabulary, this is how I rationalized the term "Holder" as it pertains to the space I have experience.

@stonematt
Copy link
Contributor

@dlongley @msporny I tried to do my first commit. Hope I didn't breach protocol...

@msporny
Copy link
Member Author

msporny commented Jun 14, 2017

@stonematt said:

I tried to do my first commit. Hope I didn't breach protocol...

Nope, you did the right thing. The wording, while accurate, is still a bit hard to navigate (being the opening sentence)... can you make another pass to try to break what you're saying into multiple short sentences... attempt 5th grade reading level.

@msporny
Copy link
Member Author

msporny commented Jun 14, 2017

@stonematt said:

Whether the professional ever holds a physical or digital artifact representing status isn't material, the professional "holds" rights to the benefits and privileges of status and holds control over access and sharing destinations. They are the primary invested party in that discrete fact.

This is close to how I rationalized the term "Holder" as well.

@msporny
Copy link
Member Author

msporny commented Jun 14, 2017

The thing that's holding this PR up at this point is the terminology, so I expect much of the rest of this thread to focus on the terminology we're using in the terminology and diagrams section.

@jandrieu have you seen our detailed ecosystem diagram yet? This may shed some light on the other terms we are using:

https://docs.google.com/drawings/d/16IalLHZZq5_PxMLh45EjhxsMcOTE6869PUSlybjDsoc/edit

@msporny
Copy link
Member Author

msporny commented Jun 14, 2017

Current State

  • A Holder acquires their identifier (either directly or indirectly) from an Identifier Registry.
  • An Issuer issues claims to a Holder.
  • A Holder receive claims (either directly or indirectly) from an Issuer.
  • A Holder stores their claims (either directly or indirectly) in a Repository.
  • A Holder presents claims (either directly or indirectly) to an Inspector.
  • An Inspector receives claims (either directly or indirectly) from a Holder.
  • A Inspector uses a Verifier to ensure that a claim meets their needs.

Proposal 1

Issuer remains unchanged.
Holder changes to User
Inspector swaps with Verifier

So:

  • A User acquires their identifier (either directly or indirectly) from an Identifier Registry.
  • An Issuer issues claims to a User.
  • A User receive claims (either directly or indirectly) from an Issuer.
  • A User stores their claims (either directly or indirectly) in a Repository.
  • A User presents claims (either directly or indirectly) to a Verifier.
  • A Verifier receives claims (either directly or indirectly) from a User.
  • A Verifier uses an Inspector to ensure that a claim meets their needs.

This would align our terminology with the way Jan Camenisch's group at IBM views a privacy-preserving identity architecture (see page 4): http://dl.ifip.org/db/conf/idman/idman2013/CamenischDLNPP13.pdf

Proposal 2

Issuer remains unchanged.
Holder changes to Beneficiary.
Inspector remains unchanged.

This would address the term that most folks have had an issue with while leaving the other two in place, which folks seem to not have too much of a concern over. I think the level of concern is highest on Holder, followed by Inspector, followed by Issuer.

@dlongley
Copy link
Contributor

I'm ok with using User to replace Holder. It's a fairly common term of art in the industry and, I think, it represents the appropriate party here.

One side note: We've shied away from using the language "user centric" because it's become ambiguous, but it's worth noting that people who are drawn to user centric systems would notice that User does appear in the center of our most of our diagrams should we adopt it (which I think is a plus). I'm not suggesting we start using this language again -- just pointing out a minor advantage for people exploring our literature for the first time.

I'm not too keen on switching Verifier and Inspector but I don't have strong feelings about it. We currently have a number of roles: Issuer, Holder, Inspector and a number of software tools: Identifier Registry, Repository, Verifier. It seems to me that the name Verifier fits more cleanly with a software tool than Inspector, which sounds, appropriately, like a role. An Inspector plays the role of someone who requires a verifiable claim from the User/Holder and they may use a Verifier as part of their inspection process.

@dlongley
Copy link
Contributor

dlongley commented Jun 16, 2017

I suggest that we could probably talk about the entire verifiable ecosystem and the vast majority of the use cases using just three roles:

  1. Issuer - The party making an assertion about the Subject.
  2. Subject - The party about which an assertion is made.
  3. Inspector - The party that wants to know something trustworthy about the Subject.

A Verifiable Claim is an assertion that can be presented to an Inspector by a party other than the Issuer such that the Inspector can cryptographically verify its authorship and integrity. But there is more to making the transfer or sharing of a Verifiable Claim meaningful, privacy preserving, and respectful:

  1. The Inspector and Issuer must agree on who the Subject is.
  2. The party with rights to the claim may constrain the use of the claim.
  3. The presenting party must have the rights to present the claim.
  4. The Inspector must have rights to make use of the claim.

I think, in the vast majority of cases where privacy matters, the Issuer enters into a relationship with the Subject, a human being, that enables them to make an assertion about the Subject. This assertion is made confidentially but shared as a Verifiable Claim with the Subject to expressly grant them the ability to prove this assertion was made. This act inherently transfers all rights to the Subject to decide with whom and under what conditions that claim may be shared and used. The only right the Issuer retains is the ability to revoke their assertion.

This means that, usually, all rights, including the right to present, fall to the Subject. That it may be that a Subject, for legal purposes or otherwise (e.g. the Subject has no agency), grants these rights to a guardian/steward/holder is a separate concern with respect to understanding the main roles in the ecosystem.

So I recommend that we strike the term "Holder" as a major role and instead use "Subject" wherever "Holder" is currently in use. A simple note, in one place in our specifications, can cover the special cases where the "Subject" has no agency or has transferred rights to some other party to act on its behalf regarding the transfer of Verifiable Claims.

In fact, in a technical document, the entire "rights" section should fall under privacy considerations which, in my view, is further evidence that we ought to be focusing on "Subject" in our technical explanations. This is not meant to indicate that "rights" are not important (far from it), but in explaining the most basic technical details of how claims are made and flow through the ecosystem, creating new roles to cover special circumstances is a hindrance to understanding.

@stonematt
Copy link
Contributor

BTW, I used the terms in the updated intro text. When we settle on the new terms, we'll want to update the language in this checkin: b901e99

@David-Chadwick
Copy link
Contributor

I would like to make the following points:

  1. There is no need to introduce inspector and verifier. At the high level of the model we are using, we do not need to deconstruct entities into their functional components. Otherwise we might wish to add 'signer' to the issuer entity. So please let us just have one entity that receives the claims, i.e. the inspector, and not two (inspector and verifier).
  2. Because we are wanting to protect people's privacy, we are not mandating the use of single global identifiers for everyone. If we were, then of course a presenter could present the claims about many different people to an inspector, and the inspector would know instantly who was being referred to in each credential, due to the unique identifier it contained. But we are not mandating this. Therefore, when an inspector receives a set of credentials (possibly with different identifiers in them) it needs to be sure that they all belong to the presenter/user/holder (aka proof of possession). If they are not, then they are pretty much useless to the inspector, as they could be about anyone (since the inspector has no means of knowing who is being referred to by some random identifier). Consequently it seems to me that the only viable model is that the presenter is the holder/subject of each of the credentials that are presented to the inspector, and that the presenter can prove this to the inspector by cryptographic means.

@David-Chadwick
Copy link
Contributor

D. Longley said

  1. The Inspector and Issuer must agree on who the Subject is.
  2. The party with rights to the claim may constrain the use of the claim.
  3. The presenting party must have the rights to present the claim.
  4. The Inspector must have rights to make use of the claim.

My comments on these are

  1. The only way the Issuer and Inspector can agree on who the third party is, is by either of the following:
    a) the third party has a unique identifier that is known to both the issuer and the inspector, and this identifier is inserted into the VC, or
    b) the third party is the (unknown) intermediate that is a man in the middle between the inspector and issuer, and it can prove possession of the VC by cryptographic means.

  2. I am not sure which party your are referring to here. If not the subject of the claim, then who? If the subject, then why not say Subject to make it clear?

  3. This is what I have called proof of possession, a well accepted term in PKI. Anyone can present any digital data to anyone else, but PoP allows the recipient to validate that the data belongs to the sender. So why dont we adopt this term?

  4. I disagree with this statement. The subject, being the holder of the claims, can present them to anyone he/she chooses, regardless of whether the issuer allows this or not. The mere fact that the holder gives the VCs to the inspector, and the inspector 'proves possession' immediately confers the inspector the right to use the VC - since the holder freely gave it to the inspector. (We may disregard coercion since there is no way I know of that an inspector can determine whether the holder gave the VC under its own free will or not. We must assume that he/she did).

@dlongley
Copy link
Contributor

@David-Chadwick,

  1. I am not sure which party your are referring to here. If not the subject of the claim, then who? If the subject, then why not say Subject to make it clear?

I was trying to avoid using Subject there because it could be the Holder and I was fleshing out my argument that we should only deal with Holder as a special case. Calling it out as the Subject there seemed to assume away the point of contention. But, yes, my argument followed that this party is almost always the Subject. Anyway, that's the reason why Subject was not used there.

  1. This is what I have called proof of possession, a well accepted term in PKI. Anyone can present any digital data to anyone else, but PoP allows the recipient to validate that the data belongs to the sender. So why dont we adopt this term?

It's fine for those use cases where the Presenter is the Subject. But there may be some other mechanism that could prove to the Inspector that the Presenter had the right to present the claim -- and as I was trying to lay things out at a high, abstract level, I didn't want to get that specific. PoP is certainly a term we ought to use for a majority of use cases (and I believe we have been in discussion but perhaps not enough in our specifications).

  1. I disagree with this statement. The subject, being the holder of the claims, can present them to anyone he/she chooses, regardless of whether the issuer allows this or not.

I did not mean to imply the Issuer had to confer the rights. I was referring to the Subject there. In my later comments, I mention that as soon as the Issuer creates and transfers the claim to the Subject, that "This act inherently transfers all rights to the Subject to decide with whom and under what conditions that claim may be shared and used."

I was trying to point out that a part of this ecosystem (and our data modeling) may be to define a language by which Subjects may express their terms of use when sharing with an Inspector.

@David-Chadwick
Copy link
Contributor

In reply to Dave Longley
Let us deal with the case where the holder/presenter is not the subject of a VC as this seems to be the most difficult one to understand.
i) If the VC is not about the holder, then the holder must be able to convince the inspector that he/she has the right to present the VC. Otherwise any holder could pick up any random VC about anyone else and present it to the inspector. I am assuming we do not support this, nor plan to support it, as it requires globally unambiquous identifiers (like email addresses, SSNs etc.) that the subject is not in control of.
ii) the way that someone proves they have the right to speak on behalf of someone else is usually termed delegation of authority. If you know of another technique, please tell us.
iii) If we accept that DoA is the only way that a holder can present a VC that is not about him/her, then PoP is still the recognised way of validating the right to present the VC. In this case the holder must be able to prove possession of the DoA VC that confers on him/her the rights of the original VC. The DoA VC will be issued by the Subject of the original VC, and the subject of the DoA VC wil be the current holder. The attribute of the VC will refer to the original VC. In this way the holder can indirectly prove possession of the original VC by proving possession of the DoA VC. Of course the inspector must also be able to prove that the private key that signed the DoA VC belongs to the Subject of the original VC. This is trivial to do if the identifier of the Subject is his/her public key, or if the blockchain links the Subject's identifier to his/her public key.

@dlongley
Copy link
Contributor

dlongley commented Jun 19, 2017

@David-Chadwick,

Let us deal with the case where the holder/presenter is not the subject of a VC as this seems to be the most difficult one to understand.

I do think that's important to deal with, but my main argument in this thread is that we don't need (or want) to involve that particular use case in our simplest explanations of the main roles in the ecosystem. I think it brings in unnecessarily complexity; we should talk about that use case, but as a special case rather than trying to integrate it into our main explanations and diagrams. I think Subject is sufficient.

  1. If the VC is not about the holder, then the holder must be able to convince the inspector that he/she has the right to present the VC.

Agreed.

ii) the way that someone proves they have the right to speak on behalf of someone else is usually termed delegation of authority. If you know of another technique, please tell us.

I don't think using that term is in dispute (though I wouldn't call "delegation of authority" a technique -- as the technique would be the specific way you delegate authority, but that's a nit).

iii) If we accept that DoA is the only way that a holder can present a VC that is not about him/her, then PoP is still the recognised way of validating the right to present the VC.

PoP is one way to go. There's no reason to assume that there won't be other methods used in the ecosystem. It's important that we communicate the need for such a mechanism upfront, but the details of any particular mechanism may be buried a little deeper -- or may even be considered out of scope for the WG other than as a recommendation.

In this case the holder must be able to prove possession of the DoA VC that confers on him/her the rights of the original VC. The DoA VC will be issued by the Subject of the original VC, and the subject of the DoA VC wil be the current holder. The attribute of the VC will refer to the original VC. In this way the holder can indirectly prove possession of the original VC by proving possession of the DoA VC. Of course the inspector must also be able to prove that the private key that signed the DoA VC belongs to the Subject of the original VC. This is trivial to do if the identifier of the Subject is his/her public key, or if the blockchain links the Subject's identifier to his/her public key.

This is just one technique for implementing DoA. There are many others. For example, a proof of control, perhaps given according to a DID specification, may be sufficient evidence to an inspector to accept the Subject's VC when submitted by the Holder.

This is a useful exchange, but I do worry we're getting far afield from the goal in this particular thread. We're trying to figure out what edits to make to the spec prior to FPWD -- and I believe the main goal now is to determine what to do about the term "Holder". I am arguing we should simply replace it with "Subject" (which I believe to be a non-controversial term) and then add an issue to the spec to figure out a term for "Holder" for the special case where the presenter of the VC is not the Subject. Its usage is only for a special case of the typical VC flow.

@David-Chadwick
Copy link
Contributor

Dave Longley said
"For example, a proof of control, perhaps given according to a DID specification, may be sufficient evidence to an inspector to accept the Subject's VC when submitted by the Holder."

Ans. If the holder can prove control of the private key of the subject, then they are in effect the subject. In which case they could also delegate to themself the privileges of the subject. So DoA could effectively cover this case as well.

"I am arguing we should simply replace it with "Subject" (which I believe to be a non-controversial term) and then add an issue to the spec to figure out a term for "Holder" for the special case where the presenter of the VC is not the Subject. Its usage is only for a special case of the typical VC flow".

Ans. I am happy to support this change of terminology

@talltree
Copy link

I am extremely late to this extremely long thread, but I wanted to share an observation that I discussed with Joe Andrieu recently: over the last six months, I'm see the term "relying party" being used almost everywhere in the industry. OTOH, the term "inspector" seems highly specific to the VCWG.

At the risk of reopening old wounds, can I ask why the VCWG isn't using "relying party"?

@msporny
Copy link
Member Author

msporny commented Jun 26, 2017

At the risk of reopening old wounds, can I ask why the VCWG isn't using "relying party"?

Here is the definition of Relying Party from the OpenID Connect spec:

Relying Party (RP)
OAuth 2.0 Client application requiring End-User Authentication and Claims from an OpenID Provider.

My recollection from the last time we had the discussion was that "Relying Party" was heavily associated with the OpenID flows and there was an understanding that a RP would talk directly with an Identity Provider (which is a trust violation).

The other issue with "Relying Party" was the assumption that there is a Secure Token Service operating (and it would be a stretch to say that a Verifiable Claim is issued via a Secure Token Service).

In addition, Microsoft's definition of Relying Party tends to be way more specific than what that role does in the Verifiable Claims ecosystem:

https://msdn.microsoft.com/en-us/library/ee748466.aspx?f=255&MSPPError=-2147217396

It is true that most everyone uses Relying Party to talk about something "Inspector"-like in these scenarios, but what comes along with that is baggage related to not understanding the separation that Verifiable Claims provides between the IdP and the RP. Here are the high level differences between a Relying Party in the more traditional (OpenID) sense and the VC Inspector:

  • The Inspector doesn't directly contact the IdP to get claims or verify claims.
  • The Inspector doesn't rely on a Secure Token Service.
  • The Inspector isn't required to run any particular protocol (OpenID requires OAuth 2.0).
  • The Inspector doesn't have many of the mandatory features required of an OpenID Relying Party -
    http://openid.net/specs/openid-connect-core-1_0.html#RPMTI

So, in short, there was concern over the baggage associated with Relying Party as it's been used in OpenID Connect.

@ChristopherA
Copy link

ChristopherA commented Jun 27, 2017 via email

@talltree
Copy link

talltree commented Jun 27, 2017

Manu, while I get all that, ironically your answer almost seems to prove my point. Literally everyone is using the term "relying party" for "the third point on the triangle", i.e., the party that relies on the the results of the protocol—in this case the delivery of a verifiable claim.

Furthermore, as Christopher points out, NIST and others also use the term because it's well-established in PKI. I'm reading it in a number of places in the NIST 800-130 spec for cryptographic key frameworks.

The fact that different protocols work in different ways is a function of the protocol, not the name of the entity performing a role in the protocol. For example, many protocols use the term "Subject" to refer to the main actor in the protocol. They don't create a new term for this role just because it's a different protocol.

Thus to use a different term that the rest of the industry for the role that everyone in the industry recognizes seems like it is just going to cause confusion and increase the adoption hurdle. All of which could be avoided by one paragraph in the spec that explains exactly what you did above, i.e., "How a Verifiable Claims Relying Party is different than an OpenID Relying Party or a ______________ Relying Party".

@jandrieu
Copy link
Contributor

I like relying party, mostly because it is clearly the third part of the triangle in the rest of the IdM conversations I know of. It easily maps to a well-understood referent for many.

However, that's tempered by two things.

First, I would prefer a single word term rather than a multi-word phrase. There are times when you need to say things like "subject/holder/relying-party" and it's awkward. I'm not even sure that the right way to do it. It almost certainly isn't "subject/holder/relying party", but apparently the Chicago and AP style guides disagree, both with each other and with my approach.

Second, it leans towards "identity" rather strongly. I'm a fan of identity, but I think for alignment with the rest of the W3C we would do well to avoid sounding like an identity solution.

That said, it should definitely be an option in the poll.

@talltree
Copy link

Joe, just a brief note that "relying party" has been used in PKI long before its usage with identity protocols.

@msporny
Copy link
Member Author

msporny commented Jun 27, 2017

@talltree wrote:

Literally everyone is using the term "relying party" for "the third point on the triangle"

@jandrieu wrote:

it should definitely be an option in the poll.

@ChristopherA wrote:

Both use the term relying party but I don't think are Oauth.

There are enough proponents of "Relying Party" now that it should be a poll option. I'm adding the option now.

@rvarn
Copy link

rvarn commented Jun 27, 2017

Data Model Ideas

An Issuer issue claims about Subjects using Identifiers
Subject is the party about whom the claim is made and can be a:
Person
Thing
Entity
Artificial Intelligence
An Asserter of a claim is the party submitting the claim to a Receiver and can be:
Self
Broker
Agent
Entity
Seekers are parties looking for specific claims or claim elements who have not yet been authorized by the Subject of a claim to receive the claim
Broker is a party that facilitates connections and exchange between Subjects and Seekers in regard to a claim
Agent is a party acting on behalf of a Subject
Receivers accept claims or claim elements from A sserters
Verifier is a party that determines the elements of a claim necessary for validity are present and current and that its contents and status are consistent and fedelitous with the issuer’s terms and purpose
Accessors are those with permission to examine some or all of the contents of a claim
Claimvelope is the encapsulation of the contents of claim and securing said contents from unauthorized access, use, or modification
Claimvelope Label contains the data necessary to facilitate transmission and verification of a claim and to gain or request access to some or all of the contents.
Published Claims are claims made public by the subject of a claim in which the claim and subject are revealed and such a revelation is allowed by the terms of issuance
Discoverable Claims are non-public claims that can be queried to determine if it contains attributes of interest to a Seeker
Identifiers are methods of associating a Subject with a claim and can be:
Anonymous
Pseudo-nonymous
Veri-nonymous

@jandrieu
Copy link
Contributor

jandrieu commented Jun 27, 2017

I just want to support two points made by Dave Longley in today's call.

First, "folks are sometimes favoring a term for their most cherished use cases, but we haven't really spent the time to distill the most common denominator." That's understandable, but what we need is the essential roles, the roles that always do what they do--even if they are done by the same party or by parties better known by a different name. A well named role will still do what is expected in every use case.

Second, the main strength or feature of Verifiable Claims is that party A can make a claim that party B can share with party C, where: party C doesn't have to trust party B and party A doesn't have to know that party B shared the claim with party C.

Let me break out the part that jumped out at me:

party C doesn't have to trust party B

This is the essence of my argument that Party B (Role_C elsewhere) should not be defined based on its entitlement to present the claim. Because we have no means to verify that entitlement within the Verifiable Claims infrastructure.

The entire VC architecture is based on not needing to trust the holder/presenter/claimant.

Yes, there are use cases where the VCs usefulness will depend on the ability of the Inspector/Relying Party/Verifier being able to deduce some facts about the presenter--because there are assertions being made outside the claim about the relationship of the presenter to the subject. BUT THAT IS NOT ESSENTIAL to all use cases. Further, it obfuscates the unique value of Verifiable Claims.

While one could use VCs to bootstrap facts about the presenter (by establishing that the presenter is the subject or delegate for one or more claims), the knotty problem we are fundamentally sidestepping is the presenter who misrepresents the facts.

Or in reverse, the power of VCs is in the verifiability of the statement in the claim in the face of an untrustworthy presenter. Even if they have spoofed whatever entitlement check as presenter, the claim itself stands on its own thanks to both cryptographic trust and procedural revocability.

As such, I think its is a fundamental error to define the presenter/holder/claimant as "entitled to represent the Subject of the Claims." or saying that they "must be able to prove that he/she is authorized to provide the Claims."

The only role that is always true for the presenter/holder/claimant is that they are the one presenting the claim/profile with the inspector (sharing, presenting, etc.).

@David-Chadwick
Copy link
Contributor

David-Chadwick commented Jun 27, 2017 via email

@dlongley
Copy link
Contributor

I made some comments on the mailing list regarding how I think the remaining roles to be named ought to be defined:

https://lists.w3.org/Archives/Public/public-credentials/2017Jun/0166.html

@David-Chadwick
Copy link
Contributor

David-Chadwick commented Jun 28, 2017 via email

@jandrieu
Copy link
Contributor

jandrieu commented Jun 30, 2017 via email

@msporny msporny merged commit 47944b7 into gh-pages Jul 22, 2017
@msporny msporny deleted the msporny-fpwd-prose-cleanup branch July 27, 2017 13:20
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.