Sécurité & Conformité

RestoGuardian a été conçu dès l'origine avec la sécurité comme priorité absolue. Cette page détaille les contrôles techniques et organisationnels mis en place pour protéger vos données.

Données hébergées en Europe (UE)Chiffrement AES-256 au reposTLS 1.2+ en transitConforme RGPDDPA art. 28 disponibleAudit de code CodeQLTOTP disponibleJournaux d'audit immuables

Hébergement & Infrastructure

Région de donnéesEurope (UE) — Railway EU region
Transfert hors UEAucun transfert des données clients — encadré par CCT UE pour services tiers
Base de donnéesPostgreSQL 16 managé — Railway
Cache & files de traitementRedis — Upstash EU
Hébergement webNext.js App Router — Vercel / Railway
Disponibilité cible99,5 % mensuel (hors maintenances planifiées)
SauvegardesSauvegardes quotidiennes automatisées avec rétention 30 jours

Chiffrement des données

Données au reposAES-256 (niveau infrastructure Railway)
Données en transitTLS 1.2+ obligatoire — HSTS 2 ans avec preload
Identifiants POSAES-256-GCM individuel par restaurant — clé maîtresse isolée
Mots de passebcrypt (facteur 12) — jamais stockés en clair
Tokens sensiblesHachés en SHA-256 ou bcrypt avant stockage

Les identifiants de connexion POS (tokens, secrets API) sont chiffrés individuellement avec AES-256-GCM avant stockage en base de données. La clé de chiffrement est isolée dans les variables d'environnement et n'est jamais loggée ni exposée via les API.

Authentification & Contrôle d'accès

AuthentificationEmail/mot de passe + Google OAuth
Mots de passeMinimum 12 caractères — vérifiés contre les fuites HIBP
Double authentificationTOTP (application d'authentification) disponible — imposable par le propriétaire
SessionsJWT 24h max — révocation instantanée en base (tokenVersion)
CookiesHttpOnly, SameSite=Lax, Secure en production — préfixe __Secure-
Protection brute-force10 tentatives / 15 min par IP + 50 / heure par email
Enumération utilisateursRéponse à temps constant (bcrypt dummy) sur email inconnu
Contrôle d'accèsRBAC — 4 rôles : OWNER, ADMIN, MANAGER, VIEWER

Chaque session JWT est re-validée en base de données toutes les 60 secondes. Toute désactivation de compte, réinitialisation de mot de passe, ou modification d'email invalide immédiatement toutes les sessions actives.

Isolation multi-tenant

ArchitectureMulti-tenant avec cloisonnement strict par tenantId
Isolation des requêtesChaque requête DB filtrée par tenantId — vérifiée en session
Accès inter-tenantStructurellement impossible au niveau des requêtes
AnonymisationOption d'anonymisation des noms d'employés (configurable par tenant)

Aucune requête de base de données n'accède aux données d'un autre tenant, même en cas d'erreur de programmation. Le tenantId est systématiquement extrait de la session serveur (jamais du corps de la requête) et appliqué à chaque opération.

Surveillance & Détection d'incidents

MonitoringToutes les 15 minutes — analyse automatisée des journaux d'audit
Brute-forceAlerte automatique sur > 5 échecs / heure pour un email
Mass resetAlerte automatique sur > 20 demandes de réinitialisation / heure
Suppression de masseAlerte automatique sur > 2 suppressions de comptes / 24h
Journal d'auditToutes les actions sensibles — immuable, conservé 13 mois
ImpersonationNotifiée par email à l'administrateur ET à l'utilisateur concerné

Un système de surveillance automatisé analyse en continu les journaux d'audit et envoie des alertes à l'équipe sécurité en cas de comportement suspect. Les alertes couvrent les tentatives de compromission de comptes, les opérations de masse inhabituelles et les actions administratives sensibles.

Gestion des vulnérabilités & Mises à jour

Audit des dépendancespnpm audit automatisé en CI — bloque sur CVE HIGH/CRITICAL
Mises à jourGitHub Dependabot — mises à jour hebdomadaires automatiques
Analyse statiqueGitHub CodeQL — analyse de sécurité sur chaque commit
Déploiement continuChaque correctif en production en < 1 heure après validation CI

Toute dépendance présentant une vulnérabilité HIGH ou CRITICAL bloque automatiquement le pipeline CI. Les corrections de sécurité sont priorisées et déployées en urgence selon les délais définis dans notre politique (Critical : 24–72h, High : 7 jours).

Notification de violations & Réponse aux incidents

Délai de notification≤ 72 heures après découverte (obligation RGPD art. 33)
Contenu de la notificationNature, périmètre, conséquences probables, mesures prises
Notification CNILSi risque pour les droits et libertés des personnes concernées
Contact sécuritésecurity@restoguardian.io

En cas de violation de données à caractère personnel affectant vos données, RestoGuardian s'engage à vous notifier dans les 72 heures, conformément aux obligations du RGPD. Un processus d'analyse post-incident est déclenché pour chaque incident de sévérité P0 et P1.

Conformité & Documentation légale

Cadre réglementaireRGPD (Règlement UE 2016/679) + Loi Informatique et Libertés
Rôle RestoGuardianSous-traitant au sens de l'art. 28 RGPD pour vos données employés
DPA disponibleAccord de traitement de données intégré aux CGU (/legal/dpa)
Rétention des logs13 mois — purge automatique quotidienne (art. 5.1.e RGPD)
Rétention données post-résiliation30 jours — puis suppression définitive
Export des donnéesSur demande avant résiliation — format CSV/JSON
Droit à l'oubliSuppression complète des données 30 jours après demande

Signaler une vulnérabilité

Si vous découvrez une vulnérabilité de sécurité dans RestoGuardian, merci de nous la signaler de manière responsable avant toute divulgation publique.

security@restoguardian.ioRéponse sous 48h · Politique de safe harbor

Dernière mise à jour : mai 2026