Back to Eliza

Threat Model — Boot, Update, Debug, Manufacturing, RMA

packages/chip/docs/security/threat-model.md

2.0.16.6 KB
Original Source

Threat Model — Boot, Update, Debug, Manufacturing, RMA

Status: pre-silicon specification. Not implementation evidence. This document defines the assets, adversaries, attack surfaces, and required mitigations that the boot, OTA, debug, and manufacturing flows must satisfy before any "secure boot", "verified boot", "rollback protected", or "debug locked" claim may be made (see docs/project/security-usb-storage-update-fail-closed-work-order-2026-05-17.yaml).

Scope domains: ROM, bootloader, recovery, OTA client, AVB chain, debug authentication, manufacturing provisioning, RMA unlock, and signer/HSM operations.

1. Assets

IDAssetConfidentialityIntegrityAvailability
A1Root public-key hash (in OTP)PublicCriticalCritical
A2Root signing private key (offline HSM)CriticalCriticalHigh
A3AVB vbmeta signing key (online signer)CriticalCriticalHigh
A4Vendor / OEM intermediate keysHighCriticalHigh
A5Debug-authentication root key hash (OTP)PublicCriticalMedium
A6Rollback indices (OTP monotonic counters)PublicCriticalCritical
A7Lifecycle state fusesPublicCriticalCritical
A8Boot ROM code (mask ROM)PublicCriticalCritical
A9Bootloader / recovery / OTA client imagesPublicCriticalHigh
A10User data and KeyMint key blobsCriticalCriticalMedium
A11Per-device identity (UDID, attestation key)HighCriticalMedium
A12Manufacturing audit logHighCriticalHigh
A13Signer access credentials / HSM PINsCriticalCriticalHigh

2. Adversaries

IDAdversaryCapabilityIn-scope
T1Remote network attackerNetwork-level only; can serve malicious OTA payloads on the same channel.Yes
T2Local USB attackerPhysical USB-C access, fastboot/ADB protocol-level.Yes
T3Storage-replacement attackerCan swap eMMC/UFS/SD; replay old images; corrupt partitions.Yes
T4Bus/probe attackerLogic analyzer on SPI/eMMC/JTAG headers; no decapsulation.Yes
T5Lost-or-stolen-device attackerPossession; tries fastboot unlock; user-data extraction.Yes
T6Insider at OEM / signerAccess to signer host but not HSM key material.Yes (audit-only mitigation)
T7Compromised manufacturing lineCan attempt to over-provision, downgrade, or program forbidden lifecycle states.Yes
T8Decap / FIB / e-beam attackerInvasive silicon attack; OTP imaging.Out of scope for v0 — explicit non-goal
T9Side-channel attacker (DPA, EM)Power/EM analysis on signature verification.Out of scope for v0 — explicit non-goal
T10Supply-chain ROM trojanModifies mask ROM mid-foundry.Out of scope (mitigated only by foundry contract + ROM hash publication)

3. Attack surfaces

SurfaceDomainExposes
S1 Mask ROM reset vectorROMA8, indirectly A1
S2 SPI/eMMC boot read pathROM / bootloader loadA9
S3 vbmeta / AVB descriptor parsingbootloaderA9, A6
S4 OTA payload parser (update_engine)OSA9
S5 fastboot / fastbootd protocolbootloader / userspaceA6, A7, A10
S6 Recovery sideloadrecoveryA9
S7 JTAG / SWD test portdebugA8, A10
S8 USB-C CC/PD policy engineUSB stackindirect — denial of service, malicious source
S9 OTP programming interfacemfgA1, A5, A6, A7, A11
S10 Signer host / HSM APIoffline / onlineA2, A3, A4, A13
S11 RMA unlock challenge-responseserviceA5, A7, A10

4. Mitigations (required, not implemented)

IDMitigationSurfacesSpec doc
M1Verify next-stage signature with key chained to OTP root hash (A1) before transfer of control. ROM halts on failure.S1, S2boot-image-format.md
M2Reject any image whose rollback index < the OTP rollback index for that slot.S2, S3, S4boot-image-format.md, avb-a-b-ota.md
M3AVB chain partition descriptors covering boot, vendor_boot, dtbo, system, vendor, product; vbmeta signed by A3.S3avb-a-b-ota.md
M4Reject OTA payload with bad signature, wrong key, downgrade rollback, or corrupt metadata before any write to inactive slot.S4avb-a-b-ota.md, test-plan.md
M5Two-stage OTA: download to staging, verify whole-image signature, then apply to inactive slot; mark slot unbootable on partial install.S4avb-a-b-ota.md
M6Refuse OTA below configured battery threshold and on full storage.S4avb-a-b-ota.md
M7fastboot flashing disabled when lifecycle = LOCKED; unlock requires user opt-in and triggers full user-data wipe + key erasure.S5debug-policy.md, avb-a-b-ota.md
M8JTAG/SWD gated by lifecycle fuse + debug-auth challenge signed by key chained to A5.S7debug-policy.md
M9Recovery image covered by AVB; recovery sideload requires same signature policy as OTA.S6avb-a-b-ota.md
M10OTP write logic disables programming of lifecycle, root, and rollback fuses after lifecycle transition to LOCKED.S9otp-fuse-map.md
M11All signing operations executed by HSM; signer host never holds plaintext private key; every signature emits an audit-log entry with operator, image hash, key id, timestamp.S10key-ceremony.md
M12RMA unlock uses per-device challenge-response signed by OEM RMA key; success enters RMA lifecycle state which erases user keys and is one-way.S5, S11debug-policy.md, key-ceremony.md
M13USB-C CC policy implements sink-only by default; source advertise restricted; ESD per IEC 61000-4-2 +/-8 kV contact at connector.S8usb-pd-spec.md
M14Boot ROM published with cryptographic hash; foundry mask-set digest archived in release manifest.S1boot-image-format.md

5. Non-goals (explicit)

  • No defense against decapsulation, FIB rework, or e-beam OTP imaging.
  • No DPA/EM side-channel countermeasures in v0 signature verification.
  • No claim of Common Criteria, FIPS 140, or GP TEE certification.
  • No anti-rollback for non-AVB partitions (e.g., misc, persistent).
  • No StrongBox / discrete secure element in v0 (KeyMint TEE-only is the ceiling).

6. Fail-closed defaults

If any required mitigation cannot be verified at boot, the platform must:

  1. Halt before executing mutable firmware (no fallback to unsigned).
  2. Light an unverified-boot indicator and emit a structured halt log to UART.
  3. Refuse to enter any state that permits writes to user data partitions.

Any deviation from these defaults invalidates every claim in docs/project/security-usb-storage-update-fail-closed-work-order-2026-05-17.yaml.