README.ja.md
OpenNHP は軽量かつ暗号技術を基盤としたオープンソースのツールキットであり、インフラ・アプリケーション・データに対してゼロトラスト・セキュリティを実現します。クラウドセキュリティアライアンス(CSA) の Network-infrastructure Hiding Protocol(NHP)仕様 のリファレンス実装であり、次の 2 つのコアプロトコルを備えています:
ウェブサイト · ビジョン · ライブデモ · ドキュメント · Discord
現代のインターネットは暗黒森林です。攻撃者は—— LLM の力を得て Autonomous Vulnerability Exploitation により機械的なスピードでスキャン、フィンガープリンティング、エクスプロイトを実行し——到達可能なすべてのサービスを標的とみなします。Gartner は AI 駆動型サイバー攻撃が急増すると予測しています。従来の防御策はネットワークにユーザーを通した 後 に認証を行うため、露出したポート、IP、ドメインは永続的な攻撃面となり続けます。
AI 時代において、可視性 = 脆弱性。
OpenNHP はこのモデルを反転させます:信頼されるまで不可視。すべてのポート、IP、ホスト名はデフォルト拒否のゲートの背後に置かれます。アクセスが許可されるのは、暗号署名された「ノック」がアウトオブバンドで認証・認可された後に限られます。攻撃者は発見できないものを悪用できません。
NHP は「まずサービスを隠す」という設計思想の次なる一歩です:
| 世代 | プロトコル | 制限事項 |
|---|---|---|
| 1 | ポートノッキング(Port Knocking) | 平文、リプレイ攻撃に弱い |
| 2 | Single Packet Authorization(SPA) | 共有秘密、一方向通信、通常はポートのみを隠蔽、多くが C/C++ 実装 |
| 3 | NHP | 現代的な暗号、ステータス付きの双方向通信、ドメイン + IP + ポートを隠蔽、ステートレスで水平スケール可能、メモリ安全な Go |
NHP は既存の IAM、DNS、FIDO、ゼロトラスト・ポリシーエンジンを置き換えるのではなく、それらと並んで動作します——スタックをフォークせず拡張します。
OpenNHP は NIST ゼロトラスト・アーキテクチャ を参考に、3 つのコアコンポーネントから成るモジュラー設計を採用しています:
| コアコンポーネント | 役割 |
|---|---|
| NHP-Agent | 暗号化された「ノック」リクエストを送信し、アクセスを得るクライアント |
| NHP-Server | リクエストを認証・認可。独立して稼働し、保護対象ホストとアーキテクチャ上分離されている |
| NHP-AC | 保護対象サーバーのファイアウォール・ルールを管理するアクセス・コントローラ |
| アドオンコンポーネント | 役割 |
|---|---|
| NHP-Relay | ブラウザベースのエージェントが HTTPS 経由で NHP ノックを送信できるようにする HTTP-UDP ブリッジ |
| NHP-KGC | Identity-Based Cryptography(IBC)用の鍵生成センター |
NHP_KNK)を Server に送信する。NHP_AOP)を AC に送る。NHP_ART)する。NHP_ACK)を返す。OpenNHP は 2 つの互換可能な暗号スイートを提供します:
CIPHER_SCHEME_CURVE —— Curve25519 + AES-256-GCM + BLAKE2sCIPHER_SCHEME_GMSM —— SM2 + SM4-GCM + SM3いずれも Noise Protocol Framework に基づきます。Identity-Based Cryptography(IBC)モードは Key Generation Center(KGC)経由で利用できます。
プロトコルの詳細、デプロイメント・モデル、暗号設計については ドキュメント をご覧ください。
opennhp/
├── nhp/ # コアプロトコル・ライブラリ(Go モジュール)
│ ├── core/ # パケット処理、暗号、Noise プロトコル、デバイス管理
│ ├── common/ # 共有型とメッセージ定義
│ ├── utils/ # ユーティリティ関数
│ ├── plugins/ # プラグイン・ハンドラ・インタフェース
│ ├── log/ # ロギング基盤
│ └── etcd/ # 分散設定サポート
└── endpoints/ # デーモン実装(Go モジュール、nhp に依存)
├── agent/ # NHP-Agent デーモン
├── server/ # NHP-Server デーモン
├── ac/ # NHP-AC(アクセス・コントローラ)デーモン
├── db/ # NHP-DB(DHP のデータ・ブローカー)
├── kgc/ # NHP-KGC(Key Generation Center)
└── relay/ # NHP-Relay デーモン
make# すべてのコンポーネントをビルド
make
# 個別のデーモンをビルド
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
クイックスタート・チュートリアルに従い、Docker 環境で完全な認証ワークフローをシミュレートしてください。
コントリビューションを歓迎します! Pull Request を送る前に CONTRIBUTING.md をご一読ください。
注意: すべてのコミットは検証済みの GPG または SSH キーで署名されている必要があります。
git commit -S -m "your message"
脆弱性を発見した場合は、公開の issue を開くのではなく、SECURITY.md に記載された責任ある情報開示プロセスに従ってください。
Apache 2.0 ライセンス の下で公開されています。