mcpField
V
veritasacta-verify

veritasacta-verify

本地服务
github.com/VeritasActa安全53 天前更新

关于 veritasacta-verify

veritasacta-verify 是用于验证 Acta 签名收据及相关记录的离线命令行工具和浏览器引擎。它适合使用单独可信渠道取得公钥的人员,可提供按配置文件区分的结果并说明验证范围。

主要功能

  1. 01离线 Ed25519 签名验证
  2. 02命令行与共享浏览器验证器
  3. 03支持多种收据格式
  4. 04解析前拒绝重复 JSON 成员
  5. 05按配置文件输出验证结果

适用场景

  1. 01无需联系签发方即可检查收据
  2. 02使用外部公钥验证浏览器收据
  3. 03检查捆绑包和专业制品
  4. 04区分验证失败与无法判定

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"tomjwxf-veritasacta-verify": {
"command": "npx",
"args": [
"-y",
"@veritasacta/verify"
]
}
}
}
启动命令npx -y @veritasacta/verify

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
npm@veritasacta/verify0.11.1

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

@veritasacta/verify

自行检查已签名记录,无需联系签发服务。

离线 CLI 和共享的浏览器回执引擎。提供回执和通过单独可信渠道获取的公钥,然后应用你自己的信任策略。验证回执无需账户、代理、签名守护进程或入门步骤。

试用浏览器示例 · 回执规范 · 符合性证据

验证现有回执

npm install -g @veritasacta/[email protected]
verify receipt.json --key YOUR_INDEPENDENTLY_OBTAINED_PUBLIC_KEY

密钥为 64 个十六进制字符。不要将随未知回执提供的密钥视为独立的信任锚。安装软件包后,此验证流程会离线运行;安装以及明确请求的 URL/JWKS 查询会使用网络。

Acta 回执或审计包绝不会使用从待检查文件中提取的密钥进行验证。如果回执的已签名字节中携带的密钥(public_key、verification_key、verification_jwk)与所提供的密钥不同,验证将失败并返回 key_mismatch;如果信封载荷中的 issuer_id 与其签名的 kid 不同,则验证将失败并返回 issuer_kid_mismatch。只有传入 --trust-bundle-keys 时,才会使用审计包自身的 verification.signing_keys;此时有效结果仅表明回执与同一文件中的密钥相匹配。门禁记录、宏跟踪记录、受治理回执、证明包、上下文包、仓库证据、标准文件和运行清单都携带自身密钥;不传入 --key 进行检查时,结果无法判定(退出码 2)。--allow-carried-key 会接受该密钥(退出码 0),并说明签名无法证明签名者身份;即使如此,--strict 仍会拒绝该密钥。密钥有效期适用于签名所覆盖的 issued_at,披露内容也会根据签名所覆盖的承诺进行检查;无法应用的披露不会被检查(退出码 2)。

要试用公开示例,请下载此回执,并使用其仅供演示的密钥:

verify current-receipt.json --key ebb8cf3efc78717c50e7c438c0ad5498f8fa4e09607fea1e030ac129b5965225

有效签名不能证明声明属实、行动覆盖完整、签名者具有授权或接收方已接受。签名时间戳是签发方的声明,不是独立时间戳。

正确解读结果

结果含义后续步骤
已验证 / 退出码 0此配置文件实现的检查均已通过应用身份、授权和依赖策略;阅读警告和绑定范围
失败 / 退出码 1某项验证检查失败检查预期密钥、签名、结构和报告的错误
未检查 / 退出码 2验证器无法判定提供缺失材料,或使用受支持的格式/算法

退出码 1 不代表已证明遭到篡改。 提供错误的预期密钥也可能导致相同结果。为兼容性,某些旧版 JSON 错误类别使用名称 tampered;它表示验证失败,而非取证结论。请参阅错误代码和特定配置文件的输出。

浏览器和 CLI

两种入口都使用 src/detect.js、src/engines/ed25519-receipt.js 和同一个规范化器。 浏览器包发布在 browser/ 中,并附带 SHA-256 构建清单。

浏览器接受单独的 Ed25519 信封、v2 结构化回执、v1 扁平回执,以及历史网站的 receipt_version: "1.0" 回执。该历史配置文件在签名时排除 public_key,并明确标注;不会悄然将其提升为符合 draft-03。所有浏览器配置文件都需要外部密钥。不支持的格式会标记为未检查,而不会报告为签名无效。

两个入口都会在解析前拒绝含有重复 JSON 成员的输入。浏览器将输入限制为 1 MiB、深度限制为 64;CLI 文件解析器允许 50 MiB、深度限制为 128。Bundle 和专业配置文件(包括选择性披露、VOPRF、Knowledge Units、Gate 证据和受治理运行清单)需要使用 CLI。配置文件验证成功仅表示通过输出中列出的检查,并不代表普遍完整。

选择指南

任务指南
验证 bundle、链、提示词或专业制品高级参考
查看此 CLI 对 TRACE Acta 测试夹具的结果TRACE 测试夹具结果
签发回执或配置代理/守护进程签发和适配器
了解威胁和限制威胁模型
报告漏洞安全策略
查看确切的版本变更变更日志
运行测试或贡献测试夹具贡献指南
了解项目决策和管理方式治理

版本完整性,而非发布者身份验证

verify --self-check 会根据捆绑的完整性承诺(Sigil)重新计算受监控源文件的哈希值,以检测其是否偏离该承诺。若有人同时替换代码和承诺,就能创建一个内部一致的新软件包。

它不会独立验证发布者身份,也无法确立规范版本。请固定一个通过独立途径获得的参考值,并检查版本来源。--attest 是本地自签名的完整性声明;依赖它之前,请单独固定其密钥。

发布与标准状态

验证器:0.11.1。状态审核日期:2026-10-25。

Internet-Draft 是提案,并非已采纳的 IETF 标准,也不代表 IETF 背书。

release-manifest.json 是本 README、网站、组织资料页和草案索引中版本/状态信息块的数据来源。 node scripts/sync-public-metadata.mjs --check 会检查同级仓库中的副本。 此同步不会修订或重新提交任何草案。

开发与维护

由 Tom Farley / ScopeBlind 维护。独立验证并不意味着组织治理独立。贡献应包含可复现的测试夹具和负面案例。贡献指南介绍了干净检出、软件包检查和适合新手的贡献方式。有关可复现的互操作性结果及其局限,请参阅公开项目证据。

npm ci
npm test
npm run check:browser
npm run check:sigil
npm run test:conformance

Apache-2.0。实际条款请参阅 LICENSE 和 PATENTS.md。 Acta 公共记录是一个独立的参考应用。 ScopeBlind 的商业应用并非验证所必需。

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。