Skip to Content
Fingerprint ProtectionPerformance Fingerprinting

Performance Fingerprinting

Performance timing and execution speed create a hardware-level fingerprint. BotBrowser provides comprehensive protection against timing-based tracking.


Prerequisites


Quick Start

chromium-browser \ --bot-profile="path/to/profile.enc"

Start with this launch to establish a clean baseline before adding extra overrides.

Overview

Performance and timing data can serve as a hardware-level fingerprint. BotBrowser provides comprehensive protection across all timing-related surfaces.


Configuration

Performance Timing Protection

Use --bot-time-seed for deterministic execution timing diversity (ENT Tier2):

# Each seed produces a unique, stable performance profile --bot-time-seed=42

This applies deterministic timing diversity across browser operations and navigation timing entries.

Timing Scale

Use --bot-time-scale to compress high-resolution timing intervals (ENT Tier2):

# Scale down timing intervals (range 0.80-0.99) --bot-time-scale=0.92

This emulates lower system load and reduces timing skew signals.

Frame Rate Control

Control display/runtime frame rate behavior with --bot-fps (ENT Tier2):

# Use profile-defined frame rate --bot-fps=profile # Use native frame rate --bot-fps=real # Set specific frame rate --bot-fps=60

Control video playback cadence with --bot-video-fps (ENT Tier2, requires a profile with Video FPS Control enabled):

# Actual video cadence 1 FPS, media reporting 30 FPS --bot-video-fps=1:30

Use this for video-heavy workloads where lower visual video cadence is acceptable. Pixel output follows the actual video cadence, while media reporting follows the selected policy. See FPS Control and the Video FPS benchmark.

Network Information Override

Control network connection property values with --bot-network-info-override:

# Use profile-defined network info values --bot-network-info-override

This overrides network connection properties and corresponding Client Hints headers with profile-defined values.

Stack Depth Control

Control JavaScript recursive call stack depth with --bot-stack-seed (ENT Tier2):

# Match profile's exact depth --bot-stack-seed=profile # Use native depth --bot-stack-seed=real # Per-session depth variation --bot-stack-seed=42

How BotBrowser Provides Protection

BotBrowser provides protection across all performance and timing surfaces: operation timing, navigation timing, display frame rate, video playback cadence, network connection properties, stack depth, and CPU core scaling. The flags listed above can be combined for comprehensive coverage. --bot-time-seed and --bot-time-scale protect against different aspects of timing and can be used together.


Common Scenarios

  • Capture a baseline result using the Quick Start setup.
  • Change one relevant setting at a time and compare the new output.
  • Keep your final launch command documented so future checks are reproducible.

Troubleshooting / FAQ

ProblemSolution
Timing profile identical across instancesUse different --bot-time-seed values for each instance.
Frame rate doesn’t match profileSet --bot-fps=profile or specify a target rate like --bot-fps=60.
Video workload uses too much CPUUse --bot-video-fps=<actual>[:<reported>], such as --bot-video-fps=1:30, with a profile that has Video FPS Control enabled when lower visual video cadence is acceptable.
Network connection info shows real valuesEnable --bot-network-info-override to use profile-defined values.
Performance entries show real server timing--bot-time-seed redistributes entry timing. Verify it is set.

Next Steps


Related documentation: Advanced Features: Performance Timing Protection | Advanced Features: Stack Depth Control


Legal Disclaimer & Terms of UseResponsible Use Guidelines. BotBrowser is for authorized fingerprint protection and privacy research only.

Updated