heads/initrd
persmule 3f1c76ce11
Introduce io386 to heads and use it to finalize chipset at runtime
On some newer platforms of intel (confirmed on nehalem, sandy/ivy
bridge), coreboot after commit [2ac149d294af795710eb4bb20f093e9920604abd](https://review.coreboot.org/cgit/coreboot.git/commit/?id=2ac149d294af795710eb4bb20f093e9920604abd)
registers an SMI to lockdown some registers on the chipset, as well
as access to the SPI flash, optionally. The SMI will always be triggered
by coreboot during S3 resume, but can be triggered by either coreboot
or the payload during normal boot path.

Enabling lockdown access to SPI flash will effectly write-protect it,
but there is no runtime option for coreboot to control it, so letting
coreboot to trigger such SMI will leave the owner of the machine lost
any possibility to program the SPI flash with its own OS, and becomes
a nightmare if the machine is uneasy to disassemble, so a scheme could
be implement, in which the SMI to lockdown chipset and SPI flash is left
for a payload to trigger, and temporarily disabling such triggering in
order to program the SPI flash needs authentication.

I have implemented a passcode-protected runtime-disableable lockdown
with grub, described [here](https://github.com/hardenedlinux/Debian-GNU-Linux-Profiles/blob/master/docs/hardened_boot/grub-for-coreboot.md#update-for-coreboot-after-commit-2ac149d294af795710eb4bb20f093e9920604abd). In order to implement a similar scheme for
Heads, I wrote [io386](https://github.com/hardenedlinux/io386).

With this commit, io386 will be called before entering boot routine
to trigger the SMI to finalize the chipset and write protect the SPI
flash at the same time. Entering recovery shell will leave the flash
writable.

(The authentication routine implemented in previous revisions has been
split as an independent commit.)

Originally proposed under PR#326
2023-06-12 13:05:49 -04:00
..
.gnupg instruct gpg to use gpg-agent. 2019-01-29 11:16:13 -05:00
bin Introduce io386 to heads and use it to finalize chipset at runtime 2023-06-12 13:05:49 -04:00
etc Qubes weekly signing key has changed. Removed testing and replaced. 2023-05-24 12:13:07 -04:00
run/cryptsetup [WIP] cross build json-c and cryptsetup 2020-10-28 15:28:05 +02:00
sbin Add dual support for real bash and busybox's bash(ash) 2023-03-08 12:45:44 -05:00
.ash_history GPG2 required changes for key and trustdb generation and inclusion in rom 2019-01-29 11:18:11 -05:00
init fstab, init: Remove securityfs mount 2023-03-13 14:11:02 -04:00
mount-boot Add dual support for real bash and busybox's bash(ash) 2023-03-08 12:45:44 -05:00