mcpField
T
Trust Gate MCP — First post-quantum MCP server. Policy-gated AI agent decisions with hybrid Ed25519 + ML-DSA-65 (NIST FIPS 204) cryptographic receipts. No Receipt. No Trust.

Trust Gate MCP — First post-quantum MCP server. Policy-gated AI agent decisions with hybrid Ed25519 + ML-DSA-65 (NIST FIPS 204) cryptographic receipts. No Receipt. No Trust.

ローカル
github.com/Cyber-Warrior-NetworkAI・エージェント022 週間前に更新

Trust Gate MCP — First post-quantum MCP server. Policy-gated AI agent decisions with hybrid Ed25519 + ML-DSA-65 (NIST FIPS 204) cryptographic receipts. No Receipt. No Trust. について

Trust Gate MCPは、AIエージェントのツール呼び出しをポリシーで評価し、許可された操作にEd25519とML-DSA-65のハイブリッド署名レシートを発行するMCPサーバーです。入力のサニタイズ、障害時の拒否、オフライン検証により、監査記録が必要なエージェントのワークフローに適しています。

主な機能

  1. 01リスクスコア付きポリシー評価
  2. 02許可操作へのハイブリッド署名レシート
  3. 03ML-DSA-65によるオフライン検証
  4. 04入力サニタイズとフェイルクローズ
  5. 05ポリシー事前確認とヘルスチェック

活用シーン

  1. 01コードデプロイ前の操作許可確認
  2. 02エージェント操作の検証可能な記録
  3. 03監査レシートの後年オフライン検証

MCP 対応

MCPサーバーとして、クライアントにgate_decision、verify_receipt、check_policy、healthツールを提供します。入力をサニタイズしてポリシー評価を行い、許可時にはハイブリッド署名レシートを発行し、バックエンド障害時には拒否します。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

mcp.json · 共通設定
{
"mcpServers": {
"trust-gate": {
"command": "uvx",
"args": [
"trust-gate-mcp"
],
"env": {
"TRUST_GATE_API_KEY": "<TRUST_GATE_API_KEY>"
}
}
}
}
起動コマンドuvx trust-gate-mcp
設定が必要な環境変数
TRUST_GATE_API_KEYシークレット

ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。

パッケージ
pypitrust-gate-mcp

ツール

ツール一覧はまだ取得されていません

ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。

詳細

Trust Gate MCP — すべての AI エージェントの判断に対応する、Ed25519 と ML-DSA-65 のハイブリッド署名レシート

trust-gate-mcp

NIST FIPS 204 準拠の耐量子レシートを備えた、初の本番環境向け MCP サーバー。
レシートなし。信頼なし。

Python 3.10+ License: Apache 2.0 Tests OWASP ASI Stress Test Bandit MCP Compatible NIST FIPS 204: ML-DSA-65 EU AI Act Article 50: ready CNSA 2.0: ready CVE-2026-25253: protected

AI エージェントが実行するすべての MCP ツール呼び出しを、ポリシーで制御し、ハイブリッド署名し、オフラインでも永続的にフォレンジック検証できるようにします。
ツールが汚染されたり、突然提供を打ち切られたり、乗っ取られたり、2033 年に量子計算機で破られたりした場合でも、今日の時点で暗号学的な証明を得られます。


問題(ひと言で)

AI エージェントの判断は、7~10 年後に実施されるコンプライアンス監査に備えて保管されます。しかし、現在の署名が持ちこたえるのは、おそらく 7 年ほどです。

  • 2026 年 2 月:CVE-2026-25253(OpenClaw)により、認証なしでリモートコード実行が可能となり、AI エージェントのゲートウェイ 135,000 台が危険にさらされました。同日、824 個の悪意あるツールが稼働中であることが判明しました。
  • 2024 年 10 月:Salt Typhoonは、80 か国以上から暗号化された通信データを窃取しました。「今すぐ収集し、後で解読する」が実際に行われたことを示す、最も明白な公表事例です。
  • 2026 年 8 月:EU AI Act 第 50 条の透明性義務が発効します。AI が生成したコンテンツや判断への電子署名が義務化されます。
  • 2030~2035 年:量子コンピューターの実現時期に関する共通の見通しです。この期間を超えて保管された Ed25519 署名付きレシートは、対応する公開鍵を持つ量子攻撃者によって偽造可能になります。

