
opennhp v1.0.1
Um kit de ferramentas leve, baseado em criptografia e de código aberto, construído para aplicar a segurança Zero Trust em infraestruturas, aplicações e dados no mundo impulsionado por IA.

OpenNHP: Kit de Ferramentas de Segurança Zero Trust de Código Aberto
OpenNHP é um kit de ferramentas leve, baseado em criptografia e de código aberto que implementa segurança Zero Trust para infraestrutura, aplicações e dados. É a implementação de referência da especificação Network-infrastructure Hiding Protocol (NHP) da Cloud Security Alliance (CSA), e apresenta dois protocolos principais:
- Network-infrastructure Hiding Protocol (NHP): Oculta portas de servidor, endereços IP e nomes de domínio para proteger aplicações e infraestrutura contra acesso não autorizado.
- Data-content Hiding Protocol (DHP): Garante a segurança e privacidade dos dados por meio de criptografia e computação confidencial, tornando os dados "utilizáveis, mas não visíveis".
Site · Visão · Demonstração ao Vivo · Documentação · Discord
Por que OpenNHP
A internet moderna é uma dark forest. Atacantes — cada vez mais apoiados por LLMs que escaneiam, identificam e exploram em velocidade de máquina via Autonomous Vulnerability Exploitation — tratam todo serviço alcançável como um alvo. A Gartner projeta que os ciberataques impulsionados por IA aumentarão rapidamente. As defesas tradicionais autenticam os usuários após a rede deixá-los entrar, deixando portas, IPs e domínios expostos como uma superfície de ataque permanente.
Na era da IA, VISIBILIDADE = VULNERABILIDADE.
O OpenNHP inverte esse modelo: invisível até ser confiável. Cada porta, IP e nome de host fica atrás de uma barreira de negação padrão. O acesso é concedido apenas após um knock criptograficamente assinado ser autenticado e autorizado fora de banda. Os atacantes não podem explorar o que não conseguem descobrir.
O protocolo de ocultação de rede de terceira geração
O NHP é o próximo passo em uma linhagem de designs de "ocultar o serviço primeiro":
| Geração | Protocolo | Limitações |
|---|---|---|
| 1 | Port Knocking | Texto simples, propenso a repetição |
| 2 | Single Packet Authorization (SPA) | Segredos compartilhados, unidirecional, normalmente oculta apenas portas, tipicamente C/C++ |
| 3 | NHP | Criptografia moderna, bidirecional com status, oculta domínio + IP + portas, sem estado e escalável horizontalmente, Go seguro em memória |
O NHP se insere ao lado dos mecanismos existentes de IAM, DNS, FIDO e políticas Zero Trust, em vez de substituí-los — ele estende sua pilha em vez de bifurcá-la.
Arquitetura
O OpenNHP segue um design modular com três componentes principais, inspirado na Arquitetura Zero Trust do NIST:

| Componente Principal | Função |
|---|---|
| NHP-Agent | Cliente que envia solicitações de knock criptografadas para obter acesso |
| NHP-Server | Autentica e autoriza solicitações; é executado separadamente e desacoplado arquiteturalmente do host protegido |
| NHP-AC | Controlador de acesso que gerencia regras de firewall no servidor protegido |
| Componente Adicional | Função |
|---|---|
| NHP-Relay | Ponte HTTP-para-UDP que permite que agentes baseados em navegador enviem knocks NHP via HTTPS |
| NHP-KGC | Centro de Geração de Chaves para Criptografia Baseada em Identidade (IBC) |
Fluxo do protocolo
- O agente envia um knock criptografado (
NHP_KNK) ao Servidor. - O servidor valida o knock e envia uma solicitação de operação (
NHP_AOP) ao AC. - O AC abre o firewall e responde (
NHP_ART) ao Servidor. - O servidor retorna um reconhecimento (
NHP_ACK) com informações de acesso ao Agente. - O agente alcança o recurso protegido através do AC.
Criptografia
O OpenNHP acompanha dois conjuntos de cifras intercambiáveis:
CIPHER_SCHEME_CURVE— Curve25519 + AES-256-GCM + BLAKE2sCIPHER_SCHEME_GMSM— SM2 + SM4-GCM + SM3
Ambos são orientados pelo Noise Protocol Framework. Um modo de Criptografia Baseada em Identidade (IBC) está disponível através do Centro de Geração de Chaves (KGC).
Para detalhes do protocolo, modelos de implantação e design criptográfico, consulte a documentação.
Estrutura do Repositório
opennhp/
├── nhp/ # Core protocol library (Go module)
│ ├── core/ # Packet handling, cryptography, Noise Protocol, device management
│ ├── common/ # Shared types and message definitions
│ ├── utils/ # Utility functions
│ ├── plugins/ # Plugin handler interfaces
│ ├── log/ # Logging infrastructure
│ └── etcd/ # Distributed configuration support
└── endpoints/ # Daemon implementations (Go module, depends on nhp)
├── agent/ # NHP-Agent daemon
├── server/ # NHP-Server daemon
├── ac/ # NHP-AC (access controller) daemon
├── db/ # NHP-DB (Data Broker for DHP)
├── kgc/ # NHP-KGC (Key Generation Center)
└── relay/ # NHP-Relay daemon
Início Rápido
Pré-requisitos
- Go 1.25.6+
make- Docker e Docker Compose (para a demonstração completa)
Compilar
# Build all components
make
# Build individual daemons
make agentd # NHP-Agent
make serverd # NHP-Server
make acd # NHP-AC
make db # NHP-DB
make relayd # NHP-Relay
make kgc # NHP-KGC
Testar
cd nhp && go test ./...
cd endpoints && go test ./...
Executar com Docker
cd docker && docker-compose up --build
Siga o tutorial de Início Rápido para simular o fluxo completo de autenticação em um ambiente Docker.
Contribuindo
Aceitamos contribuições! Leia CONTRIBUTING.md antes de enviar pull requests.
Nota: Todos os commits devem ser assinados com uma chave GPG ou SSH verificada.
git commit -S -m "sua mensagem"
Segurança
Encontrou uma vulnerabilidade? Siga o processo de divulgação responsável em SECURITY.md em vez de abrir um issue público.
Patrocinadores
Licença
Lançado sob a Licença Apache 2.0.
Contato
- E-mail: [email protected]
- Discord: Junte-se ao nosso Discord
- Site: https://opennhp.org