
opennhp v1.0.1
Un toolkit open-source leggero, basato sulla crittografia, progettato per imporre la sicurezza Zero Trust per infrastrutture, applicazioni e dati nel mondo guidato dall'IA.

OpenNHP: Toolkit Open Source per la Sicurezza Zero Trust
OpenNHP è un toolkit open source leggero e basato sulla crittografia che implementa la sicurezza Zero Trust per infrastrutture, applicazioni e dati. È l'implementazione di riferimento della specifica Network-infrastructure Hiding Protocol (NHP) della Cloud Security Alliance (CSA) e offre due protocolli principali:
- Network-infrastructure Hiding Protocol (NHP): Nasconde porte del server, indirizzi IP e nomi di dominio per proteggere applicazioni e infrastrutture da accessi non autorizzati.
- Data-content Hiding Protocol (DHP): Garantisce la sicurezza e la privacy dei dati tramite crittografia e elaborazione riservata (confidential computing), rendendo i dati "utilizzabili ma invisibili".
Sito web · Visione · Demo dal vivo · Documentazione · Discord
Perché OpenNHP
Internet moderno è una foresta oscura. Gli attaccanti — sempre più supportati da LLM che scansionano, identificano e sfruttano le vulnerabilità a velocità meccanica tramite Autonomous Vulnerability Exploitation — trattano ogni servizio raggiungibile come un bersaglio. Gartner prevede un rapido aumento degli attacchi informatici guidati dall'IA. Le difese tradizionali autenticano gli utenti dopo che la rete li ha fatti entrare, lasciando porte, IP e domini esposti come una superficie d'attacco permanente.
Nell'era dell'IA, VISIBILITÀ = VULNERABILITÀ.
OpenNHP inverte questo modello: invisibile finché non è fidato. Ogni porta, IP e nome host si trova dietro un cancello di default-negato. L'accesso viene concesso solo dopo che un knock crittograficamente firmato è stato autenticato e autorizzato out-of-band. Gli attaccanti non possono sfruttare ciò che non possono scoprire.
Il protocollo di rete nascosta di terza generazione
NHP è il passo successivo in una serie di progetti "nascondi prima il servizio":
| Generazione | Protocollo | Limitazioni |
|---|---|---|
| 1 | Port Knocking | Testo in chiaro, soggetto a replay |
| 2 | Single Packet Authorization (SPA) | Segreti condivisi, unidirezionale, di solito nasconde solo le porte, tipicamente C/C++ |
| 3 | NHP | Crittografia moderna, bidirezionale con stato, nasconde dominio + IP + porte, stateless e scalabile orizzontalmente, Go memory-safe |
NHP si inserisce accanto ai motori IAM, DNS, FIDO e Zero Trust esistenti, senza sostituirli — estende il tuo stack invece di bifurcarlo.
Architettura
OpenNHP segue un design modulare con tre componenti principali, ispirato alla NIST Zero Trust Architecture:

| Componente principale | Ruolo |
|---|---|
| NHP-Agent | Client che invia richieste di knock crittografate per ottenere accesso |
| NHP-Server | Autentica e autorizza le richieste; viene eseguito separatamente ed è disaccoppiato architetturalmente dall'host protetto |
| NHP-AC | Controller di accesso che gestisce le regole del firewall sul server protetto |
| Componente aggiuntivo | Ruolo |
|---|---|
| NHP-Relay | Bridge HTTP-to-UDP che consente agli agenti basati su browser di inviare knock NHP tramite HTTPS |
| NHP-KGC | Centro di generazione delle chiavi per la crittografia basata sull'identità (IBC) |
Flusso del protocollo
- L'Agente invia un knock crittografato (
NHP_KNK) al Server. - Il Server convalida il knock e invia una richiesta di operazione (
NHP_AOP) all'AC. - L'AC apre il firewall e risponde (
NHP_ART) al Server. - Il Server restituisce un acknowledgement (
NHP_ACK) con le informazioni di accesso all'Agente. - L'Agente raggiunge la risorsa protetta tramite l'AC.
Crittografia
OpenNHP include due suite di cifratura intercambiabili:
CIPHER_SCHEME_CURVE— Curve25519 + AES-256-GCM + BLAKE2sCIPHER_SCHEME_GMSM— SM2 + SM4-GCM + SM3
Entrambe sono guidate dal Noise Protocol Framework. Una modalità di crittografia basata sull'identità (IBC) è disponibile tramite il Key Generation Center (KGC).
Per i dettagli del protocollo, i modelli di distribuzione e la progettazione crittografica, consulta la documentazione.
Struttura del Repository
opennhp/
├── nhp/ # Libreria del protocollo core (modulo Go)
│ ├── core/ # Gestione dei pacchetti, crittografia, Noise Protocol, gestione dispositivi
│ ├── common/ # Tipi condivisi e definizioni dei messaggi
│ ├── utils/ # Funzioni di utilità
│ ├── plugins/ # Interfacce per gli handler dei plugin
│ ├── log/ # Infrastruttura di logging
│ └── etcd/ # Supporto per configurazione distribuita
└── endpoints/ # Implementazioni dei daemon (modulo Go, dipende da nhp)
├── agent/ # Daemon NHP-Agent
├── server/ # Daemon NHP-Server
├── ac/ # Daemon NHP-AC (controllore di accesso)
├── db/ # NHP-DB (Data Broker per DHP)
├── kgc/ # NHP-KGC (Key Generation Center)
└── relay/ # Daemon NHP-Relay
Avvio Rapido
Prerequisiti
- Go 1.25.6+
make- Docker e Docker Compose (per la demo completa)
Compilazione
# Compila tutti i componenti
make
# Compila singoli daemon
make agentd # NHP-Agent
make serverd # NHP-Server
make acd # NHP-AC
make db # NHP-DB
make relayd # NHP-Relay
make kgc # NHP-KGC
Test
cd nhp && go test ./...
cd endpoints && go test ./...
Esecuzione con Docker
cd docker && docker-compose up --build
Segui il tutorial di Avvio Rapido per simulare l'intero flusso di autenticazione in un ambiente Docker.
Contribuire
I contributi sono benvenuti! Leggi CONTRIBUTING.md prima di inviare pull request.
Nota: Tutti i commit devono essere firmati con una chiave GPG o SSH verificata.
git commit -S -m "il tuo messaggio"
Sicurezza
Hai trovato una vulnerabilità? Segui il processo di divulgazione responsabile in SECURITY.md invece di aprire un issue pubblico.
Sponsor
Licenza
Rilasciato sotto Licenza Apache 2.0.
Contatti
- Email: [email protected]
- Discord: Unisciti al nostro Discord
- Sito web: https://opennhp.org