Trust Lists
EUDIPLO implements a trust framework for credential verification based on the ETSI TS 119 602 standard (List of Trusted Entities - LoTE). This ensures that credentials are only accepted from authorized issuers and that revocation information comes from the correct authority.
Overview
When verifying a credential presentation, EUDIPLO needs to answer two critical questions:
- Was this credential issued by a trusted entity?
- Is the revocation status provided by an authorized source?
Trust lists solve this by maintaining a registry of:
- Issuance Certificates: Certificates authorized to sign credentials
- Revocation Certificates: Certificates authorized to sign status lists
Each trusted entity defines both an issuance certificate and a revocation certificate. When verifying a credential, EUDIPLO ensures that the status list is signed by the revocation certificate from the same entity that issued the credential. This prevents an attacker from using a valid issuance certificate with a rogue status list.
Trust List Structure
A trust list in EUDIPLO follows the LoTE (List of Trusted Entities) format and contains:
Metadata
- ID: Unique identifier for the trust list
- Description: Human-readable description
- Signing Certificate: Certificate used to sign the trust list itself
- Version/Sequence Number: Tracks trust list updates
Trusted Entities
Each entity represents an authorized issuer with:
- Issuance Certificate: Used to verify credential signatures
- Revocation Certificate: Used to verify status list signatures
- Entity Information: Name, country, contact details
How Trust Verification Works
Credential Verification Flow
When a credential is presented for verification:
Certificate Chain Matching
EUDIPLO supports two modes for matching certificates:
-
CA Mode: The trust list contains CA certificates. The credential's certificate chain must terminate at the trusted CA.
-
Pinned Mode: The trust list contains end-entity certificates. The credential's leaf certificate must exactly match the pinned certificate.
Creating Trust Lists
Via Configuration Import
Create a JSON file in config/{tenant}/trust-lists/:
{
"id": "my-trust-list",
"description": "Production Trust List",
"keyChainId": "trust-list-signing-key-chain-id",
"entities": [
{
"type": "internal",
"issuerKeyChainId": "uuid-of-issuance-cert",
"revocationKeyChainId": "uuid-of-revocation-cert",
"info": {
"name": "Organization Name",
"country": "DE"
}
}
]
}
Via API
Use the Trust List API endpoints:
# Create a trust list
curl -X POST "${BASE_URL}/trust-list" \
-H "Authorization: Bearer ${TOKEN}" \
-H "Content-Type: application/json" \
-d '{
"id": "my-trust-list",
"description": "Production Trust List",
"keyChainId": "trust-list-signing-key-chain-id",
"entities": [...]
}'
Entity Types
Internal Entities
Reference certificates already managed in EUDIPLO:
{
"type": "internal",
"issuerKeyChainId": "uuid-of-issuance-cert",
"revocationKeyChainId": "uuid-of-revocation-cert",
"info": {
"name": "Organization Name",
"country": "DE"
}
}
Use Case: You are an issuer and want to publish a trust list containing your own certificates that are already managed by EUDIPLO.
Benefits:
- Seamless integration with certificates managed in EUDIPLO
- Certificates are validated and linked automatically
- Easy to maintain as certificates are updated in the system
External Entities
Include PEM certificates directly:
{
"type": "external",
"issuerCertPem": "-----BEGIN CERTIFICATE-----\n...\n-----END CERTIFICATE-----",
"revocationCertPem": "-----BEGIN CERTIFICATE-----\n...\n-----END CERTIFICATE-----",
"info": {
"name": "External Issuer",
"country": "US"
}
}
Use Case: You are a verifier and want to accept credentials from external issuers that are not managed by your EUDIPLO instance.
Benefits:
- Accept credentials from third-party issuers
- No need to import external certificates into EUDIPLO's key management
- Enable cross-organization and cross-border credential acceptance
Public Trust List Endpoint
Trust lists are published as signed JWTs at:
GET /{tenantId}/trust-list/{trustListId}
This allows:
- Other verifiers to synchronize trust information
- Auditors to verify the trust chain
Related Topics
- Key Chains — Managing trust list signing keys
- Certificates — Certificate types and lifecycle
- Status Management — Credential revocation and status lists