Le serveur public ne peut pas lire vos documents. Ce n'est pas une promesse marketing : c'est la conséquence d'un choix d'architecture — clés asymétriques, séparation physique, write-only. Voici comment.
Chaque document est chiffré côté serveur public dès réception avec la clé publique du vault. Échange de clé X25519, symétrique XSalsa20, authentification Poly1305.
La clé privée n'existe nulle part sur le serveur public — ni en mémoire, ni dans un fichier, ni dans une variable d'environnement. Elle vit sur une machine séparée à laquelle seul le back-office accède.
Au-delà du chiffrement applicatif, le volume de stockage est lui-même chiffré (LUKS2). Une clé par tenant rend le transfert de données entre tenants structurellement impossible.
Caddy v2 sert exclusivement en HTTPS, certificat Let's Encrypt auto-renouvelé. HSTS preload actif (max-age 2 ans, includeSubDomains). TLS 1.3 préféré, TLS 1.2 minimum accepté (TLS 1.0/1.1 refusés). Aucun cookie posé par le site — l'analytics agrégé Plausible fonctionne sans cookie.
// 1. réception côté serveur public (externe.masoustraitance.fr) const document = await req.file(); // ⌐ encore en clair, en RAM uniquement const ciphertext = sodium.crypto_box_seal( // ⌐ chiffré avec la clé publique document.bytes, PUBLIC_KEY_OF_VAULT // ⌐ la privée n'est PAS sur ce serveur ); await store.put(tenant, hash, ciphertext); // ⌐ on n'écrit que le chiffré // 2. lecture (admin TMG GED, machine séparée, via Tailscale) const cipher = await tmgGed.fetch(tenant, hash); // ⌐ pull périodique sur le serveur public const plain = sodium.crypto_box_seal_open( // ⌐ déchiffrement local cipher, PUBLIC_KEY_OF_VAULT, PRIVATE_KEY_OF_VAULT // ⌐ vit uniquement ici );
Chaque dépôt et chaque consultation est horodaté par une autorité tierce conforme RFC 3161 (TSA). Le timestamp signé est attaché à l'événement et conservé.
Le journal d'événements est append-only et hashé en chaîne (chaque entrée référence le hash de la précédente). Toute altération rétroactive est détectée immédiatement.
Vous exportez un dossier de conformité PDF, signé, horodaté, listant les pièces, leurs versions, et la chaîne d'événements — prêt à présenter en cas de contrôle URSSAF.
| Scénario | Notre réponse | Statut |
|---|---|---|
| Compromission du serveur public | Les documents restent illisibles : la clé privée est ailleurs. | couvert |
| Compromission d'un admin TMG GED | Audit-log append-only, alerte sur tout déchiffrement inattendu. | couvert |
| Erreur humaine côté donneur d'ordres | Sandbox éphémère + double validation avant export, journalisation des actions. | couvert |
| Requête judiciaire étrangère | Hébergement et personnel 100% UE. Pas de levier juridique américain. | couvert |
| Compromission du sous-traitant | Hors périmètre — recommandation MFA email, mais pas de garantie. | hors scope |
Architecture détaillée, modèle de menaces complet, sources d'authentification, log de revues internes — disponibles sous NDA, en moins de 48 heures.