Arquitectura
Cómo Clearcote suma, capa por capa y de forma transparente, control de privacidad e identidad sobre Chromium.
El stack
El build abierto es un stack delgado y auditable. Cada capa es abierta y reemplazable:
Chromium (Google, BSD-3)
|
ungoogled-chromium -> removes Google services, telemetry, integration
|
Clearcote patches -> engine-level identity & privacy controls
|
reproducible build -> checksummed, GPG-signed, rebuildable by anyone (open build)
|
Clearcote Browser + SDK (Playwright objects) / CDP endpointEl build con licencia (Gratis con GitHub y Pro) agrega sobre este stack parches que no son públicos. Su SHA-256 se verifica al descargarlo, pero no se puede recompilar a partir del código fuente público.
A nivel del motor, no inyección de scripts
La mayoría de las herramientas “stealth” inyectan JavaScript para sobrescribir propiedades de navigator en tiempo de ejecución. Eso es frágil y se delata solo: las propias sobrescrituras se convierten en una huella (cadenas de prototipos incorrectas, tiempos de los getters, funciones que no se stringifican como código nativo).
Clearcote, en cambio, modifica el motor en C++. Los valores que lee una página salen de las mismas rutas de código que Chromium usa siempre, así que no hay ninguna capa inyectada que detectar. Esto cubre también APIs que JavaScript directamente no puede interceptar de forma limpia.
Identidad coherente, ruido de renderizado por sitio (farbling)
Aleatorizar cada señal por separado produce una identidad que no cuadra, y eso delata de inmediato. Clearcote deriva la persona de un solo seed, y el ruido de renderizado, de ese seed combinado con el dominio registrable del sitio:
- Consistente internamente: la plataforma, la GPU, la pantalla y el hardware concuerdan entre sí; la zona horaria y el idioma salen de tus opciones o de
geoip. - Estable por sitio: un mismo sitio ve la misma identidad durante toda la sesión.
- Ruido de renderizado por sitio: las lecturas de canvas y WebGL cambian de un sitio a otro, así que los hashes de renderizado no coinciden entre dominios. Los valores de tipo hardware se mantienen iguales en todas partes, como en una máquina real.
Este modelo de ruido por eTLD+1 se inspira en el farbling de Brave. El ruido depende del seed: sin un seed de --fingerprint, no hay ruido.
Persona coherente: un seed, una máquina creíble
Clearcote va un paso más allá del ruido por señal. A partir de un solo seed de --fingerprint se deriva una persona coherente para la plataforma que presentas: una única máquina creíble cuyas propiedades concuerdan entre sí. Por defecto, el SDK presenta el sistema operativo de tu host (Windows o Linux); si lo pides, también hay un UA de macOS y una persona de Android en modo best-effort. Del seed se obtiene un nivel de hardware (núcleos de CPU y RAM que realmente vienen juntos en los equipos, nunca 20 núcleos con 4 GB), una resolución de pantalla acorde, profundidad de color y device pixel ratio, una GPU coherente y una versión real de Chrome.
Las propiedades de tipo hardware se mantienen constantes durante la sesión —una máquina real no cambia su número de núcleos ni el tamaño de su pantalla de un sitio a otro—, mientras que las superficies de renderizado perturbadas (los píxeles de canvas y WebGL) siguen con farbling por sitio, así que no quedas correlacionado entre dominios. Los client rects y el audio renderizado no se perturban — aunque el sampleRate, el baseLatency y el outputLatency de AudioContext salen de la persona siempre que haya una activa; en qué recibe farbling y qué no, a propósito se explica esa concesión.
Por qué importa: hoy la señal de detección más fuerte no es ningún valor aislado, sino la contradicción interna: una máquina que dice tener un sistema operativo pero renderiza como otro, o que combina una CPU con muchos núcleos con muy poca RAM. Derivar todas las señales de una sola tabla de persona hace que todas cuenten la misma historia. Funciona con el mismo seed de --fingerprint que ya pasas (sin flags nuevos).
Hay tres formas de presentar una identidad: el preset light-stealth (unos pocos valores de metadatos, sin seed y sin ruido), la persona con seed descrita arriba o un perfil capturado de una máquina real (fingerprint_profile, o profile="auto" desde la biblioteca de perfiles del build con licencia). Consulta Recomendaciones para saber por cuál empezar.
Qué controla
Plataformas objetivo
El build abierto se compila para Windows x64 (con compilación cruzada desde Linux) y Linux x64 (nativo), sobre Chromium 149; el build con licencia está en Chromium 153. La receta completa del build abierto —y cada trampa de la compilación cruzada— está documentada para que cualquiera pueda reproducirla. Consulta Compilar desde el código fuente.