On Wed, 25 Jan 2006, Linus Torvalds wrote:
> And quite frankly, I don't see that changing. I think it's insane to
> require people to make their private signing keys available, for example.
> I wouldn't do it.
Linus, I think you are missing the point here. I see this provision as one
of the most important fixes in GPL v3. It might not be perfect in the way
it is presented in the draft, but the rationale is certainly laudable.
This closes a very serious loophole, that in certain situations renders
the GPLv2 almost worthless. The problem is embedded systems, but
especially cellphones.
A typical smartphone has a baseband processor (running the GSM stack under
a proprietary OS - let's call it the Baseband OS) and an application
processor (running the PDA features and GUI, for example Symbian OS or
Linux, let's call it the Application OS). Newer phones use a microkernel
architecture where the two OS's each run as tasks under a microkernel so
that a single CPU can be shared, but that's not relevant for this point.
The practice for many phone manufacturers is to heavily encrypt and sign
all ROM images that go on the phone. They do this for several reasons, but
mostly to prevent end-users from modifying the baseband code (where things
like SIM-locks and network locks are stored) or changing the IMEI number
of stolen phones.
However, most manufacturers extend this protectin to also encompass the
PDA-side code. This is understandable (to an extent) where the operating
system is proprietary or licensed (e.g. Symbian OS) and not available for
end-users to modify in any case.
But when Linux is used instead (something that most major handset
manufacturers are working on at the moment), this whole picture changes.
Suddenly the whole point of "Free Software" goes away. Because the handset
manufacturer modifies, adapts and uses the Linux kernel (for free),
without having to give anything back to the community. Yes, they have to
make their modified source available, but there is no way a casual user
(read: someone not a member of the phone-unlocking mafia) can update the
kernel with a modified, recompiled version.
But it goes further. The manufacturer is free to embed "trusted
computing" technology into the kernel (e.g. digital signing of all
executables that can run on the phone), as long as the encryption
technology is included in the kernel (they can even embed the
public key in the published sources, and you have no way of
obtaining the secret key) - thereby preventing the user from running ANY
code on the phone not pre-approved by the manufacturer.
Their main motivation for doing this is basically to protect the mobile
network operators' revenue, by preventing (or at least limiting)
installation of things such as VoIP clients and instant messenger systems
that could lead towards an "open TCP/IP" infrastructure that all the
operators fear so much.
The prime example of this is what is already implemented is Symbian OS. In
Version 9, used by the latest handsets from Nokia and Sony Ericsson, it is
impossible to install applications that are not signed by an independent
testing house, something that effectively locks small businesses and
independent hobby coders out of the market. There are even certain
"capabilities", needed for example to implement networking protocols, that
can only be signed if approved by the phone manufacturer.
The only way to prevent Linux from being abused in this way is to require
that the end-users have a method of installing the modified code on the
device for which it was intended (such as your phone). If they don't want
to disclose their primary signing keys, fine, but then they need to make
another method available of replacing any free software used in the device
with a modified (by the end-user) version. I understand the need to
protect the non-GPL'ed "baseband" OS from tampering, but it has to be
possible to replace the GPL'ed software. This is what this provision is
all about (for me), and I think it is an extremely important one.
Of course I have focused on cellphones, but the same is equally true for
other embedded devices, such as digital TV boxes (e.g. PVR's). If I want
to add a nice feature (and share the patch with my friends who bought the
same box) I should be free to do so. Isn't that what Free Software is all
about?
Thomas
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
[Index of Archives]
[Kernel Newbies]
[Netfilter]
[Bugtraq]
[Photo]
[Stuff]
[Gimp]
[Yosemite News]
[MIPS Linux]
[ARM Linux]
[Linux Security]
[Linux RAID]
[Video 4 Linux]
[Linux for the blind]
[Linux Resources]