AES-256-GCM (Advanced Encryption Standard, bloc de 256 bits, mode Galois/Counter Mode) est l'un des algorithmes symétriques authentifiés les plus solides disponibles : en plus du chiffrement, il garantit via un authentication tag de 128 bits que le fichier n'a pas été altéré ni déplacé.
256 bits (32 octets) pour la clé maîtresse et pour chaque clé dérivée.
Chaque fichier est chiffré avec une clé dédiée, produite via HKDF-SHA256 (RFC 5869) à partir de :
Conséquence pratique : deux fichiers différents, même appartenant au même utilisateur, sont chiffrés avec deux clés différentes. Si pour un quelconque dysfonctionnement le système tentait de lire un fichier qui n'appartient pas à celui qui fait la requête et à l'outil/discussion qu'il visualise/utilise à ce moment, le déchiffrement échouerait faute de pouvoir dériver la clé correcte : la conséquence serait qu'aucun contenu ne serait exposé.
Chaque fichier inclut dans son tag GCM l'identifiant utilisateur et le chemin, liant cryptographiquement le contenu à son contexte. Déplacer un fichier d'un dossier à un autre rendrait le fichier automatiquement illisible.
La clé principale réside exclusivement sur l'infrastructure backend, séparée des serveurs applicatifs qui servent le site. Elle est demandée server-to-server uniquement en cas de besoin, avec authentification via une clé partagée, et ne transite jamais par le navigateur de l'utilisateur ni n'est exposée à JavaScript.
Le format des fichiers chiffrés inclut un identifiant de version de la clé (key_id), qui permettra de tourner la clé maîtresse sans nécessiter un rechiffrement immédiat de tout l'historique.
Chaque opération de suppression se traduit par une suppression physique du fichier du système de fichiers (unlink au niveau POSIX). Nous ne conservons ni corbeille, ni snapshots applicatifs, ni copies fantômes. La suppression est permanente et irréversible : ni l'utilisateur ni Canonity ne peuvent récupérer un fichier après suppression. Nous recommandons de télécharger localement tout contenu que vous souhaitez conserver avant de le supprimer.