trust-gate-mcp は、この見通しに対応するよう構築された初の MCP サーバーです。


得られるもの

flowchart LR
    A[AI Agent] -->|"gate_decision()"| B[trust-gate-mcp]
    B -->|sanitize<br/>Class A + Class B| C[Trust Gate<br/>policy engine]
    C -->|allow| D[Hybrid sign<br/>Ed25519 + ML-DSA-65]
    D -->|TrustAtom receipt<br/>+ embedded PQ pk| E[Verifiable offline<br/>forever]
    C -->|deny / timeout / WAF| F[allow: false<br/>fail closed]

    classDef primary fill:#38BDF8,stroke:#38BDF8,color:#0A0F1C
    classDef quantum fill:#C084FC,stroke:#C084FC,color:#0A0F1C
    classDef safe fill:#34D399,stroke:#34D399,color:#0A0F1C
    classDef danger fill:#F87171,stroke:#F87171,color:#0A0F1C

    class D quantum
    class E safe
    class F danger

3 層の防御全体については、アニメーション付きアーキテクチャ図をご覧ください。


クイックスタート

Claude Desktop — claude_desktop_config.json に追加します。

{
  "mcpServers": {
    "trust-gate": {
      "command": "uvx",
      "args": ["trust-gate-mcp"],
      "env": {
        "TRUST_GATE_API_KEY": "your-api-key"
      }
    }
  }
}

Claude Code — 次の 1 つのコマンドを実行します。

claude mcp add trust-gate -- uvx trust-gate-mcp

MCP 互換のあらゆるエージェント:

pip install trust-gate-mcp
TRUST_GATE_API_KEY=your-key trust-gate-mcp

4 つのツール

gate_decision — 中核となるゲート

コードのデプロイ、データの書き込み、メッセージの送信、またはユーザーに代わる約束を行うあらゆるアクションの前に呼び出します。

{
  "action": "DEPLOY",
  "agent_id": "ci-agent-alpha",
  "resource_id": "prod-cluster-01",
  "env": "PRODUCTION",
  "human_approved": true
}

返される内容:許可/拒否の判断、リスクスコア、アクションが承認された場合のハイブリッド署名付き TrustAtom レシート。

verify_receipt — 独立検証

あらゆるレシートを数学的に検証します。方法は2つあります。

  • オフライン ML-DSA-65 — ml_dsa_signature と ml_dsa_public_key を指定します(どちらもすべてのハイブリッドレシートに埋め込まれています)。バックエンドへの呼び出しは不要です。サーバーを信頼する必要もありません。量子攻撃者に対しても、何年後でも検証できます。
  • オンライン Ed25519 — evidence_hash と signature を指定します。バックエンドに対して検証されます。すべてのレシートとの後方互換性があります。

オフライン検証フローをご覧ください。

check_policy — 事前チェック

レシートを作成したり状態を記録したりせずに、あるアクションが許可されるかを評価します。副作用は一切ありません。

health — 接続状態と量子対応機能

バックエンドの状態、MCP サーバーのバージョン、オフライン検証用の ML-DSA-65 公開鍵(base64)を返します。


量子耐性レシート

ハイブリッド署名フロー

すべてのレシートはハイブリッド署名されています。同じエビデンスハッシュに対して、Ed25519(古典暗号)と ML-DSA-65(NIST FIPS 204、セキュリティレベル3)で同時に署名します。

evidence_hash = SHA-256(canonical_payload)
ed25519_sig   = Ed25519.sign(private_key, evidence_hash)    ← classical
ml_dsa_sig    = ML_DSA_65.sign(secret_key, evidence_hash)   ← post-quantum

