HideFile cifra tus archivos en el navegador con una clave creada a partir de tu contraseña, y luego guarda el resultado cifrado dentro de una foto, un PDF o un video común. Tus archivos y tu contraseña no se nos envían. Esta página nombra los algoritmos y los parámetros, enumera exactamente qué envía la app y es franca sobre los límites, incluidos los que un lector atento nos reprochará.

Dos ideas ayudan a seguir el resto de la página. El cifrado es la capa de seguridad: sin la contraseña, el contenido es ilegible. El archivo de portada es camuflaje: cambia cómo se ven los bytes cifrados para quien navega por tus archivos, y no los vuelve invisibles para quien los examina.

Tu contraseña se convierte en una clave en tu dispositivo

Cuando creas un archivo bloqueado, HideFile convierte tu contraseña en una clave con Argon2id (versión 1.3), una función de derivación de claves que consume mucha memoria. Que consuma mucha memoria significa que cada intento cuesta un bloque de memoria además de tiempo, así que adivinar sigue siendo lento incluso en hardware hecho para adivinar.

El costo depende de dónde se crea el archivo. En un navegador de escritorio, Argon2id usa 64 MiB de memoria y 3 iteraciones en un solo carril. Un navegador que se identifica como celular o tableta, o que reporta 4 GB de memoria o menos, recibe 19 MiB, 2 iteraciones y un solo carril, porque un navegador de celular no puede gastar de forma confiable 64 MiB en cada desbloqueo sin fallar. Ese ajuste más bajo cumple la recomendación mínima de OWASP para Argon2id. Los parámetros se guardan dentro del archivo bloqueado, así que un archivo creado en una computadora de escritorio conserva su costo de 64 MiB cuando lo abres en un celular.

Cada archivo bloqueado recibe una sal aleatoria de 16 bytes, guardada junto con él. Dos personas que elijan la misma contraseña terminan con claves distintas, así que nadie puede precalcular una tabla de intentos y usarla contra todos los archivos.

Tus archivos se sellan con XChaCha20-Poly1305

La clave derivada de tu contraseña no cifra directamente tus archivos. Cada archivo bloqueado tiene su propia clave de archivo aleatoria de 256 bits, generada en tu dispositivo. La clave de la contraseña envuelve esa clave de archivo, y la clave de archivo sella tus archivos.

El sellado usa XChaCha20-Poly1305, un cifrado autenticado: mantiene el contenido privado y detecta manipulaciones. Los archivos se guardan como registros, cada uno con su propio nonce aleatorio de 192 bits y una etiqueta de autenticación Poly1305. Si un registro se altera, ya sea por una copia dañada o a propósito, el desbloqueo falla con un error en lugar de devolver en silencio contenido incorrecto.

Dentro del navegador: la contraseña y una sal aleatoria de 16 bytes entran a Argon2id (64 MiB y 3 pasadas, o 19 MiB y 2 pasadas en celulares y navegadores con poca memoria), y producen una clave de contraseña de 32 bytes. Esa clave envuelve una clave de archivo aleatoria de 256 bits. XChaCha20-Poly1305 sella los archivos en registros, cada uno con un nonce aleatorio de 192 bits y una etiqueta contra manipulación. Los registros sellados se guardan dentro del archivo de portada.
Una contraseña, dos claves. La clave de la contraseña solo envuelve la clave de archivo.

Ambos algoritmos provienen de las bibliotecas de código abierto RustCrypto (los crates argon2 y chacha20poly1305). Nuestro propio núcleo, escrito en Rust, las usa y se ejecuta en tu navegador compilado a WebAssembly. El mismo núcleo funciona en todos los lugares donde funciona HideFile, así que hay una sola implementación que examinar y no una por plataforma.

El paso Set a password de HideFile con una contraseña oculta, un medidor de seguridad verde con la etiqueta Strong y un botón Create locked file.
La contraseña es la única clave. La pausa después de Create locked file es Argon2id haciendo su trabajo.

Nada de lo que bloqueas se sube

Bloquear, desbloquear y guardar ocurren en la pestaña del navegador. Tus archivos, sus nombres, tu contraseña y las claves no se envían a ningún servidor de HideFile, y no existe ningún servidor de HideFile que guarde archivos bloqueados. La única excepción es una función que activas tú mismo: si conectas tu propio bucket compatible con S3, como Cloudflare R2, la app envía bytes cifrados desde tu dispositivo directamente a ese bucket, no a nosotros.

La app sí guarda algunas cosas en el navegador de tu dispositivo. Para que reabrir sea rápido, guarda una copia del último archivo bloqueado que abriste, todavía cifrado, hasta por un día y hasta 100 MB. Los archivos que guardas para reutilizar y la copia de trabajo de un archivo abierto viven en el almacenamiento de archivos privado del navegador. También recuerda ajustes como el tema y la vista, y el nombre, el tamaño y la hora de las últimas diez portadas que abriste, nunca la contraseña. Borrar los datos del sitio elimina todo eso. En una computadora compartida o prestada, hazlo cuando termines.

Las analíticas que enviamos no llevan datos de archivos

Usamos PostHog para contar el uso, con la captura automática desactivada, así que no se registran los clics ni el contenido de las páginas. Esto es lo que se envía:

  • Vistas de página: la ruta de la página y la URL de referencia, tu navegador y tipo de dispositivo, y el tamaño de pantalla.
  • Un país aproximado, que PostHog deduce de tu dirección IP cuando llega la solicitud.
  • Un identificador aleatorio anónimo guardado en tu navegador, para contar visitas repetidas.
  • Tres eventos, locked_file_created, locked_file_opened y locked_file_saved, cada uno con solo el tipo de portada (png, jpeg, mp4 o pdf) y la plataforma (web o nativa).

