LE CHIFFREMENT EXPLIQUÉ

Chiffré sur votre appareil.Vérifié sur votre appareil.

Votre appareil chiffre le contenu des fichiers et les métadonnées sensibles avant leur envoi. Il les vérifie et les déchiffre lorsque vous ouvrez un fichier. Cette page explique le chiffrement des fichiers, la gestion des clés et notre format en streaming compatible avec Tink.

Explorer le code cryptographique public
Fichiers et enveloppes de clés
AES-256-GCM
Dérivation à partir de la phrase secrète
Argon2id
Format en streaming
Compatible avec Tink

De votre appareil au stockage

Ouvrir le schéma en pleine taille
Architecture de chiffrement d’InfiniDrive. La connexion au compte assure l’authentification. L’appareil de l’utilisateur déverrouille et stocke les clés, chiffre les fichiers et vérifie les données lors du déchiffrement. Les données chiffrées passent par la passerelle de stockage vers le stockage des fichiers ; les miniatures chiffrées passent par la distribution des aperçus ; les manifestes chiffrés et les clés enveloppées passent par l’API de métadonnées et de clés.
Une vue d’ensemble de l’architecture. La connexion au compte autorise l’accès ; un déverrouillage local distinct rend les clés de chiffrement disponibles. Le stockage et la distribution des aperçus transportent des données chiffrées. L’API de métadonnées traite les métadonnées chiffrées, les clés enveloppées et les informations de contrôle publiques.

01

La connexion et le déchiffrement sont distincts

La connexion permet au service d’identifier votre compte et d’appliquer les autorisations d’accès. Le déverrouillage d’un disque chiffré s’effectue localement à l’aide d’une phrase secrète de chiffrement, d’une clé de récupération ou d’une clé d’accès de chiffrement compatible. La connexion au compte ne fournit pas, à elle seule, le secret nécessaire pour déchiffrer le disque.

02

Comment vos clés sont créées et déverrouillées

Lors de la configuration du compte, l’appareil génère une clé racine aléatoire de 256 bits et une paire de clés de signature ECDSA P-256. La clé racine et la clé privée de signature sont conservées dans un ensemble chiffré de clés du compte. Le serveur reçoit des copies chiffrées de cet ensemble et la clé publique de vérification.

La phrase secrète de chiffrement est normalisée avec Unicode NFKC, puis traitée par Argon2id avec un sel aléatoire de 16 octets, 64 MiB de mémoire, 3 itérations et un parallélisme de 4. La clé de 256 bits obtenue protège l’ensemble de clés du compte avec AES-GCM. Ces paramètres ralentissent les tentatives de deviner les mots de passe ; une phrase secrète robuste et unique reste néanmoins essentielle.

Une clé de récupération aléatoire de 256 bits, générée séparément, protège une autre copie du même ensemble. Changer la phrase secrète réenveloppe l’ensemble de clés ; cela ne rechiffre pas chaque fichier stocké. Sur les authentificateurs compatibles, WebAuthn PRF fournit le matériau nécessaire à une enveloppe de déverrouillage distincte pour la clé d’accès. Une clé d’accès utilisée uniquement pour se connecter au compte n’est pas automatiquement une clé d’accès de chiffrement.

Le réenveloppement ne révoque pas un ancien ensemble de clés qu’une personne a déjà copié et peut déverrouiller. Supprimer une clé d’accès de chiffrement empêche les futures récupérations de son enveloppe, mais ne peut pas effacer les clés déjà obtenues par un client déverrouillé.

Conservez la clé de récupération dans un endroit sûr, en dehors du disque. La perte de toutes les méthodes de déverrouillage utilisables et de tous les appareils déverrouillés peut rendre les données chiffrées irrécupérables. Réinitialiser l’accès au compte ne recrée pas les clés de chiffrement.

03

Le chiffrement des fichiers et le rôle de Google Tink

Chaque nouvelle révision d’un fichier reçoit une nouvelle clé de contenu aléatoire de 256 bits. Les fichiers sont chiffrés en segments authentifiés. Les clients peuvent ainsi envoyer de gros fichiers et lire une plage demandée sans déchiffrer d’abord l’intégralité du fichier. Chaque segment est vérifié avant que ses données en clair soient rendues accessibles.

InfiniDrive implémente un format de transmission compatible avec le profil Streaming AEAD RAW AES256_GCM_HKDF_1MB de Google Tink. HKDF-SHA-256 dérive une clé AES propre à chaque flux à partir de la clé de contenu et d’un nouveau sel. Les nonces des segments combinent un préfixe aléatoire, l’index du segment et un indicateur de dernier segment. Le format authentifie la position des segments et la fin du flux.

La compatibilité avec Google Tink est vérifiée par des tests de chiffrement et de déchiffrement dans les deux sens.

