DEV Community

Cover image for HOLogram deep dive: the Persona Mixer — why random noise isn't enough
BaffiSan
BaffiSan

Posted on Edited on

HOLogram deep dive: the Persona Mixer — why random noise isn't enough

This is part 1 of "Building HOLogram", a series on the open protocol
for behavioral biometrics protection in the browser.
Part 0 — introduction | Part 1 — Persona Mixer | Part 2 — Privacy Budget | Part 3 — Input Vault


Most approaches to behavioral privacy make the same mistake: they add noise.

Random noise injected into mouse movements or keystroke timings seems like
a reasonable defense. It corrupts the signal. It should confuse a classifier.

The problem is that random noise is itself a signal.

A behavioral biometrics classifier doesn't just look at the absolute values
of your timing or trajectory data. It looks at the statistical distribution
of those values over time. Random noise has a characteristic distribution —
flat, uniform, uncorrelated. A trained classifier can distinguish "human +
noise" from "human" with relatively high accuracy, because the noise pattern
doesn't look like any human behavioral pattern ever observed.

This is the problem the Persona Mixer was designed to solve.


What the Persona Mixer does

Instead of adding random noise to your real behavioral signals,
the Persona Mixer generates a session-consistent synthetic behavioral
signature
— a stable set of behavioral parameters that define a
plausible synthetic human for the duration of the session.

The output doesn't look like noise. It looks like a specific person —
just not you. And not the same synthetic person across sessions.


The five parameters

The Persona Mixer operates on five parameters:

pointerJitterRange

The magnitude of synthetic micro-movements added to pointer coordinates.
Human pointer movement is never perfectly smooth — there's always a small
amount of biological tremor and motor noise. The jitter range defines
the amplitude of this synthetic tremor.

The key constraint: the range must be within human plausibility bounds.
Too small and it's indistinguishable from no jitter. Too large and it
looks like a hardware malfunction, not a human.

scrollPauseProbability

The probability of inserting a micro-pause during a scroll event.
Humans naturally pause while scrolling — to read, to process, to hesitate.
This parameter controls how often the synthetic persona "hesitates"
during scroll interactions.

typingLatencyOffset

An offset applied to inter-keystroke intervals. Rather than replacing
the natural timing distribution of your keystrokes, this parameter
shifts the entire distribution by a consistent amount — making the
synthetic persona type slightly faster or slower than the real user,
but with a pattern that remains internally consistent.

smoothingAggressiveness

The degree of trajectory smoothing applied to pointer paths.
Some people move their mouse in smooth arcs; others in jagged, direct lines.
This parameter controls where on that spectrum the synthetic persona falls.

curvatureSoftening

A reduction of sharp angular changes in pointer movement. Humans rarely
make perfect right-angle movements — sharp angles get softened into curves.
The aggressiveness of this softening varies between individuals.


Session consistency: the critical property

All five parameters are stable for the duration of a session — they
don't change between interactions.

This is what makes the Persona Mixer fundamentally different from noise
injection. A real human has consistent behavioral traits across a session.
Their typing rhythm is recognizable. Their pointer style is stable.

The synthetic persona must have the same property: a classifier observing
the session should see a consistent behavioral identity, just not the
real user's identity.

At the start of each new session, a new set of parameters is sampled —
creating a different synthetic persona. This breaks cross-session correlation
even if an adversary has a full session recording.


What we don't know yet

The Persona Mixer is designed but not yet implemented or empirically validated.

Several open questions remain:

What are the actual human plausibility ranges for each parameter?
We need empirical data on human behavioral variance to set the bounds.
A synthetic persona that falls outside human plausibility bounds is
detectable as synthetic — exactly what we're trying to avoid.

How does the Persona Mixer interact with anti-bot systems?
reCAPTCHA, hCaptcha, Cloudflare — these systems also model "human" behavior.
A Persona Mixer parameter set that defeats a behavioral biometrics classifier
might still trigger an anti-bot system. We need to understand the overlap.

Can the parameter distribution itself become a fingerprint?
If all HOLogram users sample their Persona Mixer parameters from the same
distribution, that distribution might become detectable. The sampling
strategy matters as much as the parameters themselves.

These are active open questions in our GitHub Discussions and research issues.


How to contribute

If you have experience with behavioral biometrics research, HCI, or
statistical analysis of human motor behavior, we need your input.

The most impactful contribution right now is
D-01: Define human plausibility ranges for Persona Mixer parameters
researching the empirical bounds for each of the five parameters.

Next in the series: [Part 2 — How we designed the Behavioral Privacy Budget]

Top comments (0)