Política de Privacidad
Última actualización: Octubre de 2026
Versión autorizada: la versión vinculante de esta Política de Privacidad es la versión en inglés. Consulte la Política de Privacidad en inglés. El siguiente resumen se ofrece solo a título orientativo.
Responsable del Tratamiento
Creatiwi AI
República de Polonia
Contacto: [email protected]
Procesamiento Local
Maskeno prioriza el procesamiento local. La detección y el enmascaramiento de datos personales (PII) se ejecutan en su dispositivo mediante reconocedores de patrones y modelos de código abierto (Microsoft Presidio, nym y el modelo OPF de personas y direcciones, además de un modelo GLiNER2 solo para polaco, a través de ONNX Runtime). Ningún paso de detección envía sus documentos a un servidor. El reconocimiento de texto (OCR) de páginas e imágenes escaneadas también se ejecuta solo en local: con Tesseract integrado en la aplicación (por defecto) o con Ollama en este equipo. No existe OCR en la nube y el documento original nunca sale de su dispositivo. Lo único que puede llegar a un proveedor en la nube es el texto enmascarado que usted decida enviar con Ask AI; las solicitudes a OpenRouter van directamente desde su dispositivo con la clave API que usted introdujo, sin pasar por un servidor de Maskeno. La aplicación, sin embargo, no funciona sin red: realiza las solicitudes que se enumeran a continuación. La detección además es incompleta y el texto enmascarado no está anonimizado, así que lea el texto enmascarado antes de enviarlo a ningún sitio.
Qué Sale de su Dispositivo
El uso de la aplicación implica solicitudes de red. Las enumeramos con claridad en lugar de afirmar que "nada sale nunca" de su dispositivo:
- Prueba: en el registro se envían a nuestro servidor de prueba un identificador de máquina seudónimo, la plataforma del sistema operativo y la versión de la aplicación; en las consultas de estado, el identificador de máquina; en los informes de uso, el identificador de máquina con el número de proyectos y de páginas. Esto no está condicionado al consentimiento de análisis y una licencia no lo detiene: la licencia levanta los límites de la prueba, pero la aplicación sigue consultando el estado de la prueba y enviando los informes de uso.
- Datos de idioma para OCR: cuando ejecuta el OCR en un idioma cuyo archivo de idioma no está en la caché de datos de idioma de la aplicación (la primera vez, y de nuevo después de vaciar esa caché), la aplicación descarga el archivo de idioma de Tesseract correspondiente (por ejemplo, polaco e inglés) desde la CDN de datos de idioma de tesseract.js (jsDelivr). La aplicación guarda la caché en la carpeta temporal de su sistema operativo, que el sistema o una herramienta de limpieza puede vaciar. Es una simple solicitud de descarga, sin contenido de documentos, identificador de máquina ni clave de licencia. Para que el OCR funcione totalmente sin conexión, defina la variable de entorno
TESSDATA_PATH, en el entorno desde el que se inicia la aplicación, con una carpeta que contenga los archivos de idioma comprimidos con gzip, llamados<lang>.traineddata.gz(para un documento en polaco,pol.traineddata.gzyeng.traineddata.gz). Los archivos.traineddatasin comprimir también funcionan, si la carpeta contiene sin comprimir todos los idiomas que la aplicación necesita y ninguno como archivo.gz; no mezcle las dos formas en una misma carpeta. Para un idioma cuyo archivo falta en ella, la aplicación no recurre a la descarga. - Licencias: si introduce una clave de licencia, la clave y el identificador de máquina se envían a Polar.sh para activarla y, aproximadamente cada 7 días, para validarla de nuevo. La activación también envía la plataforma y la versión de la aplicación.
- Descarga de modelos de detección: si un modo necesita un modelo que aún no está en su dispositivo, los archivos se descargan. Los modos secure, legal y medical necesitan el modelo nym (unos 376 MB). legal y medical necesitan además el modelo OPF (unos 917 MB), y secure lo necesita para texto que no está en polaco. Para texto en polaco, legal y medical necesitan también el modelo polaco GLiNER2 (unos 395 MB). Los tres vienen de models.audior.app, nuestro propio almacenamiento en Cloudflare R2; los modelos nym y OPF recurren a Hugging Face si ese host no está disponible, responde con un error o sirve otros bytes. El modelo GLiNER2 no tiene alternativa. Cada archivo se comprueba al descargarlo contra un tamaño y un hash SHA-256 fijados. No se envían datos de documentos; si la variable de entorno
HF_TOKENestá definida, se envía a Hugging Face como token bearer en una descarga alternativa. El modo developer no descarga nada. - Lista de modelos de Ask AI y comprobación de la clave API: cuando el selector de modelos de Ask AI no tiene una lista en caché (la lista se guarda durante una hora) o usted la actualiza, la aplicación obtiene la lista de modelos de OpenRouter, con su clave API de OpenRouter si la guardó. Probar la clave de OpenRouter en Ajustes envía esa clave a OpenRouter. No se envían datos de documentos. Si no configura OpenRouter, estas solicitudes no se producen.
- Ollama: la aplicación se comunica únicamente con Ollama en este equipo. Para Ollama solo acepta una dirección de loopback (localhost, 127.x.x.x o ::1) y rechaza cualquier otra. Comprueba la dirección al guardarla, elimina en cada inicio una dirección guardada que no sea de loopback y la vuelve a comprobar antes de cada ejecución del OCR, porque el OCR ve el documento original sin enmascarar. Se trata de consultas de estado, versión y lista de modelos, descargas y eliminaciones de modelos, imágenes de página cuando ejecuta el OCR con Ollama, y el prompt con el texto enmascarado cuando ejecuta Ask AI con Ollama. Las comprobaciones de estado se ejecutan automáticamente cada vez que se abre Ajustes o el panel Ask AI, aunque nunca use Ollama, y no hay ningún ajuste para desactivarlas. Todas estas solicitudes van a esa dirección de loopback.
- OCR: nada sale de su dispositivo. El OCR es exclusivamente local: Tesseract integrado en la aplicación (por defecto) u Ollama en este equipo. No existe OCR en la nube y las imágenes de página nunca se envían a un proveedor en la nube.
- Ask AI (opcional): se envía la instrucción que elija junto con el texto enmascarado del proyecto a OpenRouter (con su propia clave API), a Ollama en este equipo, a chatgpt.com mediante un enlace que contiene el texto, o a donde pegue un prompt copiado. La sección siguiente explica qué contiene ese texto.
- Informes de fallos y análisis de uso (opt-in): desactivados por defecto; solo activos tras su consentimiento, que puede darse en el cuadro de diálogo de consentimiento o en Ajustes. Sentry recibe informes de fallos (mensajes de error y trazas de pila, con un ID de instalación aleatorio) y Aptabase recibe eventos de uso. No se adjunta contenido de documentos de forma intencionada. En el proceso principal, el texto de un error (mensaje, pila, migas de pan, etiquetas) pasa por un depurador estricto que sustituye rutas, direcciones de correo, IBAN, números largos y texto entre comillas, y cualquier palabra que no sea de los propios mensajes de la aplicación por un guion bajo; los informes de fallos de la ventana de la aplicación solo depuran rutas de archivo, por lo que otro texto puede enviarse desde ahí. Un depurador es una red de seguridad, no una garantía. Los nombres y valores de texto de los eventos de uso se validan y acortan antes de enviarse. Retirar el consentimiento detiene los nuevos eventos de uso y los nuevos informes de fallos del proceso principal; los informes ya en cola aún pueden enviarse y los informes de fallos de la ventana de la aplicación siguen activos hasta que reinicie la aplicación.
- Comentarios (opcional): si envía el formulario de comentarios, nuestro equipo recibe, mediante un webhook de Slack, sus respuestas y selecciones en el formulario (algunos campos de texto se acortan y las cadenas sensibles reconocidas se sustituyen), una marca de tiempo del envío, la versión de la aplicación, la plataforma y versión del sistema operativo, el nombre del proveedor de OCR configurado y si existe un archivo de licencia. En los informes de errores, la casilla "incluir registros" viene marcada por defecto. El formulario muestra las líneas de registro antes de enviarlas y el texto mostrado es el texto enviado: solo entradas de advertencia y de error escritas por una compilación que depura el contenido, como máximo 20 entradas y 2.900 caracteres. Cada línea pasa por el depurador estricto (se sustituyen rutas, direcciones de correo, IBAN, números largos y texto entre comillas, y toda palabra que no sea de los propios mensajes de la aplicación). La aplicación escribe las entradas como mensajes fijos con números y códigos, no como texto libre. Es una salvaguarda, no una garantía: una palabra de un documento que también sea una palabra propia de la aplicación puede pasar. El texto que escribe en el formulario también se depura. Desmárquela para no enviar ninguna línea de registro. Si la aplicación no tiene configurada una dirección de webhook, no se envía nada.
- Actualizaciones: la aplicación consulta GitHub Releases unos 10 segundos después de cada inicio y cuando usted lo pide, y descarga las actualizaciones automáticamente. Las solicitudes incluyen la plataforma y un ID aleatorio de actualización, y descargar una actualización puede revelar qué versión usa. Lo hace toda compilación de lanzamiento, incluida la versión portátil, y no hay ningún ajuste para desactivarlo. Las compilaciones empaquetadas de desarrollo tienen la publicación desactivada.
Cada solicitud que sale de su equipo revela su dirección IP (o la de su VPN o proxy) al servidor que la recibe.
El identificador de máquina es una huella de hardware seudónima (un hash de las direcciones MAC de sus adaptadores de red, o un UUID aleatorio si no hay ninguna utilizable), no su nombre ni su correo electrónico. Se usa para aplicar los límites de la prueba y vincular una licencia a un dispositivo.
Qué Recibe un Proveedor de IA desde Ask AI
Ask AI no envía "solo texto redactado y seguro". Envía su instrucción más el texto enmascarado, y ese texto puede seguir conteniendo datos personales:
- Un fragmento que usted rechazó permanece visible, salvo que otra máscara lo cubra.
- Los datos personales que los detectores no encontraron se envían sin cambios. La detección es incompleta y varía según el modo y el idioma.
- Los marcadores como
<PRIVATE_PERSON_1>son seudónimos, no anonimización. Los valores normalizados coincidentes comparten marcador, algunas formas flexionadas comparten el de su forma de origen, y los fragmentos fusionados y los fragmentos manuales reciben números propios. Esa agrupación no es una identidad fiable, pero los marcadores repetidos aun así sugieren al proveedor cuántas personas, teléfonos o cuentas distintas hay en el documento. - Todo lo que rodea a los marcadores (cargos, fechas, lugares, hechos y cualquier detalle no detectado como PII) se envía tal como está escrito.
Cuando el riesgo evaluado es alto, la aplicación pide confirmación en algunas vías de envío, pero un riesgo alto por sí solo no impide enviar una vez confirmado; Ask AI no está disponible mientras la detección esté marcada como incompleta o no disponible. Lea el texto enmascarado en la pantalla de revisión antes de enviarlo y añada usted mismo las máscaras que falten. La correspondencia entre cada marcador y el texto original permanece en su dispositivo.
El OCR integrado puntúa cada página escaneada que lee. Si una página se puntúa como deficiente o ilegible, Ask AI y la exportación del texto ocultado le piden que confirme que la ha revisado, y el proceso principal rechaza la exportación hasta que lo haga; su confirmación vale para el texto de esa página y se descarta si la página se vuelve a leer. La puntuación es una red de seguridad con límites: no cubre las páginas leídas con Ollama (sin puntuación de confianza), los documentos que no necesitaron OCR ni los proyectos anteriores, y una buena puntuación no demuestra que se leyó todo lo de la página, porque el texto que el análisis de página descartó no se cuenta.
Almacenamiento en su Dispositivo
La base de datos de proyectos está cifrada (SQLite3 Multiple Ciphers con ChaCha20-Poly1305, no el formato SQLCipher). Su clave se guarda en un archivo db.key protegido con safeStorage de Electron: DPAPI en Windows (cualquier programa que se ejecute bajo su cuenta de Windows puede descifrarla), el Llavero en macOS y un servicio de secretos en Linux. Si safeStorage no está disponible, la clave se escribe en texto plano y solo se registra una advertencia.
Archivos de modelos descargados y datos de idioma para OCR: son descargas públicas, sin contenido de documentos. La aplicación no los cifra, y "Restablecer todos los datos" no los elimina. Los modelos de detección se guardan en la carpeta de caché predeterminada de la biblioteca transformers.js: una carpeta .cache dentro de la carpeta del paquete de la biblioteca, entre los archivos de la aplicación. La aplicación no establece otra ubicación. Los archivos de idioma para OCR (pol.traineddata, eng.traineddata, etc.) se guardan en una carpeta llamada maskeno-tessdata dentro de la carpeta temporal de su sistema operativo, que el sistema o una herramienta de limpieza puede vaciar. La aplicación vuelve a descargarlos la próxima vez que los necesite, salvo que TESSDATA_PATH esté definida. Si TESSDATA_PATH está definida, la aplicación guarda además copias de los archivos leídos de esa carpeta en una subcarpeta de maskeno-tessdata cuyo nombre es src- seguido de doce caracteres hexadecimales.
Claves API, calidad de lectura y registros: Ajustes solo guarda su clave de OpenRouter. Las claves que versiones anteriores guardaron para proveedores que la aplicación ya no usa (ElevenLabs, Resemble, Gemini, OpenAI y Anthropic) se eliminan una vez del archivo de ajustes en el primer inicio de esta versión; si una eliminación falla, se reintenta en el siguiente inicio. Para cada página escaneada leída por el OCR integrado, la base de datos guarda además un resumen de la calidad de lectura (puntuación, confianza media, recuentos de palabras e intervalos de caracteres de palabras dudosas, sin texto) y el momento en que la confirmó. El registro de la aplicación se escribe a partir de una lista fija de eventos (mensajes fijos con números, referencias y códigos). La aplicación está construida para no escribir nombres de archivo, rutas, texto de documentos ni, en operaciones que pueden tratar un documento, mensajes de error, y el texto que no controla pasa antes por un depurador. Es una regla de diseño con pruebas, no una garantía; las entradas de versiones anteriores pueden contener más. El registro de fallos de su carpeta personal contiene, de un error, la clase, el código y las posiciones dentro de la aplicación, no el mensaje, además del ID de instalación.
Las claves API y la clave de licencia usan el mismo mecanismo safeStorage. Si no está disponible, las claves API se guardan en texto plano (Ajustes muestra una advertencia) y la clave de licencia queda solo codificada en base64, lo que no es cifrado. Las solicitudes normales envían su clave guardada directamente al proveedor seleccionado, sin pasar por un servidor de Maskeno. La depuración de los comentarios y de los informes de errores no garantiza que se elimine toda credencial del texto libre.
No están cifrados: las imágenes de página, las copias de los archivos de origen importados, los registros de la aplicación, el archivo de ajustes (las claves individuales que contiene sí están cifradas, el archivo no), los metadatos del archivo de licencia, los archivos de identificador de máquina y de ID de actualización, el archivo de estado de la prueba (texto legible protegido contra manipulación), el archivo de memoria compartida de SQLite y, en su carpeta personal, los registros de fallos y de inicio y un registro de depuración cuando la depuración de inicio está activada.
Analítica del Sitio Web
Este sitio web carga el script de Plausible Analytics. Consulte la política de datos de Plausible para saber qué recopila.
Conservación y Supresión de Datos
Al eliminar un proyecto se borran sus filas y su carpeta de imágenes, pero las copias anteriores permanecen en las copias de seguridad cifradas hasta que otras más recientes las sustituyan. "Restablecer todos los datos" en Ajustes borra la base de datos con sus archivos WAL y de memoria compartida, las copias de seguridad, el archivo de ajustes, las muestras de voz y el archivo de licencia, pero deja las imágenes de página, los archivos importados, los registros, db.key, los archivos de identificador de máquina y de ID de actualización, las copias de recuperación Maskeno.db.corrupted-* (pueden seguir conteniendo datos de proyectos), los archivos de modelos descargados y los datos de idioma para OCR, los registros de la carpeta personal y el archivo de estado de la prueba. Este último se guarda fuera de la carpeta de datos del usuario a propósito, para que reinstalar no reinicie la prueba.
Nuestro servidor de prueba almacena su identificador de máquina seudónimo, los contadores de uso, la plataforma y la versión de la aplicación. La aplicación no muestra actualmente el identificador de máquina; para solicitar la supresión de ese registro, escriba a [email protected]. Los datos de licencia los gestiona Polar.sh según su política de privacidad.
Sus Derechos bajo el RGPD
Como interesado en la Unión Europea, tiene los derechos de acceso, rectificación, supresión, portabilidad de datos, oposición y retirada del consentimiento. Los flujos de datos descritos incluyen el registro de la prueba, entradas de limitación de frecuencia por IP de corta duración, lo que envíe por el formulario de comentarios, los informes de fallos y de uso que haya aceptado, la analítica del sitio web y los datos de licencia que conserva Polar.sh. Contáctenos en [email protected].
Contáctenos
- Correo electrónico: [email protected]
- GitHub: Abrir un issue