Skip to content

How does a credential issuer trust the wallet attestation issuer's public key? #101

@joelposti

Description

@joelposti

Section 4.3.1. Wallet Attestation Schema defines that the wallet attestation issuer's (a.k.a. wallet provider's) public key is distributed using a mechanism defined in SD-JWT VC section 5. JWT VC Issuer Metadata. The mechanism is essentially:

  1. Download a JSON document from an HTTPS URL.
  2. Get a JWK key
    a. either by finding the key from the document's jwks.keys array
    b. or by downloading another JSON document from a JWKS endpoint referenced in the original document's jwks_uri field and finding the key from jwks.keys array in the second JSON document.

Presumably this key resolution is done by the credential issuer during the credential issuance process. What is lacking here is a trust model. How does the credential issuer trust the key presented in the first or the second JSON document? How does the credential issuer know that the wallet attestation is signed by a legitimate wallet provider?

An ISO/IEC 23220-3 draft defines a similar wallet attestation schema and presents a certificate chain-based trust model in one of its wallet attestation examples. In the example the wallet provider's public key is distributed along with the wallet attestation by inserting a certificate with the public key to the wallet attestation's x5c header. I suppose the idea there is that the credential issuer has a CA certificate in its trust store and can thus establish trust to the wallet provider's certificate and public key via the CA certificate.

Sub-issues

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions