Skip to content

Clarify key ownership verification for HTTP scheme issuer identifiers #605

@ottonomy

Description

@ottonomy

If an issuer uses a HTTP identifier like https://example.com/issuers/abc123 and then a Data Integrity proof, how does a verifier confirm that the key identifier in the proof like https://example.com/issuers/abc123/key is actually a key owned by the issuer?

{
  "type": ["VerifiableCredential", "OpenBadgeCredential"], ...
  "issuer": "https://example.com/issuers/abc123",
  "proof": {
      "type": "DataIntegrityProof",
      "created": "2025-09-01T20:35:20Z",
      "cryptosuite": "eddsa-rdfc-2022",
      "proofPurpose": "assertionMethod",
      "proofValue": "z5tgU95feKnX9ezpD622pjGedtTS7hPp28nyPxDD2xg9aQhesna5zdR3HQXJ2sarC8o1tAcq5Nm2gN5EV7fTPPR5o",
      "verificationMethod": "https://example.com/issuers/abc123/key"
    }
}

The spec doesn't require a specific piece of data be returned from the issuer.id URL if it's an HTTPS URL. Do verifiers need to get key association information from an external source?

Some related reading:

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions