
- ✅ 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
80 lines
2.5 KiB
Markdown
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 `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é)
|
|
```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'); // 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
|