Capacidad

Transparente para el ojo humano, una pesadilla para los lectores de pantalla con IA

Las letras de la página renderizada se intercambian silenciosamente con hermanos visualmente similares del mismo alfabeto — a se convierte en e, b se convierte en p, m se convierte en w. El área alrededor del cursor del usuario revela los originales, por lo que una persona que lee la página no experimenta ningún cambio. Un motor OCR o modelo de visión IA al que se le proporcione una captura de pantalla de esa misma página lee palabras completamente diferentes.

La distorsión a nivel de píxel está siendo erosionada como defensa: los modelos modernos de visión IA como GPT-4V, Claude Vision y Gemini son cada vez más capaces de leer texto a través del ruido, el desenfoque y los patrones adversariales. La superficie de ataque más profunda es el propio texto. ZeroLeak sustituye silenciosamente una porción de las letras de la página renderizada con hermanos visualmente similares pero semánticamente diferentes del mismo alfabeto latino. Donde está el cursor del usuario, una zona de revelación hace girar el texto sustituido de vuelta al original — para que el humano lea donde mira, y el reconocimiento de patrones natural del cerebro complete el resto. Cuando se captura la misma página en una captura de pantalla y se proporciona a un modelo IA, el modelo no tiene zona de revelación; lee los caracteres sustituidos como el contenido real, y lo que devuelve es un documento diferente.

Mismo script
Letras latinas intercambiadas con vecinas latinas — nada que los normalizadores OCR puedan deshacer
Basado en cursor
Una zona de revelación alrededor del cursor muestra los originales — el usuario lee donde mira
Capa DOM
Opera en los datos de caracteres, complementario a la distorsión a nivel de píxel

Las defensas a nivel de píxel se están erosionando; los modelos de visión IA las atraviesan

Las defensas anteriores contra la lectura de pantalla por IA operaban en la capa de píxeles — ruido aleatorio, perturbación en el dominio de frecuencias, vibración sub-píxel, micro desenfoque, desplazamientos cromáticos. Estas siguen siendo efectivas contra los motores OCR clásicos, y permanecen como parte de la defensa en capas. Pero los Modelos de Visión-Lenguaje modernos — GPT-4V, Claude Vision, Gemini y sus sucesores — tienen codificadores de parches conscientes del tokenizador que reconstruyen palabras a partir de evidencia visual parcial de forma cada vez más eficaz. Los píxeles pueden ser ruidosos y el modelo igualmente recupera el texto subyacente.

La siguiente superficie de ataque vive una capa más arriba: el DOM. Dentro del navegador headless que renderiza la página protegida, somos propietarios de los datos de caracteres reales que se pintan en pantalla. Podemos decidir que la letra en la posición 47 del tercer párrafo ya no es la original; es un carácter visualmente similar pero diferente del mismo alfabeto. El OCR o VLM que mira una captura de pantalla de esa página ve el carácter sustituido y lo reporta como la verdad. El modelo no sabe que fue sustituido; no tiene nada con lo que comparar.

La parte difícil es hacer esto sin interrumpir la lectura para el usuario humano. El mecanismo de revelación — una pequeña área alrededor del cursor que hace girar el texto sustituido de vuelta al original — es la respuesta. Las personas leen mirando: el ojo se fija en una frase, el reconocimiento de patrones del cerebro completa el resto desde la visión periférica más el contexto. La revelación del cursor se alinea con donde el usuario está mirando realmente; el resto de la página puede permanecer sustituida porque el usuario no lo está leyendo carácter a carácter de todos modos. Un modelo IA que mira la misma captura de pantalla no tiene tal cursor, no tiene tal revelación — lee todo como el texto sustituido.

Sustituir las letras, revelar donde el usuario está mirando

ZeroLeak's headless browser inyecta un script en cada página protegida. Al arrancar, el script recorre el DOM, elige sustitutos visualmente similares para una porción de las letras del mismo alfabeto latino, y los escribe en la página. La posición del cursor guía una zona de revelación — dondequiera que el usuario esté mirando, los originales se muestran. Todo fuera de la revelación permanece sustituido.

