セキュリティ哲学 ― ₿itcoinに着想を得て

暗号技術 + オープンソース

OpenNHPのセキュリティ設計は、歴史上最も実証されたセキュリティモデルから着想を得ています。

Bitcoinからの着想

Bitcoinは1兆ドル以上の価値を保有しており、地球上の全てのハッカーにとって最も魅力的な標的です。 しかし15年以上の執拗な攻撃を受けても、一度も侵害されていません。従来のセキュリティアプローチでは とうに破られていたでしょう。Bitcoinの何が違うのでしょうか?

🔐

暗号技術

暗号技術はサイバーセキュリティの基盤であり、仮定ではなく厳密な数学的証明に基づいています。 セキュリティが数学に根ざしている場合、攻撃者は巧妙な回避策ではなく、 計算上不可能な課題に直面します。

👁️

オープンソース

オープンソースはグローバルなピアレビューを可能にします。世界中の数千人の開発者が コードの全行を正確性と脆弱性について監査できます。隠蔽によるセキュリティではなく、 透明性によるセキュリティです。

OpenNHPはこの実証済みの公式を適用します: 数学的に健全な暗号技術完全に透明なオープンソースで実装。

🛡️

Noise Protocol

相互認証と前方秘匿性のための最新の暗号フレームワーク

🔍

コミュニティ監査

世界中のセキュリティ研究者と開発者による厳密なピアレビュー

📜

Apache 2.0

最大限の採用とエンタープライズの信頼のための寛容なライセンス

リファレンス実装

OpenNHP Core

Network-Infrastructure Hiding Protocolの公式リファレンス実装。 メモリ安全性、高パフォーマンス、クロスプラットフォーム互換性のためにGoで記述されています。

13.7k スター
🍴 2.5k フォーク

コンポーネント

nhp-agent NHP接続を開始するためのクライアント側エージェント
nhp-server 認証用のコントロールプレーンサーバー
nhp-ac ポリシー適用のためのアクセスコントローラー

プラットフォーム対応

Linux Windows macOS FreeBSD Android iOS
アプリケーション例

StealthDNS

OpenNHPを搭載したZero Trust DNSクライアント。保護されたドメインが未認証クライアントに対して NXDOMAINを返す「不可視DNS解決」パターンを実証します。

  • 不可視DNS解決 - 未認証クエリからドメインを隠蔽
  • DNS検索前のNHP認証
  • 透過的ローカルリゾルバー(127.0.0.1:53)
  • クロスプラットフォーム: Windows, macOS, Linux, Android, iOS
StealthDNSを見る

StealthDNSの仕組み

ステップ 1

アプリケーションが保護されたドメインのDNS検索を実行

ステップ 2

StealthDNSがID情報を含むNHPノックを実行

ステップ 3

NHPコントローラーが検証し、一時的なアドレスを返す

結果

認証済み: 有効なDNS応答
未認証: NXDOMAIN


プラットフォーム対応

Windows macOS Linux Android iOS
統合

NHP-FRP

OpenNHPのネットワーク隠蔽と frpを統合した Zero Trustリバースプロキシ。クライアントが認証されるまでサーバーポートを完全に不可視にします。

  • リバースプロキシトンネル前のNHP認証
  • 暗号化IDが証明されるまでサーバーポートを隠蔽
  • 実績のあるfrpリバースプロキシフレームワーク上に構築
  • ポートを開放せずに内部サービスを安全に公開
NHP-FRPを見る

NHP-FRPの仕組み

ステップ 1

クライアントがNHPノックを送信してIDを認証

ステップ 2

NHPサーバーが検証し、クライアント用のfrpプロキシポートを開放

ステップ 3

クライアントがfrpトンネルを通じて内部サービスに接続

結果

内部サービスに安全にアクセス可能 ― 他の全員からは不可視


ユースケース

Remote Access NAT Traversal Internal Services Dev Tunnels
Web実装

JavaScript Agent

Zero Trustをブラウザに。JS Agentにより、WebアプリケーションがクライアントからNHP認証を直接実行し、 隠蔽されたサービスへの安全なアクセスを実現します。

  • 純粋なJavaScript実装
  • TypeScript型定義を同梱
  • 全てのモダンブラウザで動作
  • WebSocketとfetchの統合
JS Agentを見る

クイックスタート

import { NHPAgent } from '@opennhp/js-agent';

// エージェントを初期化
const agent = new NHPAgent({
  server: 'nhp.example.com',
  identity: userCredentials
});

// NHPノックを実行
const access = await agent.knock({
  resource: 'api.hidden.example.com'
});

// アクセス許可 - サービスに接続
const response = await fetch(access.endpoint);
参加する

OpenNHPへの貢献

OpenNHPは開発者、セキュリティ研究者、ドキュメントライターからの 貢献を歓迎するオープンソースプロジェクトです。

🐛

問題を報告

バグを発見したり機能リクエストがある場合は、詳細な情報と共にGitHubでIssueを作成してください。

Issueを作成
🔧

プルリクエストを送信

コントリビューションガイドラインを確認し、リポジトリをフォークして、改善を提出してください。

PRを見る
📚

ドキュメントの改善

ガイド、チュートリアル、APIドキュメントを改善して、OpenNHPをより利用しやすくしましょう。

ドキュメントを見る
🔬

セキュリティ研究

プロトコルのレビュー、実装の監査、脆弱性の特定にご協力ください。

セキュリティポリシー

OpenNHPで構築を始めましょう

今すぐインフラにZero Trustネットワークセキュリティを導入しましょう。