両方の署名と ML-DSA-65 公開鍵は、すべてのレシートに埋め込まれています。次の3つの特性があります。

  1. 現在 — これまでどおり、Ed25519 検証があらゆる場所で機能します。
  2. 耐量子時代 — 量子コンピューターによって Ed25519 が破られても、ML-DSA-65 検証は有効です。
  3. オフライン — 監査担当者は、ネットワークに一切接続せず、レシートだけを使って、何年後でも ML-DSA-65 署名を検証できます。
15行でオフライン検証
from dilithium_py.ml_dsa import ML_DSA_65
import base64

# Fields from any hybrid TrustAtom receipt:
evidence_hash   = receipt["evidence_hash"]
ml_dsa_sig      = receipt["ml_dsa_signature_b64"]
ml_dsa_pub_key  = receipt["ml_dsa_public_key_b64"]

valid = ML_DSA_65.verify(
    base64.b64decode(ml_dsa_pub_key),
    evidence_hash.encode("utf-8"),
    base64.b64decode(ml_dsa_sig),
)
# => True — no network, no server trust, quantum-resistant

または、MCP ツールを使います。

await verify_receipt(
    evidence_hash=receipt["evidence_hash"],
    signature="",                                          # omit for offline-PQ path
    ml_dsa_signature=receipt["ml_dsa_signature_b64"],
    ml_dsa_public_key=receipt["ml_dsa_public_key_b64"],
)
# => { "valid": true, "quantum_verified": true, "offline": true,
#      "signature_alg": "ML-DSA-65" }

ML-DSA-65 は CRYSTALS-Dilithium で、セキュリティレベル3(約 AES-192 相当)です。2024年8月14日に NIST FIPS 204 として標準化されました。


セキュリティモデル

独立した3つの防御レイヤー。攻撃者は3つすべてを突破しなければなりません。

3層アーキテクチャ

レイヤー1 — 入力のサニタイズ

すべての文字列引数は、条件ロジックや API 呼び出しの前にサニタイズされます。

脅威パターン数防御参考資料
不可視 Unicode(ツールポイズニング)無制限_INVISIBLE_UNICODE_RE が RTL、ゼロ幅文字、BOM、C0/C1 を除去Invariant Labs、2025年4月
クラス A — ポリシーの上書き13_INJECTION_RE がインジェクション句を無害化CVE-2025-54794
クラス B — エージェントによる拡散/流出中継4_INJECTION_RE が exfiltrate、leak/steal/dump + target、base64 encode-and-relay、embed-in-response を無害化Willison の Lethal Trifecta(2025年6月) · OWASP LLM Top 10
過大な入力フィールドごとFIPS 204 を考慮したサイズ設定を行う _MAX_LENDoS の防止
環境変数の偽装—_validate_env の許可リストにより SANDBOX に強制CVE-2025-64106

クラス B 防御フローをご覧ください。完全な脅威モデルについては、docs/THREAT_MODEL.mdをご覧ください。

レイヤー2 — ポリシー評価

バックエンドが宣言型ポリシールールを評価します。登録されていないエージェントには明示的な拒否が返され、デフォルトで許可されることはありません。判定には、連続的なリスクスコア(0.0~1.0)が含まれます。

レイヤー3 — ハイブリッド署名とフェイルクローズ

allow の場合は、ハイブリッド署名(Ed25519 + ML-DSA-65)を行います。それ以外の場合(バックエンドの停止、タイムアウト、WAF 403、429、例外)は、allow: false、risk_score: 1.0、receipt: null となります。障害が発生すると、システムの保守性は低下するのではなく、高まります。


フェイルクローズ保証

条件結果
バックエンドがオンライン、ポリシーが DENYallow: false — 通常の評価
バックエンドがオンライン、ポリシーが ALLOWallow: true + ハイブリッド署名付きレシート
バックエンドがタイムアウト/オフラインallow: false、最大リスク — フェイルクローズ
WAF によるブロックallow: false、blocked_by_waf — クリーンな JSON、HTML なし
レート制限中allow: false、rate_limited — クリーンな JSON

ベンチマーク

一般的な Windows 11 ノート PC、Python 3.12.10、純粋な Python 実装の dilithium-py 1.4.0 で測定しています(liboqs などの C バックエンドを使うと、ML-DSA は 10~20 倍高速になります)。

