-
Notifications
You must be signed in to change notification settings - Fork 2.5k
Expand file tree
/
Copy pathREADME.fr.md
More file actions
184 lines (125 loc) · 8.78 KB
/
README.fr.md
File metadata and controls
184 lines (125 loc) · 8.78 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
[](https://github.com/OpenNHP/opennhp/blob/master/README.md)
[](https://github.com/OpenNHP/opennhp/blob/master/README.zh-cn.md)
[](https://github.com/OpenNHP/opennhp/blob/master/README.zh-tw.md)
[](https://github.com/OpenNHP/opennhp/blob/master/README.de.md)
[](https://github.com/OpenNHP/opennhp/blob/master/README.ja.md)
[](https://github.com/OpenNHP/opennhp/blob/master/README.fr.md)
[](https://github.com/OpenNHP/opennhp/blob/master/README.es.md)

# OpenNHP : Boîte à outils open source de sécurité Zero Trust
[](https://github.com/OpenNHP/opennhp/actions/workflows/ubuntu-build.yml)
[](https://github.com/OpenNHP/opennhp/tags)

[](https://codecov.io/gh/OpenNHP/opennhp)
[](https://deepwiki.com/OpenNHP/opennhp)
**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)](https://cloudsecurityalliance.org/artifacts/stealth-mode-sdp-for-zero-trust-network-infrastructure)* de la [**Cloud Security Alliance (CSA)**](https://cloudsecurityalliance.org/), et elle comprend deux protocoles principaux :
- **Network-infrastructure Hiding Protocol (NHP) :** dissimule les ports serveur, les adresses IP et les noms de domaine pour protéger les applications et l'infrastructure contre les accès non autorisés.
- **Data-content Hiding Protocol (DHP) :** assure la sécurité et la confidentialité des données grâce au chiffrement et au confidential computing, rendant les données *« utilisables mais invisibles »*.
**[Site web](https://opennhp.org) · [Documentation](https://docs.opennhp.org) · [Démo en direct](https://opennhp.org/demo/) · [Discord](https://discord.gg/CpyVmspx5x)**
---
## Pourquoi OpenNHP
L'internet moderne est une [forêt sombre](https://en.wikipedia.org/wiki/Dark_forest_hypothesis). 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](https://arxiv.org/abs/2404.08144) — considèrent chaque service accessible comme une cible. [Gartner prévoit](https://www.gartner.com/en/newsroom/press-releases/2024-08-28-gartner-forecasts-global-information-security-spending-to-grow-15-percent-in-2025) 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.
### Le protocole de masquage réseau de troisième génération
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.
---
## Architecture
OpenNHP adopte une conception modulaire avec trois composants principaux, inspirée de l'[architecture Zero Trust du NIST](https://www.nist.gov/publications/zero-trust-architecture) :

| 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) |
### Flux protocolaire
1. L'Agent envoie un knock chiffré (`NHP_KNK`) au Server.
2. Le Server valide le knock et envoie une requête d'opération (`NHP_AOP`) à l'AC.
3. L'AC ouvre le pare-feu et répond (`NHP_ART`) au Server.
4. Le Server renvoie un acquittement (`NHP_ACK`) avec les informations d'accès à l'Agent.
5. L'Agent atteint la ressource protégée via l'AC.
### Cryptographie
OpenNHP fournit deux suites cryptographiques interchangeables :
- **`CIPHER_SCHEME_CURVE`** — Curve25519 + AES-256-GCM + BLAKE2s
- **`CIPHER_SCHEME_GMSM`** — SM2 + SM4-GCM + SM3
Toutes deux reposent sur le [Noise Protocol Framework](https://noiseprotocol.org/). 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](https://docs.opennhp.org).
---
## Structure du dépôt
```
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
```
---
## Démarrage rapide
### Prérequis
- Go 1.25.6+
- `make`
- Docker et Docker Compose (pour la démo complète)
### Construction
```bash
# 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
```
### Tests
```bash
cd nhp && go test ./...
cd endpoints && go test ./...
```
### Exécution avec Docker
```bash
cd docker && docker-compose up --build
```
Suivez le [tutoriel de démarrage rapide](https://docs.opennhp.org/nhp_quick_start/) pour simuler le workflow d'authentification complet dans un environnement Docker.
---
## Contribuer
Les contributions sont les bienvenues ! Veuillez lire [CONTRIBUTING.md](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.
```bash
git commit -S -m "your message"
```
---
## Sécurité
Vous avez trouvé une vulnérabilité ? Merci de suivre le processus de divulgation responsable décrit dans [SECURITY.md](SECURITY.md) plutôt que d'ouvrir un ticket public.
---
## Sponsors
<a href="https://layerv.ai">
<img src="docs/images/layerv_logo.png" height="40" alt="LayerV.ai logo">
</a>
---
## Licence
Publié sous [licence Apache 2.0](LICENSE).
## Contact
- E-mail : [[email protected]](mailto:[email protected])
- Discord : [Rejoindre notre Discord](https://discord.gg/CpyVmspx5x)
- Site web : [https://opennhp.org](https://opennhp.org)