Access docs

suiss Access · Docs

Security and privacy

The guarantees Access is designed to give, the limits it declares openly, the trust model per component, and how privacy is handled.

Access states each security property together with its guarantee class and its limits. What is not guaranteed is said plainly instead of being left out. The design target is "secure with declared limits": no compromised issuer, identity provider, schema publisher, provider operator, executing system or verifier can create positive authority beyond its own declared reach.

Guarantee classes

Every guarantee in Access belongs to one of these classes:

ClassMeaning
By semanticsFollows from the model itself. Holds wherever the model is implemented correctly
Under declared capability or policyHolds when a stated condition is met, such as a verifier following its profile or a witness being configured. The condition is always written next to the guarantee
Not guaranteedCannot be prevented by Access. Often detectable, sometimes only limited

The security core

In short:

  • positive authority is created only by a recorded, attributable and signed meta-action;
  • every outside input is only as effective as the declared reach of the use it was accepted for;
  • every uncertainty produces DENY or REQUIRE_ACTION;
  • every revocation is prospective and takes effect at the latest within a declared window.

Beyond that, Access does not promise physical stopping, outside truth, human judgement or forgetting.

Guarantees by semantics

GuaranteeStatement
Single sourcePositive authority is created only by a meta-action in an anchor's lineage. No other system can create authority
Non-amplificationA child is within its parent; what an Instance can use is holding ∩ Mandate; a projection is within its source
BudgetsEvery exercise draws from every budget along the lineage. An offline slice cannot be spent twice centrally. Releases never exceed draws
RevocationFrom its commit, every later online commit, continue and projection.issue that relies on it is denied
InvalidityTerminal and cascading. Nothing revives. Qualifying again starts a new episode
RestrictionsOnly narrow. Removing one is a widening
ClaimsA claim is decision input only within its Acceptance's use. Ingest is not acceptance
ApprovalsAn approval is a contribution bound to an exact intent digest. It cannot override DENY, budgets or ceilings, and it is single-use
Actor attributionOnly through an Actor Intent Statement signed with the actor's key binding. The enforcement point or transport identity is never the actor; a request without a statement is anonymous
No unknownA decision is never UNKNOWN. A protocol error or rejection produces no effect
ReceiptsA decision is not a credential. A receipt is bound to one exercise, intent and audience. Projections are holder-bound
EventsNo event, lost event or reordering widens authority
Must-understandAnything a verifier or evaluator does not understand covers nothing
No backdatingAuthority cannot be backdated
HistoryThe existence, attribution, lineage, digest and time of records cannot be erased
No privilege by positionBeing first-party, hosting, custody or operating the provider carries no semantic privilege or authority
Domain bindingAn artifact signed with another domain's operational key is not accepted
Fail closedNo error in the decision or verification path (rate limiter, cache, introspection backend, policy evaluation, parser) produces ALLOW, an active token or a new token
OverflowArithmetic overflow in an authority evaluation is DENY, never a partial ALLOW
No impersonationSupport access is a Grant. Support staff cannot sign as the user; every support action is attributed to their own Instance
Identity is not authorityEvery identity-plane output is a claim within its accepted use and creates no authority
One write pathIdentity configuration changes are domain actions and go through the same decision path

Declared limits

