Lexique
Les termes techniques et cryptographiques utilisés sur le site, expliqués simplement. Pour des explications plus détaillées, direction le blog.
Architecture zero-knowledge
Une architecture "zero-knowledge" (connaissance nulle) garantit que le fournisseur du service ne possède techniquement aucun moyen de lire les données de l'utilisateur. Tout le chiffrement a lieu côté client, avant l'envoi au serveur : ce dernier ne manipule que du contenu illisible, même en cas de piratage ou d'injonction judiciaire.
Argon2id
Argon2id est l'algorithme vainqueur de la Password Hashing Competition, conçu pour résister aux attaques par force brute même avec du matériel spécialisé (GPU, ASIC). Il est utilisé ici à deux niveaux : pour dériver la clé qui protège la clé privée de l'utilisateur, et pour le hachage du mot de passe côté serveur.
Authentification sans état (stateless)
Contrairement à une authentification par session classique (où le serveur garde en mémoire qui est connecté), une architecture stateless ne stocke rien côté serveur. Chaque requête porte son propre jeton signé (JWT), que le serveur vérifie à la volée — ce qui simplifie la mise à l'échelle et réduit la surface d'attaque.
Chiffrement de bout en bout (E2E)
End-to-End Encryption : les fichiers sont chiffrés dans le navigateur avant d'être envoyés, et déchiffrés uniquement au moment de leur consultation, également dans le navigateur. À aucun moment le serveur ne manipule les données en clair.
Clé publique / clé privée
En cryptographie asymétrique, chaque utilisateur possède deux clés mathématiquement liées. La clé publique sert à chiffrer des données ou à vérifier une signature, et peut être diffusée sans risque. La clé privée sert à déchiffrer ou signer, et ne doit jamais être partagée — chez May·Secret, elle ne quitte jamais l'appareil de l'utilisateur, chiffrée par son mot de passe.
Curve25519
Curve25519 est une courbe elliptique conçue pour l'échange de clés (Diffie-Hellman) de manière rapide et sécurisée. Chaque compte possède une paire de clés générée sur cette courbe : la clé publique peut être partagée librement, la clé privée ne quitte jamais l'appareil de l'utilisateur.
JWT (JSON Web Token)
Un JSON Web Token est un jeton compact, signé cryptographiquement, qui prouve l'identité de son porteur. Après connexion, le serveur émet un JWT que le client renvoie à chaque requête ; le serveur peut vérifier sa validité (via signature RSA) sans avoir à stocker d'état de session.
Libsodium
Libsodium est une bibliothèque cryptographique moderne, auditée et largement utilisée, qui fournit des implémentations sûres et simples des algorithmes de chiffrement (XChaCha20-Poly1305), de dérivation de clé (Argon2id) et d'échange de clés (Curve25519). May·Secret l'utilise via sa version WebAssembly directement dans le navigateur.
Nonce
"Number used once" — une valeur générée aléatoirement pour chaque opération de chiffrement, garantissant que chiffrer deux fois le même fichier avec la même clé produit des résultats différents. Indispensable à la sécurité des algorithmes de chiffrement symétrique modernes.
RSA 256 bits (RS256)
RS256 combine l'algorithme RSA avec la fonction de hachage SHA-256 pour signer les jetons JWT. Le serveur signe le jeton avec une clé privée RSA ; n'importe quel service peut vérifier son authenticité avec la clé publique correspondante, sans jamais avoir accès à la clé privée.
Sel cryptographique (salt)
Un sel est une valeur aléatoire unique associée à chaque utilisateur, combinée à son mot de passe avant d'être traitée par une fonction de dérivation comme Argon2id. Cela empêche un attaquant d'utiliser des tables précalculées (rainbow tables) pour retrouver des mots de passe en masse.
XChaCha20-Poly1305
XChaCha20-Poly1305 est un algorithme de chiffrement authentifié (AEAD) combinant le chiffrement de flux ChaCha20 (variante à nonce étendu) et le code d'authentification Poly1305. Il garantit à la fois la confidentialité (personne ne peut lire les données) et l'intégrité (toute altération du fichier chiffré est détectée).