README.de.md
OpenNHP ist ein schlankes, kryptographiegetriebenes, quelloffenes Toolkit, das Zero-Trust-Sicherheit für Infrastruktur, Anwendungen und Daten umsetzt. Es ist die Referenzimplementierung der Cloud Security Alliance (CSA) Network-infrastructure Hiding Protocol (NHP) Spezifikation und umfasst zwei Kernprotokolle:
Website · Vision · Live-Demo · Dokumentation · Discord
Das moderne Internet ist ein dunkler Wald. Angreifer – zunehmend unterstützt durch LLMs, die mittels Autonomous Vulnerability Exploitation in Maschinengeschwindigkeit scannen, Fingerprinting betreiben und ausnutzen – behandeln jeden erreichbaren Dienst als Ziel. Gartner prognostiziert, dass KI-gestützte Cyberangriffe rasant zunehmen werden. Herkömmliche Verteidigungsmaßnahmen authentifizieren Nutzer erst nachdem das Netzwerk sie hereingelassen hat, sodass offene Ports, IPs und Domains zur dauerhaften Angriffsfläche werden.
Im KI-Zeitalter gilt: SICHTBARKEIT = VERWUNDBARKEIT.
OpenNHP dreht dieses Modell um: unsichtbar bis vertrauenswürdig. Jeder Port, jede IP und jeder Hostname liegt hinter einem Default-Deny-Gate. Zugriff wird erst nach einem kryptographisch signierten Knock gewährt, der außerhalb des Datenkanals authentifiziert und autorisiert wurde. Angreifer können nicht ausnutzen, was sie nicht entdecken können.
NHP ist der nächste Schritt in einer Linie von „Dienst zuerst verstecken"-Entwürfen:
| Generation | Protokoll | Einschränkungen |
|---|---|---|
| 1 | Port Knocking | Klartext, anfällig für Replay-Angriffe |
| 2 | Single Packet Authorization (SPA) | Geteilte Geheimnisse, Einwegkommunikation, verbirgt typischerweise nur Ports, meist in C/C++ |
| 3 | NHP | Moderne Kryptographie, bidirektional mit Statusrückmeldung, verbirgt Domain + IP + Ports, zustandslos und horizontal skalierbar, speichersicheres Go |
NHP fügt sich neben bestehenden IAM-, DNS-, FIDO- und Zero-Trust-Policy-Engines ein, statt sie zu ersetzen – es erweitert Ihren Stack, statt ihn zu forken.
OpenNHP folgt einem modularen Design mit drei Kernkomponenten, inspiriert von der NIST Zero Trust Architecture:
| Kernkomponente | Rolle |
|---|---|
| NHP-Agent | Client, der verschlüsselte Knock-Anfragen sendet, um Zugriff zu erhalten |
| NHP-Server | Authentifiziert und autorisiert Anfragen; läuft separat und ist architektonisch vom geschützten Host entkoppelt |
| NHP-AC | Zugriffs-Controller, der die Firewall-Regeln auf dem geschützten Server verwaltet |
| Zusatzkomponente | Rolle |
|---|---|
| NHP-Relay | HTTP-zu-UDP-Brücke, die browserbasierte Agents ermöglicht, NHP-Knocks über HTTPS zu senden |
| NHP-KGC | Key Generation Center für Identity-Based Cryptography (IBC) |
NHP_KNK) an den Server.NHP_AOP) an den AC.NHP_ART) dem Server.NHP_ACK) mit Zugriffsinformationen an den Agent.OpenNHP liefert zwei austauschbare Cipher-Suiten mit:
CIPHER_SCHEME_CURVE – Curve25519 + AES-256-GCM + BLAKE2sCIPHER_SCHEME_GMSM – SM2 + SM4-GCM + SM3Beide bauen auf dem Noise Protocol Framework auf. Ein Identity-Based Cryptography (IBC)-Modus ist über das Key Generation Center (KGC) verfügbar.
Für Protokolldetails, Bereitstellungsmodelle und kryptographisches Design siehe die Dokumentation.
opennhp/
├── nhp/ # Kernprotokoll-Bibliothek (Go-Modul)
│ ├── core/ # Paketverarbeitung, Kryptographie, Noise-Protokoll, Geräteverwaltung
│ ├── common/ # Gemeinsame Typen und Nachrichtendefinitionen
│ ├── utils/ # Hilfsfunktionen
│ ├── plugins/ # Plugin-Handler-Schnittstellen
│ ├── log/ # Logging-Infrastruktur
│ └── etcd/ # Unterstützung für verteilte Konfiguration
└── endpoints/ # Daemon-Implementierungen (Go-Modul, abhängig von nhp)
├── agent/ # NHP-Agent-Daemon
├── server/ # NHP-Server-Daemon
├── ac/ # NHP-AC-(Zugriffs-Controller)-Daemon
├── db/ # NHP-DB (Data Broker für DHP)
├── kgc/ # NHP-KGC (Key Generation Center)
└── relay/ # NHP-Relay-Daemon
make# Alle Komponenten bauen
make
# Einzelne Daemons bauen
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
Folgen Sie dem Schnellstart-Tutorial, um den vollständigen Authentifizierungs-Workflow in einer Docker-Umgebung zu simulieren.
Beiträge sind willkommen! Bitte lesen Sie CONTRIBUTING.md, bevor Sie Pull Requests einreichen.
Hinweis: Alle Commits müssen mit einem verifizierten GPG- oder SSH-Schlüssel signiert sein.
git commit -S -m "your message"
Eine Schwachstelle gefunden? Bitte folgen Sie dem Responsible-Disclosure-Prozess in SECURITY.md, statt ein öffentliches Issue zu eröffnen.
Veröffentlicht unter der Apache 2.0 Lizenz.