Letras intercambiadas silenciosamente con hermanos visualmente similares del mismo alfabeto

Un carácter en una posición de la página se convierte en otro carácter que parece visualmente similar pero es una letra diferente — a convertida en e, b convertida en p, m convertida en w, n convertida en u. El intercambio es entre letras que comparten una familia visual en el alfabeto latino, no entre caracteres Unicode de apariencia similar. Por qué importa esta distinción: los pipelines OCR y de visión IA normalizan los homoglifos Unicode (Cirílico а se convierte en Latino a) de vuelta al Latino canónico. Los intercambios del mismo script no dejan nada que el normalizador deshaga — el modelo lee el carácter sustituido como la letra real.

Una zona de revelación alrededor del cursor muestra los originales

Dondequiera que el usuario mueva el cursor, un área a su alrededor (círculo por defecto, configurable como banda horizontal) hace girar los caracteres sustituidos de vuelta a sus originales. El usuario lee donde mira; el reconocimiento de patrones natural del cerebro maneja el resto desde la visión periférica. Fuera de la revelación, la página permanece sustituida — lo que ve un modelo IA mirando la captura de pantalla.

Cipher estático — cada carácter obtiene una sustitución que no cambia

Cuando la página carga, cada letra sustituida obtiene un reemplazo específico que permanece estable durante toda la vida de la página. No hay parpadeo, no hay rotación temporal, no hay animación en la visión del usuario — el cipher se sienta silenciosamente detrás de la revelación del cursor. Un diseño anterior rotaba el cipher cada pocos fotogramas; las pruebas de fatiga del usuario mostraron que causaba incomodidad de lectura medible, por lo que el diseño final permanece estático.

Opera en la capa DOM, complementario a las defensas a nivel de píxel

Text cipher opera dentro del DOM del navegador headless — directamente sobre los datos de caracteres, no sobre los píxeles renderizados. Las defensas de capa de píxeles contra los modelos de visión IA siguen funcionando por debajo; text cipher agrega una superficie de ataque ortogonal con la que las técnicas de recuperación de píxeles no pueden ayudar. Un atacante que rompa la capa de píxeles todavía tiene que leer correctamente el texto sustituido. Un atacante que de alguna manera recupere los caracteres originales todavía tiene que derrotar la capa de píxeles.

Lo que el cipher realmente hace

Cada comportamiento a continuación forma parte del diseño de producción tras la revisión empírica de fatiga; la implementación en vivo coincide exactamente con esto. La configuración es por servicio protegido a través de la consola del operador.

Sustitución latina del mismo script, tabla seleccionada manualmente

Las sustituciones permanecen dentro del alfabeto latino. La tabla de sustitución está seleccionada por familia visual: cuencos redondos (a, e, o, c), cuencos en espejo (b, p, d, q), verticales estrechos (i, l, j, 1), arcos (m, n, u, h, w), descendentes (g, y, j, q). Cada letra de la tabla tiene 2-4 vecinos visuales; la sustitución elige uno de ellos. Se prefiere la correspondencia de ancho para que no se produzca redistribución del diseño.

Zona de revelación — círculo alrededor del cursor o banda horizontal

La forma predeterminada es un círculo de radio configurable (200 px por defecto). Una forma de banda alternativa cubre una franja horizontal a la altura del cursor — útil para leer contenido de líneas largas donde el movimiento del ojo es mayormente horizontal. La forma se comparte con otros efectos basados en cursor de ZeroLeak, por lo que los operadores configuran una vez.

Cipher estático persistido en un mapa por nodo

Cuando el script ve por primera vez un nodo de texto, almacena el valor original en un mapa por nodo y escribe el valor sustituido en el DOM. Las actualizaciones posteriores usan la misma sustitución — no hay rotación por fotograma. El usuario percibe una página estática; el cipher es invisible detrás de la revelación del cursor.

Inyectado mediante hook de script del navegador headless

El script de sustitución es inyectado por el motor ZeroLeak en cada documento navegado dentro del Chromium headless. La aplicación web protegida no se modifica; el cipher funciona como un ayudante del lado de la página entre el documento renderizado y la capa de visualización del usuario. No se requiere coordinación con el código de la aplicación protegida.

