[Openid-specs-digital-credentials-protocols] NOT READY --- RE: FW: Working group last call for proposed OpenID4VP Implementer's Draft

Orie Steele orie at transmute.industries
Wed Oct 23 20:47:33 UTC 2024


Then the issue is solved by doing this:

{
  "@context": [
    "https://www.w3.org/2018/credentials/v1"
  ],
  "type": [
    "VerifiablePresentation"
  ],
  "verifiableCredential": [
    {
      "@context": [
        "https://www.w3.org/2018/credentials/v1",
        "https://www.w3.org/2018/credentials/examples/v1"
      ],
      "id": "https://example.com/credentials/1872",
      "type": [
        "VerifiableCredential",
        "IDCredential"
      ],
      "issuer": {
        "id": "did:example:issuer"
      },
      "issuanceDate": "2010-01-01T19:23:24Z",
      *"cnf": { "kid": "**did:example:holder" },*
      "credentialSubject": {
        *"id": "**did:example:holder",*
        "given_name": "Max",
        "family_name": "Mustermann",
        "birthdate": "1998-01-11",
        "address": {
          "street_address": "Sandanger 25",
          "locality": "Musterstadt",
          "postal_code": "123456",
          "country": "DE"
        }
      },
      "proof": {
        "type": "Ed25519Signature2018",
        "created": "2021-03-19T15:30:15Z",
        "jws": "eyJhb...JQdBw",
        "proofPurpose": "assertionMethod",
        "verificationMethod": "did:example:issuer#keys-1"
      }
    }
  ],
  "id": "ebc6f1c2",
  "holder": "did:example:holder",
  "proof": {
    "type": "Ed25519Signature2018",
    "created": "2021-03-19T15:30:15Z",
    "challenge": "n-0S6_WzA2Mj",
    "domain": "https://client.example.org/cb",
    "jws": "eyJhb...IAoDA",
    "proofPurpose": "authentication",
    "verificationMethod": "did:example:holder#key-1"
  }
}

Per the W3C VCDM the credential subject id is optional, as is
"cryptographic binding" between credentials and subjects / holders using
mechanisms like "cnf" or "DIDs".

Your suggestion is that the error in this example is grounds for not
progressing the document, can you propose a solution?

