2025-09-29 22:15:19 +00:00
2025-09-29 22:15:19 +00:00

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/

🚀 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 :

{
  "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 /<env>/<file>

Sert un fichier chiffré avec authentification utilisateur.

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

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
├── 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.

Description
No description provided
Readme 792 KiB
Languages
TypeScript 32.8%
JavaScript 30.1%
Python 19.3%
Shell 17.8%