README.fr.md
OpenNHP est une boîte à outils open source légère et basée sur la cryptographie, qui met en œuvre la sécurité Zero Trust pour les infrastructures, les applications et les données. C'est l'implémentation de référence de la spécification Network-infrastructure Hiding Protocol (NHP) de la Cloud Security Alliance (CSA), et elle comprend deux protocoles principaux :
Site web · Vision · Démo en direct · Documentation · Discord
L'internet moderne est une forêt sombre. Les attaquants — de plus en plus soutenus par des LLM qui scannent, identifient et exploitent à la vitesse de la machine via l'Autonomous Vulnerability Exploitation — considèrent chaque service accessible comme une cible. Gartner prévoit une hausse rapide des cyberattaques pilotées par l'IA. Les défenses traditionnelles authentifient les utilisateurs après que le réseau les ait laissés entrer, laissant les ports, IP et domaines exposés comme une surface d'attaque permanente.
À l'ère de l'IA, VISIBILITÉ = VULNÉRABILITÉ.
OpenNHP inverse ce modèle : invisible jusqu'à la confiance. Chaque port, IP et nom d'hôte est placé derrière une porte refusant tout par défaut. L'accès n'est accordé qu'après qu'un « toc-toc » cryptographiquement signé a été authentifié et autorisé hors bande. Les attaquants ne peuvent pas exploiter ce qu'ils ne peuvent pas découvrir.
NHP est la prochaine étape dans la lignée des conceptions « cacher le service d'abord » :
| Génération | Protocole | Limitations |
|---|---|---|
| 1 | Port Knocking | Texte clair, vulnérable au rejeu |
| 2 | Single Packet Authorization (SPA) | Secrets partagés, unidirectionnel, cache généralement uniquement les ports, souvent en C/C++ |
| 3 | NHP | Cryptographie moderne, bidirectionnel avec statut, cache domaine + IP + ports, sans état et scalable horizontalement, Go memory-safe |
NHP s'intègre aux moteurs IAM, DNS, FIDO et aux policy engines Zero Trust existants au lieu de les remplacer — il étend votre stack sans la forker.
OpenNHP adopte une conception modulaire avec trois composants principaux, inspirée de l'architecture Zero Trust du NIST :
| Composant principal | Rôle |
|---|---|
| NHP-Agent | Client qui envoie des requêtes « toc-toc » chiffrées pour obtenir l'accès |
| NHP-Server | Authentifie et autorise les requêtes ; s'exécute séparément et est architecturalement découplé de l'hôte protégé |
| NHP-AC | Contrôleur d'accès qui gère les règles de pare-feu sur le serveur protégé |
| Composant additionnel | Rôle |
|---|---|
| NHP-Relay | Pont HTTP vers UDP permettant aux agents basés sur navigateur d'envoyer des knocks NHP via HTTPS |
| NHP-KGC | Centre de génération de clés pour la cryptographie basée sur l'identité (IBC) |
NHP_KNK) au Server.NHP_AOP) à l'AC.NHP_ART) au Server.NHP_ACK) avec les informations d'accès à l'Agent.OpenNHP fournit deux suites cryptographiques interchangeables :
CIPHER_SCHEME_CURVE — Curve25519 + AES-256-GCM + BLAKE2sCIPHER_SCHEME_GMSM — SM2 + SM4-GCM + SM3Toutes deux reposent sur le Noise Protocol Framework. Un mode Identity-Based Cryptography (IBC) est disponible via le Key Generation Center (KGC).
Pour les détails du protocole, les modèles de déploiement et la conception cryptographique, consultez la documentation.
opennhp/
├── nhp/ # Bibliothèque principale du protocole (module Go)
│ ├── core/ # Traitement des paquets, cryptographie, protocole Noise, gestion des périphériques
│ ├── common/ # Types partagés et définitions de messages
│ ├── utils/ # Fonctions utilitaires
│ ├── plugins/ # Interfaces des gestionnaires de plugins
│ ├── log/ # Infrastructure de journalisation
│ └── etcd/ # Support de configuration distribuée
└── endpoints/ # Implémentations des daemons (module Go, dépend de nhp)
├── agent/ # Daemon NHP-Agent
├── server/ # Daemon NHP-Server
├── ac/ # Daemon NHP-AC (contrôleur d'accès)
├── db/ # NHP-DB (Data Broker pour DHP)
├── kgc/ # NHP-KGC (Key Generation Center)
└── relay/ # Daemon NHP-Relay
make# Construire tous les composants
make
# Construire les daemons individuellement
make agentd # NHP-Agent
make serverd # NHP-Server
make acd # NHP-AC
make db # NHP-DB
make relayd # NHP-Relay
make kgc # NHP-KGC
cd nhp && go test ./...
cd endpoints && go test ./...
cd docker && docker-compose up --build
Suivez le tutoriel de démarrage rapide pour simuler le workflow d'authentification complet dans un environnement Docker.
Les contributions sont les bienvenues ! Veuillez lire CONTRIBUTING.md avant de soumettre une Pull Request.
Remarque : tous les commits doivent être signés avec une clé GPG ou SSH vérifiée.
git commit -S -m "your message"
Vous avez trouvé une vulnérabilité ? Merci de suivre le processus de divulgation responsable décrit dans SECURITY.md plutôt que d'ouvrir un ticket public.
Publié sous licence Apache 2.0.