Sécurité
Une large part des garanties ne sont pas des promesses — elles sont vérifiées par des tests automatisés bloquants.
Transport, authentification, autorisation, intégrations tierces, audit, confidentialité RGPD, gestion des vulnérabilités et conformité — ce dossier s'adresse aux RSSI, DPO et équipes sécurité.
Principes fondateurs
Souveraineté des données
Instance dédiée par client, 100% on-premise — aucune infrastructure mutualisée sur les données documentaires.
Refus par défaut
Toute action non explicitement autorisée est refusée — y compris pour les plugins.
Point de confiance unique
Seul le daemon détient la session ; navigateur et CAO ne voient jamais les identifiants.
Aucune télémétrie
Aucun appel réseau hors serveurs configurés — garanti par test d'intégration continu.
Minimisation des données
Journaux et e-mails ne véhiculent jamais le contenu ou le nom des documents.
Sécurité du transport
| Paramètre | Valeur |
|---|---|
| Protocole minimum | TLS 1.3 sur tous les flux réseau (TLS 1.2 refusé) |
| Suites cryptographiques | AES-128-GCM, AES-256-GCM, ChaCha20-Poly1305 uniquement |
| Écouteur local du daemon | Lié exclusivement à 127.0.0.1 (vérifié par test CI bloquant), CORS + Private Network Access |
| Intégrité des transferts | Vérification SHA-256 de chaque fichier à la réception, y compris en flux |
Authentification
Les identifiants ne transitent jamais par le navigateur ni par la CAO.
E-mail + mot de passe saisis dans le tray du daemon (jamais dans le navigateur).
Login vérifié par le Directory (hachage Argon2id).
Jeton d'identité directory_jwt — RS256, 15 min, + refresh token 7 j.
Échange auprès du Filer pour un jeton d'espace.
Jeton d'espace ds_jwt — HS256, ne porte pas le rôle : non falsifiable, résolu côté serveur.
Chaque opération est ré-évaluée côté serveur, à chaque requête.
| Jeton | Algorithme | Durée |
|---|---|---|
| Identité (directory) | JWT RS256, clés JWKS | 15 min |
| Espace (ds_jwt) | JWT HS256, clé par espace | 15 min |
| Refresh token | Usage unique, rotation | 7 jours |
| Jeton de plugin | Opaque, scopé, révocable | Session |
Un jeton émis pour un espace A est refusé par un espace B — clés distinctes, testé en CI. Secrets stockés en DPAPI, jamais en clair sur disque.
Autorisation — RBAC + ABAC, refus par défaut
Toute opération est ré-évaluée côté serveur par le Filer, source de vérité. Le cache de droits du daemon n'a qu'un rôle ergonomique — il ne décide jamais.
RBAC — rôle résolu par espace (owner / editor / reader), rôle-pack correspondant, opérations structurantes réservées aux administrateurs.
ABAC — contrôles contextuels par surface : transition de workflow, propriété du verrou, portée de partage, isolation par espace.
Workflows — chaque transition exige un rôle autorisé ; toute tentative non conforme est refusée (403/409) et tracée.
Verrouillage documentaire — conflits détectés côté serveur (409) ; jamais d'écrasement silencieux.
Droits fins par ressource (ACL) — par dossier, document et état de workflow, héritage, propriétaire réattribuable, groupes d'utilisateurs.
Plugins & intégrations CAO — accès sous consentement
Les add-ins CAO n'accèdent jamais directement au serveur : ils passent par le plugin-host du daemon, en loopback strict.
| Contrôle | Mesure |
|---|---|
| Identification | Chaque binaire identifié par son chemin + empreinte SHA-256 |
| Consentement | Approuvé explicitement par l'utilisateur, mémorisé par binaire et révocable |
| Jeton | Opaque, scopé, révocable à tout moment — jamais le jeton de session |
| Périmètre | Refus par défaut : scopes d'administration jamais accordés à un plugin |
| Intégrité fichiers CAO | Résolution des xrefs non mutante : le fichier CAO n'est jamais modifié par la GED (vérifié) |
Audit, traçabilité & isolation des données
Piste d'audit immuable — événements non modifiables sur toutes les mutations (documents, versions, workflows, droits, partages).
Jamais le contenu — l'audit capture acteur, action, ressource, horodatage — jamais le contenu des documents.
Corrélation de bout en bout — identifiant propagé navigateur/CAO → daemon → serveur, dans tous les journaux.
Une instance par client — pas de co-hébergement ; base PostgreSQL et clés JWT distinctes par espace.
Vérification d'intégrité — répertoire de travail local contrôlé toutes les 4 heures ; toute falsification est détectée et signalée.
Partage externe — l'exception maîtrisée
Seul cas où un tiers accède au Filer sans daemon.
| Contrôle | Mesure |
|---|---|
| Authentification | Lien signé + code OTP à 6-8 chiffres envoyé par e-mail |
| Tentatives | 5 maximum, puis verrouillage (HTTP 429) |
| Périmètre | Lecture / téléchargement du seul périmètre partagé — aucune écriture |
| Expiration / révocation | À tout moment ; lien mort → HTTP 410 |
La fonction est désactivable si la politique du client l'exige.
Confidentialité & RGPD
Localisation — documents et métadonnées résident sur le serveur du client ; en topologie on-premise, identité et annuaire aussi.
Minimisation — le service e-mail ne voit que l'OTP et le nom d'affichage de l'espace.
Droit à l'effacement — suppression de compte en cascade, réinitialisation locale du poste.
Portabilité — archives ZIP documentées, export complet d'espace — réversibilité totale.
Pas de profilage, pas de télémétrie, pas de cookies tiers. En topologie 100% on-premise, le client est seul responsable de traitement.
Gestion des vulnérabilités
Veille continue sur l'ensemble de la chaîne — dépendances .NET, Node et Rust auditées par des gates bloquants dans la chaîne de build (dotnet/npm/cargo audit).
| Gravité | Délai cible | Action |
|---|---|---|
| Critique (CVSS ≥ 9,0) | Correctif sous 15 j | Bulletin + patch ou montée de version |
| Élevée (7,0–8,9) | Correctif sous 30 j | Bulletin + patch |
| Moyenne (4,0–6,9) | Prochaine release planifiée | Note de version |
| Faible (< 4,0) | Cycle courant | Backlog |
Cibles indicatives, à contractualiser. Bulletin de sécurité émis sous 72h pour toute vulnérabilité critique ou élevée exploitable.
Support & engagements de service
En on-premise, la disponibilité relève d'une responsabilité partagée : les engagements de l'éditeur portent sur la réactivité du support et la fiabilité du logiciel.
| Gravité | Définition | Prise en compte | Rétablissement |
|---|---|---|---|
| P1 — Bloquant | Service indisponible, perte de données, faille exploitée | 4h ouvrées | Contournement sous 1j |
| P2 — Majeur | Fonction essentielle dégradée, sans contournement | 1j ouvré | Sous 5j ouvrés |
| P3 — Mineur | Gêne avec contournement existant | 2j ouvrés | Prochaine release |
Cibles indicatives, à contractualiser. Disponibilité cible : 99% hors maintenance planifiée.
Conformité & certifications
Une solution européenne, alignée avec les référentiels attendus.
La certification ISO/IEC 27001 porte sur le système de management de la sécurité de l'information de l'éditeur, et non sur le produit — elle est inscrite à la feuille de route. La directive NIS2 s'applique aux entités régulées ; Esovran répond directement aux mesures de gestion des risques de l'article 21 (analyse des risques, gestion des incidents, continuité, chaîne d'approvisionnement, cryptographie, contrôle d'accès).
Un échange technique avec votre RSSI peut être organisé pour toute analyse complémentaire.