Verifiable Health Link
0.0.2-current - ci-build
Verifiable Health Link, published by IHE IT Infrastructure Technical Committee. This guide is not an authorized publication; it is the continuous build for version 0.0.2-current built by the FHIR (HL7® FHIR® Standard) CI Build. This version is based on the current content of https://github.com/IHE/ITI.VHL/ and changes regularly. See the Directory of published versions
Note on Transaction Optionality: This transaction is REQUIRED (R) for Trust Anchor actors and OPTIONAL (O) for VHL Sharer and VHL Receiver actors. Implementations that do not support this transaction must use alternative mechanisms (out of scope for this profile) to establish trust relationships with the Trust Anchor. Only implementations that claim support for this transaction can participate in IHE Connectathon testing for trust establishment. See Volume 1 Section XX.2.1 for details on trust establishment approaches.
The Submit PKI Material with DID transaction enables entities within a trust network—specifically, VHL Sharers and VHL Receivers—to submit their public key material to a designated Trust Anchor using Decentralized Identifiers (DIDs). This transaction uses DID Documents conforming to the W3C DID Core specification to package and transmit cryptographic key material. The Trust Anchor validates, catalogs, and makes this material available for retrieval, enabling participants to verify digital signatures and establish secure communications within the VHL ecosystem.
| Actor | Role |
|---|---|
| VHL Receiver, VHL Sharer | Initiate Submit PKI Material Request |
| Trust Anchor | Respond to Submit PKI Material Request |
Figure X.X.X.X-2: Submit PKI Material with DID Interaction Diagram
When a VHL Sharer or VHL Receiver generates a new public-private key pair for use within the VHL trust network, they SHALL submit the corresponding public key material to the Trust Anchor for validation and inclusion in the trust list.
The submission MAY include metadata to support categorization of key usage (e.g., digital signatures, encryption, secure channels) and business or operational context.
VHL Sharer / VHL Receiver (Submitter):
The submitting actor:
PKI material SHALL be submitted to the Trust Anchor using DID Documents formatted according to the W3C DID Core specification.
DID Document Structure
The DID Document SHALL be formatted as a JSON document containing:
Required DID Document Elements:
| Element | Cardinality | Description |
|---|---|---|
| @context | [1..*] | JSON-LD context, MUST include "https://www.w3.org/ns/did/v1" |
| id | [1..1] | The DID for the submitting entity (e.g., "did:example:123456789abcdefghi") |
| verificationMethod | [1..*] | Array of verification methods containing public key material |
Verification Method Structure:
Each verification method SHALL include:
| Element | Cardinality | Description |
|---|---|---|
| id | [1..1] | Unique identifier for this verification method (e.g., "did:example:123#keys-1") |
| type | [1..1] | Cryptographic suite type (e.g., "JsonWebKey2020", "EcdsaSecp256k1VerificationKey2019") |
| controller | [1..1] | DID that controls this verification method |
| publicKeyJwk | [0..1] | Public key in JWK format (RFC 7517) |
Example DID Document:
{
"@context": [
"https://www.w3.org/ns/did/v1",
"https://w3id.org/security/suites/jws-2020/v1"
],
"id": "did:example:vhl-sharer-123456",
"verificationMethod": [{
"id": "did:example:vhl-sharer-123456#signing-key-1",
"type": "JsonWebKey2020",
"controller": "did:example:vhl-sharer-123456",
"publicKeyJwk": {
"kty": "EC",
"crv": "P-256",
"x": "38M1FDts7Oea7urmseiugGW7tWc3mLpJh6rKe7xINZ8",
"y": "nDQW6XZ7b_u2Sy9slofYLlG03sOEoug3I0aAPQ0exs4"
}
}]
}
Submission Pathways
The DID Document SHALL be submitted to the Trust Anchor via one of the following pathways (as determined by the implementing jurisdiction):
POST [trust-anchor-base]/did
Content-Type: application/did+json
Indirect Publication: Publish the DID Document at a well-known URL under the control of the submitting organization and notify the Trust Anchor of the location
Required Metadata
Submissions SHOULD include sufficient provenance metadata to support validation by the Trust Anchor:
Trust Anchor (Receiver):
Upon receipt of public key material from a VHL Sharer or VHL Receiver, the Trust Anchor SHALL validate, organize, sign, and expose the PKI material as part of a trusted, canonical trust list.
Upon receiving a DID Document submission, the Trust Anchor SHALL:
Rejection Criteria
The Trust Anchor SHALL reject submissions that:
The Trust Anchor sends a Submit PKI Material Response Message upon completing the processing of a Submit PKI Material Request Message. A response SHALL be returned regardless of whether the submission succeeded or failed.
The response message format is determined by the implementing jurisdiction of the Trust Anchor.
Success Response:
On successful submission and validation, the Trust Anchor SHALL return:
Error Response:
On failure, the Trust Anchor SHALL return an appropriate error response:
Upon receiving the response, the submitting actor (VHL Sharer or VHL Receiver) SHALL:
The secure and verifiable exchange of PKI material via DID Documents is foundational to the operation of a Verified Health Link (VHL) trust network. Any compromise in the integrity, authenticity, or provenance of this material undermines the ability of network participants to verify digital signatures, authenticate service endpoints, or enforce trust relationships.
The Trust Anchor SHALL validate that:
Jurisdictions MAY define additional security controls, such as specific cryptographic algorithm requirements, certificate chaining policies, offline verification workflows, or restrictions on submission endpoints.