Evidence: Wherever it runs
Where an agent runs decides what it can prove. What it can prove decides what it keeps.
Our agents run in different places. What should each place be allowed to do?
Deployment evidence The attester's narrowing table on this estate
- 1Claim on this page
- 3Artefacts behind them
- 1Reads you can run here
What the attester checks before it vouches
Fourteen checks, in the order the attester runs them.
-
The request
- Check 1Nonce
- Check 2Instance key
- Check 3Key proof
-
The agent
- Check 4Agent resolves
- Check 5Member mark
- Check 6Attester named
- Check 7Runtime permitted
-
The release
- Check 8Release record
- Check 9Publisher signature
- Check 10Release digest
- Check 11Artefact digest
-
The runtime evidence
- Check 12Evidence kind
- Check 13Evidence verified
-
The copy
- Check 14Copy bit
Each check, by the name the code answers with
- Check 1
nonceIssued here, used once. - Check 2
instance_keyThe copy's own key. - Check 3
instance_popSigned over the nonce. - Check 4
agent_resolvesReaches the Tarnbrook anchor. - Check 5
agent_markA current member mark. - Check 6
attester_namedNames this attester. - Check 7
hosting_permittedThis runtime is permitted. - Check 8
release_recordFetched from the publisher. - Check 9
release_signatureThe publisher's signature. - Check 10
release_digestThe referenced digest. - Check 11
artefact_digestThe signed artefact. - Check 12
evidence_kindThis runtime's kind. - Check 13
evidence_verifiedAn SVID, or an enrolment. - Check 14
bit_allocatedA bit on the signed list.
Checks 7, 12 and 13 turn on the runtime, and the other eleven ask the same of every copy.
The workload domain and the workstation
The workload domain and SPIRE
SPIRE issues each copy a short lived SVID. At check 13 the attester verifies its chain, finds its SPIFFE ID on the agent's record, and checks it is bound to the copy's key over the nonce. The result is attested.
The managed workstation
At check 13 the attester verifies an enrolment token from the workforce platform, so a person the enterprise knows stood the copy up. The result is asserted.
What the platform checks before it admits a copy
Fourteen names, in the order the API platform runs them.
-
The attester
- Check 1Attester chain
- Check 2Attester mark
- Check 3Attester named
-
The attestation
- Check 4Signature
- Check 5Type
- Check 6Subject
- Check 7Lifetime
-
The proof of possession
- Check 8Proof signature
- Check 9Audience
- Check 10Challenge
- Check 11Used once
-
The copy
- Check 12Copy live
- Check 13List readable
-
The identity
- Check 14Auth method
Each check, by the name the code answers with
- Check 1
attester_chainResolves to a pinned anchor. - Check 2
attester_markA current attester mark. - Check 3
attester_namedNamed by the agent. - Check 4
attestation_signatureSigned by the attester. - Check 5
attestation_typeA client attestation. - Check 6
attestation_subjectAbout this agent. - Check 7
attestation_expiredInside its lifetime. - Check 8
pop_signatureSigned by the attested key. - Check 9
pop_audienceFor this platform. - Check 10
pop_challengeA current challenge. - Check 11
pop_replayedUsed once. - Check 12
instance_stoppedIts bit is live. - Check 13
instance_status_unreadableThe list is readable. - Check 14
auth_method_not_permittedResolves with attest_jwt_client_auth.
The platform believes an attestation only after it resolves the attester's own chain, verifies the statement, and checks a proof signed with the copy's key.
Where the platform finds the attester
It then reads the copy's bit on the attester's signed list of copies, so one copy can be stopped while the others carry on.
The attester's table, in full
Every row the attester declares, and what each one lets through.
Workload
An SVID
- records.read
- Kept
- records.annotate
- Kept
- transfer.status
- Kept
- transfer.initiate
- Kept
- review.submit
- Kept
- Reached here
- Batch Reviewer
Workstation
An enrolled person
- records.read
- Kept
- records.annotate
- Withheld
- transfer.status
- Withheld
- transfer.initiate
- Withheld
- review.submit
- Withheld
- Reached here
- Analyst Companion
Workstation
Enrolled, hardware key
- records.read
- Kept
- records.annotate
- Kept
- transfer.status
- Kept
- transfer.initiate
- Withheld
- review.submit
- Withheld
- Reached here
- By no copy
Workstation
Enrolled, app attestation
- records.read
- Kept
- records.annotate
- Kept
- transfer.status
- Kept
- transfer.initiate
- Withheld
- review.submit
- Withheld
- Reached here
- By no copy
The attester can only cut.
The working behind this figure
No copy on this estate reaches the two hardware rows: the attester here holds no hardware root, and it refuses app attestation evidence.
What this page proves
Each claim, its label and the artefacts behind it.
The vouched key set of a recognition statement
Not observed on this tenantThe design requires that the statement about a recognised root vouches only the keys that root publishes. On this tenant the statement about a self managed entity whose organisation holds no key vouches one key, the tenant's hosted entity signing key, which the subject does not hold. In the entity generated model the subject holds its own private key and Connect does not receive it. The key this statement vouches is the tenant's hosted entity signing key, which Connect adds by product behaviour rather than from anything the subject supplied.
- Lifecycle stage
- Keys
- Lives in
- Raidiam Connect
- Checked by
- Test E11
- Artefacts cited
- 3
-
authority.directory.showcase.raidiam.io/authority/96f37fd5-1f2e-4d8e-adbf-de069b3ba978/fetch
Read on the wire 2026-09-09. one vouched key for an organisation that holds none
-
docs/verification/tenant-showcase-2026-09.md#row-g
Read on the wire 2026-09-09.
-
docs/ledger.yaml#T1
the product change record
Every read below is an unauthenticated GET that the capability matrix declares for this page. The command shown is the whole request, and it carries an accept header only.
https://authority.directory.showcase.raidiam.io/authority/96f37fd5-1f2e-4d8e-adbf-de069b3ba978/fetch?sub=https://agents.showcase.raidiam.io/scratch/agent
one vouched key for an organisation that holds none Read on the wire 2026-09-09.
Fetch it yourself
$ curl -s "https://authority.directory.showcase.raidiam.io/authority/96f37fd5-1f2e-4d8e-adbf-de069b3ba978/fetch?sub=https://agents.showcase.raidiam.io/scratch/agent"
The working
What the figures above leave to words.
The claim above rests on the subject holding its own private key, and on this tenant one case does not hold it. For a self managed entity whose organisation holds no key of its own, the statement about that entity vouches one key the subject never supplied: the tenant's hosted entity signing key, which Connect adds by product behaviour. The four runtimes on this page are governed the same way whichever key signs for them, and the exception is recorded here rather than left for a reader to find on the security page. Not observed on this tenant
Where the authority comes from
The authority governs the identity. Where a copy is attested, the copy generates its own key where it runs and proves it holds it.
Ten terms
- anchor
- The root entity of a trust domain whose key a consumer pins from configuration.
- authority
- A Connect entity that publishes signed subordinate statements, marks and policy about the entities it governs.
- trust domain
- The set of entities that chain to one anchor.
- entity configuration
- The self signed statement an entity publishes at its own identifier.
- subordinate statement
- The statement a superior signs about a subordinate: keys, policy, marks.
- trust mark
- The signed projection of an active accreditation, with a status endpoint.
- envelope
- The set of authorization detail types and grant types an authority permits an agent to request. The registered ceiling.
- resolve
- Walk the chain from a leaf to a pinned anchor and fold the policy.
- pin
- The anchor key a consumer holds in configuration, written at deploy time, as the pair of anchor identifier and key.
- recognition
- The governed act by which an authority becomes a superior of an entity that already publishes its own configuration, minting nothing.
Check it against the running estate
Every surface this use case touches, and the host that answers for it.
Which runtimes do you have, and which assurance would you accept for which envelope?
Ninety minutes, on the shape of your estate: which systems resolve first, which anchor each pins, and which key each party holds.
Book a working sessionExplore further