FABRIC-2.md Section U addendum: foreign-drive protection, zuse one-way
burn, console/VM key-match attachment -- still brainstorming, nothing implemented Three more requirements captured while fresh, same design session: (7) home-blocks write path must check for a home-blocks signature before ever writing to an inserted drive, warn and refuse on foreign/ unrecognized/blank media instead of silently claiming it; (8) zuse credential minting is one-way, asymmetric with an operator drive's presumed re-provisioning path; (9) console/VM split -- console is generic and shared, drive insertion spins up a per-identity VM (a Tripod-birth-mechanism consumer), and console-to-VM attachment is a key/lock match, structurally similar to ACL-PIN's existing key model but not yet confirmed to reuse it directly. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Sonnet 5
parent
afe64ba537
commit
21168f99da
+42
@@ -2611,3 +2611,45 @@ Natural next steps, none begun: (a) settle the hotwords-cache-reuse question fro
|
|||||||
open point, (b) decide on the identity→block-range derivation function (item 3), (c) scope
|
open point, (b) decide on the identity→block-range derivation function (item 3), (c) scope
|
||||||
the minimal USB xHCI + MSC bulk-only read/write driver as its own milestone, sized against
|
the minimal USB xHCI + MSC bulk-only read/write driver as its own milestone, sized against
|
||||||
virtio-blk's build-out for comparison.
|
virtio-blk's build-out for comparison.
|
||||||
|
|
||||||
|
**Addendum, same session, three more requirements while fresh:**
|
||||||
|
|
||||||
|
7. **Foreign-drive protection — a hard precondition on the write path, not yet in the design
|
||||||
|
above.** Before any home-blocks write path touches an inserted USB drive, it must check for
|
||||||
|
a signature confirming the drive is already a minted home-blocks drive (analogous to a
|
||||||
|
filesystem superblock magic number, consistent with this project's existing content-
|
||||||
|
addressed-everything approach — e.g. an XXHash64-verified header block, matching the
|
||||||
|
pattern capsules already use for identity). If the signature is absent, or the drive
|
||||||
|
carries a foreign filesystem (Windows, Linux, blank, anything unrecognized), the system
|
||||||
|
must warn and refuse to write rather than silently claiming/overwriting it. Section U's
|
||||||
|
original design (items 1-6 above) implicitly assumed every inserted drive was already a
|
||||||
|
minted home-blocks drive; this closes that gap.
|
||||||
|
8. **Zuse minting is one-way — asymmetric with Captain Bob's drive.** Once a drive is burned
|
||||||
|
as the zuse superuser credential, it cannot be re-minted or overwritten, ever — a strictly
|
||||||
|
harder constraint than an operator drive (which presumably can be re-provisioned if lost or
|
||||||
|
replaced). The two physical thumb drives from the Phase 8 PKI context above are *not*
|
||||||
|
symmetric in how their write/re-mint paths should behave, even though both are "thumb
|
||||||
|
drives" in the general sense — the zuse path needs its own one-way-burn guard, distinct
|
||||||
|
from whatever re-provisioning path an ordinary operator drive gets.
|
||||||
|
9. **Console/VM split — attach-by-key, not attach-by-identity-check.** The *console* (the
|
||||||
|
physical/session-level interface — what a person actually sits down at) is generic and
|
||||||
|
shared, with no identity bound to the console itself; anyone can attach to a console.
|
||||||
|
Plugging in a USB drive is what spins up a **VM** for that specific identity — a natural
|
||||||
|
consumer of the existing Tripod birth mechanism (Hera already births VM patrons; this would
|
||||||
|
be another trigger for that same mechanism, driven by drive insertion rather than a capsule
|
||||||
|
load). The console then must bind to *exactly one* VM — the one belonging to the identity
|
||||||
|
that just plugged in — via a key/lock match: the console presents a key, the VM (or its
|
||||||
|
home-blocks range) carries a matching lock, and the two only attach on a match. Captain
|
||||||
|
Bob's own framing: "receptors," a lock-and-key/DNA-matching model, structurally the same
|
||||||
|
shape as `ACL-PIN`'s existing key-based permission model, just applied to console→VM
|
||||||
|
binding instead of word-level execution permission — **open question, not yet settled:**
|
||||||
|
whether this literally reuses the `ACL-PIN`/`acl_allow` mechanism (extended to gate console
|
||||||
|
attachment the same way it gates word execution) or needs its own separate key-matching
|
||||||
|
primitive. Confirmed shape (Captain Bob, verbatim confirmation this session): "console
|
||||||
|
attaches to a user's VM... solves just its own VM, that's all it's gonna be" — one console,
|
||||||
|
one VM, exactly, for the duration of that binding. End-to-end flow as currently understood:
|
||||||
|
insert USB drive → drive's credential authenticates and spins up (or re-attaches to) that
|
||||||
|
identity's VM → console presents its key → key matches the VM's lock → console is now
|
||||||
|
attached to that VM and only that VM → "I have permission to use a [thumb drive as a
|
||||||
|
credential] tool. I'm gonna use a console. Simple as that" (Captain Bob, describing the
|
||||||
|
intended user experience end state).
|
||||||
|
|||||||
Reference in New Issue
Block a user