Side-Channel Inventory Workshop¶
Facilitated workshop — instantiates Side-Channel Leakage Containment
A facilitated session that enumerates what must stay secret and every observable byproduct that could betray it — turning 'the front door is locked' into a map of all the windows.
Before anyone can close a side channel, someone has to notice it exists. The Side-Channel Inventory Workshop is the discovery ritual that produces the map every other mechanism acts on. In a structured session it does three things: it names the protected facts the access policy is supposed to hide, it maps the observation surface — everything a legitimate observer can see, including timing, response size, error text, ordering, resource use, and metadata — and it catalogs the side channels where those two meet. Its defining move is to enumerate the observation surface separately from the nominal answer: the payload may be perfectly within policy while a byproduct quietly leaks, and a leak nobody has named is a leak nobody owns. The workshop produces no control of its own — its entire output is the inventory that scopes the containment program.
Example¶
A team is adding an access-controlled search feature to a document platform. Front-door authorization is solid: unauthorized users can't open documents they shouldn't. The workshop asks the harder question — what can an observer learn without opening anything? First they list protected facts: whether a given document exists, who can see it, and whether a search matched anything sensitive. Then they walk the observation surface: response latency, the result count, autocomplete suggestions, result ordering, and the exact error returned.
Channel by channel, the map fills in. Does a query that matches a hidden document return in a noticeably different time than one matching nothing? Does the system answer "403 Forbidden" for a real-but-restricted document and "404 Not Found" for one that doesn't exist — letting an outsider confirm existence by the error alone? The output is a ranked inventory pairing each protected fact with the channels that could betray it. No fixes are decided here; the value is that every candidate leak now has a name, an owner, and a place in the backlog.
How it works¶
- Name the secrets first. Enumerate the protected facts explicitly, because a channel only matters relative to something it could reveal.
- Walk the observable surface, not the code. List what an observer sees — latency, size, errors, ordering, metadata, resource use — independent of what the system means to return.
- Pair facts to channels. For each protected fact, ask which observable byproducts vary with it; those pairings are the candidate leaks.
- Rank under an assumed adversary. Order the inventory by how reachable each leak is for the observer the system actually faces, so remediation starts where it matters.
Tuning parameters¶
- Channel scope — how wide a net (application-level only, or down to caching, scheduling, and physical byproducts). Wider scope finds more but costs time and expertise.
- Adversary assumption — insider vs. external, single query vs. many, one system vs. cross-system correlation. A stronger assumed observer surfaces subtler channels but expands the worklist.
- Protected-state granularity — coarse ("account data") vs. fine ("whether account X exists"). Finer granularity catches existence and membership leaks that coarse framing hides.
- Cadence — one-time kickoff vs. a standing pre-release step. Systems grow new channels; a one-shot map goes stale.
- Room composition — the map is only as complete as the perspectives present; missing ops or security means missing channels.
When it helps, and when it misleads¶
Its strength is that it drags un-owned leaks into daylight cheaply, before any engineering is spent, and it gives a cross-functional team a shared vocabulary for a class of risk that usually falls between roles. It is the input every downstream control presupposes.
Its central limitation is that a whiteboard enumerates the channel types people already know; genuinely novel microarchitectural or physical channels won't appear because no one thought to list them, and a tidy map invites the false comfort that the surface is now complete. The classic misuse is to run the workshop once, laminate the output, and never revisit it as the system changes — at which point the inventory documents a system that no longer exists. The discipline that guards against this is to treat the inventory as a living artifact, refreshed each release and fed by real measurement from the regression suite, rather than a one-time deliverable. This is the side-channel-aware complement to conventional threat modeling, which tends to concentrate on the main channel and under-cover the byproducts.[1]
How it implements the components¶
The workshop fills the discovery-and-mapping components — the ones a diagnostic ritual produces, not the controls that act on them:
protected_state_inventory— the explicit catalog of facts the policy is meant to hide.observation_surface_map— the enumeration of everything a legitimate observer can perceive.side_effect_channel_inventory— the catalog of concrete channels (timing, size, error, ordering, metadata) pairing observables to protected facts.
It implements no containment control: output equalization belongs to Response Padding or Coarsening and Secret-Independent Resource Scheduling, aggregate suppression to Threshold Suppression, and the noise budget to Controlled Noise Injection.
Related¶
- Instantiates: Side-Channel Leakage Containment — the workshop produces the inventory the whole archetype is scoped against.
- Sibling mechanisms: Side-Channel Regression Test · Residual Leakage Review Board · Query Rate and Composition Limit · Response Padding or Coarsening · Secret-Independent Resource Scheduling · Threshold Suppression · Privacy-Preserving Telemetry View · Batching and Delayed Release · Broker Visibility Partitioning · Cache Partitioning or Flush Rule · Constant Response Envelope · Controlled Noise Injection · Differential Observation Test · Error Message Normalization · Metadata Minimization Filter
Notes¶
The workshop is upstream of everything: its inventory is what the tests probe, what the controls equalize or suppress, and what the review board weighs residual risk against. It is deliberately a map, not a decision — it says nothing about how much of any leak is acceptable; that judgment belongs to the Residual Leakage Review Board. Its quality is bounded by the adversary assumption fed in, which is why it pairs with the query model in Query Rate and Composition Limit.
References¶
[1] Threat modeling (e.g., the STRIDE framework) systematically enumerates how a system can be attacked. It is strong on main-channel threats — spoofing, tampering, disclosure through the intended interface — and comparatively weak on side channels, where the disclosure rides on a byproduct of a legitimate response; this workshop is the practice aimed squarely at that gap. ↩