veritasacta-verify について
veritasacta-verifyは、Actaの署名付きレシートなどを検証するオフラインCLIとブラウザー用エンジンです。別の信頼できる経路で取得した公開鍵を使いたい人向けに、プロファイルごとの結果と検証範囲を示します。
主な機能
- 01オフラインのEd25519署名検証
- 02CLIと共有ブラウザー検証エンジン
- 03複数のレシート形式に対応
- 04解析前に重複JSONメンバーを拒否
- 05プロファイル別の検証結果
活用シーン
- 01発行元に接続せずレシートを確認
- 02外部鍵でブラウザー用レシートを検証
- 03バンドルや特殊な成果物を検査
- 04検証失敗と判定不能を区別
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
@veritasacta/verify
発行サービスに問い合わせずに、署名済みレコードを自分で検証できます。
オフライン CLI と、共有ブラウザー領収証エンジンです。別の信頼できるチャネルから取得した領収証と公開鍵を指定し、独自の信頼ポリシーを適用します。領収証の検証にアカウント、プロキシ、署名デーモン、オンボーディング手順は必要ありません。
ブラウザーのサンプルを試す · 領収証の仕様 · 適合性の証拠
既存の領収証を検証する
npm install -g @veritasacta/[email protected]
verify receipt.json --key YOUR_INDEPENDENTLY_OBTAINED_PUBLIC_KEY
鍵は 64 文字の 16 進数です。出所不明の領収証に添付された鍵を、独立した信頼の基点として扱わないでください。この検証処理は、パッケージのインストール後はオフラインで実行されます。インストールと、明示的に要求された URL/JWKS の検索ではネットワークを使用します。
Acta の領収証や監査バンドルを、検証対象のファイルから取得した鍵で検証することはありません。署名対象のバイト列に、指定した鍵とは異なる鍵(public_key、verification_key、verification_jwk)が含まれる領収証は key_mismatch で失敗し、ペイロードに記載された issuer_id が署名の kid と異なるエンベロープは issuer_kid_mismatch で失敗します。監査バンドル自身の verification.signing_keys は --trust-bundle-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に制限されます。選択的開示、VOPRF、Knowledge Units、Gateの証拠、ガバナンス対象の実行マニフェストなどのバンドルや専門プロファイルを利用するには、CLIが必要です。プロファイルの成功によって確立されるのは、その出力で指定されたチェックのみであり、あらゆる事項が網羅的に検証されたことを意味しません。
ガイドを選ぶ
| タスク | ガイド |
|---|---|
| バンドル、チェーン、プロンプト、専門的なアーティファクトを検証する | 高度なリファレンス |
| TRACEのActaフィクスチャに対するこのCLIの結果を確認する | TRACEフィクスチャの結果 |
| レシートを発行する、またはプロキシ/デーモンを設定する | 発行とアダプター |
| 脅威と制限事項を理解する | 脅威モデル |
| 脆弱性を報告する | セキュリティポリシー |
| リリースの変更内容を正確に確認する | 変更履歴 |
| テストを実行する、またはフィクスチャに貢献する | 貢献ガイド |
| プロジェクトの意思決定と運営を理解する | ガバナンス |
リリースの完全性。発行者の認証ではありません
verify --self-check は、監視対象のソースハッシュを同梱された完全性コミットメント(Sigil)と照合して再計算します。これにより、そのコミットメントからの逸脱を検出します。コードとコミットメントの両方を置き換えれば、整合性のある新しいパッケージを作成できます。
これだけで発行者を独立して認証したり、正規のリリースであることを確立したりすることはできません。独立して入手した参照値を固定し、リリースの来歴を確認してください。--attest はローカルで作成される自己署名の完全性ステートメントです。これを信頼する前に、そのキーを別途固定してください。
リリースと標準の状況
Verifier:0.11.1。状況の確認日:2026-10-25。
- draft-farley-acta-signed-receipts-03:有効な個人Internet-Draftです。
- draft-farley-acta-knowledge-units-00:失効した個人Internet-Draftです(2026-10-08に失効)。
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の商用アプリケーションは必要ありません。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。