diff --git a/.cursorignore b/.cursorignore index 20848db..d07058b 100644 --- a/.cursorignore +++ b/.cursorignore @@ -1,23 +1,79 @@ -# PROTECTION COMPLÈTE - Empêcher l'accès Docker à storage/ -**/__pycache__/ -**/storage/ -**/dist/ -**/node_modules/ -**/package-lock.json* -**/yarn.lock* +# 4NK Environment - Git Ignore +# ============================ +confs/ +# Dossiers de sauvegarde des scripts +**/backup/ +**/*backup* -# Variables d'environnement (protection renforcée) -**/.env* -**/.toml* -**/.conf* -**/.yaml* -**/.yml* -**/.ini* -**/.json* -**/.crt* -**/.key* -**/.pem* +**/.cargo/ -# Clés utilisateur et données sensibles -**/_keys/ -**/keys.json* +# Fichiers temporaires +**/*.tmp* +**/*.temp* +**/*.log* +**/*.pid* + +# Fichiers de configuration locale +**/*.env* +**/*.conf* +**/*.yaml* +**/*.yml* +**/*.ini* +**/*.json* +**/*.toml* +**/*.lock* + +# Données et logs +**/*.logs* +**/*.data +*.db +*.sqlite + +# Certificats et clés +**/*.key +**/*.pem +**/*.crt +**/*.p12 +**/*.pfx +ssl/ +certs/ + +# Docker +**/*.docker* + +# Cache et build +**/*.node_modules/ +**/*.dist/ +**/*build/ +**/*target/ +**/*.*.o +**/*.so +**/*.dylib + +# IDE et éditeurs +**/*.vscode/ +**/*.idea/ +**/*.swp +**/*.swo +**/*~ + +# OS +**/*.DS_Store +**/*Thumbs.db +**/*tmp* + +# Git +**/*.git/ +**/*.orig* + +# Backup des projets existants +**/*backup* + + +**/*wallet* +**/*keys* + +**/*node_modules* +**/*cursor* +**/*pid* +**/*next* \ No newline at end of file diff --git a/.dockerignore b/.dockerignore index 20848db..d07058b 100644 --- a/.dockerignore +++ b/.dockerignore @@ -1,23 +1,79 @@ -# PROTECTION COMPLÈTE - Empêcher l'accès Docker à storage/ -**/__pycache__/ -**/storage/ -**/dist/ -**/node_modules/ -**/package-lock.json* -**/yarn.lock* +# 4NK Environment - Git Ignore +# ============================ +confs/ +# Dossiers de sauvegarde des scripts +**/backup/ +**/*backup* -# Variables d'environnement (protection renforcée) -**/.env* -**/.toml* -**/.conf* -**/.yaml* -**/.yml* -**/.ini* -**/.json* -**/.crt* -**/.key* -**/.pem* +**/.cargo/ -# Clés utilisateur et données sensibles -**/_keys/ -**/keys.json* +# Fichiers temporaires +**/*.tmp* +**/*.temp* +**/*.log* +**/*.pid* + +# Fichiers de configuration locale +**/*.env* +**/*.conf* +**/*.yaml* +**/*.yml* +**/*.ini* +**/*.json* +**/*.toml* +**/*.lock* + +# Données et logs +**/*.logs* +**/*.data +*.db +*.sqlite + +# Certificats et clés +**/*.key +**/*.pem +**/*.crt +**/*.p12 +**/*.pfx +ssl/ +certs/ + +# Docker +**/*.docker* + +# Cache et build +**/*.node_modules/ +**/*.dist/ +**/*build/ +**/*target/ +**/*.*.o +**/*.so +**/*.dylib + +# IDE et éditeurs +**/*.vscode/ +**/*.idea/ +**/*.swp +**/*.swo +**/*~ + +# OS +**/*.DS_Store +**/*Thumbs.db +**/*tmp* + +# Git +**/*.git/ +**/*.orig* + +# Backup des projets existants +**/*backup* + + +**/*wallet* +**/*keys* + +**/*node_modules* +**/*cursor* +**/*pid* +**/*next* \ No newline at end of file diff --git a/.gitignore b/.gitignore index 1dbe92e..d07058b 100644 --- a/.gitignore +++ b/.gitignore @@ -1,26 +1,79 @@ -# PROTECTION COMPLÈTE - Empêcher l'accès Docker à storage/ -**/__pycache__/ -**/storage/ -**/dist/ -**/node_modules/ -**/package-lock.json* -**/yarn.lock* +# 4NK Environment - Git Ignore +# ============================ +confs/ +# Dossiers de sauvegarde des scripts +**/backup/ +**/*backup* -# Variables d'environnement (protection renforcée) -**/.env* -**/.toml* -**/.conf* -**/.yaml* -**/.yml* -**/.ini* -**/.json* -**/.crt* -**/.key* -**/.pem* +**/.cargo/ -# Clés utilisateur et données sensibles -**/_keys/ -**/keys.json* +# Fichiers temporaires +**/*.tmp* +**/*.temp* +**/*.log* +**/*.pid* -# Dossiers de synchronisation de test -**/confs*/ +# Fichiers de configuration locale +**/*.env* +**/*.conf* +**/*.yaml* +**/*.yml* +**/*.ini* +**/*.json* +**/*.toml* +**/*.lock* + +# Données et logs +**/*.logs* +**/*.data +*.db +*.sqlite + +# Certificats et clés +**/*.key +**/*.pem +**/*.crt +**/*.p12 +**/*.pfx +ssl/ +certs/ + +# Docker +**/*.docker* + +# Cache et build +**/*.node_modules/ +**/*.dist/ +**/*build/ +**/*target/ +**/*.*.o +**/*.so +**/*.dylib + +# IDE et éditeurs +**/*.vscode/ +**/*.idea/ +**/*.swp +**/*.swo +**/*~ + +# OS +**/*.DS_Store +**/*Thumbs.db +**/*tmp* + +# Git +**/*.git/ +**/*.orig* + +# Backup des projets existants +**/*backup* + + +**/*wallet* +**/*keys* + +**/*node_modules* +**/*cursor* +**/*pid* +**/*next* \ No newline at end of file diff --git a/README.md b/README.md index bc8bdae..4978d8a 100644 --- a/README.md +++ b/README.md @@ -74,7 +74,7 @@ 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 +curl -k -H "X-User-ID: " "$VAULT_URL"/dev/bitcoin/bitcoin.conf ``` ## 🔧 Installation et utilisation @@ -171,11 +171,13 @@ python3 test_api.py └── docs/ # Documentation complète ``` -## 🌐 Domaine +## 🌐 Intégration dans l'environnement 4NK -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é. +Ce module s'intègre au déploiement global 4NK via une URL de base configurable (variable `VAULT_URL`). +Consultez les documents centraux pour le contexte et l'orchestration: +- `docs/DEEP_ARCHITECTURE_ANALYSIS.md` +- `docs/TECHNICAL_REFERENCE.md` +- `docs/DEPLOYMENT_GUIDE.md` ## ⚠️ Avertissements diff --git a/SECURITY_NOTICE.md b/SECURITY_NOTICE.md index 1ffa072..926f435 100644 --- a/SECURITY_NOTICE.md +++ b/SECURITY_NOTICE.md @@ -3,7 +3,7 @@ ## 🚨 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. +La clé de démonstration `` é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 @@ -62,7 +62,7 @@ const client = new VaultClient({ baseUrl: 'https://vault.4nkweb.com:6666', verifySsl: false, timeout: 15000 -}, 'old_demo_key'); // Ignorée mais acceptée +}, ''); // Ignorée mais acceptée ``` ### 🚀 **Prochaines étapes** @@ -74,6 +74,6 @@ const client = new VaultClient({ --- -**Date** : 2025-09-29 -**Sévérité** : Critique → Résolu +**Date** : 2025-09-29 +**Sévérité** : Critique → Résolu **Impact** : Exposition des données → Clés dynamiques sécurisées diff --git a/docs/api-specification.md b/docs/api-specification.md index 662da38..5380765 100644 --- a/docs/api-specification.md +++ b/docs/api-specification.md @@ -21,7 +21,7 @@ L'API 4NK Vault Secure est un système de stockage sécurisé avec authentificat ### Format de l'ID utilisateur - **Longueur** : 3-128 caractères - **Caractères autorisés** : `a-zA-Z0-9_-` -- **Exemple** : `demo_user_001` +- **Exemple** : `` ### Header requis ```http @@ -180,7 +180,7 @@ X-User-ID: your_user_id **Exemple d'utilisation :** ```bash -curl -k -H "X-User-ID: demo_user_001" \ +curl -k -H "X-User-ID: " \ https://vault.4nkweb.com:6666/dev/bitcoin/bitcoin.conf \ --output bitcoin.conf.encrypted ``` @@ -308,32 +308,32 @@ rpcport=8332 ### Test de connectivité ```bash -curl -k -H "X-User-ID: demo_user_001" \ +curl -k -H "X-User-ID: " \ https://vault.4nkweb.com:6666/health ``` ### Récupération d'informations ```bash -curl -k -H "X-User-ID: demo_user_001" \ +curl -k -H "X-User-ID: " \ https://vault.4nkweb.com:6666/info ``` ### Liste des routes disponibles ```bash -curl -k -H "X-User-ID: demo_user_001" \ +curl -k -H "X-User-ID: " \ https://vault.4nkweb.com:6666/routes ``` ### Récupération d'un fichier ```bash -curl -k -H "X-User-ID: demo_user_001" \ +curl -k -H "X-User-ID: " \ https://vault.4nkweb.com:6666/dev/bitcoin/bitcoin.conf \ --output bitcoin.conf.encrypted ``` ### Récupération avec sauvegarde de la clé suivante ```bash -curl -k -H "X-User-ID: demo_user_001" \ +curl -k -H "X-User-ID: " \ https://vault.4nkweb.com:6666/dev/tor/torrc \ --output torrc.encrypted \ --dump-header headers.txt diff --git a/docs/index.md b/docs/index.md index acd0b54..a6385d6 100644 --- a/docs/index.md +++ b/docs/index.md @@ -62,7 +62,7 @@ pip install -r requirements.txt ./start_api.sh # 3. Test avec authentification -curl -k -H "X-User-ID: demo_user_001" https://127.0.0.1:6666/health +curl -k -H "X-User-ID: " https://127.0.0.1:6666/health ``` ### Utilisation avec le SDK TypeScript diff --git a/sdk-client/README.md b/sdk-client/README.md index eaf7e29..317fb96 100644 --- a/sdk-client/README.md +++ b/sdk-client/README.md @@ -40,8 +40,8 @@ Le SDK peut être configuré automatiquement via un fichier `.env` : ```bash # .env -VAULT_USER=demo_user_001 -VAULT_KEY=JYyybYFXe9hghRI9d1mpoQ1uYYxpt/6lzYPOWrxruG0= +VAULT_USER= +VAULT_KEY= VAULT_ENV=dev VAULT_CONFS_DIR=../confs # Dossier de destination pour les fichiers synchronisés ``` @@ -54,7 +54,7 @@ VAULT_CONFS_DIR=../confs # Dossier de destination pour les fichiers synchronis | `VAULT_KEY` | Clé de déchiffrement (gérée automatiquement) | ✅ | - | | `VAULT_ENV` | Environnement par défaut | ✅ | - | | `VAULT_CONFS_DIR` | Dossier de destination pour les fichiers synchronisés | ❌ | `../confs` | -| `VAULT_URL` | URL de l'API Vault | ❌ | `https://vault.4nkweb.com:6666` | +| `VAULT_URL` | URL de l'API Vault | ❌ | `` | #### Chargement automatique des variables d'environnement @@ -75,9 +75,9 @@ import { SecureVaultClient } from '@4nk/vault-sdk'; // Configuration manuelle const client = new SecureVaultClient({ - baseUrl: 'https://vault.4nkweb.com:6666', - userId: 'demo_user_001', - vaultKey: 'base64-encoded-key', + baseUrl: process.env.VAULT_URL ?? '', + userId: '', + vaultKey: '', environment: 'dev', verifySsl: false // Pour les certificats auto-signés }); @@ -110,9 +110,9 @@ try { import { SecureVaultClient } from '@4nk/vault-sdk'; const client = new SecureVaultClient({ - baseUrl: 'https://vault.4nkweb.com:6666', - userId: 'demo_user_001', - vaultKey: 'your-base64-key', + baseUrl: process.env.VAULT_URL ?? '', + userId: '', + vaultKey: '', environment: 'dev', verifySsl: false, // Pour les certificats auto-signés timeout: 10000 // 10 secondes @@ -239,10 +239,10 @@ try { // ✅ Utiliser HTTPS en production const client = new SecureVaultClient({ - baseUrl: 'https://vault.4nkweb.com:6666', + baseUrl: process.env.VAULT_URL ?? '', verifySsl: true, // Activer la validation SSL - userId: 'your-user-id', - vaultKey: 'your-base64-key', + userId: '', + vaultKey: '', environment: 'prod' }); @@ -314,8 +314,8 @@ const syncResult = await client.syncLocalFiles({ ```typescript const client = new SecureVaultClient({ baseUrl: 'https://vault.4nkweb.com:6666', - userId: 'demo_user_001', - vaultKey: 'your-key', + userId: '', + vaultKey: '', verifySsl: false }); ``` @@ -327,12 +327,12 @@ const syncResult = await client.syncLocalFiles({ **Solutions** : 1. **Vérifiez l'URL dans votre `.env`** : ```bash - VAULT_URL=https://vault.4nkweb.com:6666 +VAULT_URL= ``` 2. **Redémarrez l'API locale** si elle tourne en arrière-plan 3. **Testez la connectivité** : ```bash - curl -k https://vault.4nkweb.com:6666/health +curl -k "$VAULT_URL"/health ``` 4. **Vérifiez les logs** du SDK pour voir quelle URL est utilisée @@ -545,5 +545,5 @@ MIT License - Voir le fichier `LICENSE` pour plus de détails. --- **Version** : 1.0.0 -**API Vault** : vault.4nkweb.com:6666 +**API Vault** : **Chiffrement** : ChaCha20-Poly1305 (quantique résistant)