Profil cryptographique actuel
ComposantImplémentation
Identifiant du format de transmissioninfinidrive-tink-aes256-v1
Flux de fichierAES-256-GCM + HKDF-SHA-256 ; compatible avec RAW AES256_GCM_HKDF_1MB
Taille d’un segment chiffré1 048 576 octets (1 MiB) ; inclut une étiquette d’authentification de 16 octets
En-tête du flux40 octets : longueur de l’en-tête, sel de 32 octets, préfixe de nonce de 7 octets
Enveloppes de clés et de métadonnéesAES-256-GCM ; nonce aléatoire de 12 octets ; étiquette d’authentification de 128 bits
KDF de la phrase secrèteArgon2id : 65 536 KiB de mémoire, 3 itérations, parallélisme 4, sel de 16 octets
Séparation des clésHKDF-SHA-256 avec un contexte propre à chaque usage
SignaturesECDSA P-256 avec SHA-256

04

Métadonnées, signatures et vérification des versions

Les noms de fichiers et les métadonnées de contenu sont chiffrés séparément des octets des fichiers. Les clés de contenu sont enveloppées dans des conteneurs de chiffrement authentifié. Le contexte lie les données protégées à leur compte, leur nœud, leur révision et leur usage, ce qui réduit le risque d’accepter un objet chiffré valide au mauvais endroit.

Les signatures ECDSA P-256 avec SHA-256 protègent les manifestes et les opérations du compte. Les clients vérifient les signatures, l’identité des objets et le contexte de révision avant de rendre le contenu accessible. Les vérifications de l’historique comparent les réponses du serveur à des points de contrôle mémorisés localement afin de détecter un retour en arrière ou un historique contradictoire par rapport à ce que cet appareil a déjà observé.

Un nouvel appareil a besoin d’un état initial de confiance. Les points de contrôle locaux ne constituent pas un service global de transparence des clés, et les signatures seules ne peuvent pas garantir qu’un serveur présente le même historique à tous les appareils.

05

Photos, aperçus et liens de partage

Les clients compatibles génèrent localement les aperçus des images et des vidéos. Un aperçu possède sa propre clé de révision aléatoire et est chiffré avant son envoi. Ses métadonnées chiffrées et signées le lient à la révision du fichier source. Le service de distribution des aperçus stocke et transmet des octets chiffrés ; le client vérifie et déchiffre l’image.

Un lien public chiffré contient son secret de déchiffrement dans le fragment de l’URL, après le caractère #. Les navigateurs n’incluent pas ce fragment dans la requête HTTP envoyée au serveur. Le navigateur du destinataire utilise le secret localement pour déverrouiller le contenu partagé.

Le lien contient également un jeton d’accès distinct, que le client envoie au service pour autoriser la récupération des données, ainsi qu’une empreinte qui fixe l’enregistrement de partage signé. L’autorisation chiffrée contient les clés des révisions de fichiers sélectionnées, plutôt que la clé racine du compte. Un lien de partage renvoie à un instantané en lecture seule de ces révisions.

Toute personne disposant du lien complet peut utiliser son secret ; traitez donc ce lien comme un accès au fichier. Révoquer un lien peut empêcher les accès futurs par le service, mais ne peut pas effacer une copie qu’un destinataire a déjà téléchargée ou déchiffrée.

06

Où sont conservés les clés et les fichiers lisibles

Les clients natifs peuvent mémoriser les clés de compte déverrouillées avec la protection du système d’exploitation : Keychain sur les plateformes Apple, stockage sécurisé reposant sur Android Keystore et DPAPI propre à chaque utilisateur sous Windows. L’application a besoin de clés utilisables pendant le déchiffrement ; le stockage du système d’exploitation ne rend pas sûr un appareil compromis et déverrouillé.

Verrouiller le disque et se déconnecter limitent l’utilisation ultérieure de ses clés. Les fichiers lisibles déjà téléchargés via Finder, l’Explorateur, un export ou une autre application peuvent rester sur le disque. Les fichiers locaux, les caches de miniatures du système d’exploitation, les sauvegardes et les autres applications ont leurs propres règles de protection et de conservation.

Examinez le code cryptographique public

Téléchargez le code source cryptographique, avec des cas de test synthétiques et un environnement de test d’interopérabilité avec Google Tink.

L’archive comprend le traitement des fichiers en streaming, les enveloppes de clés, les signatures, les formats des nœuds et des partages, les métadonnées des aperçus et les fonctions auxiliaires des enveloppes de clés d’accès, ainsi que des dépendances aux versions fixées et des instructions pour exécuter les tests. Les modules cryptographiques de production sont copiés sans modification ; les points d’entrée du paquet ont été restreints pour cette publication.

Télécharger le code source cryptographique (.zip)v1.0.0 · 60,8 ko · AGPL-3.0-onlySomme de contrôle SHA-256522accd052f0f23b0239973ff8be604d2a7eef11c1fd411852ed9609bab1b9ed

Il s’agit d’un instantané du code source cryptographique, et non du client ou du serveur complet. Il exclut les interfaces de l’application, la configuration du déploiement, le transport du service, le stockage des clés sur l’appareil et l’intégration complète des vérifications de l’historique. Les implémentations distinctes en Dart et en Swift ne font pas partie de ce téléchargement. Licence : AGPL-3.0-only ; les notices relatives aux dépendances sont incluses.

Spécifications et lectures complémentaires

Google Tink — Streaming AEADTink — AES-GCM-HKDF streaming formatRFC 9106 — Argon2Sécurité et divulgation responsable