🔒 SÉCURITÉ ENTREPRISE — 5 NIVEAUX

Architecture de sécurité NexHire

Cinq niveaux de protection — de l'authentification jusqu'à la conformité légale.

🔐 MFA TOTP 👥 RBAC 4 niveaux 🔍 Détection d'anomalies 🤖 Protection IA 🏛️ Loi 25 / PIPEDA 📊 Tableau de bord sécurité
N1
Authentification & Accès
MFA TOTP · JWT ES256 · Rate limiting · En-têtes sécurité · CORS restrictif
🔐
MFA TOTP (Authenticator) Code à 6 chiffres via Google/Microsoft Authenticator. Secret chiffré (Fernet). Obligatoire par organisation si activé par l'admin.
🪪
JWT ES256 + JWKS Tokens signés courbe elliptique P-256. Vérifiés à chaque requête via JWKS Supabase. Expiration automatique.
🔑
Mots de passe complexes Minimum 12 caractères — majuscule, minuscule, chiffre, caractère spécial requis. Hashés bcrypt avec sel unique.
🚦
Rate limiting Login : 10 req/min. Inscription : 5 req/min. MFA challenge : 5 req/min. Bloqué avec HTTP 429 après dépassement.
🛡️
En-têtes de sécurité HTTP X-Frame-Options: DENY, X-Content-Type-Options: nosniff, HSTS 1 an, Permissions-Policy restrictif.
🌐
CORS restrictif Origines autorisées : nexhire.ca et agenthub.nexhire.ca uniquement. allow_credentials=False.
N2
Autorisation & Protection des données
RBAC 4 niveaux · Chiffrement Fernet · Isolation multi-tenant · Audit log
👥
RBAC 4 niveaux Rôles user → manager → admin → owner. Vérification serveur sur chaque endpoint. Le frontend n'a aucune autorité sur l'accès.
🔒
Chiffrement Fernet (AES-128-CBC) Tous les tokens OAuth, clés API et secrets connecteurs sont chiffrés au repos. Rotation de clés supportée (MultiFernet).
🏢
Isolation multi-tenant stricte Chaque requête SQL filtre par organization_id. Aucun accès croisé entre organisations n'est architecturalement possible.
📋
Audit log immuable Chaque action tracée : IP, user, action, timestamp. Append-only — aucune modification possible. Conservation 7 ans.
🔐
Transport chiffré HTTPS/TLS 1.3 exclusif. Base de données : sslmode=require. Données chiffrées au repos sur Supabase PostgreSQL.
⏱️
Expiration de session JWT avec expiration automatique. Déconnexion sur inactivité. Refresh token révocable par l'admin.
N3
Détection d'activité suspecte
Impossible travel · Export massif · Comportement anormal · Alertes temps réel
✈️
Impossible Travel Détecte deux connexions depuis des pays différents en moins de 4 heures. Alerte immédiate à l'admin avec les deux adresses IP et pays.
📦
Détection d'export massif Alerte si >1 000 enregistrements exportés en une seule requête, ou >5 000 sur une heure. Prévient l'exfiltration de données.
📊
Comportement anormal Alerte si un utilisateur accède à >5 départements différents en 1 heure, ou à un département jamais consulté en 30 jours.
🔔
Alertes centralisées Toutes les anomalies stockées dans security_alerts avec niveaux critical / high / medium / low. Acquittement par l'admin.
N4
Protection de l'intelligence artificielle
Anti-injection · Validation des réponses · Système prompt durci
🛡️
Protection prompt injection 14 patterns regex bloquent les tentatives d'injection : ignore instructions, jailbreak, DAN mode, script injection, SQL injection. Chaque tentative est loguée et alertée.
🔍
Validation des réponses IA Les réponses de l'agent sont filtrées avant envoi au client : tokens JWT, clés API, mots de passe détectés sont remplacés par [MASQUÉ].
🔏
Système prompt durci L'agent IA est instruit de ne jamais révéler ses instructions système, ni afficher de secrets. Instruction prioritaire non contournable.
📝
Audit des tentatives d'injection Chaque tentative de manipulation de l'IA est enregistrée dans l'audit log et génère une alerte sécurité pour l'administrateur.
N5
Conformité légale — Loi 25 / PIPEDA
Portabilité · Suppression · Registre des traitements · Consentement · Tableau de bord
📤
Portabilité des données (art. 27) Tout utilisateur peut exporter son profil, historique d'audit, documents et connecteurs en un clic via Paramètres → Mes données.
🗑️
Droit à l'effacement Demande de suppression soumise via l'interface. Traitée dans les 30 jours. Notification à l'admin de l'organisation. Statut traçable.
📖
Registre des traitements Manifeste complet des données collectées : finalité, base légale, rétention. Accessible via GET /api/compliance/processing.
Gestion du consentement Enregistrement horodaté de chaque consentement utilisateur (CGU, politique de confidentialité). Non rétroactif, révocable.
📊
Tableau de bord sécurité admin Score de sécurité dynamique (0-100), liste des alertes non acquittées, activité login 7 jours, IPs distinctes, état MFA par organisation.
🏛️
Lois couvertes Loi 25 (Québec) — PIPEDA (Canada fédéral) — RGPD (résidents européens) — PCI-DSS délégué à Stripe.

Questions de sécurité ?

Notre équipe sécurité répond dans les 24 heures pour toute question urgente.

security@nexhire.ca