- Add "Bootstrap Role (v2.1.0)" section to Eye-Remote-Implementation.md with capabilities, use cases, architecture, configuration, workflow, and security considerations - Update Table of Contents in Eye-Remote-Implementation.md to include bootstrap section - Add bootstrap reference to Eye Remote section in Home.md - Add bootstrap functionality note to Architecture-Boot.md with cross-reference to Eye-Remote-Bootstrap.md This cross-references the new Eye-Remote-Bootstrap feature across related documentation pages. Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
4.6 KiB
Boot Architecture
SecuBox-DEB uses a five-layer boot chain from hardware firmware to user space. Three exclusive execution modes are available: maintenance (PROMPT), display (KIOSK), or production (API).
Boot Chain Overview
Layer 1 — HW / BootLoader
| Platform | Firmware | Notes |
|---|---|---|
| Lenovo ThinkCentre M710q | BIOS/UEFI | x86_64, Secure Boot capable |
| MOCHAbin (Armada 7040) | U-Boot | ARM64, eMMC or NVMe boot |
| ESPRESSObin (Armada 3720) | U-Boot | ARM64, SD or eMMC boot |
Layer 2 — OS / UEFI (GRUB2)
GRUB2 handles kernel selection, signature verification (Secure Boot), and optional TPM2 unsealing (tpm2_unseal).
CSPN Compliance Points:
/bootpartition is unencrypted (FAT32/ext4) but protected by UEFI signature verification- Kernel command line parameters are locked in production
- GRUB password is mandatory on production targets
Layer 3 — Kernel + InitRamfs
Hardened Linux Kernel
CONFIG_SECURITY_LOCKDOWN_LSM=y
CONFIG_MODULE_SIG=y
CONFIG_MODULE_SIG_SHA512=y
CONFIG_HARDENED_USERCOPY=y
CONFIG_RANDOMIZE_BASE=y # KASLR
Built-in modules: nftables, WireGuard, eBPF (restricted), MOCHAbin network drivers (mvneta/mvpp2).
InitRamfs Operations
- Mount encrypted LUKS2 disk (
cryptsetup luksOpen) - Verify ZKP pre-mount proof (GK·HAM-HASH L1)
- Mount encrypted root on
/sysroot switch_rootto Rootfs
Layer 4 — Rootfs / INIT (systemd)
After pivot_root, systemd orchestrates the 10-phase SecuBox-DEB startup:
| Phase | Services | SecuBox Pairs |
|---|---|---|
| 1 — Network | nftables, WireGuard, Tailscale | MESH↔AUTH |
| 2 — Perimeter Security | CrowdSec, HAProxy | WALL↔MIND |
| 3 — DPI dual-stream | nDPId (active/shadow) | WALL↔MIND |
| 4 — Runtime API | FastAPI/Uvicorn, 4R buffer | BOOT↔ROOT |
| 5 — ZKP auth | GK·HAM-HASH (L1/L2/L3) | BOOT↔ROOT |
| 6 — MirrorNet P2P | WireGuard + did:plc | MESH↔AUTH |
| 7 — Notarization | ALERTE·DÉPÔT blind notarization | WALL↔MIND |
| 8 — Display | HyperPixel / RPi Zero coprocessor | MESH↔AUTH |
| 9 — Monitoring | Metrics, alerts, SIEM | WALL↔MIND |
| 10 — Finalization | Health-check, seal TPM2 | BOOT↔ROOT |
Execution Modes
PROMPT <LOG> — Maintenance Mode
Target: secubox-prompt.target
- Shell access via physical console or restricted SSH
- Full audit logging (
auditd+systemd-journal, 90-day retention) - Production services (API, DPI, MirrorNet) are stopped
echo "MODE=PROMPT" > /etc/secubox/runtime.conf
systemctl isolate secubox-prompt.target
KIOSK [UI] — Display Mode
Target: secubox-kiosk.target
- Locked UI for metrics display on HyperPixel
- No shell access, no inbound network interfaces
- Communication via Unix socket (read-only)
- Auto-restart on crash
echo "MODE=KIOSK" > /etc/secubox/runtime.conf
systemctl isolate secubox-kiosk.target
API (RT) — Production Mode
Target: secubox-api.target (default)
- FastAPI/Uvicorn on Unix socket (HAProxy TLS frontend)
- 4R double-buffer active on L2
- nDPId dual-stream listening
- CrowdSec in agent mode
- No interactive shell, no external SSH
echo "MODE=API" > /etc/secubox/runtime.conf
systemctl isolate secubox-api.target
Module Color Correspondence
| Color | Hex | Layer / Mode |
|---|---|---|
| BOOT | #803018 |
HW / BootLoader |
| WALL | #9A6010 |
OS / UEFI |
| MIND | #3D35A0 |
Kernel + InitRamfs |
| ROOT | #0A5840 |
Rootfs / INIT — API Mode |
| MESH | #104A88 |
KIOSK Mode [UI] |
| AUTH | #C04E24 |
PROMPT Mode <LOG> |
CSPN Control Points
- Kernel and module signatures verified by Secure Boot
- InitRD without plaintext secrets (
lsinitrd | grep -i key) - TPM2 sealing to PCR 0+7+14 validated after kernel updates
- PROMPT mode only accessible via physical console or certificate SSH
- Audit logs exported and signed before each PROMPT session
- API mode won't start if ZKP L1 proof fails
- Network isolation between modes verified by
nft list ruleset
Bootstrap Device (Eye Remote v2.1+)
The Eye Remote can function as a boot device for MOCHAbin and ESPRESSObin systems:
- Mass Storage LUN — U-Boot loads kernel/DTB/initrd from active slot
- TFTP Shadow — Test new images before atomic promotion
- Safe Recovery — Fallback boot when internal storage is corrupted
- A/B Slot Management — Automatic rollback on boot failure
See Eye-Remote-Bootstrap for full implementation details.
See also: Architecture-Security, Architecture-Modules, Eye-Remote-Bootstrap