El texto de formularios escrito por el usuario queda excluido

El texto que el usuario escribe en inputs, textareas o regiones contentEditable queda excluido de la sustitución. La aplicación protegida recibe entrada limpia tal como el usuario la escribió. Cuadros de búsqueda, composición de mensajes, envío de formularios — todo sin afectar.

Solo se toca el texto visible en el viewport

Un IntersectionObserver rastrea qué nodos de texto son realmente visibles. El texto fuera de pantalla no se sustituye (el usuario no puede verlo de todos modos). Cuando el usuario desplaza una sección oculta hacia la vista, la sustitución se aplica justo a tiempo. Esto mantiene el coste de ejecución proporcional a lo que está en pantalla, no al tamaño total de la página.

La tabla de sustitución y lo que permanece sin tocar

La sustitución visual del mismo script es el corazón de la técnica. La tabla a continuación es una muestra del mapeo de producción real; la tabla completa cubre todas las minúsculas, mayúsculas y dígitos seleccionados.

01

Cuencos redondos — a, e, o, c

Estos cuatro caracteres comparten la forma de cuenco cerrado; sustituir uno por otro preserva la silueta a distancia de lectura. Una palabra como 'data' podría convertirse en 'doto' en la forma sustituida — un humano que la mire a través de la revelación del cursor lee 'data' instantáneamente, un motor OCR o modelo IA que lea la forma sustituida devuelve 'doto'.

02

Cuencos en espejo — b, p, d, q

Estos cuatro son espejos visuales entre sí; sustituir uno por otro preserva el patrón de tallo vertical + cuenco. La palabra 'database' podría convertirse en 'patabose' en forma de cipher — visualmente lo suficientemente cercana para que el reconocimiento de patrones del cerebro recupere el original, semánticamente no relacionada lo suficiente para que un modelo IA que la lea devuelva la palabra incorrecta.

03

Arcos — m, n, u, h, w

Estos cinco comparten el patrón de arco / arco invertido / arco repetido; la sustitución dentro de esta familia preserva el ritmo general del texto. 'human' podría convertirse en 'wuwon' — legible de un vistazo bajo el cursor, irreconocible para una IA que lea el texto sustituido.

04

Por qué no homoglifos Unicode (Cirílico, Griego)

Propuestas anteriores usaban confusables Unicode (Cirílico а para Latino a, Griego ο para Latino o). Estas fueron rechazadas porque los pipelines OCR y los modelos de visión IA normalizan estos de vuelta al Latino canónico — Tesseract con un paquete de idioma ruso en texto mixto Latino-Cirílico devuelve salida Latino limpia, porque el paso del modelo de lenguaje proyecta los homoglifos Cirílicos sobre sus equivalentes Latinos. La sustitución del mismo script no deja nada que normalizar.

05

Lo que permanece sin tocar — canvas, texto SVG, entrada de formulario

El texto renderizado dentro de canvas HTML5 o SVG no es parte del conjunto de nodos de texto DOM; el cipher no lo toca. Igualmente, el texto que el usuario escribe en inputs y textareas permanece limpio. Estos vacíos de cobertura son deliberados: el contenido de canvas y SVG es manejado en paralelo por las defensas de capa de píxeles, y la entrada de formulario debe permanecer limpia para que la aplicación protegida funcione.

Donde text cipher cierra el camino

Modelos de visión IA que capturan la pantalla

Usuarios con asistentes IA personales en su teléfono o junto a su estación de trabajo — cualquiera puede pegar una captura de pantalla en GPT-4V o Claude Vision y pedirle que resuma. Con text cipher activado, el resumen de la IA se construye sobre el texto sustituido — devuelve una salida de apariencia plausible que, al inspeccionarla, es diferente de lo que estaba en la pantalla original.

Estados financieros y documentos de sala de datos

Documentos leídos en pantalla pero no destinados a ser exfiltrados a través de una herramienta de IA. Una captura de pantalla tomada y proporcionada a una IA para análisis devuelve números incorrectos y nombres alterados — la IA reporta con confianza contenido que no coincide con el documento real.

