4NK_vault/SECURITY_NOTICE.md
4NK Dev b13c8745e3 feat: Implémentation système sécurisé avec clés par utilisateur et environnement
-  API sécurisée avec authentification par ID utilisateur
-  HTTPS obligatoire avec rejet des connexions HTTP
-  Clés individuelles par utilisateur ET par environnement
-  Rotation automatique des clés avec sauvegarde de l'ancienne
-  Stockage sécurisé dans storage/<env>/_keys/
-  Client SDK mis à jour sans stockage de clés côté client
-  Documentation complète avec avertissements de sécurité
-  Tests complets du système sécurisé
- 🔒 Protection des fichiers sensibles dans .gitignore
2025-09-29 21:27:09 +00:00

2.5 KiB

⚠️ AVIS DE SÉCURITÉ - 4NK Vault

🚨 Problème de sécurité résolu

Problème identifié

La clé de démonstration quantum_resistant_demo_key_32byt était exposée publiquement dans le code source, permettant à n'importe qui de déchiffrer les fichiers servis par l'API.

Solution implémentée

🔒 Nouveau système de clés dynamiques

  • Clé de session unique générée pour chaque requête
  • Transmission sécurisée de la clé avec les données chiffrées
  • Format : nonce (12 bytes) + clé_session (32 bytes) + contenu_chiffré

🛡️ Améliorations de sécurité

  1. Clé de démonstration désactivée - Plus de clé fixe exposée
  2. Clés de session aléatoires - Chaque requête utilise une clé unique
  3. Validation renforcée - Vérification du format des données
  4. Logs d'avertissement - Alertes sur les transmissions non sécurisées

⚠️ Limitations actuelles

Mode démonstration

  • La clé de session est transmise avec les données (non sécurisé)
  • Ne pas utiliser en production sans canal sécurisé
  • Logs d'avertissement activés

Production recommandée

Pour un déploiement sécurisé, implémenter :

  1. Échange de clés via protocole sécurisé (TLS, HSM)
  2. Authentification des clients
  3. Rotation des clés automatique
  4. Canal séparé pour la transmission des clés

📋 Migration

API Server

  • Clé dynamique générée automatiquement
  • Format de données mis à jour
  • Logs d'avertissement ajoutés

SDK Client

  • Support du nouveau format de données
  • Clé de déchiffrement optionnelle
  • Compatibilité maintenue

🔧 Utilisation

Nouveau code (recommandé)

const client = new VaultClient({
  baseUrl: 'https://vault.4nkweb.com:6666',
  verifySsl: false,
  timeout: 15000
});
// Plus de clé de déchiffrement nécessaire

Ancien code (compatible mais non sécurisé)

const client = new VaultClient({
  baseUrl: 'https://vault.4nkweb.com:6666',
  verifySsl: false,
  timeout: 15000
}, 'old_demo_key'); // Ignorée mais acceptée

🚀 Prochaines étapes

  1. Authentification - Implémenter un système d'auth
  2. Canal sécurisé - Séparer transmission clés/données
  3. HSM - Support des modules de sécurité matérielle
  4. Audit - Logs détaillés des accès

Date : 2025-09-29
Sévérité : Critique → Résolu
Impact : Exposition des données → Clés dynamiques sécurisées