Transferencia protegida con contraseña: asegura tus archivos
Añade protección con contraseña a las transferencias. Aprende cómo funciona el cifrado derivado de contraseña y mejores prácticas.
La transferencia protegida con contraseña significa que el receptor no puede descifrar el payload sin un secreto que eligió el emisor. La contraseña no es simplemente una puerta de acceso — es una entrada a PBKDF2-HMAC-SHA256 (o Argon2id) que deriva la clave AES-256-GCM usada para cifrar los bytes. Sin ella, el texto cifrado en el servidor es ruido. Esto difiere claramente de las herramientas de transferencia "protegidas por contraseña" que almacenan los archivos en texto plano y simplemente comprueban la contraseña en la capa HTTP. La protección con contraseña real vincula la contraseña a la criptografía en sí.
La diferencia entre una puerta de acceso y una derivación
La mayoría de las plataformas de compartición de archivos de consumo anteriores a 2020 usaban una puerta de acceso por contraseña. Subías un PDF, el servidor lo almacenaba en S3 y un controlador Rails comprobaba la contraseña enviada contra un hash bcrypt antes de entregar el archivo. Un administrador con acceso a la base de datos o una orden judicial veía todo. El cifrado derivado de contraseña invierte eso: el navegador ejecuta PBKDF2 con 600.000 iteraciones (línea base OWASP 2023), estira la contraseña en una clave de 256 bits y cifra antes de la subida. El servidor tiene texto cifrado y una sal aleatoria. Sin contraseña, sin clave, sin archivo. Firefox Send usaba este modelo antes de que Mozilla lo cerrara en 2020.
Elegir entre PBKDF2 y Argon2id
PBKDF2 es el caballo de batalla — viene incluido en la Web Crypto API, funciona en todas partes y resiste la fuerza bruta con recuentos altos de iteraciones. Argon2id es más reciente y mejor: resistente a memoria, por lo que los atacantes con GPU no pueden agotar las tablas arcoíris fácilmente. El inconveniente es el soporte en navegadores. Argon2 nativo no está en Web Crypto todavía, así que los servicios lo implementan mediante libsodium.js, que añade unos 180 KB al bundle. Para una transferencia de 10 GB donde el cuello de botella es de todas formas la subida, el compromiso favorece a Argon2id con m=64 MB, t=3, p=1. Para un adjunto de 20 MB, PBKDF2 con 600.000 iteraciones termina en 400 ms en un teléfono de gama media.
Qué hace que una contraseña sea suficientemente fuerte
Una mezcla de 12 caracteres de mayúsculas, minúsculas, dígitos y símbolos alcanza aproximadamente 78 bits de entropía — suficiente contra los ataques offline de 2026 sobre Argon2id. Una frase de contraseña de cuatro palabras Diceware (al estilo correcto-caballo-batería-grapas) alcanza 51 bits y es más fácil de dictar por teléfono. Evita contraseñas cortas incluso con el estiramiento de KDF; un atacante con un texto cifrado y una sal robados puede ejecutar PBKDF2 en una RTX 5090 a 20 millones de intentos por segundo. Las contraseñas de seis caracteres caen en minutos. La longitud supera a la complejidad. Repítetelo a cualquier usuario que intente "Verano2026!".
Compartir la contraseña sin anular el propósito
Enviar el enlace del archivo y la contraseña en el mismo hilo de correo anula todo. Los atacantes que controlan la bandeja de entrada controlan ambos. Separa los canales: envía el enlace por email y la contraseña por SMS o Signal. Aún mejor, usa un servicio de secretos de un solo uso como Psst! de 1Password o un mensaje directo en Slack dentro de la aplicación que no pueda reenviarse sin captura de pantalla. Para receptores recurrentes, acuerda fuera de banda un esquema de derivación de contraseña (por ejemplo, "nombre del mes más ID de proyecto") para que nada sensible viaje por la red.
Sal, nonce y por qué no son la contraseña
Tres piezas viajan junto al texto cifrado: una sal para la KDF (16 bytes), un nonce para GCM (12 bytes) y una etiqueta de autenticación (16 bytes). Ninguna de ellas necesita mantenerse secreta — solo necesitan ser únicas por transferencia. Reutilizar un nonce con la misma clave es catastrófico en GCM: filtra el XOR de los textos planos. La generación aleatoria criptográfica mediante crypto.getRandomValues() gestiona esto, y la sal se almacena en la cabecera de metadatos del archivo. La contraseña es el único secreto; todo lo demás viaja con el texto cifrado.
Protección contra la manipulación en el lado del cliente
Una extensión de navegador maliciosa puede leer la contraseña a medida que el usuario la escribe. Mitiga esto con cabeceras Content Security Policy que prohíban scripts en línea y conexiones externas (connect-src 'self'), Subresource Integrity en todo el JavaScript empaquetado, y una Referrer-Policy estricta para que los referentes no se filtren a análisis. Audita el bundle WASM con hashes de subrecursos en el manifiesto. Nada de esto detiene un sistema operativo comprometido, pero eleva el listón más allá de los sistemas de exploración casuales. HexaTransfer publica sus hashes SHA-384 para que los usuarios avanzados puedan verificar que el bundle cargado coincide con el repositorio de código fuente.
Reanudar descargas interrumpidas sin filtrar la clave
Para un archivo .iso de 5 GB, la descarga puede durar horas. Si la pestaña se cierra, la reanudación debe funcionar sin reintroducir la contraseña. Almacena la clave derivada en SessionStorage (nunca en LocalStorage — persiste entre reinicios) y bórrala cuando la descarga se complete o la pestaña se cierre. Para el modelo fragmento a fragmento, cada bloque de 5 MB obtiene su propia subclave HKDF derivada de la maestra; así, el reinicio de una sesión pausada solo expone la subclave del fragmento actual, no la raíz. Smash y SwissTransfer admiten ambos las solicitudes de rango pero gestionan el material clave de forma diferente.
Cuándo la protección con contraseña no es suficiente
La contraseña sola no impide que un receptor autorizado vuelva a compartir el archivo. Una vez que Juan descifra el .docx, puede reenviarlo a cualquier parte. Para un verdadero control, combina contraseñas con restricciones tipo DRM: enlaces de descarga única, acceso vinculado a IP o ventanas de expiración cortas (15 minutos para un paquete de evidencias PCI DSS 4.0). Para el cumplimiento del Artículo 32 del RGPD y la LOPD-GDD, registra quién accedió a qué y cuándo. La protección con contraseña es un suelo, no un techo — aumenta el coste de la interceptación casual sin resolver el problema de la amenaza interna.
Pruébalo en hexatransfer.com — gratis, sin cuenta, hasta 10 GB.
Envía archivos grandes de forma segura con cifrado de extremo a extremo
Transfiere archivos de hasta 10 GB gratis con cifrado de extremo a extremo. Sin necesidad de cuenta. Tus archivos se cifran en tu navegador antes de subirlos: nadie más puede leerlos.
Enviar un archivo