Is supporting Secure Boot now possible?
-
@Tom-Elliott I guess the thing I don’t understand is why does WinPE always work, regardless of the model/manufacturer/etc.? Could FOG work similarly?
-
To be honest? I don’t know that it doesn’t work that way. I just know what others on the forums have seen/heard/done.
-
Thinking a little more, I think this is because of how the boot file of WinPE is working? Like it’s presenting the machine with the boot code the Secure boot is looking for. As for how FOG works: we boot to ipxe and boot using a more direct approach. (I could probably say the same for any PXEBoot process though?). The files just aren’t signed to enable booting, and so the machine does not allow it to boot.
Essentially, the imaging process itself should have no issues capturing/deploying the image with secure boot enabled, it’s the process to get to the point of capturing/deploying the image that has the problem with it.
-
@Tom-Elliott Gotcha. All I can really say is that I’ve never, ever seen a post-Windows 8+ WinPE image not boot on any computer. I mean, if you think about it, WinPE has to run on every possible Secure Boot device because WinPE is what sets up Windows to begin with; if a device doesn’t support WinPE Secure Boot, it doesn’t support Windows 8/10 Secure Boot.
So for FOG, when it most immediately boots, is it not a straight (nimble) Linux distribution (like CentOS) that’s booting? Does iPXE happen first?
-
@loosus456 Another option that I’ve done - which is a lot more work but free, in some firmwares you can upload a copy of the boot file you want SecureBoot to accept ( like
ipxe.efi
) and the firmware does something with this file, maybe hashes it and stores the hash, not sure.But, if you do that for all the computers you want to image, then that very specific version of ipxe will work through SecureBoot. You just have to use that exact one - or update all your computers again with the new version.
I’ve done this before, it does work. If you have maybe 10 computers you image with FOG in total (like small office) this could work. In larger environments 20+ it’s not worth the effort, just pay the money.
-
Curious: how much money would it cost for FOG to sign in a post-1.X version?
-
@Joe-Schmitt I think I understand. I was going to say that if only a few hundred bucks was in the way of making this happen, I was just going to pay it and be done.
-
I know this is fairly old but as I’ve just seen some rumor on this topic in the iPXE devel mailing list I thought I might post that here as a reference for people searching our forums: http://lists.ipxe.org/pipermail/ipxe-devel/2017-December/005921.html
Michael Brown’s answer:
Microsoft is prepared to sign iPXE provided that various subsystems with known flaws are excluded. You can exclude the relevant subsystems using instructions as per
http://git.ipxe.org/ipxe.git/commitdiff/7428ab7
I have previously obtained signed iPXE builds from Microsoft. The process of obtaining a signed build from Microsoft is tedious and very manual; this is the only reason that we do not have regular signed releases.
-
@sebastian-roth said in Is supporting Secure Boot now possible?:
The process of obtaining a signed build from Microsoft is tedious and very manual
That part bothers me. How did Microsoft come to have a monopoly on this? Isn’t there anyone else that can sign it? What root certs are installed into the bios besides Microsoft’s? Surely they are not the only ones?!?
-
Would each and every version of iPXE have to be signed by Microsoft? Or would it be a one-time event?
I don’t really understand the part about excluding certain directories. How, if at all, would that affect users of iPXE? Or would that be something that would affect only iPXE developers?
-
@loosus456 said in Is supporting Secure Boot now possible?:
Would each and every version of iPXE have to be signed by Microsoft?
Yes, any version you want Secure Boot to accept must be signed. The idea we’ve kicked around before is only doing this every so often to minimize costs.
-
@loosus456 said in Is supporting Secure Boot now possible?:
Would each and every version of iPXE have to be signed by Microsoft?
Yes, every boot kernel you want to run on a computer that has secure boot enabled must have a valid signed key. This includes iPXE as well as FOS (Fog’s target system Operaing System)
-
Does iPXE change every FOG release? Or do FOG releases often share the same IPXE version?
-
@loosus456 said in Is supporting Secure Boot now possible?:
Does iPXE change every FOG release? Or do FOG releases often share the same IPXE version?
We follow up with the latest iPXE versions so yes, the version changes on every release and even between releases in beta/RC code branch - if you follow that.
-
@sebastian-roth said in Is supporting Secure Boot now possible?:
We follow up with the latest iPXE versions so yes, the version changes on every release and even between releases in beta/RC code branch - if you follow that.
In other words, the FOG Team is ON TOP OF IT!
-
i’ve been tasked at getting fog secure boot complaint due to it now being a requirement by internal audit rolls eyes…
microsoft so far have been as useful as a chocolate teapot. no one appears to know the process and their solution is use MDT or SCCM. If i have to hear “why aren’t you using SCCM one more time…” lol
initial cost is not a concern its already been pre-signed off but the process needs to be as minimal as possible i.e. dont need to keep going back to microsoft to get versions resigned and have the ability to sign them ourselves…
anyone else done this in a enterprise environment or am i going to be the guinea pig lol
any of the other devs got any more insight?
-
This post is deleted! -
@lee-rowlett I’ve been toying with the issue, just now my mind went blank where I was able to pxe boot linux in secure boot. It did work and it worked well with a grub based environment. The concept that I worked out was to use the ubuntu signed shim with grub to boot into FOS with secure boot on. I did this over the christmas holiday and for the life of me I can’t remember the setup.
This is where I got the files from: https://launchpad.net/ubuntu/+source/shim-signed
Also I had this one book marked for pxe booting.
https://www.downtowndougbrown.com/2017/03/hosting-ubuntu-16-04-desktop-live-install-iso-on-a-pxe-netboot-server-bios-and-uefi-simultaneously/Understand this process requires both iPXE to be signed as well as the kernel FOS (or if a shim is used, the shim signed). If we could come up with a way to use these shims then FOS would not need to be signed by MS.
-
I wanted to share my experience with trying to get something signed for Secure Boot with my imaging program. It basically comes down to that it’s very difficult for open source projects to get something signed.
First of all you need to get your bootloader signed by Microsoft, no way around it. Second it requires an EV code signing certificate. These are expensive and you can only get them if you are a legitimate business. You must use a shim, otherwise every change to a kernel or bootloader would require resigning them from Microsoft which is not feasible. Also, shim does not currently support Proxy DHCP servers. The basic workflow is this:
Compile the shim with a self signed CA baked in, then you can sign your kernels and bootloaders against the CA without the needing resign the shim with MS for every change.
Submit the shim and your EV certificate to Microsoft
They will reach out to the shim maintainers who will ask you a bunch of questions about how you will use the shim. If you tell them you are going to use it with iPXE they probably won’t approve it. You need to tell them you are using Grub. If they catch you signing anything other than what you say, they will blacklist your shim.
If everything checks out then they’ll send you the precious signed shim.
I personally scrapped the idea of trying to get a signed shim because of the business requirement. Too much extra cost, not to mention the hassle of doing taxes with a business that doesn’t actually make any money.
The future looks dim because of secure boot
-
@george1421 i can get it to boot to grub now but cannot get it to chainload into FOS