Linus on DRM
Thread on LKML:
Date: Wed, 23 Apr 2003 20:59:45 -0700 (PDT)
From: Linus Torvalds
To: Kernel Mailing List
Subject: Flame Linus to a crisp!
Ok,
there's no way to do this gracefully, so I won't even try. I'm going to
just hunker down for some really impressive extended flaming, and my
asbestos underwear is firmly in place, and extremely uncomfortable.
I want to make it clear that DRM is perfectly ok with Linux!
There, I've said it. I'm out of the closet. So bring it on...
I've had some private discussions with various people about this already,
and I do realize that a lot of people want to use the kernel in some way
to just make DRM go away, at least as far as Linux is concerned. Either by
some policy decision or by extending the GPL to just not allow it.
In some ways the discussion was very similar to some of the software
patent related GPL-NG discussions from a year or so ago: "we don't like
it, and we should change the license to make it not work somehow".
And like the software patent issue, I also don't necessarily like DRM
myself, but I still ended up feeling the same: I'm an "Oppenheimer", and I
refuse to play politics with Linux, and I think you can use Linux for
whatever you want to - which very much includes things I don't necessarily
personally approve of.
The GPL requires you to give out sources to the kernel, but it doesn't
limit what you can _do_ with the kernel. On the whole, this is just
another example of why rms calls me "just an engineer" and thinks I have
no ideals.
[ Personally, I see it as a virtue - trying to make the world a slightly
better place _without_ trying to impose your moral values on other
people. You do whatever the h*ll rings your bell, I'm just an engineer
who wants to make the best OS possible. ]
In short, it's perfectly ok to sign a kernel image - I do it myself
indirectly every day through the kernel.org, as kernel.org will sign the
tar-balls I upload to make sure people can at least verify that they came
that way. Doing the same thing on the binary is no different: signing a
binary is a perfectly fine way to show the world that you're the one
behind it, and that _you_ trust it.
And since I can imaging signing binaries myself, I don't feel that I can
disallow anybody else doing so.
Another part of the DRM discussion is the fact that signing is only the
first step: _acting_ on the fact whether a binary is signed or not (by
refusing to load it, for example, or by refusing to give it a secret key)
is required too.
But since the signature is pointless unless you _use_ it for something,
and since the decision how to use the signature is clearly outside of the
scope of the kernel itself (and thus not a "derived work" or anything like
that), I have to convince myself that not only is it clearly ok to act on
the knowledge of whather the kernel is signed or not, it's also outside of
the scope of what the GPL talks about, and thus irrelevant to the license.
That's the short and sweet of it. I wanted to bring this out in the open,
because I know there are people who think that signed binaries are an act
of "subversion" (or "perversion") of the GPL, and I wanted to make sure
that people don't live under mis-apprehension that it can't be done.
I think there are many quite valid reasons to sign (and verify) your
kernel images, and while some of the uses of signing are odious, I don't
see any sane way to distinguish between "good" signers and "bad" signers.
Comments? I'd love to get some real discussion about this, but in the end
I'm personally convinced that we have to allow it.
Btw, one thing that is clearly _not_ allowed by the GPL is hiding private
keys in the binary. You can sign the binary that is a result of the build
process, but you can _not_ make a binary that is aware of certain keys
without making those keys public - because those keys will obviously have
been part of the kernel build itself.
So don't get these two things confused - one is an external key that is
applied _to_ the kernel (ok, and outside the license), and the other one
is embedding a key _into_ the kernel (still ok, but the GPL requires that
such a key has to be made available as "source" to the kernel).
Linus
What Linus is saying makes complete sense to me. I think the
Kernel level of Linux is the wrong place to make a political
stand like that. What has made Linux successful, and what will
make it ultimately *the* OS is it's an
Evolvable System
The fact that people can use Linux for whatever they need to is
what makes it such a compelling system. The fact that you can
tinker with it, change the source, in short make it work for you
is what makes Linux successful.
He also makes a good point, there is a difference between
allowing DRM and forcing everyone that uses the OS to use DRM
(as M$ want). There are some times when DRM is very legitimate
(Goverment Top Secret Docs, Litigation Confidential information
etc), and there are the times when I consider it to be
un-ethical (most other situations I can think of).
I have to say way to go Linus. Keep the system evolvable.
Ultimately isn't it a catch 22 anyway? If he prohibits DRM,
isn't that sort of like saying "this is my software and you
can't do XX with it".
Doug Tolton
"The destruction of a value which is, will not bring value to that which isn't." -John Galt
Technology, encryption, reverse engineering, mp3's, drm, sniffers.. they arne't inherently evil. It's the usage and if they go against your morals, ethics and general desires, if they are good or not.
Laws which put their use at all, as forbidden or not, is what should not be put into law. It's how they are used.
-
ping -f 255.255.255.255 # if only
Once again Linus leaves it up to the one thing that makes linux beautiful: Choice.
Are you secure enough in your masculinity to run 'man touch'?
Seems reasonable to me though. You don't have to compile it in to the kernel you use if you don't want it. He's just offering a choice. For this one, I will accept that he is in fact remaining neutral politically.
It's Linus' optimism. See, RMS insists that if you don't tell people what they can't do with software, that they'll do the worst. Linus assumes that people will do whatever they feel like, and the more they can do, the better, because you can't easily stop a movement. You can stop a man.
Go Linus. I'm not a DRM fan, but I am a fan of you ideology.
I think it's interesting that it takes the "leader" of the OSS movement to put the brakes on some overboard reactions by slashdotters and many others. Too often we relate some issue as being a Microsoft invention and thus evil when all along it's been incorporated in a different form in our favourite OS. Perhaps we can learn a lesson about this and start applying it to other organisations (RIAA, MPAA, etc.)?
This is my digital signature. 10011011001
why does allowing binaries to be signed make DRM "ok". maybe i don't understand DRM (which is likely...)
Schrodinger's cat is either dead or really pissed off...
This is exactly why I like Linus. Unlike certain nutjobs, he's rational enought to know that one should always use the right tool for the job.
When ideals get in the way of actually achieving your goals they are doing more harm than good for the cause.
That comment made me wonder if RMS actually holds a grudge against Linus for not conforming to his standards of "purity".
The owls are not what they seem
--if you are going to do that, why would you even put the key in there? What am I missing?
Seems to me that drm violates the spirit of gpl, but I most likely still don't understand it. If some company wants to make a drm enabled kernel,and deploy it, then it can be cracked shortly if they follow the gpl? Or what? I don't get it obviously. This is like missiles, anti missiles, anti-anti missiles, ad absurdium.
new distro, the yossarian distro
There is nothing horrible about the idea of DRM, its mearly what people are going to do with it. And before any blows my head, just remeber this is that same argument put forth to defend openbsd only yesterday( was it yesterday, I'm loosing track of time at the moment.)
I like that I can trust software to be what it says it is, I think its a step in the right direction to protecting againt trojans etc..
I dont want to be forced to do it though for every little thing that somebody thinks I need permission to run. If certain DRM can be applied to the linux kernal that make computing safer (and by that I mean actually safer, not MS safer or somebody else thinking their making me safer by imposing rules on me), then go right ahead.
Just make sure I can remove it should I wish.
"Enlightenment is your ego's biggest disappointment." --Yoginanda
If the GPL is all about freedom, it's also about freedom of what you can do with it (ok you can't include it in close source software without releasing that source, but that's to protect it from being non-free).
If some third party wants to take the kernel source and add DRM to it, they are free to do so. I'm also free to not use their kernel and keep compiling my own from Linus' tree.
Linus does have a point.
> On the whole, this is just another example of why rms calls me "just an engineer" and thinks I have no ideals.
Perhaps what the world needs is more engineers and artists, and less flaming zealots. I think Linus has been, and still is, getting it just right. In fact, I think his statements above and the way he views this issue is 100% in the spirit of the GPL. The code is supposed to be free, remember? This includes free to be used in unspeakable ways, so long as the source is always included and freely redistributable. You can't claim freedom for only the ideals you like, that's tyranny.
Then again, IANAL.
And remember kids: Never trust a computer you can actually lift.
Granted, abuse of copyrights is a huge issue right now, but the basic concept of securing them in a digital age isn't the devil incarnate.
Perhaps a better analogy would have been Wernher von Braun, as commemorated in Tom Lehrer's song:
The intended contrast is between the "apolitical" engineer who does not really care to what purpose his invention is used -- or by whom, as von Braun (purportedly) worked equally willingly for the Nazis as for the United States -- and the type (like Albert Einstein) who considers and possibly regrets its social consequences.
In Soviet Russia, the point misses YOU!
Nowhere in this message does Linus even begin to talk about RIAA-driven media protection schemes. Why are you even bringing it up in this post? "Digital copyright protection" IS NOT the be-all and end-all of DRM.
Try reading the message again. Linus brings up the exact same point you did: "hiding" a private key in GPLed source is obviously not okay because it exposes the private key. And how does "wrapping it up in a shared lib" "violate everything OSS stands for"? Or are you conveniently overlooking the entire point behind the LGPL? Nevermind that shared libs don't even make sense at the kernel level.
Linus' message has nothing to do with Winputers or the RIAA or forcing you to run/not run whatever because some guy in a suit in Hollywood doesn't trust you with things that aren't his anyway. There's nothing to see here. Move along.
What he actually seems to be supporting is the stated (note stated, not actual) purpose of Palladium/TCPA. Signing code and verification of signed code to ensure that programs are who/what they say they are. The nature of GPL'd software makes "DRM" impossible - if your GPL'd program does X to verify that its allowed to access a file, I can write a program that does X, accesses the file, and then writes the file in a form that I can access without doing X.
DRM relies on secrets buried in the binary and removing elements of the system from the user's control. (As if the user had control over the verification bits, the system would be useless) The GPL is designed to place all elements of the system in the user's control.
And the irony is that the kind of people who quote that line are usually so deeply embedded in their armchair that 'defend to the death' would simply mean a heart attack during their struggle to get out of their 'armchair of rhetoric.'
Plus, many people who make claims like that shout down people they disagree with when they come to campus to give speeches.
Burn him!!! Burn the witch!!!!
But seriously. Options, even the sometimes-unpleasant ones, are always GOOD.
*Fortitudo, aequitas, fidelitas.*
It is an interesting thought and you are correct in that you will not be able to modify the binary on the system. But the GPL does not give you the guarentee of being able to run the software anywhere on anything. It simple gives you the right to own the source code and to use it as you see fit.
If the hardware company elects to forbid you, well, you may wish to not buy it.
I prefer the "u" in honour as it seems to be missing these days.
Well I don't see why anyone shouldn't be allowed to do this. I also don't see why anyone would want to use this under the GPL. One would think if someone didn't want people to tinker with something they made they would release it under a different liscense.
If used in any OSS projects I'm quite sure it would kill the popularity/success of said project very effectively.
-Derick
Well, there's a big difference between allowing people to digitally sign binary builds of the kernel, and actually supporting DRM directly.
Personally, it seems almost irrational to want to keep people from signing copies of the kernel. It's almost a free speech issue, people should be able to sign whatever the hell they want.
I think the real issue is restrictions people place on others, the TCPA/Pallidum DRM systems of which code signing is only a small part. I think I would hate to see Pallidum style 'locks' on the runtime environment in the 'official' version of the Linux kernel. If that does happen, I'm sure it will fork like mad, though.
I guess what Linus is saying is that if some companies want to make locked up, DRM'd systems using the Linux kernel, it's OK with him.
autopr0n is like, down and stuff.
"..and also I don't see myself spending 100's to 1000's of dollars to aquire the right to make binaries that run on my own computer....which is really where this discussion ultimately heads..."
Proving that you apparently are more interested in gratis software than libre software. This is already the case; even on Linux. Ever hear of Maya or Shake? They cost a few thousand each. Matlab, Mathmatica, Maple? Quite expensive. The programmers that made these products still need to eat and feed their families. They are already heavily DRM'd, although I'm not sure if they require a hardware dongle at this point in time.
You're misunderstanding what he said. He said "...I don't see myself spending 100's to 1000's of dollars to aquire the right to make binaries that run on my own computer...". (emphasis is my own)
If I have to get permission from some outside party to be able to create software that will run on my own computer, there's a problem. Why should I have to pay Joe Schmoe, Inc. to be able to run software *I* wrote on a computer *I* own?
I'm pretty sure Linus is aware of that. I would not be surprised if he is fully aware of the fact that any security or DRM features in any open-source system can and will be circumvented.
Think, if you were in Linus' position: Would you rather raise a stink about DRM and try to ban it from the Linux kernel, probably getting arrested in the process, or just let it happen and not fight when people develop ways around it?
Warning: Poster of this comment is a nerd. Just like everybody else here.
You've defined the issue very well, but I don't think either scenario can be prohibited.
Imagine this: Company A makes a set-top box as you describe. Company B develops and publishes a linux binary for it, with source, etc. Company A then signs the binary and distributes the detached signature. The box will now run the special signed version of Linux.
Who has broken the GPL? Company B hasn't done anything wrong at all. Company A has not used, distributed, or created a derived work of any GPL'd software. They are not a GPL licensee, unless you can claim that the MD5 sum of a program is a derived work, which is ludicrous.
No, it's difficult, but Linus is correct. The GPL protects the software only. The remedy to this problem lies elsewhere: people should choose not to buy crippled hardware, and governments should not make laws prohibiting people from modifying their own hardware.
I think a lot of people here are reading too much into Linus's statement "On the whole, this is just another example of why rms calls me "just an engineer" and thinks I have no ideals." I do not believe that Linus is (a) making any reference to RMS position on DRM; or (b) suggesting that this is an issue over which they have a difference of opinion, just that he is saying he is infavour of _not_ letting ideals get in the way of his engineering.
Further, RMS must support rights management, since the GPL is a rights (or lefts) based device. That the management of rights over the digital domain should be excluded from the principle seems counterintuitive to me. Even when one acknowledges that Digital Right Managment is such a misleading name for the idea, Digitial Freedom Restrictions would be much better, RMS still has to be in favour (perhaps not, because I am sure he would recognise the pain of the implementation) since the GPL effectively restricts ones freedom to use GPLed stuff as one pleases.
This is why I disagree with him (RMS). Copyleft still relies on the existence of property in ideas (or the manifestation of those ideas, the "output of intellect" as I like to call it) and it is the existence of property in these things that is broken (IMHO) where there is no property the vendor of the thing is perfectly entitled to do what they like to DRM their thing, but they are subject to the normal vagaries of competition law and that will become an increasingly powerful (despite the recent microsoft case) avenue as industry consolidations increase. But by the same token the punter is entitled to do what they like with what they are given when they make the purchase and no amount of fannying about with "license" based restrictions will do any good (when there is no propoerty that is).
From my perspective there is only one valid
"The first thing to do when you find yourself in a hole is stop digging."
DRM is like the discussion on gun control. (Guns don't kill people, people kill people.) And putting a nice fat elk on the dinner table is always a good thing for us meat eaters. DRM is the same way -- Linus is talking (in my opinion) about a useful purpose for something (that in the wrong hands) can cause a lot of damage.
(+1 Funny) only if I laugh out loud.
Just taking the other side to promote discussion.
Linus' pet operating system would not even exist, and have a strong ethical footing supporting the "goodness" of that existance, were it not for RMS' philosophical views. While this does not represent a "debt", per se., decent people generally respond to kindness (yes, the GPL is an act of kindness), by reciprocating.
Uh...Linus does. Stallman and Co. handed him lots of code to use. In return, he did the same, and now "GNU/Linux" has the best kernel around.
OTOH, I don't think that Stallman should be trying to push his ideology on Linus any more than Linus should be trying to do so to Stallman. The difference is that Stallman tries to do exactly that with Linus, and Linus doesn't do so to Stallman.
May we never see th
Digital rights management is just that -- digital rights management. It is designed to prevent me from making fair use of MY software, music, DVDs, whatever.
I think what Linus is talking about is an entirely different applications of essentially the same technology. He's talking about signing as being a good thing, so that we -- the users -- can verify, for example, that the latest kernel release was actually released by Linus, and not some poser. This is good and fine. If we want to be able to verify such things, we simply install the appropriate verifying software, with internalized or modularized support in the kernel; alternatively, we can add/remove that verifying feature from the source.
In other words, *we* have the option to have these things, which would allow us to verify that the latest kernel release was actually signed by Linus (doesn't GPG do this?)
However, DRM and digital signing can never work in a GPL'ed system unless the person controlling the computer wants them. You're welcome to put a DRM-scheme in any GPL'ed (say) CD-player, referring to an external closed key. I, however, if I don't like that, can remove that from the source, thus have the program not even request such a key. Likewise with signing. This does not mean that DRM and signing are useless on GNU/Linux. It just means that they can't* be imposed against the administrator's will. The administrator of the computer can still use them -- if (s)he wants -- to verify that updates are signed by individual's they trust. And they can still use them to ensure that ordinary users on those machines (if said machines are corporate) can't use them to violate copyright laws, which would create liability for the corporation. However, the administrator can also choose *not* to use them.
I also don't see how RMS is the counter-point in this case. RMS has had ample opportunities to include anti-commercial, antiÐadvertising, and patent-fighting terms into the GPL. He has refused. I e-mailed him asking about the Open Software License, which has a clause in it that would terminate the right of anyone to use that software if they brought a patent lawsuite against any other under an OSI-approved license with the same clause in it. I suggested he put such into the GPL to ward off patent lawsuites. He refused, stating that there was already something in the GPL preventing stealth patents from infecting GPL'ed programs.
I don't think it's enough, but his worry is that such a clause would make the GPL a EULA, regulating the user's actual *use* of the software. I also don't see anywhere where RMS or anyone else in the FSF has said that the GPL bans DRM and signing, nor that it should be modified to do so. As it happens, I think that such a clause should be included in the GPL, because patents are a major problem for ALL software developers. If developers had to do exhaustive patent searches before writing code, nothing would EVER be produced. I think, however, that anyone who wants such a clause can simply add it to the GPL in their own modified version of it.
* The worrysome case, however, is with things like requiring DRM by law, or by hardware code. There are nazi ideas floating around to make it legally required for all software to use DRM. This may not directly affect any FS/OSS projects, as they can simply move abroad. However, one should not understimate the power of multinational corporations to get the WTO to penalize nations that don't agree to the US' draconian IP laws. Furthermore, hardware initiatives like Palladium would prevent GNU/Linux from running on hardware at all.
social sciences can never use experience to verify their statemen
It's possible that the second situation might be construed as linking the kernel and the BIOS into a single derived work, since the kernel is now essentially an irreplacable part of the BIOS. That would require the BIOS to be GPL.
On the other hand, it's easily possible to build a device which includes a Linux kernel which can't be replaced by the end user: just put it in ROM. The way to install a replacement would be with a soldering iron and a ROM fab, which would be beyond the means of most users, but there's no requirement in the GPL to only use techniques which everyone could replicate.
This isn't really that different from the Red Hat release process where the final steps include "send the ISO to the CD plant" and "shrink-wrap the box". The end user will have an extremely hard time producing a labelled, pressed Red Hat CD that boots a different kernel, but that's not Red Hat's fault, nor does it prevent them from selling such a thing. Red Hat can even sell to people who don't have a CD burner, although these people couldn't produce a CD from source.
The GPL only requires that I give you all of the information required to rebuild from source, not that I give you all of the other resources required to produce exactly what I am distributing, when the other resources are not information.
What, like one of his usual windy manifestos? I can assure you I've not, and am rather happy with the fact. One time I was about to when I realized there was some paint drying, and that immediately stole my attention. That guy gives new meaning to "Quixotic."
That said, which part of what I said was wrong? He fits the zealot part, that's for sure. And he has, in the past, received money for writing code. So he doesn't seem to have a problem with the code for $ thing.
[a signature hash] is a qualitative statement made about the work in question, but the statement is its own creative work.
This is completely untrue. A signature hash is a quantitative statement about the work. That's the entire point of a hash. There can be a thousand english-language reviews of a movie, all of which will be different. There is only one possible hash of a kernel in any given hashing language/algorithm. There is no room for "creativity" in the computation of a signature hash.
However, I doubt that a copyright infringement case would get very far. Consider the criteria for fair use:
Criteria 1: What is the purpose and character of the use?
The purpose of a hash is completely different from the purpose of a kernel. The hash also has completely different characteristics than the kernel. Both favor fair use.
Criteria 2: What is the nature of the work?
The nature of a hash is a single factual, mechanical observation about a published work, favoring fair use.
Criteria 3: What is the amount and quality of the work being use?
The amount of the work included in the hash is a vanishingly small amount of the original work. Less then 100 bytes derived from a several megabyte program. It is impossible to reconstruct a kernel from a kernel hash. Both observations favor fair use.
Criteria 4: What effect does the use have on the market for the original work?
None, thus strongly favoring fair use.
The DRM "features" that most posters are complaining about would have to be implemented in hardware (if they are in GPL'd software it would be possible to modify your copy of the source and compile a new version). As such, it is the hardware manufacturers who need to be persuaded that DRM is bad, not Linus.
He says that Open Source "cite only short-term practical benefits as the reasons for what they do." while Free Software "embodies the firm philosophy of the free software movement" which means ensuring that the software, including future versions, forks and derives will remain free.
All Free Software licenses are Open Source licenses, but far from all Open Source licenses are Free Software licenses.
My other account has a 3-digit UID.
If someone creates a version of the Linux kernel that only runs signed binaries, and the GPL forces them to release their source, couldn't someone simply hack their kernel to run unsigned binaries? It wouldn't even require any reverse engineering.
It seems to me that the GPL is inherently at odds with DRM, as DRM depends heavily on being proprietary and obfuscated (and this still doesn't stop people).
Yes, you can make hardware that will only run signed binaries, and thus close that hardware to tinkering. Infact, making such hardware has already been attempted, it's called a console.
m plain_and_stop();
In essence, the bootloader of such hardware does the equivalent of:
if (valid_signature(kernel))
boot(kernel)
else
co
This is nasty, if you are running on such hardware, than the ability to change the kernel in any way you like brings you nothing: if you change anything, even something completely trivial, the signature will no longer be valid, and your new changed kernel will not boot.
Linus is rigth though, this is clearly allowed under the GPL. And furthermore, it very likely CANNOT be forbidden even if we would want to.
A Signature is (or atleast it can be) a separate document saying the equivalent of: "I, Bill Gates, testify to the fact that the kernel with sha1sum=b7a7bf03dcafd4d48001d6a2a6fd2ceaefa4cc1e is trustworthy and can be booted. signed(bill_g)"
There is no way for the GPL, or any other legal document to forbid the above document from existing. The signature above is clearly not a derived work of the kernel, but rather a commentary upon it. (namely a commentary on the trustworthiness) The only info derived from the kernel is the sha1sum, but the only function of this is to make it clear which kernel you are talking about. (much like mentioning the ISBN-number of a book you are reviewing)
Furthermore, there is also no way you would be able to forbid hardware from acting on the existence (or absence) of such a signature. Afterall there is no law saying that "hardware *must* boot all code."
Now, what *would* be nasty would be new laws *requiring* hardware to implement signature-checking. Such laws would essentially make it forbidden to make user-modifiable computers. The way the US is moving at the moment, I would not be too surprised if such a law is introduced and passed in the next few years.
Am I the only one that see it or didn't Linus just take a stand on DRM?
:)
What he said was that you can't hide encryption keys in the binary, but it's perfectly okay to have DRM as long as the key are published as part of the source.
What this means is: "You can't distrubte a (Hollywood) DRM'ed Linux kernel"
Yes, he says DRM is allowed, but only good DRM. The kind of DRM I'd like to have on my computer, so that I'm in control.
Typical Hollywood, pipe-dream DRM relies on me not having access to the keys. Linus has just said that this isn't allowed. The only type of DRM you can have is the type of "DRM" that SSH already enforces for me. People with the right keys can get stuff and those without it can't, and I can change the keys.
I wouldn't mind at all, having bullet-proof DRM that I had the keys for. (And knew they couldn't be changed on me.) It would actually be a bit reassuring. Say you keep your journal on your PC. It would be nice to have some DRM on your system to keep someone from just posting it to the net.
The DRM he's saying is allowed is very simlar to the "DRM" we already have on our systems: Unix file permissions.
The whole point of Hollywood DRM is to take root access away from the person sitting in front of the computer. He's just said that any keys compiled into the kernel would have to be published, and since the only way to have tough to crack DRM is at the kernel level (or below), that can't be done.
Yay Linus for satisfying the both the idealists, and those who just want to bitch about OSS zealots, and that god Linus isn't one of them.
Life is too short to proofread.