Skip to content

Trust Architecture

IDToken’s trust model is fundamentally different from traditional authentication: trust is not self-declared (like creating an account with an email), but anchored in a government-issued document and verified through a PKI governance chain defined by international standards.

Every IDToken credential traces back to a government-issued passport through a series of cryptographic verifications:

Government Document (Passport)NFC chip read, PA + AAFace match (id3 Face SDK)VDS (ISO 22376)Signed by certified issuerSignature verified via PKIPKI Governance (ISO 22385)Chain of TrustVDSICOtentik → TSL → CA → Signing CertVDSICOtentik → TSL → CAVerified Identity

The VDS PKI chain follows the ESEDS (Electronic Scheme for Electronic Documents with Security) model defined by ISO 22385:

VDSIC Governance BoardGovernance List (LoTL)XAdES-T signedOtentik Scheme Operator (IAC: “VDS”)Scheme List (LoTL)XAdES-T signedManifest: IDTokenID: 0A0001Trust Service List (TSL)Lists Certificate AuthoritiesCertificate Authority (CIN: “EU”)VDS Signing CertificateECDSA P-256id3 Technologies — VDS IssuerIDToken VDS instancesHSM-backed ECDSA P-256

To verify an IDToken VDS, the auth server walks the full chain:

  1. Decode the VDS binary (Base45/Base64/hex auto-detected)
  2. Parse the header to extract IAC, certificate reference, manifest ID
  3. Fetch Governance List — identifies authorized Scheme Operators
  4. Fetch Scheme List — for the IAC found in the VDS header (e.g., “VDS” for Otentik)
  5. Fetch TSL — the Trust Service List for the relevant geographic region
  6. Resolve CA certificate — locate the Certificate Authority from the TSL
  7. Validate signing certificate — check expiry, revocation status, and that the UsageList includes the VDS manifest ID
  8. Verify ECDSA signatureSHA-256(header || SHA-256(payload)) against the signing certificate’s public key

Trust lists are cached locally to avoid repeated network fetches. The default cache TTL is 1 hour for all artifacts (Governance List, Scheme Lists, TSLs, manifests, and VDS Revocation Lists).

For details on the VDS format, signature model, and manifest system, see The VDS Credential.

The trust chain above verifies that an existing VDS is authentic. But how does IDToken ensure that the data in the VDS was genuinely extracted from a government document in the first place?

The answer: issuance stations never call BioSeal directly. Every issuance request goes through the IDToken Auth Server, which verifies the passport chip’s cryptographic proof (ICAO SOD signature chain + Active Authentication) before forwarding to BioSeal. See Issuance Integrity for the full architecture.

IDToken assigns three trust levels based on how the VDS was issued:

LevelNameIssuance MethodAssurance
1Self-issuedSelfie + document photo (no NFC)Low
2Operator-verifiedNFC read + operator presentSubstantial (eIDAS)
3Full verificationNFC + Active Auth + biometric matchHigh (eIDAS)

Trust levels flow through the entire system:

  • Stored in the VDS as auxiliary data
  • Included as a JWT claim after authentication
  • Used by relying parties to gate access (e.g., “require trust level 3 for financial transactions”)
  • Mapped to SAML AuthnContextClassRef for enterprise SSO

VDS credentials can be revoked through two mechanisms:

  1. Enrollment revocation — the auth server marks the tokenId as revoked in its database. The VDS itself remains valid, but authentication is blocked.
  2. VDS Revocation List (VRL) — the VDS fingerprint (SHA-256 of raw bytes) is checked against the VRL published by the Trust Service List. This catches credentials revoked at the PKI level.
Traditional IdentityIDToken
User creates an account with email/passwordIdentity derived from a government passport
Trust is self-declaredTrust is PKI-backed, traceable to VDSIC
Identity verification is optional (email link)Identity verified biometrically against NFC chip photo
Server stores personal dataServer stores only a public key binding
Password can be phished or leakedCredential is cryptographically signed, hardware-bound
No assurance levelsThree trust levels aligned with eIDAS