-
Notifications
You must be signed in to change notification settings - Fork 2.5k
Expand file tree
/
Copy pathREADME.es.md
More file actions
184 lines (125 loc) · 8.66 KB
/
README.es.md
File metadata and controls
184 lines (125 loc) · 8.66 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: Kit de herramientas de seguridad Zero Trust de código abierto
[](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** es un kit de herramientas ligero, de código abierto e impulsado por criptografía, que implementa seguridad Zero Trust para infraestructuras, aplicaciones y datos. Es la implementación de referencia de la *[especificación 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/) e incluye dos protocolos principales:
- **Network-infrastructure Hiding Protocol (NHP):** oculta puertos del servidor, direcciones IP y nombres de dominio para proteger aplicaciones e infraestructura frente a accesos no autorizados.
- **Data-content Hiding Protocol (DHP):** garantiza la seguridad y la privacidad de los datos mediante cifrado y confidential computing, haciendo que los datos sean *«utilizables pero no visibles»*.
**[Sitio web](https://opennhp.org) · [Documentación](https://docs.opennhp.org) · [Demo en vivo](https://opennhp.org/demo/) · [Discord](https://discord.gg/CpyVmspx5x)**
---
## Por qué OpenNHP
La internet moderna es un [bosque oscuro](https://en.wikipedia.org/wiki/Dark_forest_hypothesis). Los atacantes —respaldados cada vez más por LLMs que escanean, toman huellas y explotan a velocidad de máquina mediante [Autonomous Vulnerability Exploitation](https://arxiv.org/abs/2404.08144)— tratan todo servicio alcanzable como un objetivo. [Gartner prevé](https://www.gartner.com/en/newsroom/press-releases/2024-08-28-gartner-forecasts-global-information-security-spending-to-grow-15-percent-in-2025) un rápido aumento de los ciberataques impulsados por IA. Las defensas tradicionales autentican a los usuarios *después* de que la red los deja entrar, dejando los puertos, IPs y dominios expuestos como una superficie de ataque permanente.
> **En la era de la IA, VISIBILIDAD = VULNERABILIDAD.**
OpenNHP invierte ese modelo: **invisible hasta la confianza**. Cada puerto, IP y nombre de host se sitúa detrás de una puerta de denegación por defecto. El acceso se concede solo después de que un «golpe en la puerta» firmado criptográficamente haya sido autenticado y autorizado fuera de banda. Los atacantes no pueden explotar lo que no pueden descubrir.
### El protocolo de ocultación de red de tercera generación
NHP es el siguiente paso en la línea de diseños «ocultar el servicio primero»:
| Generación | Protocolo | Limitaciones |
|---|---|---|
| 1 | Port Knocking | Texto plano, vulnerable a repetición |
| 2 | Single Packet Authorization (SPA) | Secretos compartidos, unidireccional, normalmente oculta solo puertos, típicamente en C/C++ |
| **3** | **NHP** | Criptografía moderna, bidireccional con estado, oculta dominio + IP + puertos, sin estado y escalable horizontalmente, Go con seguridad de memoria |
NHP se integra junto a los motores IAM, DNS, FIDO y de política Zero Trust existentes, en lugar de reemplazarlos: extiende tu stack en vez de bifurcarlo.
---
## Arquitectura
OpenNHP sigue un diseño modular con tres componentes principales, inspirado en la [Arquitectura Zero Trust del NIST](https://www.nist.gov/publications/zero-trust-architecture):

| Componente principal | Rol |
|-----------|------|
| **NHP-Agent** | Cliente que envía solicitudes «knock» cifradas para obtener acceso |
| **NHP-Server** | Autentica y autoriza las solicitudes; se ejecuta por separado y está arquitectónicamente desacoplado del host protegido |
| **NHP-AC** | Controlador de acceso que gestiona las reglas del cortafuegos en el servidor protegido |
| Componente adicional | Rol |
|-----------|------|
| **NHP-Relay** | Puente HTTP a UDP que permite a los agentes basados en navegador enviar knocks NHP a través de HTTPS |
| **NHP-KGC** | Centro de generación de claves para criptografía basada en identidad (IBC) |
### Flujo del protocolo
1. El Agent envía un knock cifrado (`NHP_KNK`) al Server.
2. El Server valida el knock y envía una solicitud de operación (`NHP_AOP`) al AC.
3. El AC abre el cortafuegos y responde (`NHP_ART`) al Server.
4. El Server devuelve un reconocimiento (`NHP_ACK`) con la información de acceso al Agent.
5. El Agent alcanza el recurso protegido a través del AC.
### Criptografía
OpenNHP incluye dos suites criptográficas intercambiables:
- **`CIPHER_SCHEME_CURVE`** — Curve25519 + AES-256-GCM + BLAKE2s
- **`CIPHER_SCHEME_GMSM`** — SM2 + SM4-GCM + SM3
Ambas se basan en el [Noise Protocol Framework](https://noiseprotocol.org/). Un modo de criptografía basada en identidad (IBC) está disponible a través del Key Generation Center (KGC).
> Para detalles del protocolo, modelos de despliegue y diseño criptográfico, consulta la [documentación](https://docs.opennhp.org).
---
## Estructura del repositorio
```
opennhp/
├── nhp/ # Biblioteca principal del protocolo (módulo Go)
│ ├── core/ # Manejo de paquetes, criptografía, protocolo Noise, gestión de dispositivos
│ ├── common/ # Tipos compartidos y definiciones de mensajes
│ ├── utils/ # Funciones utilitarias
│ ├── plugins/ # Interfaces de manejadores de plugins
│ ├── log/ # Infraestructura de logging
│ └── etcd/ # Soporte de configuración distribuida
└── endpoints/ # Implementaciones de daemons (módulo Go, depende de nhp)
├── agent/ # Daemon NHP-Agent
├── server/ # Daemon NHP-Server
├── ac/ # Daemon NHP-AC (controlador de acceso)
├── db/ # NHP-DB (Data Broker para DHP)
├── kgc/ # NHP-KGC (Key Generation Center)
└── relay/ # Daemon NHP-Relay
```
---
## Inicio rápido
### Requisitos previos
- Go 1.25.6+
- `make`
- Docker y Docker Compose (para la demo completa)
### Compilación
```bash
# Compilar todos los componentes
make
# Compilar daemons individuales
make agentd # NHP-Agent
make serverd # NHP-Server
make acd # NHP-AC
make db # NHP-DB
make relayd # NHP-Relay
make kgc # NHP-KGC
```
### Pruebas
```bash
cd nhp && go test ./...
cd endpoints && go test ./...
```
### Ejecución con Docker
```bash
cd docker && docker-compose up --build
```
Sigue el [tutorial de inicio rápido](https://docs.opennhp.org/nhp_quick_start/) para simular el flujo completo de autenticación en un entorno Docker.
---
## Contribuir
¡Las contribuciones son bienvenidas! Por favor, lee [CONTRIBUTING.md](CONTRIBUTING.md) antes de enviar un Pull Request.
**Nota:** todos los commits deben estar firmados con una clave GPG o SSH verificada.
```bash
git commit -S -m "your message"
```
---
## Seguridad
¿Has encontrado una vulnerabilidad? Sigue el proceso de divulgación responsable descrito en [SECURITY.md](SECURITY.md) en lugar de abrir un issue público.
---
## Patrocinadores
<a href="https://layerv.ai">
<img src="docs/images/layerv_logo.png" height="40" alt="LayerV.ai logo">
</a>
---
## Licencia
Publicado bajo la [Licencia Apache 2.0](LICENSE).
## Contacto
- Correo: [[email protected]](mailto:[email protected])
- Discord: [Únete a nuestro Discord](https://discord.gg/CpyVmspx5x)
- Sitio web: [https://opennhp.org](https://opennhp.org)