商业产业 Hacker News AI 2026-08-18T19:07 正文 ok 214 words

Show HN:一份 AI Agent 运行的密封证据记录——两次被攻破,发现者获署名致谢

英文标题:🔶 Show HN: Sealed evidence record of an AI agent run – broken twice, credited

AAAP v0.5 是一个针对已发布版本进行加固的挑战项目,其 v0.3 历史版本以不可变、可复现的脆弱版本形式保留。v0.4 数据包逐字节保留了 v0.3 的证据链、工件和证明文件,同时重新生成验证层并以相同的锚定生产身份签署 manifest schema v2。项目提供 Python/OpenSSL 验证流程,用于校验数据字节、规范化封装语义、顺序、manifest 策略及签名,但明确不保证现实世界真实性、签署时间、密钥保管或注册表独立来源。对开发者而言,该项目展示了如何在 AI Agent 运行记录中构建可验证证据链,以及验证结果的信任边界。
打开原文相关 3 · 机会 1
media93.9 KB

中文

AAAP v0.5 —— 发布后加固挑战

提交版本 e0fca96651b30c76d0a29bf867cdd14cdc38db00 中的 AAAP v0.3 被保留为一个不可变、可复现且历史上存在漏洞的发布版本。本仓库是其加固后的继任版本。

v0.4 数据包逐字节保留了 v0.3 的 chain.jsonl、artifacts/ 和 attestation.json。它重新生成了面向人工阅读和验证的层,并使用相同的锚定生产身份对 manifest schema v2 进行签名。因此,链头和公钥保持如下:

  • 链头:14d14281170d89f6f8b918daf6541f81e7e13549dd4c66f5b085304ff6a61724
  • 公钥:e7fb4aad8b0e0246eb6569f49d301ad88a0b54333e3de8bb57e02e118fd3716c

请从 CHALLENGE.md 开始。完整的 v0.3 复现工具和机器执行结果位于 security/ 下;发布后发现问题的记录账本见 docs/AAAP_POST_RELEASE_SECURITY.md。

要求:Python 3.10+,以及 Python cryptography 包,或者支持 Ed25519 pkeyutl -rawin 的 OpenSSL 构建版本。

cd packet
python3 verify_packet.py . \
  --expected-head 14d14281170d89f6f8b918daf6541f81e7e13549dd4c66f5b085304ff6a61724 \
  --expected-pubkey e7fb4aad8b0e0246eb6569f49d301ad88a0b54333e3de8bb57e02e118fd3716c

如需进行注册表策略验证,请独立获取两份完全一致的注册表快照,并使用 --packet-name demo/packet。两个仓库均由 github.com/cjchanh 控制:它们是两段 Git 历史,而不是两个独立的管理或托管信任来源。

一次 PASS 会认证所检查的字节、规范化封装语义、顺序、manifest 策略,以及在所提供锚点下的签名。它不证明现实世界真实性、签署时间、Keychain 托管、操作员所有权、验证器或主机的善意、注册表新鲜度,或独立来源。

加固来源:操作员私有工作区中的本地工作提交;已发布的演进谱系为 e0fca96 -> 8f5ba31f -> c06b163 -> 939b1e7 -> 9655a65 -> 06a3982(当前版本)。

English / 原文

AAAP v0.5 — Hardened Post-Release Challenge

AAAP v0.3 at commit e0fca96651b30c76d0a29bf867cdd14cdc38db00 is preserved as an immutable, reproducibly vulnerable historical release. This repository is its hardened successor.

The v0.4 packet preserves the v0.3 chain.jsonl, artifacts/, and attestation.json byte-for-byte. It regenerates the human/verification layer and signs manifest schema v2 with the same anchored production identity. The chain head and public key therefore remain:

  • head: 14d14281170d89f6f8b918daf6541f81e7e13549dd4c66f5b085304ff6a61724
  • pubkey: e7fb4aad8b0e0246eb6569f49d301ad88a0b54333e3de8bb57e02e118fd3716c

Start with CHALLENGE.md. The complete v0.3 reproducer and machine results are under security/; the post-release finding ledger is docs/AAAP_POST_RELEASE_SECURITY.md.

Requirements: Python 3.10+ and either the Python cryptography package or an OpenSSL build with Ed25519 pkeyutl -rawin support.

cd packet
python3 verify_packet.py . \
  --expected-head 14d14281170d89f6f8b918daf6541f81e7e13549dd4c66f5b085304ff6a61724 \
  --expected-pubkey e7fb4aad8b0e0246eb6569f49d301ad88a0b54333e3de8bb57e02e118fd3716c

For registry-policy verification, independently acquire both exact registry snapshots and use --packet-name demo/packet. Both repositories are controlled by github.com/cjchanh: they are two Git histories, not two administrative or custodial trust origins.

A PASS authenticates the checked bytes, canonical envelope semantics, ordering, manifest policy, and signatures under the supplied anchor. It does not prove world truth, signing time, Keychain custody, operator ownership, verifier/host benevolence, registry freshness, or independent origin.

Hardening source: local working commit in the operator's private workspace; the published lineage is e0fca96 -> 8f5ba31f -> c06b163 -> 939b1e7 -> 9655a65 -> 06a3982 (current).