There are lots of other problems with this example such as being for VCDM
v1 (v2 is in progress right now, and including data integrity proofs that
have been deprecated Ed25519Signature2018 (
https://w3c-ccg.github.io/lds-ed25519-2018/)  is now:
https://www.w3.org/TR/vc-di-eddsa

I recommend removing the example, or updating it to support version 2.

Regards,

OS






On Wed, Oct 23, 2024 at 2:55 PM Francisco Corella <fcorella at pomcor.com>
wrote:

> The issue is NOT how you resolve DIDs, nor any other technical details of
> decentralized identifiers.
>
>
>
> The issue is that there is no relationship between the credential subject
> and the holder of the presentation that can be cryptographically verified
> by the relying party.
>
>
>
> Francisco
>
>
>
>
>
> -----Original message-----
> *From:* Orie Steele <orie at transmute.industries>
> *Sent:* Wednesday, October 23 2024, 12:48 pm
> *To:* Digital Credentials Protocols List <
> openid-specs-digital-credentials-protocols at lists.openid.net>
> *Cc:* Gabe Cohen <gabe at tbd.email>; Francisco Corella <fcorella at pomcor.com>;
> Veronica Wojnas <v.wojnas at gmail.com>; Sukhi Chuhan <
> sukhpreetchuhan at gmail.com>
> *Subject:* Re: [Openid-specs-digital-credentials-protocols] NOT READY ---
> RE: FW: Working group last call for proposed OpenID4VP Implementer's Draft
>
> The idea with these JSON-LD graph node identifiers, is that you have some
> document loader that resolves the identifiers to cryptographic material or
> other credentials.
>
> So in W3C VCDM where you see:
>
> kid: did:example:holder#key-1
>
> You can mentally replace that with:
>
>
> - urn:ietf:params:oauth:ckt:sha-256:SWvYr63zB-WwjGSwQhv53AFSijRKQ72oj63RZp2iU-w
> -
> urn:ietf:params:oauth:jwk-thumbprint:sha-256:NzbLsXh8uDCcd-6MNwXF4W_7noWXFZAfHkxZsRGC9Xs
>
> And then assume that *somehow* the issuers, holders and verifiers have all
> agreed to resolve key identifiers to public keys the same way, and that
> they confirm signatures the same way.
>
> In terms of "credential binding", you can use the "cnf" claim in W3C VCDM
> credentials just like you can use it with CWTs / JWTs.
>
> - https://www.iana.org/assignments/cwt/cwt.xhtml#confirmation-methods
> - https://www.iana.org/assignments/jwt/jwt.xhtml#confirmation-methods
>
> From this view a "DID URL" aka "JSON-LD graph node identifier for a
> verification method", is just a special case of "weird looking" kid.
>
> Notice that "kid" is in both registries as a valid confirmation method.
>
> I'd suggest removing the DID examples from this specification before
> publishing or documenting what I have written above in the specification.
>
> OS
>
>
> On Wed, Oct 23, 2024 at 2:26 PM Francisco Corella via
> Openid-specs-digital-credentials-protocols <
> openid-specs-digital-credentials-protocols at lists.openid.net> wrote:
>
>> That reference is not in the credential, it's in the presentation.  And
>> it is not a reference to the subject of the credential.
>>
>>
>>
>> Even if the verifier were able to find the public key of the holder in
>> the DID document of the holder,
>>
>> it would no way of verifying cryptographically that the credential was
>> issued to did:example:holder.
>>
>>
>>
>> Francisco
>>
>>
>>
>> -----Original message-----
>> *From:* Gabe Cohen <gabe at tbd.email>
>> *Sent:* Wednesday, October 23 2024, 12:01 pm
>> *To:* Digital Credentials Protocols List <
>> openid-specs-digital-credentials-protocols at lists.openid.net>
>> *Cc:* Francisco Corella <fcorella at pomcor.com>; Veronica Wojnas <
>> v.wojnas at gmail.com>; Sukhi Chuhan <sukhpreetchuhan at gmail.com>
>> *Subject:* Re: [Openid-specs-digital-credentials-protocols] NOT READY
>> --- RE: FW: Working group last call for proposed OpenID4VP Implementer's
>> Draft
>>
>> There is a reference to it in what you’ve quoted
>>
>>
>>>     "verificationMethod": "did:example:holder#key-1"
>>>
>>
>> If your implementation understands DIDs then this is a standard way to
>> express referencing key material in a DID Document.
>>
>> The examples do need to be updated, however, I would not classify this as
>> a *fundamental security flaw*. I have an issue to make the W3C VC
>> <https://github.com/openid/OpenID4VP/issues/5> examples better.
>>
>> Gabe
>>
>> On Oct 23, 2024 at 11:48:26 AM, Francisco Corella via
>> Openid-specs-digital-credentials-protocols <
>> openid-specs-digital-credentials-protocols at lists.openid.net> wrote:
>>
>>>
>>>
>>>
>>> Hello Mike,
>>>
>>>
>>>
>>> Thank you for sending the last call and the current Editor's draft of
>>> the OpenID4VP specification.
>>>
>>>
>>>
>>> I think the draft is not ready because it has a fundamental security
>>> flaw.
>>>
>>>
>>>
>>> Section 2 says:
>>>
>>>
>>>
>>> Cryptographic Holder Binding:
>>> Ability of the Holder to prove legitimate possession of a Verifiable
>>> Credential by proving control over the same private key during the issuance
>>> and presentation. Mechanism might depend on the Credential Format. For
>>> example, in jwt_vc_json Credential Format, a Verifiable Credential with
>>> Cryptographic Holder Binding contains a public key or a reference to a
>>> public key that matches to the private key controlled by the Holder.
>>>
>>>
>>>
>>> But Section B.1.2.3 has the following example of a verifiable
>>> presentation of a verifiable credential:
>>>
>>>
>>>
>>> {
>>>   "@context": [
>>>     "https://www.w3.org/2018/credentials/v1"
>>>   ],
>>>   "type": [
>>>     "VerifiablePresentation"
>>>   ],
>>>   "verifiableCredential": [
>>>     {
>>>       "@context": [
>>>         "https://www.w3.org/2018/credentials/v1",
>>>         "https://www.w3.org/2018/credentials/examples/v1"
>>>       ],
>>>       "id": "https://example.com/credentials/1872",
>>>       "type": [
>>>         "VerifiableCredential",
>>>         "IDCredential"
>>>       ],
>>>       "issuer": {
>>>         "id": "did:example:issuer"
>>>       },
>>>       "issuanceDate": "2010-01-01T19:23:24Z",
>>>       "credentialSubject": {
>>>         "given_name": "Max",
>>>         "family_name": "Mustermann",
>>>         "birthdate": "1998-01-11",
>>>         "address": {
>>>           "street_address": "Sandanger 25",
>>>           "locality": "Musterstadt",
>>>           "postal_code": "123456",
>>>           "country": "DE"
>>>         }
>>>       },
>>>       "proof": {
>>>         "type": "Ed25519Signature2018",
>>>         "created": "2021-03-19T15:30:15Z",
>>>         "jws": "eyJhb...JQdBw",
>>>         "proofPurpose": "assertionMethod",
>>>         "verificationMethod": "did:example:issuer#keys-1"
>>>       }
>>>     }
>>>   ],
>>>   "id": "ebc6f1c2",
>>>   "holder": "did:example:holder",
>>>   "proof": {
>>>     "type": "Ed25519Signature2018",
>>>     "created": "2021-03-19T15:30:15Z",
>>>     "challenge": "n-0S6_WzA2Mj",
>>>     "domain": "https://client.example.org/cb",
>>>     "jws": "eyJhb...IAoDA",
>>>     "proofPurpose": "authentication",
>>>     "verificationMethod": "did:example:holder#key-1"
>>>   }
>>> }
>>>
>>>
>>>
>>> The public key of the holder is "did:example:holder#key-1".  There is no
>>> reference to it in the verifiable credential, so cryptographic holder
>>> binding cannot be verified.
>>>
>>>
>>>
>>> The root of this problem is that, in a verifiable credential, the
>>> signature of the issuer does not cover the public key of the subject.
>>>
>>>
>>>
>>> I plan to call a session at next week's IIW to discuss this issue.
>>>
>>>
>>>
>>> Best regards,
>>>
>>>
>>>
>>> Francisco
>>>
>>>
>>> -----Original message-----
>>> *From:* Michael Jones via Openid-specs-digital-credentials-protocols <
>>> openid-specs-digital-credentials-protocols at lists.openid.net>
>>> *Sent:* Wednesday, October 23 2024, 7:34 am
>>> *To:* openid-specs-digital-credentials-protocols at lists.openid.net <
>>> openid-specs-digital-credentials-protocols at lists.openid.net>
>>> *Cc:* Michael Jones <michael_b_jones at hotmail.com>
>>> *Subject:* [Openid-specs-digital-credentials-protocols] FW: Working
>>> group last call for proposed OpenID4VP Implementer's Draft
>>>
>>>
>>> FYI
>>>
>>>
>>>
>>> *From:* Openid-specs-ab <openid-specs-ab-bounces at lists.openid.net> *On
>>> Behalf Of *Michael Jones via Openid-specs-ab
>>> *Sent:* Wednesday, October 23, 2024 7:31 AM
>>> *To:* openid-specs-ab at lists.openid.net
>>> *Cc:* Michael Jones <michael_b_jones at hotmail.com>
>>> *Subject:* [Openid-specs-ab] Working group last call for proposed
>>> OpenID4VP Implementer's Draft
>>>
>>>
>>>
>>> Dear OpenID Connect Working Group,
>>>
>>>
>>>
>>>
>>> We would like to get working group consensus that the current OpenID4VP
>>> draft is ready to start the Implementer’s draft approval process.  Please
>>> respond to this e-mail within the next week, by Wednesday, October 30th end
>>> of business hours in Pacific Time, saying whether you believe the current
>>> draft should proceed or not.
>>>
>>>
>>>
>>> The current OpenID4VP document to be reviewed can be found here:
>>> https://openid.github.io/OpenID4VP/openid-4-verifiable-presentations-wg-draft.html
>>> .
>>>
>>>
>>>
>>> The details of the Implementer’s Draft approval process can be found
>>> here: https://openid.net/wg/resources/approving-specifications/.  This
>>> e-mail is about the first bullet point on this list, which is sometimes
>>> called Working Group Last Call.  Following that, there’s a 45-day
>>> Foundation-wide review, followed by a 7-day voting period. (The poll itself
>>> will actually open 7 days before the end of the Foundation-wide review
>>> ends.)  If all goes smoothly, the voting will hopefully start on Monday,
>>> 16th December.
>>>
>>>
>>>
>>> As shared on the working group calls, completing this Implementer’s
>>> Draft process promptly is an important step in obtaining IPR commitments
>>> for the specification, thereby enabling the DCP working group to adopt it.
>>> This will allow the DCP WG to hopefully publish a final specification by
>>> the end of March for inclusion into the EUDI implementing acts.  We hope to
>>> get implementers’ feedback on this draft over the next few months so we can
>>> continue to perfect the specification before it becomes final.
>>>
>>>
>>>
>>>                                 -- Mike (writing as working group chair)
>>>
>>>
>>>
>>> P.S.  Thanks to Joseph Heenan for drafting most of the text above!
>>>
>>>
>>>
>>> --
>>>
>>> Openid-specs-digital-credentials-protocols mailing list
>>> Openid-specs-digital-credentials-protocols at lists.openid.net
>>> https://lists.openid.net/mailman/listinfo/openid-specs-digital-credentials-protocols
>>>
>>> --
>>> Openid-specs-digital-credentials-protocols mailing list
>>> Openid-specs-digital-credentials-protocols at lists.openid.net
>>>
>>> https://lists.openid.net/mailman/listinfo/openid-specs-digital-credentials-protocols
>>>
>> --
>> Openid-specs-digital-credentials-protocols mailing list
>> Openid-specs-digital-credentials-protocols at lists.openid.net
>>
>> https://lists.openid.net/mailman/listinfo/openid-specs-digital-credentials-protocols
>
>
>
> --
>
>
>
> *ORIE STEELE*
> Chief Technology Officer
> www.transmute.industries
>
> <https://transmute.industries>
>
>

-- 


ORIE STEELE
Chief Technology Officer
www.transmute.industries

<https://transmute.industries>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.openid.net/pipermail/openid-specs-digital-credentials-protocols/attachments/20241023/e1f113eb/attachment-0001.htm>


More information about the Openid-specs-digital-credentials-protocols mailing list