LimitClassWhy it cannot be avoided
Custodial keys. Whoever holds a Party's keys can act as that Party, unless custody is user-gatedNot guaranteedNot using a key you hold is a physical matter
Approval surfaces. The party operating an approval screen could show one thing and collect an assertion for anotherNot guaranteed; conformant independent surfaces narrow itAuthenticators do not display content; only the surface renders it
Offline windows. After a revocation, use within a declared horizon, Δ or sliceUnder declared capabilityOffline verifiers cannot hear about a revocation instantly
Provider correctness. A provider can produce a wrong decision or show different histories to different partiesNot guaranteed to prevent; detectable by re-evaluation and witnessesThe provider physically holds the decision
Forced recovery. Changes after the cited checkpoint may be lostNot guaranteed without witness and replica-before-acknowledgeA witness cosigns commitments; it does not hold records
Authorized but malicious actors. People, agents or roots can do harm within their own authority; colluding people can defeat split authorityNot guaranteed; limited by budgets, Mandates, requirements and windowsApproved is not the same as wise
Policy oracle. Repeated queries can reveal thresholdsNot guaranteed; limited by disclosure scope, rate limits and detectionDecisions are deterministic by design
Availability. If Access is unreachable, consequential effects outside a declared contract stopNot guaranteed; a deliberate trade-offFail closed has an availability cost
Residual linkability. Pairwise identifiers remove identifier-level correlation, but shared keys, timing, network and device data remainNot guaranteedIdentifier separation does not erase side information
Co-tenant side channels. Shared hardware can leak secrets through microarchitectural side channelsNot guaranteed; dedicated compute narrows itSoftware cannot fully isolate shared hardware

Trust model

"Blast radius" is the widest result a component can reach if it is fully malicious. The "never" column is a by-semantics boundary.

ComponentRelied on forBlast radius if compromisedNever
Anchor rootBeing the source of authority in its scopeEverything in its scope, within its root requirementsAnother scope; reserved actions without their requirements; erasing history
Provider (evaluator)Producing decisions per specification and keeping recordsWrong decisions, denial of service, equivocationProducing an exercise for an actor without its statement; owning authority
Provider signing keySigning receipts, proofs, checkpoints and metadataForged artifacts accepted only within each verifier's local ceilings, until recovery reaches the verifierAn online decision; a central budget draw; acceptance after recovery without an inclusion proof
Identity planeIssuing authentication and binding claims, within accepted usesImpersonation of accepted subjects up to the authority they already holdNew Grants, Acceptances, ceiling-exceeding authority, reserved actions
External identity providerIts accepted useImpersonation within its subject class, or selection within existing ceilingsNew Grants, Acceptances or meta-actions
HR or other claim issuerSelection factsThe holder sets of existing rule-shaped Grants, within their ceilingsExceeding a Grant's ceiling, reserved actions, budgets
Schema publisherThe meaning of its namespace, up to the accepted digestThe meaning of the accepted digestChanging scope with an unaccepted digest; silently removing a reserved flag
Foreign domainAuthority proof within its AcceptanceUp to the bridging Grant's ceilingWriting to the local record
Enforcement pointApplying the decision before the effectEffects it physically controls anywayProducing an actor signature; moving a receipt to another intent
Offline verifierFollowing its contractContracts in its audience, up to horizon and sliceSpending a slice twice centrally
Approval surfaceFaithful rendering and collecting the user actCollecting assertions for a different intent from its own usersA contribution without the approver's statement and assertion
Relay and signal transmitterBest-effort deliveryDelayed, lost or fake eventsWidening authority
Work or another coordinatorGates and attentionMisrouting or flooding approval requestsCreating authority; bypassing a DENY with a gate
One or another agentExercising within its own Instance and MandateAnything within Grant ∩ Mandate ∩ budgetGrants, widening or approvals without the user's own Instance
WitnessFaithfully cosigning checkpointsA false cosignature; hiding equivocation if it is the only witnessChanging authority state
Support staffActing under the support Grant the user gaveThe scope and duration of that GrantSigning in as the user

The containment lever for each component is itself an attributable exercise: revoking an Acceptance, a Grant or a Mandate, terminating an Instance, or moving the domain to another provider.

Operator cannot create authority

The operator of a provider cannot create authority because of two independent barriers, plus one detection mechanism:

  1. One write path. Authority state changes only through an ALLOW on a meta-action. Management APIs reduce to meta-action requests, and the operator holds no Grant from genesis.
  2. Actor attribution. Every recorded commit and continue carries a statement signed with the actor Instance's key binding. The operator cannot produce it.
  3. Detection by replay. Anyone who re-evaluates a record export against the specification can detect a meta-action without a valid statement or lineage, or a wrong ALLOW. This detects; it does not prevent, and only when someone replays.

