feat(docs): add comprehensive technical documentation for Memegoat
Includes detailed sections on architecture, stack, data model, security measures, deployment procedures, compliance (GDPR), and API integrations.
This commit is contained in:
26
documentation/content/docs/security.mdx
Normal file
26
documentation/content/docs/security.mdx
Normal file
@@ -0,0 +1,26 @@
|
||||
---
|
||||
title: Sécurité
|
||||
description: Mesures de sécurité implémentées
|
||||
---
|
||||
|
||||
## 🔐 Sécurité
|
||||
|
||||
### Protection des Données (At Rest)
|
||||
|
||||
- **Chiffrement PGP Natif** : Les données identifiantes (PII) comme l'email, le nom d'affichage et le **secret 2FA** sont chiffrées dans PostgreSQL via `pgcrypto` (`pgp_sym_encrypt`). Les clés de déchiffrement ne sont jamais stockées en base de données.
|
||||
- **Hachage aveugle (Blind Indexing)** : Pour permettre la recherche et l'unicité sur les données chiffrées (comme l'email), un hash non réversible (SHA-256) est stocké séparément (`email_hash`).
|
||||
- **Hachage des mots de passe** : Utilisation d'**Argon2id** (via `@node-rs/argon2`), configuré selon les recommandations de l'ANSSI pour résister aux attaques par force brute et par table de correspondance.
|
||||
|
||||
### Sécurité des Communications (In Transit)
|
||||
|
||||
- **TLS 1.3** : Assuré par le reverse proxy **Caddy** avec renouvellement automatique des certificats Let's Encrypt.
|
||||
- **Protocoles d'Authentification** :
|
||||
- **Sessions (JWT)** : Les jetons de rafraîchissement (`refresh_token`) sont stockés de manière sécurisée en base de données. L'IP de l'utilisateur est hachée (`ip_hash`) pour concilier sécurité et respect de la vie privée.
|
||||
- **API Keys** : Les clés API sont hachées en base de données (**SHA-256**) via la colonne `key_hash`. Seul un préfixe est conservé en clair pour l'identification.
|
||||
|
||||
### Infrastructure & Défense
|
||||
|
||||
- **Rate Limiting** : Protection contre le brute-force et le déni de service (DoS).
|
||||
- **CORS Policy** : Restriction stricte des origines autorisées.
|
||||
- **RBAC (Role Based Access Control)** : Gestion granulaire des permissions avec une structure complète de rôles et de permissions liées (`roles`, `permissions`, `roles_to_permissions`).
|
||||
- **Audit Logs** : Traçabilité complète des actions sensibles via la table `audit_logs`. Elle enregistre l'action, l'entité concernée, les détails au format JSONB, ainsi que l'IP hachée et le User-Agent pour l'imputabilité.
|
||||
Reference in New Issue
Block a user