The Linux kernel and digital rights management
[Posted April 30, 2003 by corbet]
The entertainment industry is certain to continue its attempts to obtain
the protection it wants from the Congress and the courts. But the industry
is also very interested in technical means of enforcing limited access to
its products. As Lawrence Lessig pointed out years ago, the software
running on our systems is the other component of the code which constrains
our actions. There's no shortage of people, governments, and corporations
who would like to use that code to control (and monitor) what we can do
with our systems and the products we purchase.
In most Linux users' view, there is little intersection between this sort
of digital rights management (DRM) code and free software. After all,
what's to keep us from simply yanking out any code which gets in the way of
what we want to do? So some people were surprised when Linus Torvalds
posted a message stating "I want to
make it clear that DRM is perfectly ok with Linux!"
There is, you see, a scenario where DRM software can be embedded within the
Linux kernel, and there is very little that can be done about it. It is
not that hard to build hardware that refuses to boot a kernel which has not
been signed with a particular private key. That kernel could restrict
access to devices, or refuse outright to run applications which have not
also been signed with a given key. Such a kernel could take away all of
the control we would otherwise have over our systems whether we like it or
not. Yes, whoever distributes the kernel
must provide source, but, without the private key (and, thus, the ability
to create a signed, binary kernel), a Linux user cannot make changes and
get them to run on the target system.
Linus gives two reasons for his position: distributing signed binaries is
acceptable under the GPL, and he does not want to be in a position of
saying what can or cannot be done with the Linux kernel.
The GPL argument is interesting. Anybody who distributes a GPL-licensed
program in binary form must make the associated source available. That
source is defined by the GPL as:
The source code for a work means the preferred form of the work for
making modifications to it. For an executable work, complete source
code means all the source code for all modules it contains, plus
any associated interface definition files, plus the scripts used to
control compilation and installation of the executable.
One could well question whether a private key used to sign the binary is
covered by this language. Most commenters seem to think that it is not.
If the GPL has nothing to say about keys, then the distribution of signed
binaries (without the associated private keys) is clearly within the bounds
of the license.
If a private key is considered part of the program's installation
scripts, there could be a problem. Linus has stated his opinion, but he
cannot speak for the others who hold copyrights on code in the kernel. One
of those people could conceivably mount a legal challenge should he or she
object to the signed binary distribution. Kernel hackers in general seem
uninclined to make this sort of challenge, but one never knows.
Linus's other reason - not wanting to regulate what others can do with
Linux - goes to the core of the philosophy of free software. Any free (or
open source) software definition will include a statement that the license
cannot discriminate based on the use of the software. The purpose is to
exclude licenses that, say, prohibit use by the military, by people with the
wrong religion, citizens of certain countries, or drinkers of light beer.
Similarly, Linus does not want to discriminate against those who would only
allow certain software to run on their systems.
Besides, the techniques which implement DRM can also be used to implement a
higher level of security for Linux users. A system that can only run
signed executables is certainly going to be more secure than one which will
run any binary presented to it. Some users may well want that kind of
security, and they should be able to have it. It would be difficult to
allow this sort of use while simultaneously forbidding DRM uses.
Ultimately, it comes down to what people are willing to buy. In an ideal
world, Linux-based systems which implement oppressive DRM schemes would
languish on the shelves, while those which are better suited to the needs
and wishes of their users will succeed. The sad fact is that things often
do not work that way; when products like DVD players, the Xbox, or Tivo are
what's available, that is what people will buy. The marketplace does not
work as well as one would like in this regard. But the GPL is not the tool
that can fix it.
(
Log in to post comments)