Hypervisors Can Defeat GPLv3's Anti-Tivoization
DeviceGuru writes "A hypervisor can be used to isolate from each other software works released under incompatible licenses, while allowing them to run simultaneously on the same hardware. For example, Linux and Windows CE can run on separate virtual machines on one device, without violating either OS's license. Due to the isolation between multiple VMs running atop a hypervisor, it seems like this architecture could allow companies to build Linux-based devices, such as mobile phones or set-top boxes (think TiVo), that can't be upgraded by their users without authorization, thereby circumventing the GPLv3's 'anti-tivoization' clauses." Here's a white paper with more details from a commercial hypervisor company.
Frankly, I'm not sure what the article is trying to state.
If the code is released under GPLv3, then modifications of the code must be able to run on the same hardware. It doesn't matter if the key to run the code is a checksum or a password to give the hypervisor. Either way, if modification of the client cannot be dropped into the place of the original client (either to run on the same hardware or the same hypervisor), it's in abuse of the GPLv3.
Help! I'm a slashdot refugee.
GPLv3 states that you have to be able to use modified versions of the code on consumer devices. How can you circumvent that? Even if it runs in a hypervisor, you are still violating the license.
the Anti-Tivoization clause is one the sore points in my book about the GPL 3. Because of the hippocraticy worded in it,
For TiVo being a consumer product is Bad, IBM Being corporate product it is good.
Free Software has a lot of advantages but if you try to get too academic with it it gets to a point where adoption of such products are impractical.
Take the TiVo, what GPLv3 wanted to do was force TiVo to release their DRM so the community has access to their product. What actually happends is TiVo
finds a backdoor to the license and uses it, or drops using open source and any stop to any shared contributions from TiVo and a move to a different
platform.
The License for free software is the cost of using the software. (Except for trading money (and rules) for rights to use, you agree to follow these rules for
rights to use) as more rules you add to the license the more expensive the free software becomes. So if you make FreeSoftware to strict on its use
people won't use it. Academically Free as in speech software sounds like a good plan but real life realizes there is information that you want to keep
private.
If something is so important that you feel the need to post it on the internet... It probably isn't that important.
Simply put, if any part of the firmware is GPL 3'ed, even if it's running under a VM, it still requires the ability to replace it by the user w/o authorization from the factory. If I remember the license and discussion about it, it's "if it's in there, it's there for all."
--
# Canmephians for a better Linux Kernel
$Stalag99{"URL"}="http://stalag99.net";
To help slashdotters not have to RTFA!
(from the whitepaper link)
"Device vendors are also required to provide access to the source code of the GPL programs (see PLv2 ï½3, GPLv3 ï½6), including "the scripts used to control compilation and installation of the executable" [Footnotes 4, 6]. However, the GPLv2 does not require that installed executables must work, which enables a mechanism the Free Software Foundation calls "Tivoization."
"Tivoization," according to LinuxInfo.org, "refers to the configuring (by the manufacturer or vendor) of a digital electronic product that uses free software, so that the product will operate only with a specific version of such software." Technically, this means that a vendor of a product that uses GPL v2 programs could provide access to the source code, thus being compliant with the software license, but the product would be prevented from working if a modified version is installed, through the checking of the software image's signature."
Yes. When people use legalese to try to lock down software into "freedom" (GPL 3), then people use legalese to get around it.
Seems like the whole GPL 3 thing is "going the other way" if you step back and look at it.
It used to be that the restrictions on proprietary code caused people to want other options, and jump through hoops to get around the restrictions.
Now people will be doing the same to deal with the restrictions of GPL 3.
Seems that the "spirit" of open software is being compromised by people trying to nail it down in legal terms.
The resulting product is fundamentally different from a TiVo.
While on TiVo, there is no way to change any part of the code without the signing key, in the proposed solution it is possible for the user to change the whole open-source system with an other one, as required by the GPLv3 license. As such, there is much more freedom for the user to tinker with its own system.
But for the manufacturer, it has the distinct advantages that some parts of the system can be isolated from the open subsystem, in a much more stable way, both legally and technically, than in a closed-source driver. Thus, it is possible to implement DRM, software subject to type conformance, or safety-critical tasks without risking corruption from the open system, whatever this system does. And contrary to the current solution, this does not require additional hardware.
Because "good for the user" isn't always the same as "good for the company".
Surprise, surprise, companies are in business to make money.
Really, your new version of the kernel will have the same privileges as the old version. I see no problem with that.
I only fail to understand why they plan to put a kernel above that hypervisor. For it to be of any use, the hypervisor must controll all I/O operations anyway, what they get from Linux?
Rethinking email
You can't do that. Where would you draw the line?
"This software cannot run on the same CPU as software that implements DRM"
The DRMer will just use a separate coprocessor.
"This software cannot be distributed with software that implements DRM"
Oops. You can't distribute a Windows machine with a GPLed program on it.
"This software cannot communicate with software that implements DRM"
It can't connect to the internet?
You're asking for the legal equivalent of an evil bit.
I may be confused, but isn't this actually a way of complying with the GPL3? Using a hypervisor allows users to upgrade the kernel of their device without running into the (theoretical) security problems that companies who lock down their devices are afraid of.
No, it works just fine as far as anti-tivoization is concerned.
The important thing here is that the GPL3 is a license that dicates terms only about the thing to which is applied. By that I mean, Samba is now under the GPL3, which means you can't tivoize Samba, but that doesn't say anything about whatever else you happen to include in the box.
GPL2: You can take Samba, modify it, release the patches, but make the hardware refuse to load any other version. So for instance if those patches were needed to run on that specific device, you've effectively closed that branch of the source. Sure your patches are there, but since they're for that specific hardware and you control it, it's absolutely useless for everybody else, and goes against the intention of the GPL.
GPL3: Under the GPL3 you MUST make Samba replaceable, VM or not.
You seem to understand the anti-tivoization as that the whole device must be open if GPL3 software is used. This is incorrect. The GPL3 on Samba only applies to Samba, and that's the only thing that must be replaceable. The GPL intends to keep the software which it applies to "free" (according to the FSF's definition). The hardware only needs to cooperate to comply with the license on the specific code it's applied to. Anything else isn't included.
"We" aren't doing this. Some companies are probably eager to do it, and then there are those around here whose major joy is bitching about the GPL, the FSF, RMS and his dog. For them everything that is unsavory to the FSF is a great joy, even if it affects everyone else - even free software developers using other licenses. They generally describe themselves as "open source" advocates but in reality they are the mirror image of the "anti-M$" crowd.
Start with two machines: a "Tivo" with proprietary firmware, connected via LAN to a PC with a Trusted Computing TPM and a GPLv3 OS image signed by the "Tivo"'s vendor.
The OS can be altered and recompiled on the PC at will, staying well within the provisions of the hardware/software definitions as used in the GPLv3 license.
But when streaming video from the PC to the Tivo, remote attestation is used to verify the signature of the OS image booted on the PC. If the bootstrap signature is not provided, or doesn't match, the Tivo refuses to play the provided stream.
Got it? Good. Now all you need to do is re-imagine the PC in this model as a virtual machine run inside the Tivo itself, and you get the idea.
There might be a problem with this end-run, however. It all depends on whether the GPLv3 has to say specifically about what functionality is locked out without a bootstrap signature from the VM. If there's some language about insuring "complete", "full", or "all" functionality to modified versions, then it may not matter whether there's a hypervisor in the way or not (although the original network example I gave above is still legit).
I'm intersted to hear what the lawyers have to say.
They want it because the price is unbeatable.
It's just that it has an annoying license that they have to work around, in order to be able to sufficiently hamstring their users.
LRC, the best-read libertarian site on the web
Y'know, you could just choose not to circumvent the licensing problems. You could just use code which you can get under a license that lets you do what you want with it. Or you could *gasp* write your own code! What a concept!
And at the risk of sounding petty, they started it. The root of this problem is not the GPLv3, it's DRM and Tivoization. I run a Linux machine, and I use it to view plenty of media which is either un-DRM'd or easily cracked (DVDs) -- and I require absolutely no VMs to do this.
To be perfectly honest, the legalese does not have to dictate the engineering choice here. You could simply make an engineering choice to use an open platform. No engineer in their right mind would use DRM as an engineering choice -- we all know it doesn't work, doesn't even slow the real pirates down much. If you're forced to implement something like this, realize that it is, in fact, a legal choice that someone made to force DRM on you.
Don't thank God, thank a doctor!
...So what?
Once again, I don't think it defeats the purpose here, which is to prevent them from distributing a GPL'd binary in such a way that I can't upload my own, nearly-identical GPL'd binary and expect it to work.
To be GPLv3 compliant, I expect they'd have to have that channel exist, and provide exactly the same data to the GPL'd program, no matter what code is actually running inside that program. In other words, the API should be consistent/modular -- if I call 'get_chunk_of_data_from_channel(3, *buffer)' from within any program running on that system, I should get the same result, no matter what the program.
You're not allowed to take a checksum of the running program, and use that as a basis for deciding if I get static or not. However, if you really want to deliver static to everyone, including your own GPL'd software, go right ahead.
That is true. It also means they gain less by using GPL'd code -- they now can't use it to handle IO, which Linux is very good at. They also can't use GPL'd decoders, meaning they have to license a proprietary one. And they can't use a GPL'd network stack, they need a BSD one.
Eventually, it means that they can only use GPL'd code for the UI; they have to implement the equivalent of a kernel underneath it. At this point, I don't think there's really any point to doing the hypervisor -- just do some BSD-derived kernel and run your GPL code under that.
Don't thank God, thank a doctor!
They want it because the price is unbeatable. It's just that it has an annoying license that they have to work around, in order to be able to sufficiently hamstring their users.
See, that's never made much sense to me. Why don't they just pick up a gratis operating system with a more permissive license, like one of the BSD's, and stop worrying about tivoizing GPL'ed code?
Or are they actually just evil and want to lock down GPL'ed code because it fills their weekly evil quota or something?
So where's the beef?
The GPL3 doesn't stop DRM. Woot stop the presses! I could have told you that months ago during the drafting process because it's not designed to stop DRM.
Liberty.