OpenNHP 保护的演示服务器
Hiding Protocol
1) 受保护的服务器默认对未认证用户"不可见"
默认情况下,任何连接受保护服务器的尝试都会导致 TIME OUT 错误, 因为所有端口都是关闭的,使服务器看起来处于离线状态,实际上是"不可见的"。
2) 端口扫描同样返回 TIME OUT
对服务器进行端口扫描同样会返回 TIME OUT 错误。 所有端口对未授权的扫描器都显示为关闭状态。您可以使用在线端口扫描工具亲自验证:
3) 通过登录网页或 StealthDNS 应用进行认证
使用登录网页或 StealthDNS 应用与 NHP 服务器进行认证。 成功登录后,您即可访问受保护的服务器。
4) 认证后获得访问权限
NHP 认证成功后,受保护的服务器变为可访问状态。 您现在可以看到之前不可见的受保护内容。

隐藏应用服务器端口
启用 NHP 之前,所有服务器端口都是暴露的。启用 NHP 之后,它们变得完全不可见。
应用服务器端口可见
$ nmap -sS -p 1-65535 server.example.com✗ 所有端口对攻击者可见
✗ 攻击面完全暴露
✗ 容易受到端口扫描攻击
所有端口对未授权者隐藏
$ nmap -sS -p 1-65535 server.example.com✓ 所有端口对攻击者不可见
✓ 零攻击面暴露
✓ 仅认证用户可以访问
NHP 的工作原理
"先认证后连接"范式的实际运作。
完全不可见
受保护的资源没有公开存在。DNS 返回 NXDOMAIN,端口显示为关闭, IP 地址未知。对于未授权的观察者来说,该服务不存在。
加密敲门
授权客户端使用 Noise Protocol Framework 发送加密的"敲门"数据包。 这可以在不向观察者暴露服务存在的情况下证明其身份。
双向认证
客户端和服务器使用现代非对称加密技术相互认证。 无共享密钥、无中间人攻击漏洞、无重放攻击。
限时访问
认证成功后,客户端获得临时访问权限。 防火墙规则被动态创建并自动过期,最大限度减少暴露。
基准测试结果
NHP 提供高性能表现,延迟开销极低。
| 操作 | 吞吐量 | 延迟 |
|---|---|---|
| 认证 | 10K req/s | < 10ms |
| 端口隐藏 | 100K req/s | < 1ms |
| DNS 解析 | 50K req/s | < 5ms |
*在 AWS t3.xlarge 实例上测试
将 OpenNHP 集成到您的应用中
根据您的应用类型选择合适的 SDK:原生客户端应用或 Web 应用。
客户端应用集成(桌面端 & 移动端)
StealthDNS 是一个开源示例应用,展示了如何将 OpenNHP SDK 集成到原生桌面和移动应用中。 通过研究其源代码,您可以学习:
- ✓ 如何在您的应用中初始化 NHP-Agent
- ✓ 如何向 NHP-Server 发起加密敲门请求
- ✓ 如何处理认证和访问令牌
- ✓ 如何在 NHP 授权后访问受保护的资源
Web 应用集成(JavaScript SDK)
OpenNHP JavaScript Agent 是将 NHP 认证集成到 Web 应用的官方 SDK。 它为基于 Web 的 NHP 保护资源访问提供了轻量级、浏览器兼容的解决方案。
- ✓ 适用于浏览器环境的纯 JavaScript 实现
- ✓ 与现有 Web 框架无缝集成
- ✓ NHP 认证流程和连接状态可视化
- ✓ 适用于任何由 OpenNHP 保护的后端