These barriers do not hold when the operator is also the key custodian or also runs the approval surface. For this reason the design defaults for domain roots and reserved Grant holders are non-custodial controllers with device-bound passkeys, at least one witness independent of the operator, and an independent rendering path for the highest consequence tier.

Witnesses and replicas

  • A witness only cosigns checkpoint commitments (root and size). It does not hold records. A replica holds the records. Cosigning is not replicating.
  • The design default is at least two witnesses, at least one independent of the provider and its operator.
  • Revocations and highest-tier commits are acknowledged only after the covering checkpoint is cosigned by an independent witness and every record up to it has reached the declared replica.
  • Equivocation cannot be prevented; it is detectable when at least one independent witness compares checkpoints. Witness checks assume at least one honest witness.
  • Records are tamper-evident, checked against independent witnesses, where witnesses are configured.

Cryptography

RequirementApplies to
Tamper evidenceThe authority record, checkpoints, offline report chains, record exports
Technical non-repudiation (signature-based attribution)Actor Intent Statements, approval statements and assertions, claims, checkpoints, receipts, portable proofs. Legal non-repudiation is not claimed
Forward secrecyTransport only. Signed records must stay checkable for a long time
Long-term verifiabilityAlgorithm identifiers are part of signed content; records can be re-anchored when algorithms change
Confidentiality at restApplied, but not stated as a semantic guarantee. Minimization and redaction are the primary controls

Authority artifacts are signed with Ed25519 by default; ES256 verification is required; a post-quantum signature (ML-DSA) is an opt-in profile. Authority artifacts are never signed with RSA. The accepted algorithm set comes from the domain metadata, never from an artifact's header. alg: none, HMAC algorithms and embedded keys are always rejected. Secret comparisons are measured as constant-time; the compiler gives no guarantee. Details are in records and signatures.

Privacy

  • Pseudonyms by default. Relying parties get pairwise user identifiers. Outside a domain, Parties appear under domain-pairwise pseudonyms. Authority-level correlation across domains happens only through a recorded bridging Grant or identity binding.
  • Disclosure scope. Explanations, search and events never exceed the viewer's own authority. For an unauthorized requester, an existing and a non-existent account, basis or resource get the same answer content.
  • Opaque positions. Below audit scope, identifiers that would reveal log positions are opaque tokens.
  • Selective disclosure. Records commit to each field separately, so a record can be disclosed with some fields withheld while staying checkable.
  • Redaction. A record's body can be redacted when nothing live depends on it. Its existence, attribution, lineage, digest and time stay. Copies shared earlier are not recalled.
  • Erasure. Personal fields are made unreadable within the declared period by destroying their encryption keys. The pseudonymous audit skeleton is kept.

What Access never promises

Never promisedWhat Access says instead
Immediate effect on every deviceEffective now for new requests; offline devices may honor it until T if they follow their profile
The agent has stoppedAuthority revoked. Agent: running / paused (confirmed) / unknown
A claim is trueIssuer says (signed)
The action is doneAllowed · owner: reported done / unknown
No changes lost in recoveryChanges after the recovery checkpoint may be lost; repeat revocations made after then
Approvers are independentDifferent people, different devices
An approval makes the action correctRecords your approval. Access then re-checks the request
Records cannot be alteredTamper-evident, checked against independent witnesses, where witnesses are configured
Agents cannot be misusedThe agent can only use what you delegated, within limits
Uninterrupted availabilityOffline and continuity windows, with their conditions
Logged out of every appSessions ended; apps that already hold a token may keep access until it expires
Passkeys make takeover impossiblePasskeys are phishing-resistant; device binding separately protects against session theft
Your data is deletedPersonal fields are made unreadable within the declared period; the pseudonymous audit skeleton is kept
Legal force of an approvalNot said