291 lines
5.2 KiB
Markdown
291 lines
5.2 KiB
Markdown
|
|
Yes — and that is not only reasonable, it’s *structurally elegant*.
|
|||
|
|
What you’re converging on is:
|
|||
|
|
|
|||
|
|
> **“Any node can become a system”** — including the *authority node* itself.
|
|||
|
|
|
|||
|
|
Let’s make this precise and safe.
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 1. Key Insight
|
|||
|
|
|
|||
|
|
> The **Domain Authority Node (DAN)** should be bootstrapped **exactly like a SystemRescue node**,
|
|||
|
|
> but with **authority-only capabilities enabled** and **no federation by default**.
|
|||
|
|
|
|||
|
|
Same mechanics, different policy.
|
|||
|
|
|
|||
|
|
This symmetry matters a lot.
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 2. Treat the Authority Node as a First-Class ASL-HOST
|
|||
|
|
|
|||
|
|
### Properties of the Domain Authority Node
|
|||
|
|
|
|||
|
|
* Boots from a known image (like SystemRescue)
|
|||
|
|
* Has:
|
|||
|
|
|
|||
|
|
* ASL-HOST layout
|
|||
|
|
* Internal ASL store
|
|||
|
|
* Append-only log
|
|||
|
|
* Snapshot support (even if trivial)
|
|||
|
|
* Runs **offline**
|
|||
|
|
* Never federates automatically
|
|||
|
|
* Never publishes blocks unless explicitly authorized
|
|||
|
|
|
|||
|
|
This means:
|
|||
|
|
|
|||
|
|
* Keys
|
|||
|
|
* DAMs
|
|||
|
|
* policies
|
|||
|
|
* environment claims
|
|||
|
|
|
|||
|
|
…are all **just artifacts**.
|
|||
|
|
|
|||
|
|
No magic.
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 3. Minimal Internal Store for Authority Node
|
|||
|
|
|
|||
|
|
The authority node needs only a **tiny ASL subset**:
|
|||
|
|
|
|||
|
|
### Required
|
|||
|
|
|
|||
|
|
* Block store
|
|||
|
|
* Artifact index
|
|||
|
|
* Append-only log
|
|||
|
|
* Snapshot marker
|
|||
|
|
|
|||
|
|
### Not Required
|
|||
|
|
|
|||
|
|
* SIMD
|
|||
|
|
* TGK traversal
|
|||
|
|
* Federation
|
|||
|
|
* GC beyond “delete nothing”
|
|||
|
|
|
|||
|
|
Think of it as:
|
|||
|
|
|
|||
|
|
> **ASL in conservation mode**
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 4. Why This Is the Right Model
|
|||
|
|
|
|||
|
|
### 4.1 Self-Consistency
|
|||
|
|
|
|||
|
|
If the authority node uses ASL:
|
|||
|
|
|
|||
|
|
* Authority artifacts are immutable
|
|||
|
|
* Provenance exists from day zero
|
|||
|
|
* Receipts can be generated later
|
|||
|
|
|
|||
|
|
You can say:
|
|||
|
|
|
|||
|
|
> “This domain authority was generated under snapshot X, log Y.”
|
|||
|
|
|
|||
|
|
That’s extremely powerful.
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
### 4.2 No Special Code Paths
|
|||
|
|
|
|||
|
|
There is no:
|
|||
|
|
|
|||
|
|
* “special authority filesystem”
|
|||
|
|
* “magic cert directory”
|
|||
|
|
* “out-of-band signing tool”
|
|||
|
|
|
|||
|
|
Everything is:
|
|||
|
|
|
|||
|
|
* artifacts
|
|||
|
|
* policies
|
|||
|
|
* receipts
|
|||
|
|
|
|||
|
|
This keeps the system honest.
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 5. Bootstrapping Flow (Concrete)
|
|||
|
|
|
|||
|
|
### Step 0 — Boot Image
|
|||
|
|
|
|||
|
|
* Boot **ASL-Authority image**
|
|||
|
|
|
|||
|
|
* (SystemRescue + authority tools)
|
|||
|
|
* Network disabled
|
|||
|
|
* Storage ephemeral or encrypted USB
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
### Step 1 — Initialize Local ASL-HOST
|
|||
|
|
|
|||
|
|
```text
|
|||
|
|
/asl-host
|
|||
|
|
/domains
|
|||
|
|
/<new-domain-id>
|
|||
|
|
/store
|
|||
|
|
/log
|
|||
|
|
/snapshots
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
No federation. Local only.
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
### Step 2 — Generate Root Key Artifact
|
|||
|
|
|
|||
|
|
* Keypair generated
|
|||
|
|
* Stored as:
|
|||
|
|
|
|||
|
|
* public key artifact
|
|||
|
|
* encrypted private key artifact (local only)
|
|||
|
|
* DomainID derived
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
### Step 3 — Write DAM Artifact
|
|||
|
|
|
|||
|
|
DAM is written as an artifact into the local store.
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
### Step 4 — Write Authority Environment Claim Artifact
|
|||
|
|
|
|||
|
|
Also stored locally.
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
### Step 5 — Seal Snapshot
|
|||
|
|
|
|||
|
|
Create snapshot:
|
|||
|
|
|
|||
|
|
> **“Domain Authority Genesis Snapshot”**
|
|||
|
|
|
|||
|
|
Everything up to here is immutable.
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
### Step 6 — Export Admission Bundle
|
|||
|
|
|
|||
|
|
PEL program runs:
|
|||
|
|
|
|||
|
|
* inputs:
|
|||
|
|
|
|||
|
|
* DAM artifact
|
|||
|
|
* environment claim artifact
|
|||
|
|
* policy artifact
|
|||
|
|
* output:
|
|||
|
|
|
|||
|
|
* SOPS bundle artifact
|
|||
|
|
|
|||
|
|
That output is exported.
|
|||
|
|
|
|||
|
|
This is **receipt-producing**, not ad-hoc scripting.
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 6. Why This Beats “Just a Laptop”
|
|||
|
|
|
|||
|
|
Because now:
|
|||
|
|
|
|||
|
|
* the authority machine is *auditable*
|
|||
|
|
* the ceremony is *recorded*
|
|||
|
|
* the result is *deterministic*
|
|||
|
|
|
|||
|
|
And still:
|
|||
|
|
|
|||
|
|
* no TPM
|
|||
|
|
* no network
|
|||
|
|
* no registry
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 7. Internal Store Security Posture
|
|||
|
|
|
|||
|
|
You can be strict or lax:
|
|||
|
|
|
|||
|
|
| Mode | Behavior |
|
|||
|
|
| ------------- | ----------------------------- |
|
|||
|
|
| Ephemeral | RAM-backed store, destroyed |
|
|||
|
|
| Encrypted USB | LUKS + ZFS |
|
|||
|
|
| WORM | Never delete, manual handling |
|
|||
|
|
|
|||
|
|
All valid.
|
|||
|
|
|
|||
|
|
ASL doesn’t care.
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 8. Relationship to Rescue Nodes
|
|||
|
|
|
|||
|
|
| Aspect | Rescue Node | Authority Node |
|
|||
|
|
| ---------------------- | ----------- | -------------- |
|
|||
|
|
| Boots from known image | yes | yes |
|
|||
|
|
| Has ASL store | yes | yes |
|
|||
|
|
| Offline | often | always |
|
|||
|
|
| Publishes | rarely | never |
|
|||
|
|
| Federation | no | no |
|
|||
|
|
| Authority keys | no | yes |
|
|||
|
|
|
|||
|
|
Same skeleton. Different organs.
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 9. Important Constraint
|
|||
|
|
|
|||
|
|
> **The authority node must never be required for validation.**
|
|||
|
|
|
|||
|
|
Once the bundle is exported:
|
|||
|
|
|
|||
|
|
* it stands alone
|
|||
|
|
* verification does not consult the authority node
|
|||
|
|
|
|||
|
|
If you lose the authority machine, the domain still exists.
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 10. Philosophical Alignment
|
|||
|
|
|
|||
|
|
You described:
|
|||
|
|
|
|||
|
|
> “Standing at the river with a printing press.”
|
|||
|
|
|
|||
|
|
What you’re doing here is:
|
|||
|
|
|
|||
|
|
> **Printing the press itself as an artifact.**
|
|||
|
|
|
|||
|
|
That’s the right kind of recursion.
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 11. What This Enables Later
|
|||
|
|
|
|||
|
|
Because the authority node is ASL-native, later you can:
|
|||
|
|
|
|||
|
|
* publish historical authority artifacts
|
|||
|
|
* rotate keys with receipts
|
|||
|
|
* prove domain lineage
|
|||
|
|
* federate authority domains
|
|||
|
|
|
|||
|
|
All without rewriting assumptions.
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 12. One-Line Rule
|
|||
|
|
|
|||
|
|
> **If it matters, it should be an artifact.
|
|||
|
|
> If it’s an artifact, it should live in ASL.**
|
|||
|
|
|
|||
|
|
You’re converging on a system with very few “special cases” — which is exactly why it will scale conceptually.
|
|||
|
|
|
|||
|
|
If you want next, we can:
|
|||
|
|
|
|||
|
|
* draft **ASL-AUTH-HOST profile**
|
|||
|
|
* specify **authority-only PEL programs**
|
|||
|
|
* define **authority key rotation as a PEL DAG**
|
|||
|
|
* or draw the **exact on-disk layout for authority vs rescue nodes**
|
|||
|
|
|
|||
|
|
Just say the word.
|
|||
|
|
|