# 4NK Vault API - Système Sécurisé API HTTPS sécurisée avec authentification par clés utilisateur et chiffrement quantique résistant. ## 🔐 Sécurité Avancée - **HTTPS obligatoire** sur le port 6666 - **Authentification par ID utilisateur** (header `X-User-ID`) - **Clés individuelles par utilisateur ET par environnement** - **Rotation automatique des clés** (toutes les heures) - **Chiffrement quantique résistant** (ChaCha20-Poly1305) - **Stockage sécurisé** dans `storage//_keys/` ## 🚀 Fonctionnalités ### Authentification - **ID utilisateur requis** pour tous les accès - **Validation stricte** : 3-50 caractères alphanumériques + `_` et `-` - **Clés uniques** par combinaison utilisateur/environnement ### Gestion des clés - **Génération automatique** de clés de 32 bytes - **Rotation automatique** toutes les heures - **Sauvegarde de l'ancienne clé** pour compatibilité - **Isolation par environnement** (dev, prod, etc.) ## 📋 Endpoints ### `GET /health` Contrôle de santé avec authentification. **Headers requis :** ``` X-User-ID: your_user_id ``` **Réponse :** ```json { "status": "healthy", "service": "vault-api-secure", "encryption": "quantum-resistant", "algorithm": "X25519-ChaCha20-Poly1305", "authentication": "user-key-based", "key_rotation": "automatic", "user_id": "your_user_id", "timestamp": "2024-01-01T00:00:00" } ``` ### `GET /info` Informations sur l'API avec authentification. ### `GET //` Sert un fichier chiffré avec authentification utilisateur. **Headers requis :** ``` X-User-ID: your_user_id ``` **Exemple :** ```bash curl -k -H "X-User-ID: demo_user_001" https://vault.4nkweb.com:6666/dev/bitcoin/bitcoin.conf ``` ## 🔧 Installation et utilisation ### Prérequis - Python 3.8+ - pip ### Installation ```bash # Cloner le repository git clone https://git.4nkweb.com:4nk/4NK_vault.git cd 4NK_vault # Créer l'environnement virtuel python3 -m venv venv_api source venv_api/bin/activate # Installer les dépendances pip install -r requirements.txt ``` ### Démarrage ```bash # Démarrer l'API sécurisée ./start_api.sh # Ou manuellement source venv_api/bin/activate python3 api_server.py ``` ### Test ```bash # Tester l'API sécurisée python3 test_api.py ``` ## 🔐 Sécurité ### Authentification - **ID utilisateur obligatoire** pour tous les accès - **Validation stricte** des caractères autorisés - **Rejet automatique** des requêtes non authentifiées ### Chiffrement - **Clés individuelles** par utilisateur et environnement - **ChaCha20-Poly1305** (quantum-résistant) - **Rotation automatique** des clés - **Métadonnées sécurisées** dans le payload ### Stockage - **Isolation par environnement** : `storage//_keys/` - **Fichiers protégés** dans `.gitignore` - **Aucune clé côté client** ## 📁 Structure ``` 4NK_vault/ ├── api_server.py # Serveur sécurisé principal ├── start_api.sh # Script de démarrage sécurisé ├── test_api.py # Tests de l'API sécurisée ├── requirements.txt # Dépendances Python ├── SECURITY_NOTICE.md # Avertissements de sécurité ├── storage/ # Fichiers de configuration (lecture seule) │ ├── dev/ │ │ ├── .env # Variables d'environnement │ │ ├── _keys/ # Clés utilisateur (auto-créé) │ │ └── bitcoin/ │ └── prod/ │ ├── _keys/ # Clés utilisateur (auto-créé) │ └── bitcoin/ ├── sdk-client/ # Client TypeScript │ ├── src/ │ │ ├── index.ts # Client original (déprécié) │ │ └── secure-client.ts # Client sécurisé │ └── examples/ └── docs/ # Documentation complète ``` ## 🌐 Domaine L'API est configurée pour fonctionner sur le domaine `vault.4nkweb.com` avec des certificats SSL auto-signés pour la démonstration. En production, utilisez des certificats SSL valides et implémentez un échange de clés sécurisé. ## ⚠️ Avertissements Voir `SECURITY_NOTICE.md` pour les détails sur les limitations de sécurité en mode démonstration.