128 lines
4.7 KiB
Markdown
128 lines
4.7 KiB
Markdown
# Documentation 4NK Vault - Système Sécurisé
|
|
|
|
Bienvenue dans la documentation complète du projet 4NK Vault, un système de stockage sécurisé avec authentification par clés utilisateur et chiffrement quantique résistant.
|
|
|
|
## 📚 Documentation disponible
|
|
|
|
### 🚀 [Guide principal](../README.md)
|
|
Vue d'ensemble du projet, architecture sécurisée et utilisation avec authentification.
|
|
|
|
### 🔧 [Spécification API](api-specification.md)
|
|
Spécification technique complète de l'API REST sécurisée avec authentification par clés utilisateur.
|
|
|
|
### 📋 [Spécification OpenAPI](api-specification-openapi.yaml)
|
|
Spécification OpenAPI 3.0.3 complète avec tous les endpoints, schémas et exemples.
|
|
|
|
### 📖 [Référence API](api-reference.md)
|
|
Référence complète des endpoints sécurisés, paramètres, réponses et codes d'erreur.
|
|
|
|
### 🛡️ [Modèle de sécurité](security-model.md)
|
|
Architecture de sécurité, authentification par clés utilisateur, rotation automatique et bonnes pratiques.
|
|
|
|
### 🚀 [Guide de déploiement](deployment-guide.md)
|
|
Instructions complètes pour déployer le système sécurisé en développement et production.
|
|
|
|
### 💻 [Documentation SDK](sdk-documentation.md)
|
|
Documentation complète du SDK TypeScript sécurisé avec exemples et API reference.
|
|
|
|
### 🔧 [Variables d'environnement](environment-variables.md)
|
|
Traitement automatique des variables d'environnement avec résolution récursive et protection contre les boucles infinies.
|
|
|
|
## 🔐 Sécurité Avancée
|
|
|
|
### Authentification par clés utilisateur
|
|
- **ID utilisateur obligatoire** pour tous les accès
|
|
- **Clés individuelles** par utilisateur et environnement
|
|
- **Rotation automatique** des clés toutes les heures
|
|
- **Stockage sécurisé** dans `storage/<env>/_keys/`
|
|
|
|
### Chiffrement quantique résistant
|
|
- **ChaCha20-Poly1305** pour le chiffrement
|
|
- **HTTPS obligatoire** pour toutes les communications
|
|
- **Métadonnées sécurisées** avec timestamps et versions de clés
|
|
- **Compatibilité API/SDK** avec `@noble/ciphers`
|
|
|
|
### Variables d'environnement
|
|
- **Résolution automatique** des variables `$VAR` et `${VAR}`
|
|
- **Traitement en mémoire** (fichiers originaux non modifiés)
|
|
- **Protection contre les boucles** infinies
|
|
|
|
## 🎯 Démarrage rapide
|
|
|
|
### Installation et test
|
|
|
|
```bash
|
|
# 1. Installation des dépendances
|
|
cd 4NK_vault
|
|
python3 -m venv venv_api
|
|
source venv_api/bin/activate
|
|
pip install -r requirements.txt
|
|
|
|
# 2. Démarrage de l'API sécurisée
|
|
./start_api.sh
|
|
|
|
# 3. Test avec authentification
|
|
curl -k -H "X-User-ID: <VAULT_USER_ID>" https://127.0.0.1:6666/health
|
|
```
|
|
|
|
### Utilisation avec le SDK TypeScript
|
|
|
|
```typescript
|
|
import { SecureVaultClient } from '@4nk/vault-sdk';
|
|
|
|
// Création du client (charge automatiquement le .env)
|
|
const client = new SecureVaultClient();
|
|
|
|
// Récupération d'un fichier avec variables résolues
|
|
const file = await client.getFile('dev', 'bitcoin/bitcoin.conf');
|
|
console.log(file.content); // Contenu déchiffré avec variables résolues
|
|
|
|
// Synchronisation locale
|
|
const syncResult = await client.syncLocalFiles({
|
|
environment: 'dev',
|
|
localDir: '../confs'
|
|
});
|
|
```
|
|
|
|
## 🔑 Gestion des clés
|
|
|
|
### Structure des clés par environnement
|
|
```
|
|
storage/
|
|
├── dev/
|
|
│ └── _keys/
|
|
│ └── keys.json # Clés pour l'environnement DEV
|
|
└── prod/
|
|
└── _keys/
|
|
└── keys.json # Clés pour l'environnement PROD
|
|
```
|
|
|
|
### Rotation automatique
|
|
- **Déclenchement** : Toutes les heures automatiquement
|
|
- **Transition** : Ancienne clé conservée pour compatibilité
|
|
- **Logs** : Traçabilité complète des rotations
|
|
|
|
## ⚠️ Avertissements de sécurité
|
|
|
|
Voir [SECURITY_NOTICE.md](../SECURITY_NOTICE.md) pour les détails sur :
|
|
- Les limitations de sécurité en mode démonstration
|
|
- Les recommandations pour la production
|
|
- L'implémentation d'un échange de clés sécurisé
|
|
|
|
## 📋 Navigation par cas d'usage
|
|
|
|
### Je veux...
|
|
- **[Comprendre la sécurité](security-model.md)** → Modèle de sécurité complet
|
|
- **[Utiliser l'API](api-reference.md)** → Référence des endpoints sécurisés
|
|
- **[Voir la spécification complète](api-specification.md)** → Spécification technique détaillée
|
|
- **[Utiliser OpenAPI](api-specification-openapi.yaml)** → Spécification OpenAPI 3.0.3
|
|
- **[Développer avec le SDK](sdk-documentation.md)** → SDK TypeScript sécurisé
|
|
- **[Comprendre les variables d'environnement](environment-variables.md)** → Traitement automatique des variables
|
|
- **[Déployer en production](deployment-guide.md)** → Guide de déploiement sécurisé
|
|
|
|
## 🔗 Liens utiles
|
|
|
|
- **Repository** : [git.4nkweb.com:4nk/4NK_vault.git](https://git.4nkweb.com:4nk/4NK_vault.git)
|
|
- **Domaine** : vault.4nkweb.com:6666
|
|
- **Protocole** : HTTPS uniquement
|
|
- **Authentification** : Header `X-User-ID` obligatoire |