- Refine session and storage lifecycle handling - Improve VM extension architecture across server, shared, and WASM runtimes - Enhance synthetic gene mutation engine integration and parity guarantees - Align deterministic state progression between server and browser execution paths - Update configuration examples and deployment guidance - Expand architecture, API, threat model, privacy, and WASM build documentation - Refresh README with comprehensive project overview, operational workflows, browser integration details, storage backend documentation, and security model - Document v0.6.0 refactoring outcomes and design rationale - Improve consistency across documentation, configuration, and implementation This commit consolidates the v0.6.0 architectural refactoring effort, strengthening deterministic browser/server parity while improving maintainability, operational clarity, and project documentation.
3.5 KiB
ChronoSeal Privacy Policy
ChronoSeal is a privacy-oriented browser attestation system. It is designed to validate short-lived session continuity without creating persistent user profiles.
This document describes what ChronoSeal itself collects and stores. Applications that integrate ChronoSeal may collect additional data under their own policies.
Data ChronoSeal Processes
ChronoSeal processes the minimum protocol data needed to validate a live browser session.
| Data | Purpose |
|---|---|
session_id |
Opaque session lookup key |
| public key | Verify signed heartbeats for the session |
salt |
Hash-chain progression |
initial_hash / prev_hash / last_hash |
Replay-resistant continuity |
timestamp |
Drift and liveness validation |
| mouse event samples | Behavioral plausibility checks |
| VM stack state | Input to hash-chain progression |
| basic fingerprint fields | Sanity validation |
| gene bytes and environment records | Mutation continuity |
| pending mutation program and step | Next heartbeat verification |
| expiration and last-seen timestamps | Session lifecycle and cleanup |
Basic fingerprint fields currently include:
- aspect ratio
- device pixel ratio
- hardware concurrency
Data ChronoSeal Does Not Intentionally Collect
ChronoSeal does not intentionally collect or build:
- browser history
- page content history
- account identity
- email addresses
- names
- payment data
- location history
- cross-site tracking identifiers
- persistent fingerprint databases
- long-term behavioral profiles
ChronoSeal is not intended for analytics, advertising, or identity graph construction.
Session Lifetime
Sessions are short-lived and expire according to expiration_minutes, which defaults to 30 minutes.
Expired sessions are removed by cleanup behavior. In-memory storage is lost when the process exits.
Storage Modes and Persistence
| Mode | Persistence |
|---|---|
sqlite-in-memory |
process lifetime only |
sqlite-in-disk |
persisted to the configured SQLite file |
valkey |
persisted according to the Valkey deployment configuration |
Persistent state is operator-selected. The default backend is sqlite-in-memory.
Client-Side Key Handling
The browser WASM runtime generates an Ed25519 keypair for the session.
- The public key is sent to
/init. - The private key is not sent to the server.
- Heartbeat payloads are signed in the browser runtime.
This is a continuity mechanism, not a long-term identity mechanism.
Silent Rejection
ChronoSeal returns the same basic heartbeat status for accepted and rejected heartbeat requests:
{
"status": "ok"
}
Accepted responses additionally include next-state fields. Rejected responses omit them.
This reduces attacker feedback and avoids returning detailed failure classifications to clients.
Logs
Operators control logging through CHRONOSEAL_LOG, RUST_LOG, and optional log-file configuration.
Production deployments should avoid debug logging because internal session identifiers or validation context may appear in logs.
Operator Responsibilities
Operators should:
- serve traffic over HTTPS
- protect SQLite, Valkey, and log storage
- restrict access to metrics and stats endpoints
- choose persistence mode deliberately
- disclose any application-level data collection separately
Summary
ChronoSeal validates live session continuity using short-lived cryptographic and deterministic state. It is designed to raise automation cost without becoming a persistent tracking or profiling system.