操作時間目標
レシート発行(ハイブリッド、鍵生成を含む)71.3 ms≤ 100 ms
レシート発行(ハイブリッド、鍵を再利用)~45 ms≤ 100 ms
Ed25519 署名21 µs≤ 5 ms
Ed25519 検証1.73 ms≤ 5 ms
ML-DSA-65 署名36.9 ms≤ 100 ms
ML-DSA-65 検証(オフライン)6.93 ms≤ 20 ms
エンドツーエンドの gate_decision(バックエンドを含む)~180 ms≤ 250 ms

署名サイズ(FIPS 204 レベル 3):

  • Ed25519 署名:64 bytes
  • ML-DSA-65 署名:3,309 bytes
  • ML-DSA-65 公開鍵:1,952 bytes(すべてのレシートに埋め込まれます)

python demo_quantum_proof.py で再現できます。


セキュリティ評価

Python 3.10~3.13、Linux/macOS/Windows 環境で、3 つのスイートすべてが各 PR で GitHub Actions により実行されます。

スイートチェック数結果
ユニットテスト(pytest)47PASS
OWASP ASI01–06 評価51PASS
敵対的ストレステスト(CVE 対応)19PASS
Bandit 静的解析528 LOC問題 0 件
pip-audit(直接依存関係)依存関係 3 件CVE 0 件

ローカルで再現するには:

pytest tests/
python -X utf8 security_audit/owasp_asi_eval.py
python -X utf8 stress_test.py
python -m bandit -r src/ --severity-level high
python -m pip_audit --strict

CVE の対象範囲

#CVE/公開情報攻撃クラス深刻度防御策
1CVE-2026-25253 (OpenClaw)WebSocket の CORS バイパス → 135K インスタンスで RCE高(CVSS 8.8)フェイルクローズ+入力のサニタイズ
2Invariant Labs Tool Poisoning不可視 Unicode による SSH キーの窃取重大Unicode の除去
3CVE-2025-54794取得コンテンツを介した間接的なプロンプトインジェクション高クラス A の無害化
4CVE-2025-68664 LangGrinch構造化出力インジェクション → 環境変数の窃取重大(CVSS 9.3)クラス A の無害化
5CVE-2025-6514 mcp-remote RCEハンドシェイクを介した OS コマンドインジェクション重大(CVSS 9.6)パラメーター化された API 呼び出し
6CVE-2025-64106 (Cursor)エージェント環境の偽装高(CVSS 8.8)環境変数の許可リスト
7CVE-2025-6515 Prompt Hijackingセッショントークンの乗っ取り高レシートベースのセッションバインディング
8Invariant Labs Rug Pull承認後のツール説明の改変重大レシートベースのツールハッシュ
9CVE-2025-5276 SSRFMCP URL の取得を介した SSRF高ポリシーで制御される許可リスト
10OWASP MCP Top 10 — MCP02, MCP10過剰なスコープ/コンテキストの過剰共有高アクションごとのレシートスコープ
11Willison Lethal Trifecta(2025年6月)エージェント型拡散によるデータ窃取高クラス B の無害化
12OWASP LLM04安全でないプラグインによるデータ窃取高クラス B の無害化
13Trend Micro Agentic AI Exfil(2024年)Base64 エンコードされたデータ窃取チャネル高クラス B の無害化
14Palo Alto Unit 42 Agentic AI Attack Framework(2025年5月)ツールチェーンを介した権限昇格高クラス B の無害化+フェイルクローズ
15Salt Typhoon HNDL(2024年10月)レシートを対象とした「今収集し、後で復号」攻撃国家レベルML-DSA-65 ハイブリッド署名

全体のマトリックスについては、docs/THREAT_MODEL.md を参照してください。python stress_test.py を実行すると、CVE に対応する入力に対する防御を検証できます。


コンプライアンス

1 つのデプロイメントで、複数の重複する要件を満たせます。

