Résumé exécutif
Snugg implémente un chiffrement de bout en bout pour tout le contenu utilisateur en utilisant des primitives cryptographiques modernes et bien auditées. Ce document décrit notre architecture de chiffrement, notre approche de gestion des clés et le modèle de menace contre lequel nous protégeons.
Aperçu de l'architecture de chiffrement
Snugg utilise une approche de chiffrement hybride combinant cryptographie asymétrique et symétrique pour offrir à la fois sécurité et performance.
Chiffrement asymétrique (clé publique)
Chaque utilisateur possède une paire de clés unique (X25519). La clé publique est partagée avec nos serveurs ; la clé privée ne quitte jamais l'appareil de l'utilisateur. Utilisé pour l'échange initial de clés et la sécurisation des clés de groupe.
Chiffrement symétrique (secret partagé)
Chaque groupe possède une clé symétrique (XSalsa20-Poly1305) partagée uniquement entre les membres du groupe. Cette clé chiffre tout le contenu du groupe, offrant un chiffrement/déchiffrement rapide.
Approche hybride
Lorsque vous rejoignez un groupe, la clé du groupe est chiffrée avec votre clé publique et vous est envoyée. Votre appareil la déchiffre avec votre clé privée, vous donnant accès au contenu du groupe. Cela combine la sécurité de la cryptographie asymétrique avec l'efficacité de la cryptographie symétrique.
Gestion des clés
Une gestion sécurisée des clés est essentielle à notre architecture de chiffrement. Voici comment les clés sont générées, stockées et utilisées :
Génération des clés
Lorsque vous créez un compte, votre appareil génère une paire de clés cryptographiquement sécurisée en utilisant l'API Web Crypto ou TweetNaCl.js. Les clés sont générées localement—elles ne passent jamais par nos serveurs.
Stockage des clés
Les clés privées sont stockées dans un stockage local chiffré (IndexedDB) sur votre appareil, protégées par une clé dérivée de vos identifiants de compte en utilisant PBKDF2 avec 100 000 itérations.
Distribution des clés
Lorsque vous rejoignez un groupe, les membres existants chiffrent la clé du groupe avec votre clé publique. Ce paquet chiffré est stocké sur nos serveurs et ne peut être déchiffré que par votre clé privée.
Rotation des clés
Les clés de groupe sont renouvelées lorsque des membres partent pour assurer la confidentialité persistante. Les membres partis ne peuvent pas déchiffrer le nouveau contenu même s'ils ont conservé l'ancienne clé.
Primitives cryptographiques
Nous utilisons des algorithmes cryptographiques bien établis et audités :
| Objectif | Algorithme | Bibliothèque |
|---|---|---|
| Échange de clés | X25519 (Curve25519 ECDH) | TweetNaCl.js |
| Chiffrement symétrique | XSalsa20-Poly1305 | TweetNaCl.js |
| Signatures numériques | Ed25519 | TweetNaCl.js |
| Hachage | SHA-256 | API Web Crypto |
| Dérivation de clés | PBKDF2 (100k itérations) | API Web Crypto |
Flux de données : comment le contenu est chiffré
Voici ce qui se passe lorsque vous publiez du contenu dans un groupe :
Modèle de menace
Comprendre ce contre quoi nous protégeons—et ce contre quoi nous ne protégeons pas—est essentiel pour que les utilisateurs puissent prendre des décisions éclairées.
Ce contre quoi nous protégeons
- Compromission du serveur : Un attaquant qui accède à nos serveurs ne voit que du texte chiffré
- Employés malveillants : Le personnel de Snugg ne peut pas lire le contenu utilisateur—nous n'avons pas les clés
- Demandes gouvernementales : Même sous contrainte légale, nous ne pouvons fournir que des données chiffrées
- Écoute réseau : Toutes les connexions utilisent TLS 1.3 ; le contenu est en plus chiffré de bout en bout
Ce contre quoi nous ne protégeons pas
- Appareils compromis : Si un attaquant contrôle votre appareil, il peut lire le contenu déchiffré
- Captures d'écran des membres du groupe : Les membres peuvent capturer ou copier le contenu déchiffré
- Analyse des métadonnées : Nous pouvons voir qui est dans quels groupes et quand ils publient (mais pas le contenu)
Audits de sécurité et vérification
Nous croyons en une sécurité vérifiable, pas en une sécurité par l'obscurité :
Ne nous faites pas confiance—vérifiez. Notre code source est disponible sur github.com/snugg-social
Références techniques
Pour plus d'informations sur les standards cryptographiques que nous utilisons :
- •TweetNaCl.js : Un portage de la bibliothèque cryptographique NaCl bien auditée
- •Curve25519 : Courbe elliptique conçue par Daniel J. Bernstein pour l'échange de clés
- •XSalsa20-Poly1305 : Chiffrement authentifié de la famille NaCl
- •PBKDF2 : Fonction de dérivation de clé basée sur mot de passe 2 (RFC 8018)
Questions de sécurité ou divulgation responsable ?
Si vous avez des questions sur notre architecture de sécurité ou souhaitez signaler une vulnérabilité, nous serions ravis de vous entendre.
security@snugg.socialDernière mise à jour : 1 février 2026