Hace poco Mozilla acaba de anunciar el lanzamiento del nuevo servicio de intercambio de archivos Firefox Send, que proporciona herramientas para compartir archivos entre usuarios mediante el cifrado de extremo a extremo.
Inicialmente, este servicio se probó como parte del programa Test Pilot en 2017 y pues bien ahora Firefox Send ha sido liberado para el uso general. La parte del servidor está escrita en JavaScript usando Node.js y Redis DBMS.
El código del servidor está alojado en GitHub bajo la licencia MPL 2.0 (licencia pública de Mozilla), que permite a cualquier persona que quiera implementar un servicio similar en el equipo bajo control.
Para el cifrado, se utilizan la Web Crypto API y el algoritmo de cifrado de bloque AES-GCM (128 bits).
Para cada descarga, primero se crea una clave secreta utilizando la función crypto.getRandomValues, que luego se usa para generar tres claves: una clave para cifrar un archivo mediante AES-GCM, una clave para cifrar los metadatos mediante AES-GCM y una clave de firma digital para autenticar la solicitud (HMAC) SHA-256).
Los datos cifrados y la clave de la firma digital se cargan en el servidor y la clave de descifrada secreta se muestra como parte de la URL.
Al especificar una contraseña, la clave para la firma digital se genera como un hash PBKDF2 a partir de la contraseña ingresada y una URL con un fragmento de la clave secreta (la contraseña especificada por el usuario se usa para autenticar la solicitud, es decir, el servidor solo proporcionará el archivo si la contraseña es correcta, pero la contraseña no se usa para el cifrado).
¿Qué es Firefox Send?
Como se mención al inicio Firefox Send es un servicio de intercambio de archivos les permite a los usuarios poder cargar un archivo de hasta 1 GB en modo anónimo (cifrado de extremo a extremo) o por otro lado ofrece hasta 2,5 GB al crear una cuenta registrada para el almacenamiento en los servidores de Mozilla.
¿Cómo funciona Firefox Send?
En el lado del navegador, el archivo se cifra y se transmite al servidor ya en forma cifrada. Después de descargar el archivo, el usuario recibe un enlace que se genera en el lado del navegador e incluye un identificador y una clave para el descifrado.
Usando el enlace dado al usuario este puede compartirlo y el destinatario descarga el archivo y lo desencripta de su lado.
Una de las cosas que hacen interesantes a Firefox Send y lo diferencia de cualquier otro servicio similar, es que el remitente tiene la capacidad de determinar la cantidad de descargas después de las cuales el archivo se eliminará del almacenamiento de Mozilla, así como la vida útil del archivo (de una hora a 7 días).
De forma predeterminada, el archivo se elimina después de la primera descarga o después de 24 horas.
También puede configurar una contraseña separada para recibir el archivo, lo que le permite evitar el acceso a información confidencial si el enlace cae en las manos equivocadas (para aumentar la protección, puede enviar la contraseña por separado del enlace, por ejemplo, a través de SMS, también puede publicar el enlace públicamente y enviar la contraseña solo a los usuarios seleccionados).
Entonces básicamente Firefox Send nos permite:
- Enviar un archivo de hasta un 1GB
- Si estamos registrados el archivo puede ser de hasta 2.5 GB
- Capacidad de poder determinar las veces que puede ser descargado el archivo
- Limitar el tiempo de vida del archivo de una hora hasta 7 días.
- Se puede configurar una contraseña para la descarga del archivo
- Cifrado de extremo a extremo
- Todo el proceso se lleva desde la web por lo que no depende de alguna plataforma
El servicio de envío no está vinculado a Firefox y está preparado como una aplicación web universal por lo que no requiere incrustación en los complementos del navegador.
Para trabajar con el servicio, también se ha preparado una aplicación Android especializada, cuya versión beta se cargará al catálogo de Google Play durante el lapso de esta semana.
Si quieres conocer mas al respecto puedes visitar el siguiente enlace.