byreis v0.6 release notes¶
v0.6 là audit-trail completion release. Nó deliver hai cải tiến mà cùng nhau close gap giữa cái audit-binding verifier v0.5 đã claim và cái nó thực sự prove được: verification contributor-side độc lập và enforcement counter-monotonicity continuity.
Asymmetric-access guarantee không thay đổi. Contributor vẫn encrypt và submit write-only; họ không decrypt được, và không có v0.6 surface nào cho một người không giữ key một route tới một plaintext value. Mức access vẫn được derive từ thực tế cryptography, không bao giờ từ một flag, một environment variable, hay một config file.
Có gì mới¶
byreis audit verify — audit verification contributor-accessible¶
Một command top-level mới byreis audit verify --project <id> thực
hiện full per-line binding walk và available trong mọi mode:
Contributor, Admin, và Super. Một contributor key-less giờ chỉ cần
pinned trust anchor (qua init/trust.yaml) và read access tới
registry; không có private key, không có write credential, và không
có secret đã decrypt nào được access hay return.
Đây là differentiator asymmetric-compliance: audit trail giờ có thể được verify độc lập bởi bất kỳ party nào có read access tới registry, mà không cần giữ một admin key. Boundary admin-only v0.5 retired.
Verb mới là một sibling của admin audit show, không phải một
relaxation của nó. Admin-only audit show (cái decode và render
audit detail decoded-plaintext) không thay đổi và vẫn admin-only.
Verb audit verify all-modes confined trong binding walk read-only
và không reach được bất kỳ plaintext path nào theo cấu trúc: nó
import không identity hay decrypt package nào, acquire không write
token, và không make registry write.
CI integration. Dùng byreis audit verify như một tamper
tripwire trong CI:
Command exit non-zero trên bất kỳ tamper finding, offline condition,
hay registry HEAD unverifiable nào. Flag --json emit một binding
report machine-readable với status per-line. Không có result
partial-verified-as-clean.
Check counter-monotonicity continuity¶
Verifier giờ assert per-file counter continuity qua ordered
introducing-commit walk. Các field counter (expected_previous_counter,
pending_counter) được parse từ anchor-signed commit body — không
bao giờ từ verified JSONL content — và check theo git-history order.
Cái này close pre-binding prefix residual đã disclose trong v0.5
(ADR-0019 errata E2): một principal giữ trust anchor key rewrite
history của audit channel để back-position một dòng anchor-signed
fabricated không còn có thể làm dòng đó display là legacy thay
vì TAMPERED. Một counter break — một gap, một regression, hay
một forked predecessor value — mark dòng là TAMPERED kể cả khi
content hash của nó match, vì break prove ordered set của
introducing commit không phải sequence monotonic genuine.
Check span verified-HEAD checkpoint seam trên incremental (warm-path) walk: seam predecessor counter state được re-derive từ anchor-verified cloned history ở verification time, không bao giờ từ checkpoint cache. Một checkpoint forged không thể inject một false counter seed và không thể mask một seam break; bất kỳ derivation failure nào force một full cold re-walk.
Check là absent-vs-contradiction aware: một field counter thiếu trong một anchor-signed commit body không được đối xử như một tamper signal (nhiều commit hợp lệ pre-date các field counter). Chỉ một value present-and-contradictory fail closed.
Implementation notes¶
byreis audit verify reuse port AuditVerifier hiện có, binding
renderer, và exit-code contract của admin audit show --verify. CI
consumer đã parse output --json của --verify có thể consume
output của verb mới mà không có schema change.
Check counter-monotonicity là một second pass trên paired
(commits × lines) set sau phase content-hash. Một counter break
mark dòng là BindingTampered kể cả khi content-hash check đã pass,
vì hai check là evidence độc lập của cùng một tamper event.
Disclosure positioning và thẳng thắn¶
Các statement này bound cái byreis làm, có chủ ý:
-
Audit verification giờ available cho contributor.
byreis audit verifyđược permit trong mọi mode (Contributor, Admin, Super). Một party key-less giờ có thể independently confirm registry audit trail untampered mà không cần giữ một admin private key. Restriction admin-only v0.5 superseded bởi release này. -
Residual counter-monotonicity disclose trong v0.5 giờ closed. Pre-binding prefix residual mô tả trong v0.5 (một admin holding anchor-key back-position một dòng anchor-signed fabricated để nó display là
legacythay vìTAMPERED) closed trên cả cold full-history walk và incremental (checkpoint-seam) warm path. Một counter break → TAMPERED, bất kể outcome content-hash. -
Decline và reject event không được cover bởi audit-binding verifier. Reject event được record host-local ở thời điểm rejection và không được write vào audit channel của registry. Verifier do đó không và không thể bind chúng; absence của chúng từ channel là expected và không phải tamper signal.
-
Audit line được write trước binding era được show là
legacy, không phảiverified. Các dòng pre-date per-line binding không mang fieldaudit_entry_shavà không thể retroactively bind. Chúng không bao giờ display làverifiedvà không bao giờ làTAMPERED. -
Reorder hai dòng introduce bởi cùng một single commit dưới granularity binding per-commit và không được detect. Verifier bind mỗi dòng với commit đã introduce nó. Cross-commit reorder được detect; hai dòng từ cùng một commit swap trong diff của commit đó là một residual boundary của approach per-commit.
-
Verifier chỉ mạnh bằng pinned trust anchor. Mỗi commit trong history walk được verify đối với single pinned
TrustAnchorKey. Footer commitbyreis-signerlà một label attested identify signing tool; nó không phải một trust key độc lập. Residual còn lại sau v0.6 là một principal giữ trust anchor key có thể author history internally consistent (sequence counter đúng, content hash đúng, signature đúng) — trust root là anchor, theo thiết kế. -
Verifier là read-only và zero-decrypt. Audit channel là public. Verifier acquire không private key, không write credential, và return không plaintext value. Không có v0.6 surface nào cho một người không giữ key một route tới một plaintext value.
-
Verification fail closed dưới resource pressure. Một history registry adversarially-lớn, một registry trở nên unreachable giữa walk, hay một context deadline làm verifier return một typed offline hay timeout error và exit non-zero. Không có result partial-verified-as-clean và không có silent truncation. Tamper-evidence không bị yếu đi bởi resource pressure, nhưng verification availability không guarantee đối với một registry thù địch hay unreachable.
-
GitHub-only. byreis support GitHub là host registry của nó. Không có forge backend khác được support trong release này.
Upgrade¶
Drop-in replacement cho v0.5. Không có thay đổi secrets-format,
không có thay đổi registry-schema, không có thay đổi environment
variable. Các file encrypted, registry, signed commit hiện có, và
contract hai-biến BYREIS_PROJECT / BYREIS_PROJECT_REPO đều
không bị ảnh hưởng. Verb audit verify là additive; invocation
admin audit show --verify hiện có tiếp tục hoạt động identical.