Historiales de pacientes analizados por asistentes IA

El personal médico con acceso de solo lectura a los historiales de pacientes no puede utilizar significativamente una IA externa para resumir o consultar los datos — la IA ve texto sustituido. La visión clínica permanece dentro del entorno protegido; la ruta de ingesta de IA devuelve un documento diferente.

Consolas gubernamentales y de inteligencia

Contenido clasificado visto por analistas. Cualquier herramienta IA consultada desde fuera del entorno protegido lee texto sustituido, no el material clasificado original. El límite de divulgación se mantiene en la ruta de ingesta de IA del mismo modo que se mantiene en la ruta de captura de pantalla.

Preguntas frecuentes

¿Afecta la sustitución a la facilidad con que un humano puede leer la página?
La lectura ocurre en el cursor. La zona de revelación muestra los originales donde el usuario está mirando; el reconocimiento de patrones natural del cerebro maneja el resto desde la visión periférica, donde la legibilidad es de todos modos menor. Las pruebas empíricas de fatiga de lectura llevaron al cipher estático (no rotatorio) actual; el diseño giratorio anterior causaba incomodidad medible, la versión estática no.
¿Qué pasa con los dispositivos táctiles que no tienen cursor?
El acceso solo táctil es poco común en el despliegue típico de ZeroLeak (operadores empresariales, analistas, contratistas en estaciones de trabajo de escritorio), pero para contextos táctiles el mecanismo de revelación vuelve a un modelo de tap-and-hold donde el área tocada es la zona de revelación. Para flujos de trabajo que son predominantemente táctiles y de lectura intensiva, text cipher puede deshabilitarse por servicio protegido en favor de las defensas de capa de píxeles únicamente.
¿Por qué no usar caracteres similares Cirílicos o Griegos?
Los motores OCR y los modelos de visión IA normalizan los homoglifos Unicode de vuelta al Latino canónico durante su etapa de modelo de lenguaje. Un Cirílico 'а' insertado en texto Latino se dobla de vuelta a un Latino regular 'a' en el momento en que se produce la salida — la sustitución no deja huella. La sustitución latina del mismo script (a convertida en e) no tiene nada que normalizar; el carácter sustituido es la letra canónica que el modelo lee.
¿Qué NO cubre el cipher?
El texto renderizado dentro de canvas HTML5 o SVG no es parte del conjunto de nodos de texto DOM; el cipher no lo toca. Las defensas de capa de píxeles cubren esas superficies. El texto dentro de inputs de formulario y textareas que el usuario escribió también queda excluido para que la aplicación protegida reciba entrada limpia. Las imágenes de texto (fotografías, capturas de pantalla incrustadas en la página) también están fuera del alcance del texto DOM.
¿Cómo se combina esto con las defensas de píxeles anti-OCR?
Los dos son complementarios, no superpuestos. Las defensas de capa de píxeles (protección anti-OCR) perturban cómo la imagen renderizada es leída por el reconocimiento de caracteres. Text cipher funciona una capa más arriba — incluso si un modelo de visión IA esquiva cada defensa de nivel de píxel y lee la página limpiamente, lee el texto sustituido. Para derrotar ambos, un atacante necesitaría romper la capa de píxeles para ver caracteres limpios Y recuperar las letras originales subyacentes de las sustituidas — dos problemas ortogonales.
¿Cuál es el impacto en el rendimiento en la sesión del usuario?
El script de sustitución se ejecuta dentro del renderer del navegador headless, solo en nodos de texto que son realmente visibles en el viewport. Las actualizaciones de revelación basadas en cursor se limitan al fotograma de animación del navegador y usan un umbral de movimiento para que los pequeños movimientos del ratón no desencadenen redibujos. En hardware convencional el cipher agrega una pequeña fracción de milisegundo por fotograma; la interacción visible al usuario permanece fluida.

Vea el cipher en una demo en vivo

Cargaremos una página, moveremos el cursor sobre el texto para que vea la lectura normal, tomaremos una captura de pantalla, y la proporcionaremos a Tesseract, GPT-4V y Claude Vision — y le mostraremos el texto muy diferente que devuelve cada uno.