No se envían nombres de archivo, tamaños, cantidades, rutas, contraseñas, claves, contenidos ni mensajes de error. Un bloqueador de contenido como uBlock Origin bloquea las analíticas y la app funciona igual. Puedes comprobarlo tú mismo: abre las herramientas de desarrollo de tu navegador, mira la pestaña Network mientras bloqueas y guardas un archivo, y busca cualquier solicitud que lleve tus archivos. La política de privacidad es la versión vinculante de esta lista.

Se queda en tu dispositivo: tus archivos, los nombres y tamaños de archivo, tu contraseña, las claves de cifrado, los contenidos desbloqueados y el archivo de portada. Se envía a analíticas: vistas de página con ruta y referencia, navegador, dispositivo y tamaño de pantalla, país aproximado, un ID aleatorio anónimo y tres eventos (creado, abierto, guardado) que llevan solo el tipo de portada y la plataforma. Solo si lo configuras: los bytes cifrados van a tu propio bucket S3 o R2, no a nosotros. El código de la app se descarga de hidefile.app cuando la visitas.
Lo que se queda en tu dispositivo, y la lista corta de lo que sale de él.

El modelo de amenazas, explicado por personas

QuiénResultadoPor qué
Alguien que revisa tu celular, tu laptop o tu nubeDetenidoVe una foto, un PDF o un video común, y nada con nombre de bóveda
Alguien que conoce el código de tu celularDetenidoLa portada tiene su propia contraseña, distinta del bloqueo del dispositivo
Cualquiera con una copia de la portada pero sin la contraseñaDetenidoEl contenido sigue cifrado
Un examinador forense, o cualquiera que conozca HideFile y revise de cercaNo queda ocultoPuede saber que se agregaron datos; el contenido sigue cifrado
Alguien que pueda obligarte a entregar la contraseñaNo se detieneNingún software resuelve esto
Malware, grabación de pantalla o alguien mirando un dispositivo desbloqueadoNo se detieneMientras los archivos están abiertos, ven lo que tú ves
Detenido: alguien que revisa tu celular o laptop, que ve una imagen común; alguien que conoce el código de tu celular, porque la portada tiene su propia contraseña; cualquiera con una copia sin la contraseña, porque el contenido sigue cifrado. No queda oculto de un examinador forense, que puede saber que se agregaron datos. No se detiene: alguien que pueda sacarte la contraseña a la fuerza, y el malware o un observador en un dispositivo desbloqueado.
HideFile frena el espionaje casual, no las herramientas forenses.

Una herramienta forense puede saber que se agregaron datos

HideFile no intenta ocultar a una revisión forense que hay datos presentes, y no afirma hacerlo. Tus registros cifrados están dentro de la propia estructura de archivo de la portada, donde un visor normal los ignora. Una herramienta hecha para eso, o un examinador que sepa qué buscar, puede identificar que se agregaron registros. El tamaño del archivo es un indicio más simple: una foto corta de vacaciones que pese varios gigabytes es inusual, y comparar la portada con el original intacto muestra la diferencia de inmediato.

Lo que obtiene el examinador es el hecho de que hay algo ahí, no el contenido. Sin la contraseña, los registros siguen sellados. Ese es el límite honesto: a simple vista responde a una persona curiosa y a una búsqueda ordinaria, no a un examinador decidido con tu dispositivo en la mano. Es la herramienta equivocada para revisiones en la frontera, examinadores expertos o presión legal.

La detección de manipulaciones cubre los registros sellados, no cada byte de la portada. Una app que vuelve a guardar la portada, le quita metadatos o la recomprime puede cambiar la imagen sin ninguna alarma del cifrado, y puede eliminar los registros por completo, lo que destruye los archivos de adentro. Conserva la portada como archivo.

No hay recuperación de contraseña

No guardamos tu contraseña y no podemos derivarla de un archivo bloqueado. No hay enlace de restablecimiento, ni código de recuperación, ni proceso de soporte que pueda abrir un archivo. Si pierdes la contraseña, los archivos de adentro se pierden. Es una propiedad del diseño, y la razón por la que quien tenga una copia de tu portada no puede simplemente pedirnos que la abramos.

Qué no es de código abierto y no está auditado

El código fuente de HideFile no es público, y ninguna firma independiente lo ha auditado. Los algoritmos son estándar, las bibliotecas que los implementan son de código abierto, y esta página y la página de seguridad de la app dan los parámetros, pero nuestro código que los invoca no lo pueden leer personas ajenas hoy.

Eso importa. Un comentarista de Hacker News, al reaccionar a otra herramienta cerrada que oculta datos en una foto, lo resumió en cuatro palabras: "no source code == no security" (sin código fuente no hay seguridad). Otros en esa comunidad señalan que una app web se entrega nueva desde el servidor en cada visita, así que incluso el código fuente publicado necesitaría una forma de confirmar que el código que ejecutas coincide con él. Ambos puntos son válidos, y para un lector con ese estándar, HideFile todavía no lo cumple. Preferimos decirlo a discutirlo. Si encuentras una falla, escribe a [email protected] con los pasos para reproducirla y danos un tiempo razonable para publicar una corrección antes de divulgarla.

Fuentes