Farbschema: Dunkel
Sie befinden sich hier: start » en » Documentation » Post-Quantum Cryptography » WKL TrustBridge – Overview » PKI and certificate lifecycle

PKI and certificate lifecycle

Summary. This page describes the CA hierarchy and the lifecycle of certificates, orders, and CA keys: request, order, approval, issuance, renewal, revocation, status distribution, offline root, and ceremonies. Every organization has its own hierarchy; the procedures are the same in every installation, regardless of the operating model.

Terms

  • Root CA – the top CA, self-signed, permanently offline.
  • Issuing CA – a CA of an organization or a partner, certified by the root; issues system certificates.
  • CA generation – a CA with its own key; a key change creates a new generation.
  • Profile template – a template maintained in the management application from which an order is created.
  • Profile class – a category defined in the worker's rule set with binding rules (lifetime, extensions, approval rule, manual or automatic).
  • CSR – a PKCS #10 certificate signing request, signed by the requester as proof of possession.

Hierarchy

graph TD
  W[Root CA<br/>offline, HSM] --> C1[Issuing CA partner A<br/>nameConstraints: partner-a.example<br/>pathLen 0]
  W --> C2[Issuing CA partner B<br/>nameConstraints: partner-b.example<br/>pathLen 0]
  C1 --> S1[stock.partner-a.example]
  C1 --> S2[machine7.plant.partner-a.example]
  C2 --> S3[orders.partner-b.example]
  classDef off fill:#e1dfdd,stroke:#323130,color:#201f1e
  classDef ca fill:#fde7e9,stroke:#a4262c,color:#201f1e
  classDef ee fill:#deecf9,stroke:#0078d4,color:#201f1e
  class W off
  class C1,C2 ca
  class S1,S2,S3 ee

The content of a CA certificate is fixed in the root tool and cannot be configured freely: cA=TRUE, pathLenConstraint=0, keyUsage limited to keyCertSign and cRLSign, nameConstraints critical. Every tenant has at least one issuing CA of its own; no CA is shared between tenants. Each algorithm generation gets its own CA: a classical CA does not become hybrid after the fact but is replaced by a hybrid generation.

Certificate content

FieldRule
subjectAltNameExactly one dNSName within the CA's namespace; rfc822Name, iPAddress, and all other types cannot be issued
subjectDescriptive; the worker sets O from the tenant; never security-relevant
Serial numberGenerated by the worker, a positive random number with at least 64 bits of randomness, unique per CA
LifetimeBounded by the profile class; issuance only while the CA's remaining lifetime exceeds the longest profile lifetime
Hybrid certificatesClassical subject key; ML-DSA key in subjectAltPublicKeyInfo; the CA's alternative signature in altSignatureValue
ExtensionsOnly what the profile class allows, with a fixed criticality

Profiles

The following profiles show the structure with the default values. Parameter sets and lifetimes follow Cryptography and the post-quantum transition and the default values in Operations and emergencies.

A partner's issuing CA (hybrid)

Version:                 3
Serial number:           <from the root tool, at least 64 bits of randomness>
Signature algorithm:     ecdsa-with-SHA384 (1.2.840.10045.4.3.3)
Issuer:                  CN=<root CA>
Validity:                5 years (default)
Subject:                 CN=<CA name>, O=<tenant>
Public key:              EC P-384
Extensions:
  basicConstraints       critical: cA=TRUE, pathLenConstraint=0
  keyUsage               critical: keyCertSign, cRLSign
  nameConstraints        critical: permittedSubtrees dNSName=l.example
  subjectKeyIdentifier, authorityKeyIdentifier
  cRLDistributionPoints  URL of the root's CRL (distribution)
  authorityInfoAccess    caIssuers: URL of the root certificate (distribution)
  subjectAltPublicKeyInfo (2.5.29.72)  non-critical: ML-DSA-87, 2.16.840.1.101.3.4.3.19
  altSignatureAlgorithm   (2.5.29.73)  non-critical: ML-DSA-87, 2.16.840.1.101.3.4.3.19
  altSignatureValue       (2.5.29.74)  non-critical: the root's ML-DSA signature

System certificate

