maccessUK/MIC

GitHub: maccessUK/MIC

MIC 是一个实验性的机器意图合约运行时,通过签名合约、策略约束和审计记录为自动化任务执行提供信任治理与证据层。

Stars: 0 | Forks: 0

# MIC — 机器意图合约 **状态:** MIC Core 协议 v0.1.1;独立验证器 v2.1.0 MIC 是一个用于自动化任务执行的实验性信任和证据层。 它使用签名合约、策略、受信任的引擎清单和审计记录,来证明机器、自动化工具、后台 worker 或 AI agent 被允许做什么——以及之后产生了什么证据。 MIC 专为那些不应被盲目信任自动化的系统而设计。 MIC 不是让软件或 AI agent 直接执行敏感工作,而是定义: * 正在请求什么 * 允许哪个 engine 处理它 * 允许执行哪些操作 * 适用哪些安全限制 * 允许访问哪些文件、路径或资源 * 必须产生什么证据 * 之后必须存在什么审计记录 MIC 不是 AI 模型。 MIC 不是 workflow engine。 MIC 是一个用于受控、可审计的机器执行的签名执行治理层。 ## 为什么需要 MIC 现代系统越来越多地允许软件和 AI agent 采取实际操作: - 批准付款 - 更改基础设施 - 处理受监管的文档 - 发布生产批次 - 访问敏感记录 - 触发操作工作流 问题不仅在于操作是否成功。 更棘手的问题是证明: - 谁或什么请求了它 - 检查了哪些规则 - 应用了哪些限制 - 允许或阻止了什么 - 产生了什么证据 - 执行是否与原始意图匹配 MIC 的存在是为了让这些操作变得明确、签名、受约束和可审计。 ## 核心理念 传统代码表示: ``` Do A, then B, then C. ``` MIC 表示: ``` Achieve this outcome, using only these allowed actions, within these limits, and prove what happened. ``` ## MIC 的适用人群 MIC 专为从事以下工作的开发者、研究人员、审计员、合规团队和系统设计者设计: * AI agent 治理 * 签名自动化 * 策略绑定执行 * 安全的后台任务 * 受监管的文档处理 * 重度审计的工作流 * 基于证据的任务审批 * fail-closed runtime 系统 * 机器操作验证 MIC 对于普通的 CRUD 应用、博客、基础脚本或低风险的内部工具可能是不必要的。 它针对的是那些问题不仅在于: ``` Did the task run? ``` 而更在于: ``` Was this task authorised, constrained, verified, and auditable? ``` ## 基本流程 ``` Human / System Intent ↓ Signed MIC Contract ↓ MIC Core ↓ Contract Verification ↓ Policy + Safety Checks ↓ Approved Engine Execution ↓ Evidence Output ↓ Audit Record ↓ Application Worker Applies Business State ``` MIC engine 产生证据。 应用程序决定是否应用业务变更。 ## MIC 的优势领域 MIC 专为那些证据和控制至关重要的系统而设计: - AI agent 治理 - 合规系统 - 受监管的自动化 - 安全的任务执行 - 高风险审批工作流 - 文档处理 - 基础设施变更控制 - 重度审计的业务操作 MIC 对于普通的 Web 应用、博客、小型脚本或简单的 CRUD 系统可能有些大材小用。 ## 为什么不直接使用 Workflow Engine? Workflow engine 负责编排工作。 MIC 则是治理是否允许、限制、验证机器工作并为其提供证据。 一个 workflow engine 可能会回答: ``` What step runs next? ``` MIC 会问: ``` Was this machine action allowed to run at all, under this policy, with this trusted engine, and can we prove what happened? ``` Workflow engine 通常关注: * 队列 * 重试 * 分支 * 调度 * 长时间运行的进程 MIC 关注: * 签名的 intent * 受信任的 engine 身份 * 策略限制 * 允许的操作 * 核心约束 * 证据输出 * 审计记录 * fail-closed 行为 MIC 可以位于 workflow 系统的旁边、底层或内部。它并不试图取代编排。 ## 合约示例 ``` mic_version: "0.1.1" contract_id: "ai-refund-approval-001" engine_id: "example.ai_agent_action_approval" task: "approve_ai_agent_action" input: actor_type: "ai_agent" actor_id: "support-agent-17" requested_action: "issue_refund" target_id: "order_12345" amount_gbp: 149.99 constraints: allow_network: false max_runtime_seconds: 30 max_memory_mb: 256 require_audit: true require_policy_snapshot: true require_human_approval_above_gbp: 100 actions: - verify_actor_identity - verify_requested_action - verify_policy_limits - require_human_approval - generate_decision_evidence - write_audit_event output: format: "json" fields: - decision - reason - required_approvals - policy_snapshot_hash - audit_id signature: "" ``` 此合约不直接发放退款。 它验证请求的操作是否被允许并产生证据。如果 MIC 结果有效,单独的应用程序 worker 随后可以执行退款。 ## 仓库内容 ``` MIC/ ├─ README.md ├─ LICENSE.md ├─ SPECIFICATION.md ├─ SECURITY_MODEL.md ├─ GOVERNANCE.md ├─ CONTRIBUTING.md ├─ examples/ │ ├─ contracts/ │ ├─ manifests/ │ └─ policies/ ├─ docs/ │ ├─ core.md │ ├─ INDEPENDENT_VERIFICATION.md │ ├─ UPGRADING_CODE_ADMISSION_V1_TO_V2.md │ ├─ SIGNING.md │ ├─ TRUST_CHAIN.md │ ├─ positioning.md │ └─ terminology.md ├─ core/ │ ├─ mic_core.c │ └─ README.md ├─ schemas/ │ ├─ approval-manifest-v2.schema.json │ ├─ keyring-v1.schema.json │ ├─ security-profile-v1.schema.json │ └─ security-rule-pack-v1.schema.json ├─ bin/ │ └─ mic.mjs └─ validator/ ├─ README.md └─ verify-manifest.mjs ``` ## v0.1.1 包含哪些内容? - C 核心源代码 - 合约示例 - engine 清单示例 - 策略示例 - fail-closed 策略模型 - 审计输出格式 - 针对已发布公钥的真实 Ed25519 验证 ## MIC v2 独立验证 独立的验证器在不导入生产者扫描器或审批 engine 的情况下验证代码准入证据: ``` npm run check mic verify-manifest \ --repository /path/to/repository \ --manifest /path/to/approval-manifest.json \ --keyring /path/to/public-keyring.json ``` 原生清单 schema `2.0.0` 和 `2.1.0` 包含已签名的仓库文件清单、扫描根目录、哈希规则、批准状态、阻断性发现摘要、异常过期记录以及 Ed25519 签名。 请参阅[独立验证](docs/INDEPENDENT_VERIFICATION.md)。 该验证器是一个零依赖的 Node.js 20+ 包。它可以通过 `mic` CLI 或导出的 `verifyManifest` API 独立使用。原生 v2 将签名元数据绑定到已签名的字节中,并拒绝不完整的扫描、未来的签名、过期的异常、格式错误的证据、未知的 schema 字段、仓库漂移以及注入的准入文件。 Schema `2.1.0` 还将选定的安全配置文件、精确的 rule-pack 哈希和解析出的规则覆盖率绑定到已签名的准入清单中。 包含的示例使用了显式的占位符签名和 engine 哈希。 它们演示了未经验证的试运行工作流,绝不能将其表示为已签名的生产制品。 ## 便携式安全规则包 MIC Core 现在定义了通用的安全配置文件和 rule-pack 解析: ``` mic validate-security-profile \ --profile examples/security-profiles/housefile-nextjs.example.json \ --rule-packs examples/security-rule-packs ``` 配置文件会选择精确版本的语言/框架 rule pack。核心组件在遇到缺失的 pack、不兼容的扫描器 API、缺失的语言或框架覆盖、缺失必需规则以及规则 ID 冲突时会采取 fail-closed 处理。项目可以无需重写准入、审查、异常、签名或验证机制,将 TypeScript/Next.js pack 替换为 Rust/Axum 或 PHP/Laravel pack。 请参阅[安全规则包](docs/SECURITY_RULE_PACKS.md)。 ## 源代码与二进制文件 公开仓库以源代码作为主要制品发布。 编译后的二进制文件可能稍后通过 GitHub Releases 发布。 除非二进制文件由项目维护者发布,并且其校验和/签名与已发布的发布元数据匹配,否则不要信任二进制文件。 切勿提交私有签名密钥。 ## 快速开始 在安装了 C 编译器、`make` 和 libsodium 开发头文件的情况下: ``` make build build/mic-core \ --contract examples/contracts/compliance-check.contract.yaml \ --manifest examples/manifests/compliance-check.engine.yaml \ --policy examples/policies/default-fail-closed.policy.yaml \ --audit-out audit/compliance-check.audit.json ``` 请参阅[核心文档](docs/core.md)、[签名](docs/SIGNING.md)以及[信任链](docs/TRUST_CHAIN.md)。 ## 当前状态 MIC Core 协议 v0.1.1 和 MIC v2.1 验证器仍处于实验阶段。 当前的重点是: - 定义合约格式 - 定义安全规则 - 验证签名合约验证 - 验证 engine 验证 - 产生有用的审计记录 - 探索真实的治理示例 未经独立审查、测试、认证以及法律/合规批准,请勿将 MIC 用于生命关键、医疗、核能、航空、金融或安全关键的生产系统。 ## 许可证 MIC 在 MIC 社区许可证 v1 下发布。 允许在个人、教育、研究、评估和非商业项目中免费使用。 商业用途需要商业许可证。 请参阅 [LICENSE.md](LICENSE.md)。 ## 简短描述 MIC 是一个用于自动化任务执行的实验性信任和证据层。它使用签名合约在执行发生之前定义 intent、允许的操作、安全约束和审计要求。 ## 关键词 AI agent 治理、签名自动化、机器意图合约、策略绑定执行、runtime 证据、审计跟踪、fail-closed 自动化、Ed25519 验证、安全任务执行、机器操作验证。
标签:MITM代理, Streamlit, 审计日志, 执行治理, 智能体治理, 策略引擎, 网络安全挑战, 网络调试, 自动化, 自定义脚本, 访问控制