Seguridad y privacidad
Tu archivo permanece en tu dispositivo
ZipRecover está diseñado como una herramienta de privacidad. Aquí tienes con precisión qué se ejecuta y dónde, qué no recibimos nunca y cómo el motor trata tus archivos como entrada no confiable.
- Leer y analizar el archivo
- Detectar el método de cifrado
- Derivar claves y probar candidatas
- Confirmar y mostrar un resultado
- Descifrado local opcional de archivos
- El propio archivo ZIP
- El contenido de cualquier archivo dentro del ZIP
- Los nombres de archivo almacenados dentro del ZIP
- Las contraseñas candidatas que se prueban
- La contraseña recuperada
- Hashes del archivo que pudieran identificar o exponer tus datos
El flujo de datos
Cuando seleccionas un archivo, el navegador lee sus bytes con la File API. La página analiza la estructura del ZIP en tu dispositivo, elige una entrada cifrada, con preferencia por la más pequeña que sea lo bastante grande para confirmar una contraseña de forma decisiva, y entrega a cada Web Worker solo los bytes que necesita para probar contraseñas (en AES, la sal, el valor de verificación, el texto cifrado y el código de autenticación; en ZipCrypto, los bytes cifrados de esa entrada), junto con un resumen del archivo (nombres y tamaños de las entradas). Los workers ejecutan las comprobaciones de contraseñas, con el cálculo de hashes más pesado en WebAssembly (hash-wasm) o, para la derivación de claves AES, en la Web Crypto integrada del navegador cuando es más rápida en tu dispositivo, y nunca tienen el archivo completo. Nada de este flujo va a un servidor, y tiene este aspecto:
Tu archivo ZIP --> File API del navegador (local) --> ZIP analizado en la página (local) --> Los Web Workers prueban contraseñas (local) --> Resultado mostrado solo para ti
Deliberadamente no hay ninguna ramificación en ese diagrama que envíe tu archivo a un servidor. El motor de recuperación no contiene código de red que envíe datos del archivo. En eso se decide si las herramientas de contraseñas ZIP en línea son seguras: el riesgo está en la subida, y aquí tu archivo nunca se sube.
Dos cosas que la herramienta guarda en tu dispositivo se quedan en este navegador: una copia de corta vida del archivo que le entrega la página de inicio (en el IndexedDB local, borrada en cuanto la página de recuperación la lee) y, durante una búsqueda por máscara o por fuerza bruta en pausa, un registro de reanudación en el almacenamiento local. Ninguna de las dos se nos envía nunca. La sección 4 de la política de privacidad detalla qué contiene cada una y cómo borrarla, algo que importa en un equipo compartido.
Informes de error y analítica
Si el propio código del sitio falla en tu navegador, envía un breve informe a
/api/error en este mismo sitio, y el servidor del sitio lo registra (está
preparado para reenviar los informes a nuestro concentrador central de errores, que
aún no está en marcha). El informe contiene el tipo y el mensaje
del error, la traza, la dirección del script con su línea y su columna, la ruta de
la página (sin la cadena de consulta), el idioma de la página, el user-agent de tu
navegador, la hora, la versión del sitio y, si el fallo se produce dentro de la
herramienta de recuperación, una etiqueta de una sola palabra que indica la parte
que falló. Nunca incluye tu archivo, su contenido o sus nombres de archivo, ni
ninguna contraseña, y el navegador envía como máximo diez informes por visita de
página. Los informes se conservan durante un máximo de 90 días (consulta la
sección 4 de la política de privacidad).
La herramienta de recuperación incluye una función de analítica en su propio código. Solo puede registrar unas pocas etiquetas no identificativas sobre una búsqueda (el método de cifrado, el tamaño de clave AES del archivo cuando lo tiene, el modo que elegiste y si el archivo es compatible), y nunca tu archivo, su contenido o sus nombres de archivo, ni ninguna contraseña. Hoy no hay ningún recolector conectado, así que no envía nada. Cloudflare sí registra los metadatos habituales de cada solicitud por cada visita de página (consulta la sección 4 de la política de privacidad). Cualquier analítica agregada del sitio que se añada en el futuro se mantendrá dentro de esa misma lista de datos permitidos y nunca recibirá contenido del archivo, nombres de archivo, contraseñas candidatas, contraseñas recuperadas ni hashes del archivo.
Modelo de seguridad de entrada no confiable
Un archivo ZIP que elijas podría estar malformado o ser hostil, así que el motor trata cada archivo como no confiable:
- Análisis con comprobación de límites. El analizador del formato valida cada desplazamiento y longitud antes de leer, de modo que un archivo truncado o manipulado genera un error limpio en lugar de leer fuera de límites.
- Límites de memoria. La herramienta prueba las contraseñas contra una sola entrada cifrada de 256 MB comprimidos como máximo, y su descompresión se detiene en cuanto la salida supera el tamaño que el archivo declara para esa entrada, así que una entrada de tipo bomba de descompresión no puede expandirse sin límite. El archivo que eliges se lee entero en memoria.
- Verificación sin extracción. Probar una contraseña no requiere extraer archivos arbitrarios. La confirmación lee únicamente la entrada de verificación (la entrada más pequeña que da una comprobación definitiva, si el archivo tiene una): en AES comprueba el HMAC almacenado sobre los datos cifrados, y en ZipCrypto descifra la entrada, la descomprime si usa Deflate y compara su CRC-32.
- Sin ejecución de código. El contenido del archivo se trata puramente como datos. Nada dentro de un archivo se ejecuta ni se interpreta jamás.
Qué significa y qué no significa "sin subida"
Tu archivo no se nos envía. Como en cualquier sitio web, las páginas, los scripts y la comprobación de compatibilidad de WebAssembly se descargan desde nuestro alojamiento. Los únicos datos que el sitio envía de vuelta son los del informe de error descrito más arriba, que no contiene ningún dato de tu archivo.
Componentes de código abierto
La recuperación se construye sobre bibliotecas de código abierto consolidadas y con licencia. La derivación de claves, el HMAC y el CRC-32 vienen de hash-wasm o de la Web Crypto del navegador; el flujo de clave de ZipCrypto sigue la especificación publicada de PKWARE en nuestro propio código, que las pruebas comprueban con archivos que escribe zip.js.
| Componente | Licencia | Función |
|---|---|---|
| hash-wasm | MIT | WebAssembly PBKDF2-HMAC-SHA1, HMAC-SHA1, CRC-32 |
| zip.js | BSD-3-Clause | Descifrado local opcional y referencia del formato |
| fflate | MIT | Descompresión DEFLATE de respaldo |
| Astro | MIT | Framework de sitios estáticos |
Transporte y cabeceras
El sitio se sirve a través de HTTPS con una Content-Security-Policy estricta,
X-Content-Type-Options: nosniff, una
Permissions-Policy restrictiva y frame-ancestors 'none' para
evitar el clickjacking. WebAssembly se permite mediante
script-src 'wasm-unsafe-eval'; las conexiones se limitan al
propio origen del sitio.
Limitaciones, con honestidad
Como la recuperación se realiza del lado del cliente, no podemos ver ni controlar cómo se usa la herramienta, y por eso el uso autorizado es una política que aceptas en lugar de algo que podamos imponer técnicamente. Y ninguna herramienta puede recuperar una contraseña fuerte arbitraria: los archivos AES en particular usan una derivación de clave lenta que encarece la adivinación por diseño.
Preguntas frecuentes de seguridad y privacidad
¿Reciben alguna vez mi archivo ZIP?
No. No existe ningún paso de subida. El archivo se lee localmente con la File API y se analiza en la propia página, y los Web Workers prueban las contraseñas contra los bytes de una entrada cifrada del archivo. Ninguna petición de red de la aplicación transporta tu archivo, su contenido ni sus nombres de archivo internos.
¿Almacenan o transmiten las contraseñas recuperadas?
No. Una contraseña recuperada se muestra únicamente en tu pestaña del navegador y se copia solo cuando pulsas copiar. Nunca se envía a ningún sitio y la herramienta no la escribe en almacenamiento persistente.
¿Qué componentes de código abierto impulsan la recuperación?
¿Se requiere aislamiento de origen cruzado?
No. El motor no usa SharedArrayBuffer ni WebAssembly multihilo, así que el sitio no envía Cross-Origin-Embedder-Policy y no tiene aislamiento de origen cruzado (sí envía Cross-Origin-Opener-Policy: same-origin). Eso mantiene el despliegue sencillo y evita romper otros recursos.
Privacidad y procesamiento local
Sigue explorando este tema
Temas relacionados: Recuperación de contraseñas ZIP Cifrado ZIP
¿Todo listo para recuperar tu contraseña ZIP?
Se ejecuta localmente en tu navegador. Tu archivo nunca sale de tu dispositivo.