フレームワーク要件レシートによる対応
NIST FIPS 204(2024年8月14日)ML-DSA デジタル署名ネイティブ対応:すべてのレシートに ML-DSA-65 セキュリティレベル 3 で署名
NSA CNSA 2.0(2027年に調達開始、2030~2031年に全面移行)NSS における耐量子デジタル署名ML-DSA-65 は CNSA 2.0 スイートに含まれています
EU AI Act 第50条(2026年8月2日発効)AI 出力へのデジタル署名、電子透かし、メタデータすべてのレシート:署名済み+タイムスタンプ付き+機械可読+オフラインで検証可能
NIST AI RMFGOVERN 4.1、MEASURE 2.5 — 監査証跡暗号学的なレシートチェーン
NIST SP 800-218 SSDFPS.3.1、PW.5.1 — 署名付き来歴情報アクションごとのハイブリッド署名
SOC 2CC7.2、CC7.3 — 改ざん検知可能なログ記録第三者がオフラインで検証可能
NIST SP 800-53AU-10(否認防止)、SC-12、SC-13ハイブリッド署名+埋め込み公開鍵

mcp-scan との違い

Invariant Labs の mcp-scan は、インストール時に既知のポイズニングパターンがないか MCP 設定をスキャンします。ぜひ利用してください。

trust-gate-mcp は実行時に、呼び出しごとに毎回、暗号学的な証明を生成します。

mcp-scan       --> scan before you install  --> "is this tool safe to run?"
trust-gate-mcp --> receipt every time it runs --> "did this tool do what it claimed?"

一方は検出し、もう一方は証明します。どちらも MCP スタックに必要です。


環境変数

変数デフォルト説明
TRUST_GATE_URLhttps://cwn-trust-gate.onrender.comTrust Gate API のベース URL
TRUST_GATE_API_KEY(空)ベアラートークン — cwn-trust-gate.onrender.com で取得できます
TRUST_GATE_TENANTdefaultマルチテナントのデプロイに使用するテナント ID
TRUST_GATE_TIMEOUT30HTTP タイムアウト(秒)

開発

git clone https://github.com/Cyber-Warrior-Network/trust-gate-mcp
cd trust-gate-mcp
pip install -e ".[dev]"

# Run the full test suite (47 tests, ~2s)
pytest

# Run CVE-mapped stress tests (3 iterations, 19 checks)
python -X utf8 stress_test.py

# Run OWASP ASI01-06 evaluation (51 checks)
python -X utf8 security_audit/owasp_asi_eval.py

# Reproduce the quantum demo (hybrid mint + offline verify + tamper + benchmark)
python demo_quantum_proof.py

コントリビューター向けワークフローの全容については、CONTRIBUTING.md を参照してください。

テストカバレッジ
テストクラステスト数対象
TestConfig3設定、環境変数の読み込み
TestClientHeaders3認証ヘッダー、URL の正規化
TestClientMethods7各ツールの HTTP 構築、WAF/429 のクリーンなエラー
TestGateDecisionTool4成功、エラー、WAF 403、すべてのパラメーター
TestVerifyReceiptTool3署名の検証、無効な JSON、エラー
TestCheckPolicyTool2ポリシーの結果、エラー処理
TestHealthTool2成功、到達不能
TestSanitizeFunction8RTL オーバーライド、ゼロ幅文字、クラス A インジェクション、サイズ超過、環境変数の偽装
TestAgenticDiffusionDefense5クラス B のデータ流出パターン(2026 年 4 月以降、必須)
TestMlDsaFieldSizeLimits4FIPS 204 のフィールドサイズ健全性チェック(必須)
TestGateDecisionSanitization5エンドツーエンドのサニタイズ、空のフィールドを拒否
TestCheckPolicySanitization1空のフィールドは拒否を返す

合計:47 件のテスト。OWASP ASI チェック 51 件。ストレステスト 19 件。すべての PR で 3 種類すべてを再実行します。


FAQ

MCP サーバーをツールポイズニングから保護するにはどうすればよいですか? MCP 設定に trust-gate-mcp を追加してください。すべてのツール呼び出しがポリシー評価を受け、ハイブリッド署名付きの証明書が発行されます。宣言された動作からの逸脱はすべて記録され、以降の呼び出しでは拒否されます。

