AES-256-GCM (Advanced Encryption Standard, bloque de 256 bits, modo Galois/Counter Mode) es uno de los algoritmos simétricos autenticados más sólidos disponibles: además del cifrado garantiza, mediante un authentication tag de 128 bits, que el archivo no ha sido manipulado ni movido.
256 bits (32 bytes) para la clave maestra y para cada clave derivada.
Cada archivo se cifra con una clave dedicada, producida mediante HKDF-SHA256 (RFC 5869) a partir de:
Consecuencia práctica: dos archivos distintos, aunque sean del mismo usuario, se cifran con dos claves diferentes. Si por cualquier mal funcionamiento el sistema intentara leer un archivo que no pertenece a quien está haciendo la petición y a la herramienta/chat que está viendo/usando en ese momento, el descifrado fallaría por imposibilidad de derivar la clave correcta: la consecuencia sería que ningún contenido quedaría expuesto.
Cada archivo incluye en su tag GCM el identificador de usuario y la ruta, ligando criptográficamente el contenido a su contexto. Mover un archivo de una carpeta a otra haría que el archivo, automáticamente, fuera ilegible.
La clave principal reside exclusivamente en la infraestructura de backend, separada de los servidores aplicativos que sirven el sitio. Se solicita server-to-server solo cuando es necesario, con autenticación mediante una clave compartida, y nunca transita por el navegador del usuario ni se expone a JavaScript.
El formato de los archivos cifrados incluye un identificador de versión de clave (key_id), que permitirá rotar la clave maestra sin requerir un recifrado inmediato de todo el histórico.
Cada operación de eliminación se traduce en una eliminación física del archivo del sistema de archivos (unlink a nivel POSIX). No conservamos papeleras, snapshots aplicativos ni copias en sombra. La eliminación es permanente e irreversible: ni el usuario ni Canonity podemos recuperar un archivo después de su eliminación. Recomendamos descargar localmente los contenidos que se desee conservar antes de eliminarlos.