Architecture derivation
Summary. This page derives the architecture of WKL TrustBridge from its requirements, in four steps: requirements with their origin, the security goals that follow from them, the design principles that follow from the goals, and finally the individual architecture decisions with the alternatives that were weighed and their consequences. Where a decision has a weakness from an auditor's point of view, it is stated explicitly, together with how it is compensated.
graph TD R[Frameworks<br/>and scenarios] --> A[Requirements<br/>A-01 to A-24] A --> Z[Security goals<br/>Z-1 to Z-9] Z --> G[Design principles<br/>G-1 to G-11] G --> E[Decisions<br/>E-01 to E-21] E --> K[Components and flows] E --> N[Evidence] classDef s fill:#deecf9,stroke:#0078d4,color:#201f1e class R,A,Z,G,E,K,N s
Terms
| Term | Meaning |
|---|---|
| Requirement (A-nn) | An obligation from law, technical recommendation, or scenario, with its origin |
| Security goal (Z-n) | A property of TrustBridge that satisfies one or more requirements |
| Design principle (G-n) | A rule that applies to all decisions and follows from the goals |
| Decision (E-nn) | A single architecture choice with the alternatives weighed and its consequences |
| Coverage | The mapping of each security goal to the decisions that carry it |
Requirements
Origin: L = law, T = technical recommendation or standard, S = scenario or protection need of the supply chain. The frameworks are explained on Foundations and requirements.
| ID | Requirement | Origin |
|---|---|---|
| A-01 | A system may only appear under its own partner's identity; no partner may be able to create another partner's identity | S; NIS2 Art. 21(2)(d) |
| A-02 | Every issuance must trace back to a verifiable authorization | S; ETSI EN 319 411-1; NIS2 Art. 21(2)(i) |
| A-03 | CA keys must be protected against extraction and misuse, including by administrators | TR-02102; IT-Grundschutz CON.1; ETSI EN 319 411-1 |
| A-04 | Revocation status must be reliably available to relying parties, including during disruptions | RFC 5280; KRITIS customer requirement; NIS2 Art. 21(2)© |
| A-05 | Revocation must remain possible when central components fail | NIS2 Art. 21(2)(b), © |
| A-06 | Cryptographic mechanisms must reflect the state of the art | Section 30 BSIG; TR-02102 |
| A-07 | TrustBridge must enable the move to post-quantum algorithms without locking out classical relying parties | EU PQC roadmap; TR-02102 (hybrid) |
| A-08 | Long-lived trust anchors must be quantum-safe before the PQ roadmap deadlines | EU PQC roadmap |
| A-09 | Data of different customers must be kept apart | GDPR Art. 32; C5:2026; S |
| A-10 | Access to the management interface requires strong authentication | NIS2 Art. 21(2)(j); ISO/IEC 27001 A.8.5 |
| A-11 | Security-relevant events must be logged in a tamper-evident way | IT-Grundschutz OPS.1.1.5; ISO/IEC 27001 A.8.15; ETSI EN 319 401 |
| A-12 | Significant incidents, in particular a compromise of CA keys, must be detectable and manageable | Section 32 BSIG; NIS2 Art. 21(2)(b) |
| A-13 | Partner systems must be able to connect through standard protocols | S; RFC 8555, RFC 7030 |
| A-14 | Ordinary HTTPS clients must not need a proprietary component | S |
| A-15 | TrustBridge must not generate or store requesters' private keys | S; data minimization |
| A-16 | Personal data in certificates and logs must be minimized | GDPR Art. 5 |
| A-17 | The software must be developed traceably; dependencies must have verified provenance | NIS2 Art. 21(2)(e); CRA |
| A-18 | Recovery after a failure must neither lose issuances nor execute them twice | S; IT-Grundschutz CON.3 |
| A-19 | The root of the hierarchy must be out of reach of any online attack | ETSI EN 319 411-1; S |
| A-20 | Management and automation must go through the same rules | S |
| A-21 | Trust between organizations must be agreed by both sides, defined per direction, not transferable through third parties, and revocable by either side alone | S; NIS2 Art. 21(2)(d) |
| A-22 | Connections between partners must be protected against recording and later decryption, even if one of the mechanisms used is broken | EU PQC roadmap; TR-02102-2; S |
| A-23 | A valid identity must not establish an authorization; the target application authorizes every operation separately | NIST SP 800-207; S |
| A-24 | Operation by a third party must include neither approval rights nor control over private keys; changing operators must be possible without handing over private keys | NIS2 Art. 21(2)(d); C5:2026; S |
Security goals
| Goal | Statement | Requirements |
|---|---|---|
| Z-1 Authenticity | A valid certificate only results from an authorized order within the namespace of the entitled partner | A-01, A-02, A-15, A-24 |
| Z-2 Key protection | No CA key is available outside an HSM; every use can be traced | A-03, A-12, A-19 |
| Z-3 Status availability | A valid, current CRL remains available for a defined time even if the database, the management interface, or the worker fails | A-04, A-05 |
| Z-4 Provability | Every issuance and revocation can be proven to third parties, including against a database administrator | A-02, A-11 |
| Z-5 Tenant separation | No customer sees or affects another's data or identities | A-09, A-16 |
| Z-6 Future readiness | The move to PQ algorithms is planned and possible without breaking classical relying parties | A-06, A-07, A-08, A-14 |
| Z-7 Operational safety | Failures lead neither to duplicate issuance nor to loss; recovery is rehearsed | A-18, A-05 |
| Z-8 Relationship boundary | An organization reaches only what the other has allowed in its direction of a relationship, and only until revocation; the target application authorizes every operation | A-21, A-23 |
| Z-9 Connection protection | Traffic between partners stays confidential as long as either the key agents' additional secret or the hybrid key agreement remains unbroken | A-22, A-06 |
Design principles
| Principle | Content | Rationale |
|---|---|---|
| G-1 Small trusted computing base | Only components without which unauthorized issuance is impossible belong to the trusted computing base | Every component in the trusted computing base must be protected and reviewed with maximum effort; the fewer there are, the more credible the whole |
| G-2 The database is input, not authority | Whatever a service reads from the database is unverified input | Many people administer, back up, restore, and migrate databases; their content is not trustworthy enough for issuance decisions |
| G-3 Authorization is cryptographic | An approval is a signature that the signer verifies | Anyone with write access can set a flag in a table |
| G-4 Signing without inbound access | The signing service has no inbound connection and fetches its work | An attacker cannot reach it directly, only through orders it checks itself |
| G-5 Status before function | Status information is designed to be more robust than issuance | A missing issuance causes delay; a missing revocation causes harm |
| G-6 Identity from the chain | Security-relevant identity comes from the certificate chain and name constraints, never from descriptive fields | Relying parties evaluate descriptive fields inconsistently; RFC 5280 path validation is standardized |
| G-7 Standards toward the outside | External interfaces follow standards unchanged; proprietary interfaces only where no standard exists | Interoperability, auditability, no dependency on our own clients |
| G-8 No silent fallback | Every fallback to a weaker mechanism is a deliberate, logged decision | A silent fallback to classical algorithms renders PQ protection worthless without anyone noticing |
| G-9 Trust is bilateral | Each organization decides for itself whom it trusts for what; recognition applies only within the relationship in which it was granted | Trust that propagates along chains escapes the control of those who carry it |
| G-10 Identity is not authorization | TrustBridge delivers verified identity; the target application grants permissions | A certificate says who is speaking, not what is allowed |
| G-11 Secrets stay at the endpoint | Session secrets are created and end on the two hosts involved; no central service knows them | A service holding every secret would be the most rewarding target there is |
Decisions
Every decision names the alternatives weighed and the consequences. “Assessment” records where a decision has weaknesses from an auditor's point of view.
E-01 Signing in a dedicated CA worker without inbound connections
Decision. Only the CA worker signs. It never runs in the same process or under the same operating system account as a service with HTTP input, and it has no inbound network connection. It reads orders, checks them against a local rule set, and signs in the HSM.
| Alternative | Why not |
|---|---|
| Signing in the web service that accepts the request | Every vulnerability in the web service turns into the ability to issue |
| Signing service with an inbound interface (such as REST) | Attack surface directly at the trusted computing base; authenticating the caller would itself become security-critical |
| Embedding off-the-shelf CA software | Its rule set is not TrustBridge's; the guarantees would depend on someone else's configuration |
Consequences. Issuance is asynchronous: a request creates an order, and the certificate is produced later. Interfaces must never wait for the signature. Satisfies: Z-1, Z-2 (G-1, G-4).
E-02 Database outside the trusted computing base; local rule set and ledger
Decision. What may be issued is defined in the worker's local rule set (a file on its host): allowed CAs per profile class, approvers with their public keys, lifetimes, permitted extensions. What has been issued and revoked is recorded in its local, append-only ledger. The database holds orders and projections.
| Alternative | Why not |
|---|---|
| Database as authority with signed records | Shifts the problem: who signs the records, and who verifies them? |
| Rules in the database, trusted by the worker | A database administrator could make themselves an approver |
Consequences. Changes to the rule set are an operational procedure on the worker host, not a click in the management application. The ledger must be backed up and reconciled with the database after a restore. Assessment: The ledger becomes the single source of truth about issuance and revocation; losing it would be serious. Hence backups with an RPO close to zero and an external anchor for the head of the chain (see E-14). Satisfies: Z-1, Z-4 (G-2).
E-03 Approval as a person's signature
Decision. A manual order is approved when a person listed in the rule set signs the order's hash with their personal key. By default that is one person who is not the requester; security-relevant profile classes require two different people. Automatic profile classes instead require an attestation from enrollment with its service key.
| Alternative | Why not |
|---|---|
| Approval as a status change in the database | Anyone with write access could approve |
| Approval after signing in to the management interface | The management interface would become part of the trusted computing base |
Assessment. With a single approval, the rule “the requester is not the approver” rests on information the worker cannot verify: someone who controls the management interface or the database and is also an approver can file a request under someone else's name and approve it. Separation of duties only becomes cryptographically robust with two approver signatures. For automatic classes, enrollment with its service key belongs to the trusted computing base, which is why those classes are limited to short lifetimes and the partner's namespace. Satisfies: Z-1, Z-4 (G-3).
E-04 Immutable issuance order
Decision. An order is a fully resolved snapshot of all security-relevant content of the future certificate, created once as UTF-8 JSON and from then on stored, transmitted, and signed byte for byte. Its identifier is the SHA-256 of those bytes. The worker generates the serial number (at least 64 bits of randomness).
| Alternative | Why not |
|---|---|
| The order references a profile and the worker derives the rest | The profile could change between approval and issuance; what was approved would not be what gets issued |
| Re-serialization at every station | Different serializers produce different bytes and therefore different hashes |
Consequences. What a person approves is, bit for bit, what gets issued. The management application must display the order from exactly the signed bytes. Satisfies: Z-1.
E-05 Partner = issuing CA with a name constraint
Decision. Every partner has at least one issuing CA of its own whose certificate fixes the partner's
DNS namespace through a critical nameConstraints extension. A system is exactly one dNSName within
it. Subject, CN, O, and custom OIDs are never security-relevant; other SAN types can only be
issued if the CA certificate constrains them as well.
| Alternative | Why not |
|---|---|
Partner in the O field or in a custom extension | Relying parties evaluate it inconsistently; there is no standardized enforcement mechanism |
| One shared CA for all partners | Every misissuance hits everyone; no separation in the chain |
Consequences. The last line of defense is the relying party: it must enforce nameConstraints.
Hence the relying-party contract. Assessment: Not every TLS library fully enforces name
constraints; the relying-party contract has to become part of partner contracts and be testable with
test certificates. Satisfies: Z-1, Z-5 (G-6).
E-06 Pre-generated revocation lists instead of OCSP
Decision. Status is published through CRLs that the worker generates ahead of time: valid for 72 hours, regenerated every 6 hours and immediately after every revocation; CRL numbers strictly increasing from the ledger. Delta CRLs and OCSP are not offered.
| Alternative | Why not |
|---|---|
| OCSP with signing in the request path | Signing key at the most exposed point; contradicts G-4 |
| OCSP with pre-generated responses | An additional delegated key per CA with no gain over a CRL that the TLS adapter fetches on a schedule anyway |
| Short lifetimes without revocation | Not enough for systems with lifetimes of months |
Consequences. Up to six hours (the fetch interval) pass between revocation and the relying party learning of it. The 66-hour buffer (validity minus interval) is the time operations have to restore a failed worker. Satisfies: Z-3 (G-4, G-5).
E-07 Two publication paths; distribution verifies signatures
Decision. CRLs reach distribution through the database and through a second path that bypasses it. Distribution holds no key, verifies every signature, and serves the highest valid CRL number. Revocation is also possible at the console of the worker host.
Alternative: a single path through the database, rejected because a database outage would then make every validation fail after 72 hours at the latest, and nobody could revoke. Satisfies: Z-3 (G-5).
E-08 Hybrid as an alternative signature in the same certificate
Decision. A hybrid certificate carries a classical subject key and an ML-DSA key
(subjectAltPublicKeyInfo, 2.5.29.72); the CA signs with ML-DSA in altSignatureValue (2.5.29.74)
and then classically over the entire signed part. The extensions are non-critical.
| Alternative | Assessment |
|---|---|
| Parallel chains (one classical and one PQ certificate per system) | Double management; relying parties must link two chains |
| Composite signatures per IETF draft | Inseparable binding of both signatures, but classical verifiers do not know the algorithm and reject it |
| ML-DSA only | Locks out classical relying parties; contradicts the BSI's hybrid recommendation |
Assessment. The alternative signature is separable: anyone able to forge the classical signature in the future can produce a certificate without the PQ extensions. Protection therefore exists only if the relying party requires the alternative signature and treats a missing link as invalid (item 9 of the relying-party contract, no silent fallback per G-8). Satisfies: Z-6.
E-09 CA keys only in the HSM, ML-DSA included
Decision. CA keys are created in the HSM and stay there, non-exportable, classical and ML-DSA alike. There is no software key for a CA, not even temporarily. An HSM without non-exportable ML-DSA is not acceptable. At startup the worker checks fingerprint and non-exportability; one key belongs to exactly one CA.
Alternative: ML-DSA in software for the time being, rejected because a key that was once exportable cannot become trustworthy after the fact. Satisfies: Z-2.
E-10 Offline root with ceremony
Decision. The root CA is permanently offline. It signs issuing CAs only in a ceremony with named roles. Nothing it signs comes from the online system: keys and namespace are confirmed over a second channel, and only an exhaustively listed set of artifacts crosses the boundary. Satisfies: Z-2 (A-19).
E-11 Cryptographic foundation
Decision. In the certificate authority, post-quantum algorithms come from a shared .NET component built on OpenSSL (3.5 or later); classical algorithms (RSA, ECDSA, AES, hashes, ASN.1, X.509 types) stay with the .NET framework's cryptography. The endpoint components are standalone native programs with a TLS library that supports RFC 9973.
| Alternative | Assessment |
|---|---|
| The PQ types in .NET 10 | Would force legacy applications into a rewrite; the shared component offers the same signatures as the framework cryptography and makes existing applications PQ-capable step by step |
| Everything through OpenSSL, classical included | No security gain: on Linux, .NET already computes classical algorithms through OpenSSL, on Windows through CNG |
| The same foundation for the endpoint components too | The certificate authority's cryptography offers no external PSKs per RFC 9973; a runtime on every partner host would add installation and maintenance effort |
Satisfies: Z-6, A-06.
E-12 Management as an Access application without a database connection
Decision. An organization's staff and its operating partner's staff use an Access application that talks exclusively to the management API over HTTPS: lists as OData v4 entity sets through an ODBC driver that speaks only HTTP, commands through a VBA class. A database connection from the client is ruled out.
| Alternative | Why not |
|---|---|
| Access with a direct database connection | Authorization and checks would sit in the client; the audit could be bypassed |
| A web front end as the management interface | Two management interfaces double the review effort. Partners with a partner CA use the partner portal, which uses the same API with one visibility scope per partner |
Satisfies: Z-5, A-10, A-20.
E-13 Shared business API and protocol adapters
Decision. Partner systems speak standard protocols (ACME, EST), whose adapters implement the protocol completely and delegate business decisions to a shared core. Management and automation use the same business API (OData v4 with actions) and the same permissions.
Satisfies: A-13, A-20 (G-7).
E-14 Three logging levels with an external anchor
Decision. An operations log (no evidentiary value), a security audit log in the database (chained per tenant, copied externally on an ongoing basis), and the tamper-evident ledger of the worker and the root. Chain heads go periodically to append-only storage outside the database and the worker host.
Alternative: chain heads signed with a dedicated key, rejected because append-only external storage achieves the same without an additional key. Satisfies: Z-4.
E-15 Tenant separation along two lines
Decision. Business foreign keys carry the tenant; in addition, row-level security filters on read. People receive named visibility scopes (all tenants, a group, one tenant), so that both support with logged access and a supply chain's internal permission model can be represented. Satisfies: Z-5.
E-16 Product boundary
Decision. WKL TrustBridge comprises each organization's certificate authority, the bilateral trust relationships, the key agents with their local key broker, the TLS adapter, and the integration with target applications such as the Database Gateway. It does not include authorization inside target applications, SPIFFE workload identities, or sign-in services for people.
Rationale. A certificate authority alone supplies identities but no cooperation: between organizations you need the relationship, enforcement at the connection, and protection of the traffic. The certificate authority's security rules stay unchanged: it generates no keys for others and knows no session secret (G-11). SPIFFE identities are URI names, which the identity model (exactly one DNS name per system) does not provide for. Satisfies: Z-8, Z-9.
E-17 Bilateral federation through signed trust bundles
Decision. Organizations recognize the other side's trust anchors per relationship. The approved relationship reaches the TLS adapters and key agents as a trust bundle signed by the organization's CA worker, with an increasing sequence number and a limited lifetime.
| Alternative | Why not |
|---|---|
| A shared root for all participants | Whoever operates the root controls everyone; leaving depends on them |
| Cross-certificates between roots | Trust propagates along chains; A trusts C as soon as B issues a cross-certificate for C |
| Bridge CA | Like cross-certificates, plus a central authority |
| List of trusted anchors in the database | Whoever controls the database can slip anchors in |
Consequences. Each organization maintains its own relationships; new partners need an agreement with every organization they work with. Satisfies: Z-8 (G-2, G-9).
E-18 Additional secret as an external PSK per RFC 9973
Decision. Key agents agree on one secret per relationship and pair of hosts through ML-KEM,
authenticated with ML-DSA agent certificates. The TLS adapter feeds it into the TLS 1.3 handshake as an
external PSK with the tls_cert_with_extern_psk extension (RFC 9973), in psk_dhe_ke mode with a hybrid
group and mutual certificate authentication.
| Alternative | Why not |
|---|---|
| Hybrid group in TLS only | One protocol, one implementation, no tie to the relationship; remains part of the solution, but not on its own |
| A separate encrypted tunnel next to TLS | A second transport path with its own configuration and its own network rules; existing TLS applications gain nothing |
| IPsec with post-quantum preshared keys (RFC 9867) | Protection at the network layer with no tie to the service's identity; requires network changes at both organizations |
| A proprietary change to the TLS protocol | Not interoperable and not verifiable against a standard |
Assessment. RFC 9973 explicitly does not count the PSK as authentication. Authentication remains with the hybrid certificates (E-08); the additional secret strengthens confidentiality and binds the connection to the relationship. Satisfies: Z-9 (G-8, G-11).
E-19 Local key broker
Decision. The secret travels from the key agent to the TLS adapter through a key broker on the same host. It never leaves the host and is never written to storage.
Alternative: a central key service that distributes secrets to endpoints, rejected because it would know every connection and thus extend the trusted computing base by an online target of the highest value. Satisfies: Z-9 (G-1, G-11).
E-20 Renewal through connection rotation
Decision. TLS 1.3 takes in a new external secret only when a connection is established. The TLS adapter therefore replaces connections once they reach the relationship's maximum lifetime, opening new ones with the current secret before the old ones end. Session resumption is disabled for relationship connections.
| Alternative | Why not |
|---|---|
KeyUpdate within the existing connection | Derives only from the previous traffic secret and brings in no fresh material |
| Renewing key shares within the connection per the IETF Extended Key Update draft | Not a standard; does not take in an external PSK |
| Connections of unlimited duration | One secret would then protect any amount of traffic for any length of time |
Satisfies: Z-9.
E-21 Operation without key ownership
Decision. In the Managed model, an operating partner runs an organization's installation. Approvers and custodians are exclusively the organization's own people; CA keys live in an HSM or a partition assigned to that organization alone. A change of operator runs through a new CA generation, not through a key export.
Alternative: the operating partner as approver on the organization's behalf, rejected because it could then issue in the organization's namespace without the organization taking part. Satisfies: Z-1, Z-2.
Coverage
| Goal | Decisions |
|---|---|
| Z-1 Authenticity | E-01, E-02, E-03, E-04, E-05, E-21 |
| Z-2 Key protection | E-01, E-09, E-10, E-21 |
| Z-3 Status availability | E-06, E-07 |
| Z-4 Provability | E-02, E-03, E-14 |
| Z-5 Tenant separation | E-05, E-12, E-15 |
| Z-6 Future readiness | E-08, E-09, E-11 |
| Z-7 Operational safety | E-02, E-07 |
| Z-8 Relationship boundary | E-16, E-17 |
| Z-9 Connection protection | E-16, E-18, E-19, E-20 |
What this page does not prove
- Effectiveness. Whether a decision achieves its goal is shown by the verification procedure of the corresponding commitment on Security commitments.
- Completeness of the requirements. The requirements come from the frameworks and scenarios on Foundations and requirements, not from every conceivable obligation of a customer.