ADVANCED TECHNIQUE BRIEF
Paired response ordering as a timing oracle
Control order bias and internal noise before interpreting HTTP/2 response races.
Also known as: timeless timing · dual-packet sync
A remote timing oracle need not rely on comparing wall-clock milliseconds. If two requests reach a server together, their response order can reveal a processing difference while canceling much of the shared network delay.
Research anchor and scope
James Kettle’s timing research explains paired HTTP/2 measurements, the bias favoring the first serialized request, and a dual-packet synchronization improvement for servers that start processing at headers. It separates network jitter from internal server noise and proposes amplifying useful work. The paper explicitly avoids a universal minimum detectable delay: achievable resolution depends on the target.
Design a falsifiable experiment
Define two requests that differ in exactly one hypothesized condition. For a toy service, request A looks up a known public record and request B looks up a nonexistent record; both return an identical response. The experiment asks whether the underlying work differs, not whether either response is semantically “faster” from the user’s perspective.
Send both orders, A-before-B and B-before-A, in comparable batches. If the first request wins regardless of content, the result measures serialization bias. If A wins consistently in both orders, a content-dependent difference is more plausible. Include A-versus-A and B-versus-B controls to estimate the bias and ordinary variance.
Store stream identifiers, pair order, outcome, connection reuse, and failure status. Do not silently drop timeouts from only one class. Measure repeated paired outcomes rather than picking the most dramatic individual trace. A rank or sign-based analysis can be more robust than a mean when occasional long pauses dominate timing.
Control the code path
Keep authentication, payload length, endpoint routing, and cache state comparable. A warm cache for one candidate can dominate a much smaller difference in validation logic. Conversely, deliberate cache misses may help amplify a lookup signal, but then the conclusion concerns the uncached path. Increase a suspected expensive operation only while preserving the condition you intend to measure.
Pair synchronization cannot remove work done serially inside the server or contention between the requests themselves. Shared database locks can make the second request wait because of the first, creating an oracle that measures resource collision rather than independent processing cost.
Interpret limits
A timing difference can identify hidden parameters, distinguish backend branches, or suggest shared-resource behavior. It does not automatically recover a secret character or prove exploitability. An observable comparator with a nanosecond-scale difference may remain impractical remotely. Report the hypothesis, controls, sample distribution, and alternative explanations. Separate discovery of a stable signal from a demonstrated attack that uses the signal to reach a concrete security outcome.