Back to Opennhp

OpenNHP: Open-Source-Werkzeugkasten für Zero-Trust-Sicherheit

README.de.md

0.7.38.6 KB
Original Source

OpenNHP: Open-Source-Werkzeugkasten für Zero-Trust-Sicherheit

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:

  • Network-infrastructure Hiding Protocol (NHP): Verbirgt Server-Ports, IP-Adressen und Domainnamen, um Anwendungen und Infrastruktur vor unbefugtem Zugriff zu schützen.
  • Data-content Hiding Protocol (DHP): Sorgt für Datensicherheit und -vertraulichkeit durch Verschlüsselung und Confidential Computing, sodass Daten „nutzbar, aber nicht sichtbar" werden.

Website · Vision · Live-Demo · Dokumentation · Discord


Warum OpenNHP

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.

Das Netzwerkverstecker-Protokoll der dritten Generation

NHP ist der nächste Schritt in einer Linie von „Dienst zuerst verstecken"-Entwürfen:

GenerationProtokollEinschränkungen
1Port KnockingKlartext, anfällig für Replay-Angriffe
2Single Packet Authorization (SPA)Geteilte Geheimnisse, Einwegkommunikation, verbirgt typischerweise nur Ports, meist in C/C++
3NHPModerne 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.


Architektur

OpenNHP folgt einem modularen Design mit drei Kernkomponenten, inspiriert von der NIST Zero Trust Architecture:

KernkomponenteRolle
NHP-AgentClient, der verschlüsselte Knock-Anfragen sendet, um Zugriff zu erhalten
NHP-ServerAuthentifiziert und autorisiert Anfragen; läuft separat und ist architektonisch vom geschützten Host entkoppelt
NHP-ACZugriffs-Controller, der die Firewall-Regeln auf dem geschützten Server verwaltet
ZusatzkomponenteRolle
NHP-RelayHTTP-zu-UDP-Brücke, die browserbasierte Agents ermöglicht, NHP-Knocks über HTTPS zu senden
NHP-KGCKey Generation Center für Identity-Based Cryptography (IBC)

Protokollablauf

  1. Agent sendet einen verschlüsselten Knock (NHP_KNK) an den Server.
  2. Server validiert den Knock und schickt eine Operations-Anfrage (NHP_AOP) an den AC.
  3. AC öffnet die Firewall und antwortet (NHP_ART) dem Server.
  4. Server schickt eine Bestätigung (NHP_ACK) mit Zugriffsinformationen an den Agent.
  5. Agent erreicht die geschützte Ressource über den AC.

Kryptographie

OpenNHP liefert zwei austauschbare Cipher-Suiten mit:

  • CIPHER_SCHEME_CURVE – Curve25519 + AES-256-GCM + BLAKE2s
  • CIPHER_SCHEME_GMSM – SM2 + SM4-GCM + SM3

Beide 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.


Repository-Struktur

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

Schnellstart

Voraussetzungen

  • Go 1.25.6+
  • make
  • Docker und Docker Compose (für die Full-Stack-Demo)

Bauen

bash
# 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

Testen

bash
cd nhp && go test ./...
cd endpoints && go test ./...

Mit Docker starten

bash
cd docker && docker-compose up --build

Folgen Sie dem Schnellstart-Tutorial, um den vollständigen Authentifizierungs-Workflow in einer Docker-Umgebung zu simulieren.


Mitwirken

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.

bash
git commit -S -m "your message"

Sicherheit

Eine Schwachstelle gefunden? Bitte folgen Sie dem Responsible-Disclosure-Prozess in SECURITY.md, statt ein öffentliches Issue zu eröffnen.


Sponsoren

<a href="https://layerv.ai"> </a>

Lizenz

Veröffentlicht unter der Apache 2.0 Lizenz.

Kontakt