Skip to content

9. Clean-room Hindsight-parity interpretation engine

Context

Raw browser artifacts carry structure an examiner has to decode by hand: Google search terms buried in URLs, tracking cookies that encode visitor IDs and visit times, and integer timestamps whose units (seconds, millis, micros, WebKit) are not labelled. Hindsight established the community reference for this interpretation, but it is Python. This suite needs the same interpretation in pure Rust, with results an examiner can reconcile against the reference.

Decision

Implement browser-forensic-interpret as a clean-room reimplementation of the Hindsight interpretation plugins. Two entry points, interpret_url and interpret_cookie, extract Google search terms and query-string parameters and decode tracking cookies (Google Analytics __utm* / _ga, Quantcast __qca, F5 BIG-IP BIGipServer*), with a generic embedded-timestamp fallback. Timestamp units are inferred from magnitude through a ladder that mirrors Hindsight's to_datetime, so the caller never declares units. Cookie interpretation runs only where a plaintext value exists; Chrome-encrypted cookie values are never surfaced.

Consequences

Interpretation output is reconcilable against the Hindsight reference, which serves as an independent oracle. The magnitude-based timestamp ladder matches ground truth without a caller-supplied unit. Parity is bounded to the plugins reimplemented; new Hindsight plugins require new work here.

Status

Accepted.