linuxboot / heads

A minimal Linux that runs as a coreboot or LinuxBoot ROM payload to provide a secure, flexible boot environment for laptops, workstations and servers.
https://osresearch.net/
GNU General Public License v2.0
1.4k stars 181 forks source link

Heads/Coreboot specific work # #605

Closed zaolin closed 2 years ago

zaolin commented 4 years ago

Heads/Coreboot specific work

@zaolin

Originally posted by @tlaurion in https://github.com/osresearch/heads/issues/540#issuecomment-519188762

zaolin commented 4 years ago

We will scope that out. Let me come back to you. Regarding Intel TXT @marmarek any input?

zaolin commented 4 years ago

We need to discuss the security model with flash chip.

tlaurion commented 4 years ago

@zaolin I'm ready! Some links to share?

marmarek commented 4 years ago

AEM in its current form is about boot integrity (xen.gz, vmlinuz, initramfs) only. It is doing that through TXT/DTRM. Heads provide very similar assurance with SRTM + a more convenient verification method (NitroKey with green/red LED or dynamic TOTP). We don't have other usage for TXT in Qubes right now. There are some wild ideas about doing re-attestation after S3, but I think it isn't even properly designed yet.

tlaurion commented 4 years ago

@marmarek @zaolin AEM official doc: https://github.com/QubesOS/qubes-antievilmaid

merge commented 4 years ago

We need to discuss the security model with flash chip.

Not sure if that's what you mean, but in case it is, this is my view: vboot "RO" and heads will lock the flash (even if we don't yet do that now. should be an easy addition).

zaolin commented 4 years ago

@merge Yes but updates rely then on heads

merge commented 4 years ago

@merge Yes but updates rely then on heads

sure. just as they do already I guess.

tlaurion commented 4 years ago

@zaolin @merge

Yes. The updates should come from Heads reproducible builds anyway and are updatable from whiptail menus already.

The user puts a reproducible rom on a usb disk, go to Heads settings menu, selects the flash rom update, and decides if he wants to wipe the currently added cbfs files in its current rom or not.

Keeping current configuration (user modified /etc/config overrides and public gpg key) are exported from cbfs regions prior to be reinjected in rom and then flashed back into spi with flashrom.

Reflashing modifies measurements and requires the user to seal those in the TPM/Librem Key and reseal a new disk unlock key depending of current board configurations.

tlaurion commented 4 years ago

@zaolin the lockdown part, in heads, would be #326

tlaurion commented 4 years ago

The general goal here is to broader the range of FSP free, neutralized+deactivated Intel ME (and PSP absent) boards supported under Heads umbrella, while taking advantage of coreboot's measured boot support available through VBOOT work merged under coreboot 4.9+. Heads currently uses an in-house measured boot support based on coreboot (4.8.1).

Upon completion, it is expected that the following boards will be supported under Heads with latest coreboot.

First importance:

Second importance:

General

coreboot 4.8.1 specifics

Tickets needing to be updated/closed with the work being done here: https://github.com/osresearch/heads/issues/41#issue-181472484 https://github.com/osresearch/heads/issues/500 https://github.com/osresearch/heads/issues/287 https://github.com/osresearch/heads/issues/562 https://github.com/osresearch/heads/issues/541 https://github.com/osresearch/heads/issues/150 https://github.com/osresearch/heads/issues/15 #307

tlaurion commented 4 years ago

"Also, keep in mind assembly is a lot more work for the t530, you have to solder a wire to the opposite chip your flashing every single time and so on to bypass flash protection (cs to vcc)"

tlaurion commented 4 years ago

Work continuing under #709 (9elements) #721 (community)