Sécurité & durcissement
La sécurité est intégrée à chaque couche.
Authentification & chiffrement #
- JWT d'accès courts + refresh tokens opaques en cookie HttpOnly.
- Mots de passe en Argon2id ; données sensibles en AES-256-GCM.
Isolation #
- Bac à sable seccomp : les modules ne peuvent pas exécuter de processus (
execveinterdit). - Un schéma PostgreSQL par module ; aucune table hors périmètre.
- Routes internes protégées par
X-Internal-Secret; en-têtes HSTS / X-Frame-Options ; durcissement anti-DDoS.
Bonne pratique
Tout le code est libre (AGPLv3) et auditable. Gardez vos secrets hors des dépôts. Le secret de signature des jetons (jwt_secret) peut être changé à tout moment — cela déconnecte tout le monde, rien de plus. Les données chiffrées, elles, dépendent d'une clé distincte (/var/lib/kubuno/data.key) : si vous soupçonnez qu'elle a été faible ou exposée, renouvelez-la avec kubuno security:rekey, qui re-chiffre tout ce qu'elle protège. kubuno security:rekey --check vérifie, sans rien écrire, que l'instance sait encore lire ses propres secrets.