-
-
Notifications
You must be signed in to change notification settings - Fork 187
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Overcomming space limitations for fancy features #818
Comments
@itay-grudev Interesting idea, really. What you are looking for is the code used to create nvram space and what is used to set and use Disk Unlock Key. Some references: |
I specifically like this idea since with default QubesOS boot partition with default layout of 1Gb, we have that space and could easily change it to fit our needs. That could easily be a LUKS encrypted loop container with LUKS header validated and unlocked automatically, if firmware was not tampered with? Raw thoughts here. Would need more thinking. The TPM used PCRs have changed recently to fit upcoming coreboot 4.12 and future coreboot releases and their measurement scheme. Doc have been updated accordingly: linuxboot/heads-wiki@8e8a50e EDIT: @itay-grudev questions that arises would be:
|
@flammit I feel your input here would be really interesting. Same for @osresearch |
@flammit @osresearch @itay-grudev : Speak up :) |
I say just normal files placed in
The |
@itay-grudev hmm. Played a while ago with overlayfs on packetprotector. Worked really well. Was looking for a mounted file and if found (without further validation i nthat time) was just applying it on top of actual filesystem (where here its ramfs, would be even ideal since we could even override everything based on keys fused in rom). Thoughts? It could be packaged by CI, and checked against signature fused inside of upgraded rom for a particular commit. It could also be copied over from QubesOS, while fwupd ( #834 ) could also deliver it in upgrade folder (under /boot) and validate signature prior of prompting for rom flash and moving the file (would have to talk to others about that though). Also linked to #523 . |
Under #590, I was asked to weigh in on this subject but am not sure how much crossover my comment has here. The only thing that come to mind is what could and could not be moved from the ROM to the A few other questions:
|
That is why I have a bit of passion about overlayfs, which would extend the filesystem, superseeding files already existing on fs and adding others, while being easy to deploy (even maybe for fwupd that could drop, side by side, overlayfs file to be mounted over / (so over ramfs / of heads), from signed /boot/heads, or as expected from fwupd under QubesOS, under /boot/updates |
Some background on overlayfs, OpenWRT usecase. |
@tlaurion We are currently not signing releases and trusting them implicitly. Instead the user explicitly signs and trust a version they compiled. I think you are proposing we change that with the external storage and automated CI builds. Furthermore I do agree, there may be some advantages in using overlayfs, but I thing the primary focus should be simplicity, easy of use and verifiability. If that is easily achievable with overlayfs - absolutely. |
One of the most popular type of issue here looks like this:
And the most popular type of answer is:
But the whole point of
heads
is that it validates user signed content which it subsequently kexecs into. So how about loading modules from the boot partition, signed with a key stored on the TPM?Heads will be able to validate the integrity and signatures of the modules stored in the boot directory prior to loading them using the secret stored in the TPM. If we can protect the secret so it is not exposed to the subsequently booted OS, this system would allow for lot of bloat and plenty of storage for additional features. We will still be encouraged to minimise the total size of modules as it would slow down boot times, but it will give us more freedom, especially on older systems like the X320.
So the core question is whether we can protect a secret on the TPM and reserve it exclusively for Heads? Are there any major problems I'm missing?
The text was updated successfully, but these errors were encountered: