Glossaire

Qu'est-ce que Architecture zero-knowledge ?

L’architecture zero-knowledge est une conception de système dans laquelle le fournisseur de service n’a aucun moyen de lire ou de déchiffrer les données stockées pour le compte des utilisateurs, parce que toutes les opérations de chiffrement et de déchiffrement se déroulent côté client.

Aussi connu sous le nom de : ZK, zero-knowledge encryption, zero-knowledge proof, ZKA

Dans un système zero-knowledge, le serveur ne fait office que de stockage chiffré. Il reçoit des données déjà chiffrées par le client et les renvoie à la demande, mais ne possède jamais les clés permettant de comprendre ces données. Cela diffère de la plupart des services cloud, où le fournisseur détient les clés de chiffrement et pourrait théoriquement accéder aux données des utilisateurs, par exemple via un employé malhonnête, une réquisition judiciaire ou un incident de sécurité.

Le terme « zero-knowledge » dans ce contexte se distingue des preuves à divulgation nulle de connaissance (zero-knowledge proofs) en cryptographie, même si les deux partagent le principe de ne rien révéler au-delà du strict nécessaire. Un service zero-knowledge sait que des données existent et peut appliquer des contrôles d’accès comme des dates d’expiration ou des limites de consultations, mais il ne peut pas déterminer ce que ces données contiennent réellement.

L’architecture zero-knowledge transforme fondamentalement le modèle de confiance. Au lieu de faire confiance à l’exploitant du service pour protéger tes données et agir honnêtement, tu n’as qu’à faire confiance au code côté client qui s’exécute dans ton navigateur. C’est une amélioration de sécurité majeure, car elle élimine toute une classe de menaces : les fuites de données côté serveur, l’accès des initiés et la divulgation forcée deviennent inopérants lorsque le serveur ne peut tout simplement pas lire ce qu’il stocke.

Comment Vaulted utilise Architecture zero-knowledge

Vaulted est conçu de bout en bout comme un système zero-knowledge. Toutes les opérations de chiffrement et de déchiffrement se déroulent dans ton navigateur via la Web Crypto API. Le serveur ne reçoit et ne stocke que le texte chiffré, le vecteur d’initialisation et des métadonnées comme le compteur de consultations et la date d’expiration. La clé de chiffrement AES-256-GCM se trouve dans le fragment d’URL, que les navigateurs ne transmettent jamais aux serveurs conformément au RFC 3986. Même si les serveurs ou la base de données de Vaulted étaient entièrement compromis, un attaquant n’obtiendrait que des blocs de données chiffrées, sans aucun moyen de les déchiffrer.