Version:                 3
Serial number:           <from the CA worker, at least 64 bits of randomness>
Signature algorithm:     ecdsa-with-SHA384
Issuer:                  CN=<CA name>, O=<tenant>
Validity:                30 days automatic, at most 1 year manual
Subject:                 CN=stock.l.example, O=<tenant, set by the worker>
Public key:              EC P-256 (generated by the system)
Extensions:
  basicConstraints       critical: cA=FALSE
  keyUsage               critical: digitalSignature
  extendedKeyUsage       serverAuth (1.3.6.1.5.5.7.3.1), clientAuth (1.3.6.1.5.5.7.3.2)   per profile class
  subjectAltName         dNSName=stock.l.example                           exactly one
  subjectKeyIdentifier, authorityKeyIdentifier
  cRLDistributionPoints  URL of the CA's CRL
  authorityInfoAccess    caIssuers: URL of the CA certificate
  subjectAltPublicKeyInfo (2.5.29.72)  ML-DSA-65 (generated by the system)
  altSignatureAlgorithm   (2.5.29.73)  ML-DSA-87
  altSignatureValue       (2.5.29.74)  the CA's ML-DSA signature

Agent certificate. Key agents only verify each other; classical relying parties never see their certificates. An agent certificate is therefore a pure ML-DSA certificate per RFC 9881: subject key ML-DSA-65, the CA's signature with ML-DSA-87, subjectAltName with the host's DNS name, extendedKeyUsage with the identifier for key agents, a lifetime of 30 days with automatic renewal.

Effect of the name constraint. Under RFC 5280, the constraint dNSName=l.example permits the name l.example and every name formed by prepending further labels, such as stock.l.example or machine7.plant.l.example; l.example.attacker.example and xl.example are not permitted.

Issuance

sequenceDiagram
  participant AS as Requester
  participant VE as Management or enrollment
  participant DB as Database
  participant FG as Approving person
  participant WK as CA worker
  participant RG as Ledger
  participant HS as HSM
  AS->>VE: CSR (proof of possession), profile template, DNS name
  VE->>VE: check CSR, resolve template,<br/>create order as JSON
  VE->>DB: order (bytes), hash
  FG->>DB: approval = signature over hash
  WK->>DB: read order and approvals
  WK->>WK: check against rule set
  WK->>RG: intent with serial number
  WK->>HS: sign TBS (ML-DSA, then classical)
  WK->>RG: result
  WK->>DB: projection of the certificate
  DB-->>AS: certificate via management or protocol

Mandatory content of an order: format identifier and version, order identifier, tenant, origin, correlation identifier, the requester's idempotency key, requester, issuing CA with fingerprint, profile class, profile template and version (informational), certificate type, public key (both for hybrid), CSR and its hash, subject, SAN list, complete extensions with criticality, signature algorithm, start and end of validity, required approval rule, creation time, expiry. Not in the order: the serial number.

The worker's checks: approval or attestation against the rule set; the rule is the one prescribed for the profile class (an order cannot pick a milder one); the CA is permitted and belongs to the tenant; proof of possession (for both keys if hybrid); the name lies within the namespace; only permitted extensions; lifetime; expiry; order not canceled; order not yet executed.

States of an order

stateDiagram
  [*] --> pending_approval : order created
  pending_approval --> approval_complete : approvals submitted
  pending_approval --> canceled : cancellation
  approval_complete --> claimed : worker starts
  approval_complete --> canceled : cancellation
  claimed --> issued : result in the ledger
  claimed --> rejected : rule violation or maximum attempts
  pending_approval --> expired : deadline passed
  issued --> [*]
  rejected --> [*]
  canceled --> [*]
  expired --> [*]

pending_approval, approval_complete, and claimed are held in the database; issued and rejected are authoritative only in the ledger and are mirrored into the database. If a cancellation arrives too late, the certificate already issued is revoked. The state names are the values the management API returns.

Issuing exactly once

SituationBehavior
Crash after the intent, before signingOn restart the worker signs the open intent with the same serial number and the same prepared content
Crash after signing, before the result entryAs above; the first signature never left the worker
Crash after the result entry, before the projectionThe projection is completed later; it is idempotent
Two workers for the same CARuled out by an exclusive file lock on the ledger
Restoring the ledger from a backupThe worker takes over projected certificates with a valid CA signature before processing new orders

Renewal

