
- Ajout de tous les fichiers .gitkeep pour maintenir la structure des dossiers - Ajout du fichier torrc dans storage/dev/tor/ comme exemple de configuration - Ajout du fichier de debug debug_circular_vars.py - Ajout du test SDK test-multiple-files.js - Suppression du fichier .env.master obsolète - Ajout du workspace VS Code pour le développement Structure storage/ complétée: - bitcoin/ - Configuration Bitcoin - blindbit-oracle/ - Configuration Oracle - git/ - Configuration Git - grafana/ - Configuration Grafana + dashboards - ihm_client/ - Configuration client IHM - lecoffre-* - Configurations LeCoffre - loki/ - Configuration Loki - monitoring/ - Configuration monitoring - nginx/ - Configuration Nginx + workspace - promtail/ - Configuration Promtail - sdk_* - Configurations SDK - signer/ - Configuration signer - status/ - Configuration status - supervisor/ - Configuration supervisor - tor/ - Configuration Tor (avec torrc) Tous les fichiers sensibles restent protégés par .gitignore
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/<env>/_keys/
- Traitement des variables d'environnement en mémoire
- Protection contre les attaques de traversée de chemins
🚀 Fonctionnalités
Authentification
- ID utilisateur requis pour tous les accès
- Validation stricte : 3-128 caractères alphanumériques +
_
et-
- Clés uniques par combinaison utilisateur/environnement
- Support des clés longues (hash SHA256 des IDs utilisateur)
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.)
Variables d'environnement
- Résolution automatique des variables
$VAR
et${VAR}
- Résolution récursive des dépendances entre variables
- Chargement du fichier
.env
principal uniquement - Traitement en mémoire (fichiers originaux non modifiés)
- Protection contre les dépendances circulaires
📋 Endpoints
GET /health
Contrôle de santé avec authentification.
Headers requis :
X-User-ID: your_user_id
Réponse :
{
"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 /routes
Liste toutes les routes disponibles avec exemples de fichiers.
GET /<env>/<file>
Sert un fichier chiffré avec authentification utilisateur et variables d'environnement résolues.
Headers requis :
X-User-ID: your_user_id
Exemple :
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
# 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
# Démarrer l'API sécurisée
./start_api.sh
# Ou manuellement
source venv_api/bin/activate
python3 api_server.py
Test
# 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
- Compatibilité API/SDK avec
@noble/ciphers
Variables d'environnement
- Résolution automatique avant chiffrement
- Support des syntaxes
$VAR
et${VAR}
- Dépendances récursives résolues automatiquement
- Protection contre les boucles infinies
Stockage
- Isolation par environnement :
storage/<env>/_keys/
- Fichiers protégés dans
.gitignore
- Aucune clé côté client
📁 Structure
4NK_vault/
├── api_server.py # Serveur sécurisé principal avec EnvProcessor
├── 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 principales
│ │ ├── _keys/ # Clés utilisateur (auto-créé)
│ │ ├── bitcoin/ # Configurations avec variables résolues
│ │ ├── tor/ # Configurations avec variables résolues
│ │ └── [autres services]/
│ └── prod/
│ ├── _keys/ # Clés utilisateur (auto-créé)
│ └── [configurations]/
├── confs/ # Fichiers déchiffrés synchronisés (auto-créé)
│ ├── bitcoin/ # Configurations avec variables résolues
│ ├── tor/ # Configurations avec variables résolues
│ └── [autres services]/
├── sdk-client/ # Client TypeScript avec chiffrement
│ ├── src/
│ │ └── index.ts # Client sécurisé avec @noble/ciphers
│ ├── examples/
│ │ └── usage.ts # Scénario complet 5 étapes
│ ├── .env # Configuration SDK (VAULT_USER, VAULT_KEY, VAULT_ENV)
│ └── dist/ # Code compilé TypeScript
└── 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.
Description
Languages
TypeScript
32.8%
JavaScript
30.1%
Python
19.3%
Shell
17.8%