4NK_vault/SECURITY_NOTICE.md

80 lines
2.5 KiB
Markdown

# ⚠️ AVIS DE SÉCURITÉ - 4NK Vault
## 🚨 Problème de sécurité résolu
### Problème identifié
La clé de démonstration `<DEMO_KEY_PLACEHOLDER>` é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é)
```typescript
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é)
```typescript
const client = new VaultClient({
baseUrl: 'https://vault.4nkweb.com:6666',
verifySsl: false,
timeout: 15000
}, '<OLD_DEMO_KEY_PLACEHOLDER>'); // 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