Comment fonctionne le chiffrement E2E des DMs
Échange de clés — ECDH P-256
Chaque utilisateur génère une paire de clés ECDH P-256 dans son navigateur via SubtleCrypto.generateKey(). La clé publique est sur le serveur, la privée ne quitte jamais votre navigateur.
Chiffrement — AES-256-GCM
- Alice récupère la clé publique de Bob
- Alice dérive un secret partagé avec
SubtleCrypto.deriveKey(ECDH) - Alice chiffre avec
AES-256-GCM+ IV aléatoire - Le serveur reçoit
{ content: base64(ciphertext), nonce: base64(iv), is_encrypted: true } - Bob dérive le même secret et déchiffre
Le serveur ne stocke jamais le clair. Code source : nodyx-frontend/src/lib/e2e.ts