Cifrado de extremo a extremo explicado: guía para principiantes
¿Qué es el cifrado de extremo a extremo y por qué importa? Aprende cómo E2EE protege tus archivos para que solo el destinatario pueda acceder.
El cifrado de extremo a extremo (E2EE) significa que tu archivo se codifica en tu dispositivo con una clave que solo el destinatario puede reconstruir. El servicio de transferencia mueve texto cifrado pero nunca tiene la clave de descifrado, por lo que el personal, los hackers y las órdenes judiciales no pueden leer el contenido. En la práctica, tu navegador genera una clave AES aleatoria de 256 bits, cifra el archivo localmente, carga el texto cifrado y coloca la clave en el enlace de compartición después del fragmento #, que los navegadores nunca envían al servidor. Ese es el truco completo, y es lo que separa la privacidad real del marketing.
Qué significa realmente "extremo a extremo"
Los dos "extremos" son tú y tu destinatario. Todo lo que hay en medio —los routers del ISP, los nodos de CDN, los servidores de la empresa de transferencia, el ISP del destinatario— está en el medio. Con E2EE, esos saltos intermedios solo ven bytes cifrados. Compara esto con el cifrado solo a nivel de transporte (TLS): TLS protege los datos desde tu navegador hasta el servidor, luego el servidor los descifra, almacena texto plano y los vuelve a cifrar cuando el destinatario descarga. El nivel estándar de WeTransfer funciona así. La empresa puede (y por ley española y europea a veces debe) entregar archivos si se le requiere.
Con E2EE, incluso si un fiscal entrega al proveedor una orden judicial, el proveedor no tiene nada que entregar excepto bytes de aspecto aleatorio. Esa propiedad es por la que periodistas, abogados y médicos insisten cada vez más en ella.
Por qué TLS solo no es suficiente
TLS 1.3 es excelente en lo que hace: evitar que un atacante en una cafetería o un ISP deshonesto espíe la conexión. Pero TLS termina en el servidor. Una vez que termina el túnel cifrado, el servidor procesa el archivo en bruto. Si ese servidor se ve comprometido —como le ocurrió a Dropbox en 2022 cuando se filtraron código fuente y algunos datos de clientes— TLS no ofrece ninguna protección para los archivos que están en almacenamiento.
E2EE añade una segunda capa que sobrevive a la vulneración del servidor. El archivo se cifra antes de llegar a la red y permanece cifrado hasta que el navegador del destinatario lo descifra. Incluso un volcado completo de la base de datos solo revela texto cifrado y metadatos.
El problema del intercambio de claves, resuelto
La parte complicada de E2EE es hacer llegar la clave al destinatario sin que el servidor la vea. Los servicios modernos basados en navegador resuelven esto con el truco del fragmento de URL. Un enlace de compartición se parece a:
https://hexatransfer.com/download/abc123#k=clave-256-bits-en-base64
Los navegadores tratan todo lo que hay después de # como un fragmento del lado del cliente. Cuando haces clic en el enlace, el servidor solo recibe /download/abc123 en la solicitud HTTP —el fragmento nunca sale de tu navegador. JavaScript entonces lee la clave del fragmento, obtiene el texto cifrado y lo descifra localmente usando crypto.subtle.decrypt() de la Web Crypto API.
Esto es más simple que el intercambio de claves RSA o Diffie-Hellman y funciona para cualquiera que tenga un navegador. La contrapartida: cualquier persona que obtenga el enlace obtiene el archivo, por lo que igualmente necesitas compartir los enlaces a través de un canal seguro (Signal, en persona, un correo cifrado).
Lo que ve el servidor frente a lo que no puede ver
Con E2EE correctamente implementado, los registros del servidor suelen contener: un ID de archivo aleatorio, el tamaño del texto cifrado, la IP de carga, la marca de tiempo de carga y el hash SHA-256 del texto cifrado para deduplicación. No ve: el nombre del archivo, el contenido del archivo, la identidad del destinatario ni la clave de descifrado. Los nombres de archivo a menudo se cifran junto con el contenido y se almacenan como parte del encabezado del texto cifrado.
Una prueba útil: pregunta al proveedor qué entregaría bajo una orden judicial. Un servicio E2EE honesto dirá "blobs cifrados y registros de IP". Si pueden producir archivos en texto plano, el cifrado no es de extremo a extremo.
Los algoritmos bajo el capó
Las implementaciones de E2EE reales convergen en una lista corta de primitivas bien auditadas:
- AES-256-GCM para el cifrado masivo de archivos. GCM proporciona tanto confidencialidad como autenticación, por lo que el texto cifrado manipulado falla al descifrar en lugar de producir basura.
- PBKDF2 con al menos 100.000 iteraciones, o Argon2id, para derivar claves de contraseñas de usuario cuando se añade protección por contraseña.
- SHA-256 para hashes de integridad.
- TLS 1.3 como transporte externo, porque el doble cinturón de seguridad es barato.
Evita servicios que todavía usen AES-CBC sin HMAC (maleable), MD5 o SHA-1 (rotos), o PBKDF2 con menos de 10.000 iteraciones (atacable por fuerza bruta en GPU modernas).
E2EE para transferencia de archivos frente a mensajería
Signal popularizó E2EE para el chat usando el protocolo Double Ratchet, que rota las claves después de cada mensaje para lograr secreto hacia adelante. La transferencia de archivos no necesita esa complejidad porque es de un único uso —no estás manteniendo una conversación continua. Una única clave simétrica por archivo, generada de nuevo para cada carga, es a la vez más simple y más fácil de auditar.
Lo que la transferencia de archivos necesita que la mensajería no: cargas fragmentadas reanudables (los archivos pueden ser de 10 GB), verificación de integridad entre fragmentos, y enlaces que funcionen sin que el destinatario tenga una cuenta. Tresorit, Proton Drive, SwissTransfer y HexaTransfer adoptan este enfoque con variaciones menores.
Cómo comprobar si un servicio es realmente de extremo a extremo
Cuatro pruebas prácticas antes de confiar en un proveedor:
- Abre DevTools > Red mientras cargas un archivo pequeño. Si ves el texto plano en el cuerpo de la solicitud, no está cifrado en el lado del cliente.
- Busca la clave en el fragmento de la URL (después de
#). Sin clave de fragmento suele significar que el servidor tiene la clave. - Lee la política de privacidad en busca de frases como "no podemos acceder a tus archivos" junto con una descripción técnica del motivo.
- Comprueba si el código del cliente es auditable —código abierto o al menos documentado. Los binarios cerrados con afirmaciones de E2EE son una señal de alerta.
Servicios que superan las cuatro pruebas: SwissTransfer (nivel de cifrado en el lado del cliente), Tresorit Send, los enlaces de compartición de Proton Drive y HexaTransfer.
Lo que E2EE no protege
E2EE no es mágico. No te protege de:
- Un endpoint comprometido. Si tu portátil tiene malware, el atacante lee los archivos antes del cifrado.
- Enlaces de compartición filtrados. Cualquier persona con el enlace puede descargar y descifrar.
- Contraseñas débiles en transferencias protegidas por contraseña. PBKDF2 ralentiza la fuerza bruta, pero "verano2024" cae en segundos.
- Correlación de metadatos. Las marcas de tiempo, los tamaños de archivo y las direcciones IP siguen contando una historia.
Combina E2EE con enlaces que caducan (24 horas es un valor predeterminado razonable), límites de descarga (a menudo de 1 a 10 descargas) y contraseñas fuertes para transferencias sensibles.
Ponlo a prueba
Para una comprobación rápida: carga un archivo de prueba de 5 MB, abre el enlace de compartición en una ventana privada sin el fragmento (elimina todo lo que hay después de #) e intenta descargarlo. Un servicio E2EE real no podrá descifrar. Si el archivo se abre de todas formas, el servidor tenía la clave desde el principio.
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