Search This Blog

Sunday, 16 September 2012

The Importance Of Free Firmware


Subject: The Importance Of Free Firmware
Date: Sun, 16 Sep 2012 22:03:24 GMT

URL: http://jxself.org/free-firmware.shtml

I received a request to write something about why you should use free firmware (so yes — I do accept requests for topics) but firmware is really just software and the arguments I was going to make apply equally to all software. However, for the purposes of this article, I will focus on software in the form of firmware.

Our lives are becoming ever more dependent on computers, and specifically the software — in the form of firmware — that runs on them. You'll find computers, and the software running on them, not only in the computer on your desk but other places you may not think of: In cars, airplanes, buildings, televisions, cameras, and many more places. Many people already carry firmware in their pockets, and if Google Glass is any indicator it's going to become far more intimate and we'll start wearing it too. It's also found in places where lives depend on it, like medical devices. In short, software is everywhere and will only continue to spread.

This rightly raises the question of who should control all of this. The free software movement says that you should be the one deciding what these miniature computers in your life are doing. That necessitates the software on those computers be free software so that you can understand what they're doing and change it.

The goal of the free software movement is nothing less than getting freedom to everyone, everywhere, over every piece of software. Getting freedom to everyone means that everyone becomes the master of the technology in their lives — where the user decides what that device does and does not do — and is not a servant to a master that decides for them.

What sort of things happen when you're forbidden from knowing what's going on inside and changing it? Let's consider one example of something that happens when you don't control the technology and look at the ThinkPad laptop. All models come with proprietary firmware that runs as soon as you power the computer on, in the form of the BIOS. This BIOS has an anti-feature in it, where it will refuse to boot if you replace the WiFi card with a different model.

Regardless of why you might want to do replace your WiFi card, the manufacturer has decided that you shouldn't be able to. Workarounds are available in the form of hacked BIOS firmware images and other tricks but these shouldn't be necessary: Your computer should obey you, not someone else. By including this anti-feature the situation has now changed from your computer obeying you to you finding a way to get around the control that the manufacturer has imposed on you. Imagine what sort of control becomes possible if the manufacturer decide what sorts of other peripherals you can plug in to your computer.

Imagine also optical drives that only read disks marked for use in a specific geographic region, or printers that only accept ink from a given company, or that print imperceptible tracking dots on your documents. Imagine also ebook readers that delete books you've bought, television tuners that refuse to record certain things, and computer displays that refuse to display certain images.

Oh wait — all of this already exists.

Imagine if that were to expand to include not only what you plug into the computer but also what software you run on your computer, where it would only run programs that the manufacturer has authorized. Oh, wait — that exists too with things like the iPhone/iPad and with the upcoming Restricted Boot in ARM devices that will never run anything but Windows 8.

It's not limited to just anti-features. There can be privacy problems too: Think of cell phones. They usually have proprietary software in the form of the baseband firmware, the part that's responsible for interacting with the cell phone network. It operates independently of your phone's main operating system and is actually a full operating system in its own right. A common design shares the phone's main memory with the operating system you see on the screen and the one you don't. This design also gives it access to the microphone and GPS. Cell phone carriers have the ability to remotely update this firmware. Read the contract with your carrier, buried in the fine print was: "Please be aware that we may change your wireless device's software, applications or programming remotely, without notice." What control does this give carriers? The power to push updated versions to handsets — without your knowledge — that contain surveillance features to activate the microphone and report your location. You take this with you everywhere you go. Your carrier may say they'd never do this but policies can be easily changed, while the infrastructure will persist for many years.

Why is any of this tolerated? Perhaps part of it comes from people that are used to being mistreated. Maybe they're used to this and don't think much of it or don't think they deserve any better?

Even without any anti-features or surveillance features I can say one other thing about these proprietary programs: They have bugs. You are at as much risk of an accidental software bug, such as one that shocks your heart when it isn't supposed to or that causes your car to mysteriously speed up and crash into things, as you are a malicious feature. Of course most people will never modify it but the fact that you can (or have someone else that you trust do it for you) keeps you safe and means that you — and not someone else — has the control over the technology you're using.

I've spoken with someone that that said they believe the proprietary firmware needed by their graphics or WiFi card doesn't have any anti-features (that they know of) and doesn't come anywhere near being as important as what software is running someone's heart but I disagree. Even without any anti-features it's still a way for the developer to exercise control over you because they decide what the software does and does not do — not you. That you're forbidden from studying, modifying, and sharing the software — through both legal and technical means — means that you don't have sufficient control. Being able to run the software but not modify it only gives you the ability to do — or not do — whatever the developer said you could do or not do. If you can't use it for any purpose that you want, if you can't study and modify it so that it does (or doesn't do) whatever you want, then who is that device really taking orders from? Certainly not you. At that point it begins acting as the agent for someone else, enforcing their rules, policies, and agendas — not yours. Eben Moglen does a great job of explaining the problem caused by technology that isn't controlled by its user: http://www.youtube.com/watch?v=vY43zF_eHu4&html5=1. Unless you control the technology the technology will in the end control you.

Copyright © 2012 Jason Self. See http://jxself.org/license.shtml for license conditions. Please copy and share.