|
| 1 | +# Fortress Persona Engine |
| 2 | + |
| 3 | +Every Fortress launch presents a **unique, coherent, real-looking device** — a fresh fingerprint that looks like an ordinary person's machine, generated inside the browser engine before any page script runs. |
| 4 | + |
| 5 | +This page describes *what* the persona engine does. The generator, its calibration data, and the engine-level delivery are Fortress's core technology and are not part of the open distribution. |
| 6 | + |
| 7 | +## What you get |
| 8 | + |
| 9 | +- **A different identity every launch.** No two sessions share a fingerprint by default, so sites can't link your sessions to one operator. The identity space is effectively unlimited. |
| 10 | +- **Coherent, not random.** The *whole* device agrees with itself — GPU, screen, CPU/RAM, user-agent, timezone, language and fonts are mutually consistent, and impossible combinations never occur. Detectors that cross-check one surface against another find nothing out of place. |
| 11 | +- **Real, not exotic.** Personas are drawn to match the *actual* population of real browsers, so each one blends into the crowd instead of standing out as unusual. |
| 12 | +- **Native — no JavaScript injection.** Values are correct at the C++ engine level before a single line of page script executes. There are no wrapped functions or shimmed prototypes to catch, so native-integrity checks (`toString`, descriptors, prototype chains) pass by construction — including inside Web Workers and nested frames. |
| 13 | +- **Zero-config.** A bare launch just works. Optionally pin a seed for a reproducible sticky identity, or pin a country so the persona's geo matches your proxy exit. |
| 14 | + |
| 15 | +## Behavior |
| 16 | + |
| 17 | +| Launch | Result | |
| 18 | +|---|---| |
| 19 | +| bare (no flags) | a fresh coherent persona, **different every time** | |
| 20 | +| pinned seed | the **same** persona every time — a stable, reproducible identity | |
| 21 | +| pinned country | timezone / language / fonts match that country; everything else stays seed-driven | |
| 22 | + |
| 23 | +Nothing about the persona is exposed on the process command line, and no host-machine value ever leaks through. |
| 24 | + |
| 25 | +## Why it stands out |
| 26 | + |
| 27 | +Most stealth tooling randomizes fingerprints per-surface, which produces *individually plausible but jointly impossible* devices — a signal in itself. Fortress generates each persona as a **whole coherent machine calibrated to real-world data**, with a very large identity space and reproducible sticky identities when you want them. Because everything happens in the compiled engine, it is a **real browser**, not an instrumented one. |
| 28 | + |
| 29 | +## Using it |
| 30 | + |
| 31 | +Fortress is a drop-in for Playwright / Puppeteer — connect to its CDP endpoint and drive it exactly as you would Chrome. See the SDK in [`sdk/`](../sdk) and the project [README](../README.md). The persona engine is always on; you don't configure it unless you want a pinned seed or country. |
0 commit comments