Sécurité & confidentialité
Secretary manipule des données sensibles : emails professionnels, enregistrements de réunions, données d'agenda. Cette page détaille précisément les mesures techniques et organisationnelles en place.
Version en vigueur au 18/04/2026 · Document ouvert pour l'évaluation RSSI / DSI.
Architecture et hébergement
Hébergement souverain en Union européenne
Infrastructure dédiée en France, opérée directement par Meoxa. Aucun sous-traitant d'hébergement aux États-Unis. Les serveurs applicatifs, les bases de données et les sauvegardes sont tous localisés dans l'UE.
Multi-tenant avec isolation stricte au niveau SQL
PostgreSQL Row-Level Security est activé sur toutes les tables contenant des données métier (emails, réunions, intégrations, settings). Chaque requête applicative est scopée par `app.tenant_id` — il est techniquement impossible qu'un tenant accède aux données d'un autre, même en cas de bug applicatif ou d'injection SQL réussie.
Chiffrement en transit
TLS 1.2 minimum (TLS 1.3 par défaut) sur toutes les communications externes. Certificats Let's Encrypt renouvelés automatiquement. HSTS activé avec preload. Aucun fallback HTTP.
Chiffrement au repos
Les secrets applicatifs (clés API tierces, tokens OAuth Microsoft, clés Stripe, secrets TOTP, codes de secours MFA) sont chiffrés via Fernet (AES-128-CBC + HMAC-SHA256) avant persistance. La clé maîtresse est stockée en variable d'environnement et n'apparaît jamais en base. Les sauvegardes sont chiffrées avant transfert off-site.
Authentification et accès
Authentification à 2 facteurs (MFA TOTP)
Second facteur TOTP conforme à la RFC 6238 disponible pour tous les utilisateurs, obligatoire pour les super-administrateurs de la plateforme. 10 codes de secours générés à l'enrôlement, utilisables une seule fois, stockés chiffrés.
Sessions courtes avec refresh rotatif
Access token JWT de 30 minutes, refresh token de 14 jours. Algorithme HS256 avec secret de 256 bits. Aucun refresh token n'est stocké en base — seul le JWT signé fait foi.
Rate limiting anti-bruteforce
Routes d'authentification protégées par slowapi avec storage Redis partagé entre workers : 10 tentatives/minute sur /auth/login, 5/heure sur /auth/signup.
Rôles granulaires par tenant
Hiérarchie OWNER > ADMIN > MEMBER avec contrôle fin des actions (invitations, modification des paramètres, accès à la facturation). Contrainte au niveau base : il doit toujours rester au moins un OWNER par tenant actif.
Traitement des données
Secretary est un logiciel — aucun humain ne lit vos données
Tout le traitement (lecture d'emails, génération de brouillons, transcription de réunions, création de CR) est automatisé. Les collaborateurs de Meoxa n'ont accès aux données des clients que dans des cas exceptionnels d'intervention support explicitement autorisés.
Pas d'entraînement IA sur vos données
Les données transmises à Anthropic (modèle Claude) ne sont pas utilisées pour entraîner de modèles, conformément au DPA Anthropic Enterprise. Les données Voyage AI (embeddings) non plus. Vos données restent vos données.
Mémoire contextuelle privée par tenant
L'indexation RAG (Voyage AI + pgvector) produit des embeddings stockés dans votre tenant uniquement. Aucun embedding n'est partagé entre tenants. Lorsque vous exercez votre droit à l'oubli, les embeddings sont supprimés en cascade.
Journalisation et auditabilité
Journal d'audit immuable
Toutes les actions sensibles sont tracées dans une table `audit_logs` append-only : login/logout, changement de mot de passe, activation/désactivation de la MFA, modifications des paramètres plateforme et tenant, invitations, changements de rôles, export RGPD, demandes de suppression.
Monitoring d'erreurs self-hosted (GlitchTip)
Capture des erreurs applicatives avec scrubbing automatique des données sensibles avant envoi (headers d'auth, cookies, champs password/token). Déployé sur la même infrastructure, jamais envoyé à des tiers.
Suivi de consommation LLM
Chaque appel aux modèles Claude est tracé dans `llm_usage_events` (tokens entrée/sortie, coût estimé, tâche, modèle) — transparence complète sur la consommation du tenant.
Conformité RGPD
Export en un clic
Export ZIP complet des données du tenant (users, memberships, emails, meetings, transcripts, intégrations sans tokens, paramètres, audit log) accessible depuis /app/organization.
Droit à l'oubli avec délai de grâce
Sur demande, suppression différée 30 jours (permet la réversibilité), puis purge hard avec révocation des souscriptions Graph côté Microsoft.
Rétention configurable
Chaque tenant choisit combien de jours Secretary conserve ses transcriptions de réunions et leurs embeddings (de 1 à 3 650 jours, ou 0 = rétention illimitée). Purge automatique quotidienne par Celery beat.
DPA (contrat de sous-traitance) téléchargeable
Template conforme à l'article 28 RGPD, pré-rempli avec les sous-traitants ultérieurs (Anthropic, Microsoft, Voyage, Stripe, hébergeur), générable depuis l'interface. À faire signer lors de la souscription.
Sauvegardes et continuité
Backup PostgreSQL quotidien
Dump chiffré quotidien à 03h00 UTC, rétention locale 14 jours, copie off-site via rclone vers Backblaze B2 ou S3-compatible.
Plan de reprise d'activité
Les sauvegardes sont testées régulièrement en restauration sur un environnement isolé. Objectif RPO (perte de données acceptable) : 24 heures. Objectif RTO (reprise) : 4 heures.
Disponibilité cible
99 % sur 12 mois glissants. Statut public en temps réel sur notre page Status.
Sous-traitants ultérieurs
| Sous-traitant | Pays | Finalité |
|---|---|---|
| Anthropic PBC | États-Unis | Modèle Claude pour génération de texte (emails, CR) |
| Microsoft Ireland | Irlande | Graph API (Outlook, Teams, Calendar, OneDrive) |
| Voyage AI, Inc. | États-Unis | Embeddings pour la mémoire contextuelle RAG |
| Stripe Payments Europe | Irlande | Traitement des paiements par carte bancaire |
| Hébergeur VPS | France / UE | Hébergement des serveurs applicatifs et bases |
Les transferts vers les États-Unis (Anthropic, Voyage) sont encadrés par des Clauses Contractuelles Types adoptées par la Commission européenne (décision 2021/914) et par des DPA spécifiques. Aucune donnée sensible ne transite vers un pays ne bénéficiant pas de garanties appropriées.
Contact & signalement
Pour toute question relative à la sécurité de Secretary, ou pour signaler une vulnérabilité potentielle :
- Sécurité générale : security@meoxa.app
- Délégué à la protection des données : dpo@meoxa.app
- Contact général : contact@meoxa.app
Disclosure responsable : si tu identifies une vulnérabilité, écris à security@meoxa.app avant toute publication. Nous nous engageons à te répondre sous 48 h et à publier un correctif sous 30 jours maximum.