5 ms·
> because MS refuses to sign GPL bootloaders like grub in general This is because MSFT lawyers think that if you sign a GPLv3 licensed bootloader like GRUB, yo
by rany_ 3y ago
> because MS refuses to sign GPL bootloaders like grub in general
This is because MSFT lawyers think that if you sign a GPLv3 licensed bootloader like GRUB, you might have a right to compel the developer into handing over their signing keys.
Source: https://techcommunity.microsoft.com/t5/hardware-dev-center/updated-uefi-signing-requirements/ba-p/1062916 https://techcommunity.microsoft.com/t5/hardware-dev-center/u...
- nailer 3y ago> FYI the reason is that the GPL would require you to hand over the signing keys. If you sign a GPLv3 licensed bootloader like GRUB, you're forced to also make public the signing key... which defeats the purpose. That seems to be a ridiculous interpretation of the GPL (no personal offense meant, I'm sure you're a fine person but this idea is genuinely very silly). Signatures on binaries are not part of the source code, and therefore the GPL isn't concerned with them. Think of: - every signed binary for an open source app on a Linux distro or Windows install - Every open source web app delivered over a TLS cert Nobody has ever considered that the private keys used to sign the package, executable or web site cert to be required by the GPL.
- rany_ 3y ago> Code submitted for UEFI signing must not be subject to GPLv3 or any license that purports to give someone the right to demand authorization keys to be able to install modified forms of the code on a device. Code that is subject to such a license that has already been signed might have that signature revoked. For example, GRUB 2 is licensed under GPLv3 and will not be signed. It does according to MSFT lawyers: https://techcommunity.microsoft.com/t5/hardware-dev-center/updated-uefi-signing-requirements/ba-p/1062916 https://techcommunity.microsoft.com/t5/hardware-dev-center/u...
- nailer 3y ago> any license that purports to give someone the right to demand authorization keys to be able to install modified forms of the code on a device There's nowhere in the GPLv3 that says that (then again, that sentence doesn't imply there is). Anyone can download and modify the grub source code, and compile it. It doesn't mean Microsoft is obliged to sign their fork. I wonder if there's something that confused (or was bad faith interpreted) by Microsoft's lawyers? Maybe someone can just use another open source license? Ie, anything not called 'GPLv3' which, like every other OSS license, does not purport to give someone the right to demand authorization keys to be able to install modified forms of the code on a device.
- tsimionescu 3y agoActually, if you ask the Software Freedom Conservancy, not only is this a requirement of the GPLv3, it is in fact also required by the GPLv2 [0]: > GPLv2 assures, to the purchaser of an embedded product, their absolute right to receive the information necessary to install a modified version of the GPLv2'd works. [...] installation of the GPL'd works must succeed and operate in a useful and functional fashion on the device. I believe the FSF position is different, but it's unclear. At least one member of the SFC who was a member of the FSF in the past (Bradley Kuhn) [1] believes that the FSF has the same position - that both GPLv2 software and GPLv3 software must be accompanied by full instructions (and ability) for a user to install their own modified versions on any hardware containing this software. He believes that the only difference with GPLv3 is that, in addition to this requirement, other proprietary software on the device must continue to operate just as before; whereas, with the GPLv2, it's fine for other proprietary software to say "you're running an unsigned version of Linux, failing to start". Linus Torvalds' public statements about the GPLv3, as well as the FSF page on Tivoization [2], seem to suggest otherwise. Either way, this is not some invention of MS lawyers meant to make the GPL look scarier, it is very much how the free software community sees the GPL working. [0] https://sfconservancy.org/blog/2021/mar/25/install-gplv2/ https://sfconservancy.org/blog/2021/mar/25/install-gplv2/ [1] https://sfconservancy.org/blog/2021/jul/23/tivoization-and-the-gpl-right-to-install/ https://sfconservancy.org/blog/2021/jul/23/tivoization-and-t... [2] https://www.gnu.org/philosophy/tivoization.en.html https://www.gnu.org/philosophy/tivoization.en.html
- rany_ 3y agoThey're probably referring to this part of the GPLv3 license: > “Installation Information” for a User Product means any methods, procedures, authorization keys, or other information required to install and execute modified versions of a covered work in that User Product from a modified version of its Corresponding Source. The information must suffice to ensure that the continued functioning of the modified object code is in no case prevented or interfered with solely because modification has been made. > If you convey an object code work under this section in, or with, or specifically for use in, a User Product, and the conveying occurs as part of a transaction in which the right of possession and use of the User Product is transferred to the recipient in perpetuity or for a fixed term (regardless of how the transaction is characterized), the Corresponding Source conveyed under this section must be accompanied by the Installation Information. But this requirement does not apply if neither you nor any third party retains the ability to install modified object code on the User Product (for example, the work has been installed in ROM). I believe the MSFT lawyers are right here, but obviously I'm not a lawyer.
- snthd 3y ago>are not part of the source code, and therefore the GPL isn't concerned with them. IIRC the GPL concerns itself with buildscripts etc. and GPLv3 was written with the tivoization of v2 in mind. https://www.gnu.org/licenses/quick-guide-gplv3.html https://www.gnu.org/licenses/quick-guide-gplv3.html >Protecting Your Right to Tinker >Tivoization is a dangerous attempt to curtail users' freedom: the right to modify your software will become meaningless if none of your computers let you do it. GPLv3 stops tivoization by requiring the distributor to provide you with whatever information or data is necessary to install modified software on the device. This may be as simple as a set of instructions, or it may include special data such as cryptographic keys or information about how to bypass an integrity check in the hardware. It will depend on how the hardware was designed—but no matter what information you need, you must be able to get it. >This requirement is limited in scope. Distributors are still allowed to use cryptographic keys for any purpose, and they'll only be required to disclose a key if you need it to modify GPLed software on the device they gave you.
- ajross 3y agoSo... really no. The overall spirit of the GPLv3 text is that the license demands preservation of the ability of an end user to modify and run the software they receive, see all the discussion at the time it was being drafted about "TiVoization". It does not specifically speak to encryption and signatures being used by the loader environment, but it's absolutely reasonable to interpret it that way. If I buy a laptop from Lenovo, and it uses a signed GPLv3 bootloader, and I want to modify and run a new version of that bootloader, I'm prevented by the lack of a signature. That action is exactly what the license demands Lenovo permit. Now, obviously this collides badly with the security requirements of the system. So it's likewise totally reasonable to imagine a court flipping the other way and refusing to literally enforce the GPLv3 because of the potential damage to the market. But if that happens, then what gives Lenovo any right to ship that GPLv3 software at all? Now they're subject to the bootloader authors demanding they stop shipment of the infringing product. No, the permissively-licensed shim compromise was the right choice.
- AshamedCaptain 3y ago> No, the permissively-licensed shim compromise was the right choice. Why? Why on earth? IF Lenovo wanted to really ship a GPLv3 bootloader, all it imposes on Lenovo is they ship a method to install your own bootloader keys. Do you really disagree with that? Lenovo has already shipped hardware which requires magical incantations to install anything other than Windows (see Secured Core hardware). Why on earth anyone shipping FLOSS software would drop their pants to allow precisely this shitshow is over me.
- ajross 3y agoI'm not the person you should be arguing with. I didn't write the license and I'm not the judge that would have to make the decision. I was explaining why the collision between software freedom and end user security requirements (which is a very real thing!) is seen as a risk to the people shipping and supporting actual hardware.
- AshamedCaptain 3y ago
- kmeisthax 3y agoIf this were true, it probably applies to both GPLv2 and v3, since they both require installation instructions. v3 adds an additional requirement that if you mere-aggregate GPL software and other software, and put the aggregate into a consumer product, you can't disable the other software because the GPL software was modified. I don't believe this would apply in the situation that these shims are intended for - i.e. installing an OS onto a desktop machine, as those are supposed to allow you to enroll new Secure Boot keys anyway. I also don't understand why a signature from Microsoft would actually trip any of the above-mentioned requirements. Microsoft is not distributing the software, they're just signing it - i.e. distributing a message saying "this shim with this hash can run". That's not a copyright violation, so the GPL doesn't come into play at all. Perhaps there's something else Microsoft does with their signatures that might trip GPL...
- rany_ 3y agoTo my knowledge, they aren't the ones signing the software. Microsoft runs a UEFI CA and just bless the developer's sub-CA. The developer is fully in control of their own CA and could sign whatever they want.
- AshamedCaptain 3y agoNo. I don't know if Microsoft "partners" have some special privilege, but for 3rd parties Microsoft will _never_ sign your CA. They sign individual binaries.
- bee_rider 3y agoMaybe Microsoft just doesn’t want to sign a GPL bootloader and so they had their lawyers come up with nebulous concerns as a fig leaf. Microsoft <3 Open Source after all, can’t be seen as reluctant for business reasons.
- AshamedCaptain 3y agoNote that under no circumstances can it "compel" you to hand over the signing keys. It can compel you to _stop infringing_, though. Which you may do by either stop redistributing GRUB , or by allowing your customers to install their own signatures, or if you are really stupid, by giving out your private keys. But you cannot be forced to do the later. As usual it's just FUD.
- gorkish 3y agoI'm a strong advocate of open source who also happens to agree with microsoft's lawyers on this. Whether you believe this consequence of GPLv3 is intentional or unintentional, it is a consequence. The idea of somehow putting blame back on Microsoft for this is similarly twisted. Vendors shipping absolute shit implementation of SecureBoot that don't give the users authority over their own systems are the problem. Let's revisit this topic in the future to see how many systems actually get patched to revoke these signatures. My guess is that nearly 100% of shipping systems 1 year from now will still have these keys and still boot these vulnerable signed binaries right out of the box. One might hope that this issue thrusts the theater of Secure Boot into the public discourse, but like most other forms of irrelevant DRM, it will simply remain a hurdle that everyone has to keep jumping over until the end of time.
- ogurechny 3y agoYou seem to still have an impression that “secure” here is somehow related to “security” of the users or their “authority over their own systems”, when in fact it only means “securing” the position of the company that gets to control the thing. Even if Microsoft fires everyone tomorrow and closes, Secure Boot key infrastructure and agreements will still cost a lot. Just like patent pools of former industrial giants that don't just disappear. In the same manner, insane DRM schemes are not made to be solid and unbreakable, or because sellers are worried about home copies (made by people who won't buy the product anyway otherwise). DRM is just a convoluted enough mesaure to protect corporations from their fellow corporations who would gladly make the same thing, but more convenient, or cheaper, or more profitable, and ride the “piracy” wave. In the same manner, Google didn't shove HTTPS into everything because it was worried about the users, but because it was worried about other companies with massive traffic spying abilities grabbing the data Google collected for itself. Et cetera, et cetera.
- pjmlp 3y agoEven on Azure, GNU/Linux runs on top of Windows based hypervisor (Cloud Host[0]), and WSL is a VM anyway. Thus from Microsoft's point of view all is well. [0] - https://techcommunity.microsoft.com/t5/windows-os-platform-blog/azure-host-os-cloud-host/ba-p/3709528 https://techcommunity.microsoft.com/t5/windows-os-platform-b...
- riedel 3y agoI wonder if this is a consequence of the judicial system in the US. In Europe there is something called promesse de porte-fort (contract at the expense of third parties) as Microsoft is not party in the licence agreement I would say. Some effects of the GPL ( or rather interpretations) are just plain ineffective. I say this while not questioning the copy left in general.