A renewal is a new request with a new order; the old certificate remains valid until it expires. Automatic profile classes renew once only a third of the lifetime remains; the minimum lifetime is three days. Manual classes require a new approval.

Revocation

sequenceDiagram
  participant P as Person or holder
  participant V as Management or protocol
  participant D as Database
  participant W as CA worker
  participant R as Ledger
  participant T as Distribution
  P->>V: revocation order (CA, serial number, reason)
  V->>D: revocation order
  W->>D: read revocation order
  W->>R: certificate in the ledger? CA, tenant?
  W->>R: record revocation (time = entry)
  W->>W: new CRL, CRL number + 1
  W->>D: CRL (path 1)
  W->>T: CRL (path 2)
  T->>T: verify signature, serve highest number
RuleDefinition
Key of the revocation orderIssuing CA and serial number; repeating it changes nothing
AuthorizationThrough management: a signed-in person with revocation rights in the tenant; through a protocol: the holder with proof of the certificate's key (verified against the key from the ledger)
Revocation reasonsIdentifiers from RFC 5280 Section 5.3.1, without removeFromCRL
Revocation timeThe time of the ledger entry, never backdated
MonotonicityA revocation is final; certificateHold with later release is not provided for
Race with issuanceThe order in the ledger decides; a revocation order for a certificate not yet issued waits or expires
CA revocationNever through this path, only in a ceremony at the root
Emergency revocationAt the console of the worker host, even without the database

Status distribution

ParameterValueRationale
Validity of a CRL (nextUpdate − thisUpdate)72 hoursBuffer for outages
Generation interval6 hours, and immediately after every revocationLimits the delay
Relying parties' fetch interval6 hoursRelying-party contract, item 10
Buffer if the worker fails66 hoursValidity minus interval
Delta CRLsNot offeredAn issuing CA's CRLs stay small enough for the fetch interval
OCSPNot offeredNo signing in the request path; the TLS adapter fetches CRLs on a schedule

Key lifecycle of the CAs

stateDiagram
  [*] --> generated : in the HSM
  generated --> certified : ceremony
  certified --> active : enabled in the rule set
  active --> crl_only : remaining lifetime below longest profile lifetime
  crl_only --> retired : last issued certificate expired
  retired --> destroyed : ceremony
  active --> retired : compromise
  destroyed --> [*]
  • Rollover: a new key is a new CA generation with a new certificate; the same key is never re-certified. The old generation only signs CRLs from then on.
  • Backup: only through the HSM's own mechanism and under a multi-person rule.
  • PIN: in the operating system's secret store on the worker host; ceremonies under quorum.
  • Monitoring: the HSM's signature counters are reconciled against the ledger; a discrepancy is a suspected compromise.

Offline root and ceremony

sequenceDiagram
  participant L as Ceremony lead
  participant V as Custodians (quorum)
  participant Z as Witness
  participant R as Root (offline)
  participant K as Second channel
  L->>R: issuing CA's CSR (media)
  K->>L: key fingerprint and namespace,<br/>read at the worker host's console
  L->>L: compare CSR against second channel
  V->>R: activate root key
  R->>R: sign CA certificate with fixed content
  Z->>Z: countersign the record
  R->>L: CA certificate, root CRL,<br/>public part of the record
RuleDefinition
Origin of inputsNothing the root signs comes from the online system alone; key and namespace are confirmed over a second channel
Artifacts allowed inCSR, ceremony order, a CA revocation order
Artifacts allowed outCA certificate (into the rule set), root certificate, the root's CRL (checked by the worker before publication), public part of the record
RolesCeremony lead, custodian, witness
StorageTwo safes at separate locations; recovery table
EvidenceThe root's own ledger; the head of the worker's ledger chain is included in every ceremony

Lifetimes, quorums, ceremony schedule, and the nextUpdate of the root CRL are listed as default values on Operations and emergencies.

What this page does not define

  • Trust relationships between organizations; they are described in Federation and bilateral trust.
  • OCSP. Status is published through CRLs that the TLS adapter fetches on a schedule.
  • Personal certificates for people signing in to applications. TrustBridge identifies systems, services, and agents; personal approval keys serve approval only.
en/wiki/pqcrypt/trustbridge/pki-and-lifecycle.txt · Zuletzt geändert: von Claude Test Contributor