Sécurité
Modèle de menaces, architecture de chiffrement et divulgation responsable pour anonym.plus.
Principes de conception
anonym.plus repose sur trois principes de sécurité :
- Offline-first : L'ensemble de la détection de PII et du pipeline d'anonymisation s'exécute localement. Les documents ne sont jamais téléversés sur un serveur.
- Zero-knowledge : Votre mot de passe ne quitte jamais votre appareil. Seules des preuves cryptographiques sont envoyées lors de l'authentification. Le serveur ne peut pas accéder au contenu de votre vault.
- Défense en profondeur : Chiffrement au repos (AES-256-GCM), dérivation de clé via Argon2id, verrouillage automatique du vault et une phrase de récupération BIP39 de 24 mots fournissent une protection multicouche.
Modèle de menaces
Le tableau suivant décrit contre quoi anonym.plus protège et ce qui est en dehors du périmètre de ses garanties de sécurité.
| Menace | Atténuation | Statut |
|---|---|---|
| Documents envoyés à des serveurs externes | Tout le traitement s'exécute localement via Presidio + spaCy intégrés. Aucun appel réseau pour la détection ou l'anonymisation de PII. | Atténué |
| Données du vault accessibles par un attaquant ayant accès au disque | Vault chiffré avec AES-256-GCM. Clé dérivée du mot de passe utilisateur via Argon2id (64 Mo de mémoire, 3 itérations). Sans PIN ou phrase de récupération, les données sont illisibles. | Atténué |
| Compromission du serveur exposant les mots de passe | Authentification zero-knowledge. Les mots de passe sont hachés côté client avant toute communication avec le serveur. Le serveur ne stocke que des preuves cryptographiques. | Atténué |
| Clés de chiffrement extraites de la mémoire | Le matériel de clé est effacé de la mémoire lorsque le vault se verrouille. Verrouillage automatique après 15 minutes d'inactivité. | Atténué |
| Man-in-the-middle sur la communication API | Toute la communication API passe par HTTPS/TLS. Le certificate pinning n'est pas implémenté (TLS standard navigateur/Tauri). | Partiellement atténué |
| Malware sur l'appareil de l'utilisateur | Hors périmètre. Si un attaquant peut exécuter du code sur votre machine, aucune application de bureau ne peut garantir la sécurité. Utilisez les protections au niveau du système d'exploitation. | Hors périmètre |
| La détection NLP manque des entités PII | Presidio + spaCy utilisent à la fois le NER (apprentissage automatique) et des patterns regex. Seuils de confiance configurables et étape de vérification manuelle. Les faux négatifs sont possibles — vérifiez toujours les résultats. | Partiellement atténué |
Architecture de chiffrement
Chiffrement du vault
Toutes les données locales (historique de traitement, clés de chiffrement, paramètres) sont stockées dans un vault chiffré.
- Algorithme
- AES-256-GCM (chiffrement authentifié avec données associées)
- Dérivation de clé
- Argon2id avec 64 Mo de coût mémoire, 3 itérations, sortie de 32 octets
- Phrase de récupération
- Mnémonique BIP39 de 24 mots (256 bits d'entropie), généré lors de la première configuration
- Déverrouillage rapide
- PIN optionnel de 4 à 8 chiffres pour plus de commodité. Après 3 tentatives échouées, la phrase de récupération est requise.
- Verrouillage automatique
- Le vault se verrouille après 15 minutes d'inactivité (aucun événement souris, clavier ou défilement)
- Effacement des clés
- Le matériel de clé de chiffrement est effacé de la mémoire lorsque le vault se verrouille
Chiffrement de documents (anonymisation réversible)
Lors de l'utilisation de l'opérateur « Chiffrer », les entités PII sont chiffrées avec AES-256-GCM par clé afin de pouvoir être déchiffrées ultérieurement via la fonction de déanonymisation.
- Algorithme
- AES-256-GCM avec nonce aléatoire par entité
- Longueurs de clé
- 128-bit, 192-bit ou 256-bit (256-bit recommandé et par défaut)
- Stockage des clés
- Zero-knowledge : les valeurs des clés ne quittent jamais le backend Rust. Le frontend ne référence les clés que par leur ID.
- Rotation des clés
- Génère un nouveau matériel de clé. L'ancienne valeur de clé est définitivement remplacée. Les documents chiffrés avec l'ancienne clé nécessitent l'ancienne valeur de clé pour le déchiffrement.
Authentification
- Gestion des mots de passe
- Les mots de passe sont hachés côté client avec Argon2id + HKDF + SHA-256 avant toute communication avec le serveur. Le serveur ne reçoit jamais de mots de passe en clair.
- Jetons de session
- JWT avec des secrets séparés pour l'authentification utilisateur et administrateur. Les jetons sont stockés dans sessionStorage (effacés à la fermeture de l'onglet).
- Authentification administrateur
- Secret JWT séparé (ADMIN_JWT_SECRET). Mot de passe minimum de 12 caractères. Authentification à deux facteurs basée sur TOTP.
Ce que le serveur voit
Le serveur anonym.plus gère les comptes, les licences et la facturation des abonnements. Voici exactement ce à quoi il peut et ne peut pas accéder :
- Peut accéder à : Adresse e-mail, statut d'abonnement, activations de machines, tickets de support, métadonnées de paiement (via Stripe/PayPal).
- Ne peut pas accéder à : Vos documents, résultats de détection de PII, sorties anonymisées, clés de chiffrement, contenu du vault, historique de traitement ou mot de passe.
Pour un détail complet des données collectées, consultez la Politique de confidentialité.
Divulgation responsable
Signaler une vulnérabilité de sécurité
Si vous découvrez une vulnérabilité de sécurité dans anonym.plus, nous encourageons la divulgation responsable. Veuillez la signaler via notre formulaire de contact dans la catégorie « Security ».
Lors du signalement, veuillez inclure : une description de la vulnérabilité, les étapes de reproduction, la version concernée et l'impact potentiel.
Nous nous efforçons d'accuser réception des signalements dans les 48 heures et de fournir un calendrier de correction dans les 7 jours. Nous n'engagerons pas de poursuites judiciaires contre les chercheurs qui suivent les pratiques de divulgation responsable.
Nos coordonnées de sécurité sont également disponibles sur /.well-known/security.txt (RFC 9116).
Composants open source
anonym.plus utilise les composants open source suivants pour ses fonctions critiques de sécurité :
- Microsoft Presidio — Moteur de détection de PII (Apache 2.0)
- spaCy — Modèles NLP pour la Named Entity Recognition (MIT)
- Tesseract OCR — Extraction de texte à partir d'images (Apache 2.0)
- Tauri — Framework d'applications de bureau avec backend Rust (MIT/Apache 2.0)
- Argon2 — Hachage de mots de passe / dérivation de clé (CC0)
Références
- Microsoft Presidio — Dépôt GitHub
- spaCy — NLP de niveau industriel
- RFC 5116 — Spécification du chiffrement authentifié AES-GCM
- RFC 9106 — Spécification de la fonction à mémoire intensive Argon2
- BIP39 — Spécification du code mnémonique
- GDPR — Texte intégral du Règlement Général sur la Protection des Données