# 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//_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: " 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