README.es.md
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) de la Cloud Security Alliance (CSA) e incluye dos protocolos principales:
Sitio web · Visión · Demo en vivo · Documentación · Discord
La internet moderna es un bosque oscuro. Los atacantes —respaldados cada vez más por LLMs que escanean, toman huellas y explotan a velocidad de máquina mediante Autonomous Vulnerability Exploitation— tratan todo servicio alcanzable como un objetivo. Gartner prevé 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.
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.
OpenNHP sigue un diseño modular con tres componentes principales, inspirado en la Arquitectura Zero Trust del NIST:
| 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) |
NHP_KNK) al Server.NHP_AOP) al AC.NHP_ART) al Server.NHP_ACK) con la información de acceso al Agent.OpenNHP incluye dos suites criptográficas intercambiables:
CIPHER_SCHEME_CURVE — Curve25519 + AES-256-GCM + BLAKE2sCIPHER_SCHEME_GMSM — SM2 + SM4-GCM + SM3Ambas se basan en el Noise Protocol Framework. 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.
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
make# 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
cd nhp && go test ./...
cd endpoints && go test ./...
cd docker && docker-compose up --build
Sigue el tutorial de inicio rápido para simular el flujo completo de autenticación en un entorno Docker.
¡Las contribuciones son bienvenidas! Por favor, lee CONTRIBUTING.md antes de enviar un Pull Request.
Nota: todos los commits deben estar firmados con una clave GPG o SSH verificada.
git commit -S -m "your message"
¿Has encontrado una vulnerabilidad? Sigue el proceso de divulgación responsable descrito en SECURITY.md en lugar de abrir un issue público.
Publicado bajo la Licencia Apache 2.0.