Pokled

Chiffrement E2E dans les DMs — ECDH P-256 + AES-256-GCM, sans serveur tiers

Pokled · Mar 28, 2026, 10:00 AM
327 vues
4 réponses
Dernier :
W
Westred
Mar 28, 2026, 10:00 AM #1

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

  1. Alice récupère la clé publique de Bob
  2. Alice dérive un secret partagé avec SubtleCrypto.deriveKey(ECDH)
  3. Alice chiffre avec AES-256-GCM + IV aléatoire
  4. Le serveur reçoit { content: base64(ciphertext), nonce: base64(iv), is_encrypted: true }
  5. 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

Réponse #2
Mar 28, 2026, 02:00 PM #2

Si l'utilisateur efface son localStorage, il perd sa clé privée. Les anciens messages chiffrés deviennent-ils illisibles ?

Réponse #3
Mar 28, 2026, 04:00 PM #3

@godotadmin oui, c'est le trade-off inhérent au E2E sans serveur de clés. Si la clé privée est perdue, les anciens messages sont irrécupérables — c'est exactement ce que garantit le E2E. Pour la v2.1 on travaille sur un backup de clé chiffré par mot de passe maître, optionnel.

Réponse #4
Mar 29, 2026, 09:00 AM #4

La transparence sur ce trade-off est appréciable. Beaucoup d'apps se contentent de dire "E2E" sans expliquer les limites. Ici on a le code, l'explication, et les limitations — c'est exactement ce qu'on attend d'un projet open source sérieux.

Vous devez être connecté pour répondre.

Se connecter