Retour au portail partenaires

Sécurité et architecture technique

Documentation à destination des partenaires intégrateurs, DSI et responsables sécurité qui évaluent Conformitiel.

Hébergement 100 % France

Conformitiel est hébergée exclusivement sur des infrastructures françaises certifiées, sans aucune donnée ni traitement hors de l'Union européenne.

Serveur applicatif

OVH Forge Cloud (Gravelines)

Base de données

PostgreSQL 17 managed OVH Cloud Databases (SBG / Strasbourg)

Stockage objet immuable

OVH Object Storage S3 (Gravelines) — Object Lock COMPLIANCE

Emails transactionnels

Resend (US → IE relay), pas de PII envoyée hors sujet + email

Monitoring erreurs

Sentry SaaS EU (Frankfurt) — PII scrubber côté serveur

Certifications OVH

HDS (Hébergeur de Données de Santé), ISO 27001, ISO 27017, ISO 27018, SecNumCloud partiel

Chiffrement bout-en-bout

Toutes les données sensibles sont chiffrées au repos et en transit. Aucun accès en clair par l'équipe Conformitiel n'est possible sur les données métier des cabinets.

Transport

TLS 1.3 obligatoire (HSTS 1 an + preload)

Base de données au repos

AES-256 (transparent OVH-managed)

Stockage objet au repos

AES-256 côté serveur S3

Secrets applicatifs

.env non versionné, variables Forge chiffrées, jamais dans les logs

Tokens API

Hash SHA-256 stocké — le token en clair n'est jamais persisté

Sessions

JWT NextAuth signé, cookies httpOnly + secure + sameSite=lax

Isolation multi-tenant stricte

Chaque cabinet est une organization logique. Toutes les requêtes SQL sont filtrées côté service par organizationId — impossible d'accéder aux données d'un autre cabinet, même en cas de bug de contrôleur.

  • 31 tables sur 42 portent la colonne organization_id avec FK ON DELETE CASCADE.
  • Les services async Drizzle valident systématiquement le filtre dans le WHERE — audit codé.
  • Routes API : appel obligatoire à getRequiredAuth() puis requirePermission(role, module, action, organizationId).
  • Les tokens Bearer API sont scopés à une organization unique.

Permissions RBAC granulaires

4 rôles couvrent 22 modules fonctionnels, chacun avec des actions précises (read, write, delete, export, validate_hierarchique).

Admin

Tous droits + gestion des rôles, invitation des membres, configuration cabinet

Dirigeant

Signature, décision, validation 4 yeux, tous les modules opérationnels

Consultant

Lecture/écriture des dossiers, criblage, KYC, mais pas de validation 4 yeux

Collaborateur

Lecture, criblage simple, formation. Pas d'accès config ni gel des avoirs

Les 22 modules sont paramétrables par override par organization via l'écran /admin/permissions. Résolution en 3 niveaux : override org → override global → matrice statique.

Audit trail signé par chaîne de hash

Chaque action opposable (criblage, fiche vigilance créée, validation, gel, DS Tracfin, signature électronique...) est loggée dans la table control_logs avec :

  • Horodatage UTC (précision millseconde)
  • Utilisateur ayant déclenché l'action (ou null pour les actions externes tracées comme le portail collecte)
  • Type d'action + catégorie fonctionnelle
  • Metadata JSON (contexte : ids, hashes, résultats)
  • Hash SHA-256 chaîné avec le log précédent — la modification d'un log casse la chaîne, détectable par le job cron /api/admin/verify-chain

Base juridique : Art. L.561-12 CMF (conservation 5 ans opposable en cas de contrôle ACPR / autorité de tutelle).

Archivage immuable S3 Object Lock

Les documents opposables (dossiers LCB-FT PDF, rapports criblage, fiches vigilance PDF, PDFs signés électroniquement) sont stockés en mode WORM (Write Once Read Many) avec S3 Object Lock en mode COMPLIANCE.

  • Rétention 5 ans obligatoire (Art. L.561-12 CMF) — impossible de supprimer avant expiration, même pour un admin OVH.
  • Empreinte SHA-256 calculée avant upload et stockée en DB — vérifiable par recalcul après téléchargement.
  • Horodatage RFC 3161 optionnel via TSA FreeTSA (pour les audits individuels).
  • Dédup 24h par contenu : un même contenu re-généré ne consomme pas d'espace en double.
  • Soft-delete au niveau DB uniquement — le fichier S3 reste immuable pour audit historique.

Monitoring et observabilité

Erreurs applicatives

Sentry SaaS EU (Frankfurt) — beforeSend scrubber PII

Uptime externe

UptimeRobot (free tier) — /api/health toutes les 5 min

Rate-limit interne

Rate limiter mémoire fenêtre glissante — routes publiques

Logs applicatifs

PM2 cluster stdout — rotation quotidienne, retention 7 jours

Metrics DB

OVH Cloud Databases dashboard managed

Alertes email

Sentry issues + UptimeRobot down = email immédiat

Sauvegardes et Disaster Recovery

Backups PITR

OVH Cloud Databases — PITR 14 jours inclus par défaut

Snapshot off-site quotidien

pg_dump chiffré + upload S3 différent bucket (rétention 30j)

RPO (Recovery Point Objective)

≤ 1h (PITR OVH) — ≤ 24h (snapshot off-site)

RTO (Recovery Time Objective)

≤ 4h en cas de perte totale (procédure documentée)

Test de restauration

Trimestriel — restauration dans un environnement isolé, vérification integrité

Réplication

OVH Cloud Databases : réplique lecture optionnelle activable

Incident response et vulnerability disclosure

En cas d'incident de sécurité (fuite de données, indisponibilité majeure, compromission suspectée), notre procédure interne s'engage sur les délais suivants :

  • Détection → confinement : < 1h (bascule DNS, révocation de tokens, isolation d'instance).
  • Communication aux clients impactés : < 24h, email direct + bandeau dans l'app.
  • Notification CNIL : < 72h en cas de fuite de données personnelles (RGPD art. 33).
  • Post-mortem public : < 7 jours ouvrés, sur /status (à venir).

Signalement responsable de vulnérabilité : security@conformitiel.fr — nous nous engageons à répondre sous 48h ouvrées. Programme bug bounty non public à ce stade, hall of fame en préparation.

RGPD et DPA

Conformitiel agit en tant que sous-traitant du cabinet client (Art. 28 RGPD). Le cabinet reste responsable de traitement pour les données KYC/LCB-FT qu'il collecte auprès de ses propres clients.

Note : les données LCB-FT (fiches vigilance, criblages, gels) relèvent d'une obligation légale de conservation 5 ans (Art. L.561-12 CMF) qui prime sur le droit à l'effacement RGPD pour la durée de conservation légale.

Une question technique précise ?

Notre équipe technique répond directement aux DSI, RSSI et partenaires intégrateurs.

security@conformitiel.fr