デモ用 OpenNHP 保護サーバー
Hiding Protocol
1) 保護されたサーバーはデフォルトで未認証ユーザーから「不可視」
デフォルトでは、保護されたサーバーへの接続は全てタイムアウトエラーとなります。 全てのポートが閉じられているため、サーバーはオフラインに見え、事実上「不可視」となります。
2) ポートスキャンもタイムアウトを返す
サーバーをポートスキャンしてもタイムアウトエラーが返されます。 未認証のスキャナーには全てのポートが閉じて見えます。オンラインポートスキャナーで試してみてください:
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です。 NHP保護リソースへのWebベースのアクセスのための軽量でブラウザ互換のソリューションを提供します。
- ✓ ブラウザ環境向けの純粋なJavaScript実装
- ✓ 既存のWebフレームワークとのシームレスな統合
- ✓ NHP認証フローと接続状態の可視化
- ✓ OpenNHPで保護された任意のバックエンドと連携


