nhowardtli/virp

GitHub: nhowardtli/virp

VIRP 是一套通过密码学签名在采集点锁定设备输出、确保 AI 智能体对网络基础设施操作真实可验证的信任协议。

Stars: 5 | Forks: 1

# VIRP — 经验证的基础设施响应协议 **为操作真实基础设施的 AI 智能体提供的密码学信任原语。** 当 AI 智能体告诉你防火墙策略配置错误时,你能证明它真的检查过吗? 当它说 BGP 会话已建立时,它是从真实设备读取的 —— 还是伪造的? 当它声称配置更改成功时,证据在哪里? **VIRP 使每一个智能体声明都可验证。不是通过提示词。不是通过护栏。而是通过密码学。** ## VIRP 的功能 VIRP 是一个开放协议,它在收集点签署每一个设备观测数据,在 AI 看到数据之前。 一个专用进程 —— **O-Node** —— 连接到你的网络设备,捕获原始输出,并使用 HMAC-SHA256 对其进行签名。AI 智能体接收预签名数据。它可以推理设备返回的内容。它无法伪造、修改或捏造数据 —— 因为它从未持有签名密钥。 这不是策略。这是代码路径。 ``` Agent: "FortiGate policy 2 allows all traffic with no AV/IPS." VIRP: verdict: VERIFIED HMAC: da383afe...c18 chain_seq: 4882 session_id: f84c1a3e... device_id: 0x00000002 (FW-01) command_hash: 7c2b4d3a... (show firewall policy 2) timestamp: 2026-03-11T14:30:22.917384Z Verify it yourself. ``` ## 存在原因 在开发 IronClaw 期间,我们观察到 AI 系统: - 生成具有有效 UUID 但实际上不存在的防火墙策略 - 报告来自 RFC 5737 文档地址的威胁 - 基于伪造的 OSPF 邻接状态提出路由更改 每个输出在技术上都是合理的。但没有一个是真实的。 提示词工程、输出验证和行为护栏无法修复此问题。AI 直接在其响应文本中伪造输出,而未调用签名执行路径。 **VIRP 是结构性的修复方案。** ## 架构 ``` ┌─────────────────────┐ ┌─────────────────────┐ │ AI Node (CT 210) │ │ O-Node (CT 211) │ │ │ │ │ │ Agent + LLM │─────▶│ VIRP C Library │ │ │ │ Device Credentials │ │ Zero credentials │ │ Signing Keys │ │ Zero signing keys │◀─────│ Chain Database │ └─────────────────────┘ └──────────┬──────────┘ │ SSH ┌──────────┼──────────┐ Cisco IOS FortiGate PA-850 ``` **隔离笼 (The Cage)** — 三道结构墙强制隔离: | 墙 | 机制 | |---|---| | 1 | AI 节点没有通往设备的网络路由 | | 2 | 设备 ACL 仅接受来自 O-Node IP 的 SSH | | 3 | O-Node 套接字锁定为授权进程 | ## 七个信任原语 | # | 名称 | 作用 | 状态 | |---|---|---|---| | P1 | 经验证的观测 | 设备输出在收集时进行 HMAC 签名 | 生产环境 | | P2 | 分层授权 | 在 AI 之下强制执行命令分类 | 生产环境 | | P3 | 经验证的意图 | 执行前的签名提议 | 已实现 | | P4 | 经验证的结果 | 执行前/后的签名比对 | 已实现 | | P5 | 基线记忆 | 基于签名历史检测偏差 | 已实现 | | P6 | 信任链 | SQLite 防篡改链 | 已实现 | | P7 | 信任联邦 | Ed25519 跨租户验证 | 已实现 | ## 快速开始 ``` # 依赖 sudo apt install -y build-essential git \ libssl-dev libsodium-dev libsqlite3-dev \ libssh2-1-dev libcurl4-openssl-dev libjson-c-dev # Build git clone https://github.com/nhowardtli/virp.git && cd virp make CISCO=1 FORTIGATE=1 PANOS=1 ASA=1 LINUX=1 make CISCO=1 FORTIGATE=1 PANOS=1 ASA=1 LINUX=1 prod # Test make all-tests make test-session make test-session-key # Deploy ./build/virp-tool keygen -o /etc/virp/keys/onode.key ./build/virp-onode-prod \ -k /etc/virp/keys/onode.key \ -s /tmp/virp-onode.sock \ -d /etc/virp/devices.json \ -c /var/lib/virp/chain.db ``` Systemd 服务:`deploy/virp-onode.service` ## 生产环境结果 在真实硬件上测试: - 40 台设备处于 VIRP 主动管理下 - 35 台路由器的 BGP 拓扑,在 60 秒内完成完整验证 - FortiGate 审计:15 个真实发现,零误报 - 假设 O-Node 受信且未被入侵,协议设计即可防止伪造 ## 文档 | 主题 | 位置 | |---|---| | 查询如何变为签名观测 | [Wiki: Observation Flow](../../wiki/Observation-Flow-End-to-End) | | 会话握手深入解析 | [Wiki: Session Establishment](../../wiki/Session-Establishment) | | 线上格式 v1 和 v2 | [Wiki: Wire Format Reference](../../wiki/Wire-Format-Reference) | | 安全架构 (隔离笼) | [Wiki: The Cage](../../wiki/The-Cage-Security-Architecture) | | 加固的 KVM 部署 | [Wiki: KVM Deployment](../../wiki/KVM-Hardened-Deployment) | | 威胁模型 | [Wiki: Threat Model](../../wiki/Threat-Model) | | 信任层级说明 | [Wiki: Trust Tiers](../../wiki/Trust-Tiers) | | 添加设备 | [Wiki: Device Onboarding](../../wiki/Device-Onboarding) | | 常见问题 | [Wiki: FAQ](../../wiki/FAQ) | | 协议规范 | `VIRP-SPEC-RFC-v2.md` | | 线上格式规范 | `VIRP-WIRE-FORMAT.md` | ## 包含内容 - **C 库** — 约 8,500 行,C11,`-Wall -Wextra -Werror -pedantic` - **供应商驱动程序** — Cisco IOS, FortiOS, PAN-OS, Cisco ASA, Linux - **Go 实现 (Go implementation)** — 2,700+ 行,相同的线上格式,互操作性已测试 - **会话握手** — HELLO/HELLO_ACK/SESSION_BIND 状态机 - **HKDF 会话密钥** — 主密钥从不直接签署运行时观测数据 - **信任链** — SQLite,防篡改,崩溃安全 - **联邦** — 通过 libsodium 实现 Ed25519 - **46 个测试** — 单元测试、集成测试、互操作性测试、模糊测试、负面路径会话测试 ## 协议规范 - **RFC 草案:** `draft-howard-virp-02` - **IETF RATS:** 已提交 - **Zenodo DOI:** 已注册 - **许可证:** Apache 2.0 ## 贡献 基础设施工程师 · 安全研究人员 · 驱动程序作者 (Juniper, Arista, Meraki, 云 API) · 协议设计师 **Nathan M. Howard** — Third Level IT LLC — nhoward@thirdlevelit.com
标签:AI安全, BGP, Chat Copilot, Fortinet, HMAC-SHA256, JSONLines, Zenmap, 全文检索, 可信执行, 可验证计算, 安全测试工具, 审计追踪, 客户端加密, 密码学, 幻觉缓解, 开源协议, 手动系统调用, 数据完整性, 日志审计, 网络信任锚, 网络安全, 网络自动化, 防伪验证, 防火墙策略, 隐私保护, 零信任