Sécurité & Protection des données
Architecture de sécurité GoLynk : 5 couches de protection, chiffrement, conformité nLPD/RGPD et hébergement européen.
Sur cette page
Architecture de sécurité en 5 couches
GoLynk implémente une défense en profondeur (defense in depth) avec 5 couches de sécurité indépendantes. Même si une couche est compromise, les suivantes protègent vos données.
Couche Authentification
Supabase Auth avec email + mot de passe haché (bcrypt). Tokens JWT signés (expiration 1h). Captcha Turnstile (Cloudflare) à la connexion. Vérification email à l'inscription.
Couche Chiffrement
HTTPS/TLS 1.3 pour tout le trafic réseau. AES-256-GCM pour les données sensibles au repos (messages, clés bancaires, coffre-fort). Clés de chiffrement dérivées par compte.
Couche Isolation (RLS)
PostgreSQL Row Level Security : chaque requête est automatiquement filtrée par company_id. Un utilisateur ne peut jamais accéder aux données d'un autre compte, même via l'API.
Couche Permissions
Contrôle d'accès basé sur les rôles (RBAC) : Admin / Écriture / Lecture / Aucun par module. Vérification côté serveur (Edge Functions) et côté client (UI conditionnelle).
Couche Surveillance
Journaux de connexion horodatés avec IP et User-Agent. Détection d'anomalies (connexions depuis de nouvelles IP). Rate limiting sur l'API. Alertes email en cas d'activité suspecte.
Chiffrement des données
Données en transit
Toutes les communications entre votre navigateur et les serveurs GoLynk sont chiffrées avec HTTPS / TLS 1.3. Les certificats sont gérés automatiquement par Cloudflare avec renouvellement automatique.
Données au repos — données sensibles
Les données particulièrement sensibles sont chiffrées avec AES-256-GCM avant d'être stockées en base de données :
| Donnée | Emplacement |
|---|---|
| Messages de la messagerie interne | Chiffrement E2E côté client avant envoi |
| Données du coffre-fort (IBAN, clés API externes) | Chiffrement AES-GCM avec clé dérivée du PIN utilisateur |
| Identifiants SMTP | Chiffrement AES-GCM côté serveur (Edge Function) |
| Token Revolut / clé Stripe | Chiffrement AES-GCM côté serveur (Edge Function) |
Mots de passe
Les mots de passe administrateurs sont hachés avec bcrypt (facteur de coût adaptatif) via Supabase Auth. Les PINs employés sont hachés avec PBKDF2 (choix technique pour compatibilité avec l'environnement Deno des Edge Functions sans délais excessifs). Aucun mot de passe n'est jamais stocké en clair.
Authentification & Sessions
Tokens JWT
Après connexion réussie, un token JWT signé est émis avec une durée de validité de 1 heure. Le token est renouvelé automatiquement en cas d'activité (refresh token de 7 jours). Chaque token contient : l'identifiant utilisateur, son rôle, l'identifiant de la société, l'horodatage d'expiration.
Empreinte de session
Lors de la connexion, GoLynk enregistre une empreinte de la session (adresse IP + User-Agent). Si une requête API provient d'une IP ou d'un navigateur significativement différent de l'empreinte enregistrée, une vérification supplémentaire peut être déclenchée.
Révocation des sessions
L'administrateur peut révoquer toutes les sessions actives d'un utilisateur depuis Paramètres → Sécurité → Sessions actives. En cas de perte d'appareil ou de compromission suspectée, la révocation est immédiate et invalide tous les tokens en cours.
Isolation des données (Row Level Security)
GoLynk utilise la fonctionnalité Row Level Security (RLS) de PostgreSQL pour garantir l'isolation totale des données entre les différents comptes.
Fonctionnement
Chaque enregistrement en base de données possède un champ company_id lié au compte propriétaire. Les policies RLS définissent que toute requête SELECT, INSERT, UPDATE, DELETE est automatiquement filtrée par le company_id du token JWT en cours. Il est techniquement impossible pour un utilisateur d'accéder aux données d'un autre compte.
Double authentification (2FA)
GoLynk supporte deux mécanismes de double authentification :
Turnstile (Cloudflare)
Le captcha Cloudflare Turnstile est requis à chaque connexion. Contrairement aux reCAPTCHA traditionnels, Turnstile est non-intrusif (invisible ou avec défi minimal) et protège contre les attaques automatisées.
TOTP (Authenticator apps)
La double authentification TOTP (Time-based One-Time Password) peut être activée depuis Paramètres → Sécurité → Authentification à deux facteurs. Compatible avec Google Authenticator, Authy, 1Password, et toute application TOTP standard (RFC 6238).
Journaux d'audit
GoLynk enregistre les événements de sécurité importants dans une table d'audit (login_audit_logs) accessible depuis Paramètres → Sécurité → Journaux.
Événements journalisés
| Événement | Informations enregistrées |
|---|---|
| Connexion réussie | IP, User-Agent, horodatage, type de connexion (admin/employé) |
| Tentative échouée | IP, raison (mauvais mot de passe / PIN / TOTP), horodatage |
| Déconnexion | IP, horodatage, déconnexion manuelle ou expiration |
| Appel API | Clé utilisée (préfixe seulement), endpoint, IP, code HTTP retourné |
| Accès coffre-fort | Horodatage, IP, succès/échec du déverrouillage |
| Changement de permissions | Qui a modifié quoi sur quel employé |
Hébergement & Infrastructure
| Composant | Fournisseur | Localisation |
|---|---|---|
| Frontend (HTML/JS) | Cloudflare Pages | Europe (CDN mondial) |
| Base de données (PostgreSQL) | Supabase | Europe (AWS eu-west-1) |
| Edge Functions | Supabase / Deno | Europe (AWS eu-west-1) |
| Stockage fichiers | Supabase Storage | Europe (AWS eu-west-1) |
| Protection DDoS / WAF | Cloudflare | Global |
Conformité légale
nLPD — Loi suisse sur la protection des données
GoLynk est conforme à la nouvelle Loi fédérale sur la protection des données (nLPD), entrée en vigueur le 1er septembre 2023 en Suisse. Cela inclut : droit d'accès aux données, droit à l'oubli (suppression du compte sur demande), journalisation des traitements, privacy by design.
RGPD — Règlement européen
GoLynk respecte également le Règlement Général sur la Protection des Données (RGPD/GDPR) applicable aux utilisateurs résidant dans l'UE. Les données sont traitées sur la base d'intérêts légitimes (exécution d'un contrat) et/ou du consentement explicite de l'utilisateur.
Vos droits
| Droit | Comment l'exercer |
|---|---|
| Droit d'accès | Export complet depuis Paramètres → Sauvegardes |
| Droit de rectification | Modifiable directement dans l'application |
| Droit à l'effacement | Suppression du compte sur demande via support@golynk.ch |
| Droit à la portabilité | Export JSON depuis Paramètres → Sauvegardes |
| Droit d'opposition | Contactez support@golynk.ch |