CVE-2026-25253(OpenClaw)に対して、私の環境は脆弱ですか? OpenClaw を v2026.2.25 に更新せずに実行している場合は、脆弱です。trust-gate-mcp は、未パッチのシステムでも証明書ベースの検知レイヤーを追加します。不正なルーティングが発生すると、ポリシー違反として監査ログに記録されます。

Trust Gate のバックエンドが停止した場合はどうなりますか? サーバーはフェイルクローズし、すべての gate_decision が allow: false を返します。ポリシーエンジンに接続できない間は、いかなる操作も実行されません。停止によってシステムの制限が緩むのではなく、より厳しくなります。

Claude Desktop、Cursor、Windsurf で動作しますか? はい。トランスポートレイヤーで MCP 設定をラップするため、標準的な MCP クライアントであればどれでも利用できます。

オープンソースですか? はい。Apache-2.0 ライセンスです。MCP クライアントとすべてのテストは完全にオープンです。ホスト型ポリシーエンジンは別のサービスです。また、TRUST_GATE_URL に独自のデプロイ先を指定することもできます。

証明書は量子耐性がありますか? はい。すべての証明書は Ed25519(従来型)と ML-DSA-65(耐量子、NIST FIPS 204/CRYSTALS-Dilithium セキュリティレベル 3)でハイブリッド署名されています。ML-DSA-65 の公開鍵は証明書に直接埋め込まれているため、バックエンドに依存せず完全にオフラインで検証できます。将来、量子コンピューターによって Ed25519 が破られた場合でも、ML-DSA-65 の署名は有効なままです。

ネットワークに接続せずに証明書を検証できますか? はい。ハイブリッド証明書の場合は可能です。証明書の ml_dsa_signature フィールドと ml_dsa_public_key フィールドを verify_receipt に渡してください。埋め込み公開鍵を使って、検証はすべてお使いのマシン上で実行されます。バックエンドへの呼び出しも、Trust Gate アカウントも、インターネット接続も必要ありません。

EU AI Act に準拠していますか? 第 50 条の透明性義務(2026 年 8 月 2 日発効)では、AI が生成したコンテンツや意思決定にデジタル署名を付与することが義務付けられています。すべての TrustAtom 証明書はデジタル署名され、タイムスタンプが付与された機械可読形式であり、第三者がオフラインで検証できます。コンプライアンス表をご覧ください。

パフォーマンスへの影響はどの程度ですか? エンドツーエンドの gate_decision は、バックエンド呼び出しを含めて約 180 ms です。オフラインでの ML-DSA-65 検証は約 7 ms です。ベンチマークをご覧ください。


ドキュメント

  • WHITEPAPER.md — 測定結果、関連研究、再現性に関する付録を含む技術論文全文
  • ARCHITECTURE.md — 3 層の防御、データフロー、パフォーマンス予算、拡張ポイント
  • THREAT_MODEL.md — 攻撃の分類、防御策、CVE 対応範囲の全マトリックス
  • SECURITY.md — 責任ある脆弱性開示(72 時間以内に受領確認、30 日以内に修正、90 日後に公開)
  • CONTRIBUTING.md — 47/51/19 のテスト不変条件を含むコントリビューター向けワークフロー
  • CHANGELOG.md — リリースノート

関連項目

  • Trust Gate — このサーバーが接続するホスト型ポリシーエンジン
  • mcp-scan — MCP 設定をスキャンしてツールポイズニングを検出
  • OWASP MCP Top 10 — MCP セキュリティの決定版分類
  • NIST FIPS 204 — モジュール格子ベースのデジタル署名標準
  • dilithium-py — 本プロジェクトが基盤としている純粋な Python 製 ML-DSA リファレンス実装
  • Model Context Protocol — このサーバーが実装する仕様

責任ある脆弱性開示

脆弱性を見つけましたか?非公開の GitHub Security Advisory を作成するか、[email protected] にメールでご連絡ください。90 日間の責任ある脆弱性開示期間を設けています。SECURITY.mdをご覧ください。


License

Apache-2.0 — Cyber Warrior Network

No Receipt. No Trust.

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。