Sécurité & conformité

Vos données de conformité, protégées et hébergées en Europe

Certeef héberge l'intégralité de vos données dans l'Union européenne et applique une défense en profondeur à chaque couche de la plateforme. Voici, en clair puis en détail, comment nous protégeons votre organisme de formation.

  • Données hébergées dans l'Union européenne
  • Conforme au RGPD
  • Chiffré au repos (AES-256) et en transit (TLS)

L'essentiel

Ce que nous garantissons

  • Hébergement dans l'Union européenne

    Stockage des fichiers, base de données et supervision sont tous hébergés en région UE. Par défaut, aucune de vos données ne quitte l'Europe.

  • Conforme RGPD

    Vos données ne sont jamais cédées à des tiers à des fins commerciales. Vos droits d'accès, de rectification et d'effacement sont garantis, conformément au RGPD.

  • Chiffré au repos et en transit

    Les fichiers sont chiffrés au repos (AES-256) et transitent en TLS. L'accès aux documents se fait uniquement par liens signés, à durée limitée — jamais par exposition directe.

  • Défense en profondeur

    Trois niveaux d'autorisation indépendants, du périmètre de l'application jusqu'à la vérification que chaque fichier appartient bien à votre organisation.

  • Isolation entre clients

    Chaque organisation est cloisonnée. Votre appartenance à votre espace est revérifiée à chaque requête : un accès ne peut pas fuiter d'un client à l'autre.

  • Signature à valeur probante

    Les documents signés sont scellés cryptographiquement (PKCS#7 / PAdES), horodatés (RFC-3161) et accompagnés d'une piste d'audit complète.

Niveau technique

Le détail, pour les équipes sécurité

Pour les RSSI, DPO et équipes techniques : l'architecture de sécurité de Certeef, contrôle par contrôle.

01

Authentification

Authentification confiée à better-auth, durcie contre le brute-force et le credential-stuffing.

  • Vérification d'email obligatoire — aucune session par mot de passe n'est ouverte tant que l'adresse n'est pas confirmée ; le lien est ré-émis automatiquement à la connexion d'un compte non vérifié.
  • SSO entreprise — Google et Microsoft Entra ID (OAuth 2.0), avec identifiant de tenant configurable.
  • Politique de mot de passe — 12 à 128 caractères mêlant minuscule, majuscule, chiffre et caractère spécial — imposée côté serveur, à l'inscription comme à la réinitialisation. La validation côté navigateur n'est jamais l'autorité.
  • Anti-bot — Cloudflare Turnstile sur la connexion, l'inscription et la réinitialisation ; la clé secrète est obligatoire en production.
  • Rate-limiting persistant en base — partagé entre toutes les instances serveur, donc non contournable : 100 req/min en global, 5/min sur la connexion et l'inscription, 3/h sur la réinitialisation et l'envoi d'email de vérification.
02

Autorisation : défense en profondeur

Trois gardes indépendants, du périmètre de l'application jusqu'à chaque fichier.

  • Niveau 1 — Périmètre — toute route non publique exige une session valide ; sinon, redirection vers la page de connexion.
  • Niveau 2 — Garde-fous serveur — le rôle est appliqué côté serveur. Un compte en lecture seule (portail entreprise) est confiné par le serveur, pas seulement masqué dans l'interface : l'accès direct par URL est bloqué.
  • Niveau 3 — Autorisation au niveau objet — chaque téléchargement est recontrôlé en cascade : session présente, organisation active résolue, fichier appartenant bien à l'organisation, et rôle autorisant ce fichier précis. C'est le contrôle d'accès le plus strict, pas un simple filtre global.
03

Isolation multi-tenant

Chaque organisation est cloisonnée, et l'appartenance est revalidée à chaque requête.

  • L'organisation active est résolue à chaque requête, avec revérification systématique de l'appartenance en base.
  • Un cookie d'organisation falsifié ou périmé ne donne aucun accès : si l'utilisateur n'est plus membre, le cookie est ignoré.
  • Un audit fichier par fichier des requêtes de données confirme qu'aucune n'expose les données d'un autre client à partir d'une entrée utilisateur non vérifiée.
04

Signature électronique — chaîne de valeur probante

Moteur de signature interne, avec une chaîne de preuve cryptographique standard.

  • Liens de signature sécurisés — jeton de 256 bits d'aléa, jamais stocké en clair (seul son hash SHA-256 est en base), vérifié par comparaison à temps constant, avec expiration.
  • Piste d'audit — chaque événement (création, envoi, ouverture, consultation, OTP, signature) est horodaté avec adresse IP, User-Agent et empreinte SHA-256 du document.
  • Scellement d'intégrité — signature PKCS#7 / PAdES apposée côté serveur ; empreinte SHA-256 du PDF scellé persistée ; vérification autonome sans tiers — toute altération d'un seul octet casse la preuve.
  • Horodatage — jeton RFC-3161 demandé à une autorité d'horodatage, faisant foi de la date indépendamment de l'horloge serveur.
  • Certificat de preuve — un PDF récapitule signataires, empreintes d'intégrité et journal d'événements horodatés, matérialisant la valeur probante en cas de contentieux.
05

Stockage des fichiers

Stockage objet Cloudflare R2, hébergement UE forcé, accès uniquement par lien signé.

  • Hébergement UE forcé — endpoint à juridiction européenne, buckets créés en juridiction « eu » (vérifié par test automatisé).
  • Accès par URL présignée — aucune exposition directe du bucket ; les identifiants de stockage ne quittent jamais le serveur.
  • Upload verrouillé — session obligatoire, liste blanche de types de fichiers (PDF, JPEG, PNG, DOCX) et plafonds de taille (10 Mo documents, 5 Mo images) — bornes anti-déni-de-service.
  • Chiffrement au repos — chiffrement AES-256 natif du stockage objet.
06

Validation des entrées & anti-injection

Toute donnée entrante est typée, validée et assainie.

  • Validation systématique — les actions serveur sont typées et validées via Zod à chaque requête.
  • Anti-XSS stockée — le HTML des contenus pédagogiques est assaini avant stockage et avant affichage — liste blanche stricte de balises, suppression des scripts, iframes et attributs événementiels, schémas d'URL limités à http / https / mailto.
  • Qualité de code — TypeScript strict et contrôles automatisés (lint, hook pre-commit bloquant).
07

Surfaces externes — webhooks & tâches planifiées

Les points d'entrée externes sont authentifiés cryptographiquement.

  • Webhooks de paiement — signature cryptographique vérifiée à chaque réception ; toute requête sans signature valide est rejetée.
  • Tâches planifiées (cron) — protégées par un jeton Bearer secret ; non déclenchables par un tiers malgré un chemin public.
08

Gestion des secrets & configuration

Pas de mode dégradé silencieux : l'application refuse de démarrer si un secret critique manque.

  • Des assertions de production lèvent une erreur explicite au démarrage si une variable critique est absente (URL de l'app, clé anti-bot, clé de cachet…).
  • Séparation stricte entre secrets serveur et code envoyé au navigateur : les modules sensibles sont marqués server-only ; une fuite vers le client devient une erreur de build.
09

Hébergement, souveraineté & supervision

Données et supervision en région UE, détection d'incidents continue.

  • Données en UE — stockage des fichiers en juridiction UE, base de données et supervision (Sentry région UE) hébergées en Europe — cohérent avec le RGPD.
  • Détection d'incidents — supervision Sentry active sur l'ensemble des environnements.

Vous êtes RSSI ou DPO et souhaitez le dossier de sécurité complet ? Contactez-nous.

Prêt à dérisquer votre prochain audit ?

Une démo de 30 minutes, un cas appliqué à votre OF, et un devis sous 24 h. Sans pression, sans engagement.

Pas de carte bancaire requise