Understanding the Architecture
C=US is an X.500/LDAP distributed Directory: a directory information tree under c=US with entries for states (st=some state) and organizations (o=some organization), each held by its own directory server (DSA). Because the DIT is connected, information can flow through it according to each DSA’s access rules. Who an agent is, who answers for it and what it may do are recorded in the state or organization DSA that names it.
Apart from this MVP, the production root server will hold no registered agents and no people responsible for agents, only the references that lead to the connected DSAs. Each of those DSAs answers agentic authorization questions as it is configured to. Agents prove who they are with a certificate, and a thin gateway decides each request from the directory and signs the decision.
Three layers
| Layer | What it holds or does | More |
|---|---|---|
| Directory | Agents, the accountable person for each, and time-bounded authorization grants, in the state or organization directory that names them. Authorization is read only from grant entries. | Schemas, state-endorsed identity |
| Enrollment | A hardware-attested key, then a short-lived mutual-TLS client certificate bound to the agent’s entry by its fingerprint. | Agent onboarding, native-hosted agents |
| Enforcement | The agent gateway at agents.cequs.com: TLS 1.3 with a required client certificate, the binding and grant checked on every request, fail closed, each decision signed (Ed25519) into a hash-chained log. | Zero trust, trust registry, kill switch, OIDC access zone |
Testing for Scalability
Each new agent, state directory and relying party adds connections that must be refused or accepted exactly as designed. These tests run against the live system on a schedule, so a regression shows here without anyone re-checking by hand. They check behavior, not load.
Live mTLS test
Every 15 minutes a probe on cequs.com connects to agents.cequs.com five ways, as an agent would, and checks that each is refused or accepted as designed. Green: the expected security behavior occurred. Red: it did not; review. Amber: no probe result for over 40 minutes. The gateway signs its answers, and each signature is checked in your browser.
The probe’s agent holds one grant, cequs.mtls.probe, which the gateway honours only at POST /probe: it is answered, signed, and nothing is graded, stored or logged. Code: security/mtls-probe/probe.py; the gateway’s side is POST /probe in security/agent-gateway/gateway.py; the raw result is /agent-gateway/mtls-probe.
Built by Claude Code (Claude Opus 5.5) at the project lead’s request, 2026-10-27. The live mTLS test replaces a local HAProxy run from September 2026 that the maple quality page used to show.