In the 1960's, Richard Stallman witnessed the rise of proprietary software when he was denied the source code for the firmware of a printer he was in charge of administrating. Now, because of his work over the course of nearly 50 years, we have the option of running an entirely Free Software system without lacking the tools we need.
Why did he go to the trouble?
Proprietary software arose as a tool which large corporations could use to control and manipulate their users. They used this control to obtain more money and in the process violated some of our basic rights as citizens of the digital age.
This post is about a few examples of how these violations affect users today.
How Does It Work?
Proprietary software, first and foremost, prevents users from knowing how it goes about accomplishing what it claims to accomplish. Proprietary tax software cannot be examined to be certain it truly conforms to the tax laws it purports to help users with. Proprietary antivirus software can't be examined for correctness.
For those users who are more concerned that their software works the way it advertises than they are about having someone to point the finger at when it breaks, not being able to look under the hood is not acceptable. It should concern everybody that their electrical grids and cable signals may not be run by provably reliable software.
This opaqueness also prevents those wishing to learn about software from learning through example. Children should have the benefit of knowing how their world works, including how their computer works. Don't you think?
Can I Improve It?
Traditionally, when you purchase something, you obtain the right to do with it as you will. This includes modifying it to function more effectively or more in line with the owners needs. Car owners frequently modify their vehicles for appearance, gas mileage, horsepower, or any number of other purposes. There are entire communities dedicated to modifying their game consoles.
However, proprietary software does not offer this basic right. A user who wishes that the proprietary music player he uses included a "loop" feature cannot feasibly add such a feature. A gamer who can't progress past a particular point in his favorite proprietary game cannot add new cheats to the game.
This places the users at the mercy of the software publishers and forces them to settle for software which doesn't fit their needs as well as it could.
How Do I Know it's Not Misbehaving?
Software which prevents users from scrutinizing it can get away with all kinds of dastardly behavior in secret. One of the earlier examples was the sheer amount of identifying personal information the media player RealPlayer collected from the user's computer and sent back to the company which published RealPlayer.
Today, Google Chrome, one of the most popular web browsers, collects similar information from its users for advertising and tracking purposes. Some software comes with advertising and spying software from third parties.
With the right tools, some of this misbehavior may be detected. It's not easy unless you know where to look, however. More alarming still is the fact that most users don't seem to so much as care what their programs are doing when they're not looking.
This is a small sample of the problems with proprietary software. However, it's fairly easy to come up with numerous ways in which proprietary software violates a user's liberties.
More information on the topic of proprietary software and its negative effects on our liberties may be found at the website of the Free Software Foundation.
Showing posts with label reverse engineering. Show all posts
Showing posts with label reverse engineering. Show all posts
Monday, January 16, 2012
Tuesday, January 3, 2012
Are We In Control Of Our Machines? Part 2
In part one, I talked about how to go about using only free software on your desktop or laptop computer, mostly leaving other consumer electronics out of the conversation. Hence, part 2.
Most people in the developed world have a multitude of computers around them. Most people don't even consider most of these computers to be computers, though some are more similar to laptop and desktop computers than others.
Just to name a few examples of the computers which surround us, most of us own a gaming system, cell phone, television, car, several set top boxes, kitchen appliances, networking and computer paraphernalia, and a multitude of other devices which contain embedded computers. As a software engineer, it makes me uncomfortable that I don't really know what these devices do while I'm not looking. And as a software engineer, it makes me think there must be a better way.
Why Is It The Way It Is?
Hackers are busy people, and their time is valuable to them. They tend to work on what has the most payoff. That doesn't usually describe flashing the firmware on their microwave ovens. It does however describe flashing the firmware on their routers and game systems. As a result, there are several GNU/Linux distributions made for routers such as DD-WRT and OpenWrt and for all of the major game consoles, there is a "homebrew" project soon after release.
In short, we hackers who are interested in exercising control over our devices choose our battles.
Which Devices are Lacking Free Software?
As I see it, the important devices which have yet to bet touched by a significant amount of user-controllable Free Software are the majority of mobile phones, televisions, some set-top boxes, computer peripherals such as scanners and printers, and automobiles.
Mobile phones have more control of our lives by the day. They allow almost our entire lives to be tracked. As many of you are already aware, it is possible for law enforcement to activate virtually all commercially available cell phones' microphones for covert surveillance. Aside from the fact that this is a power law enforcement has not been able to exercise over citizens before, this back door is vulnerable to exploitation by malicious parties. Why should we as owners of these devices allow this?
For televisions, the issue is more the fact that a television not in your control is one which you cannot use to its full capacity. If your television has a sufficiently powerful embedded computer, and you wish to be able to play games from said embedded computer, there's no reason why you as the owner of the television should not be able to do this.
Set-top boxes have the capability of limiting your freedoms to do with your content as you wish. Some already heed the "broadcast flag" which can prevent DVR's from recording content even from local broadcast television stations.
Among computer peripherals, printers are probably the most important devices to bring Free Software firmware to. Virtually all commercially available printers print virtually invisible dots on every page which may be used to track down the printer on which it was printed. The potential for abuse here is also great.
And, finally, automobiles' firmware touches on issues of safety, privacy, and efficiency, among others. With vulnerable firmware, a vehicle may be unsafe. Many vehicles these days have GPS built-in, making privacy a concern. And, the firmware has a strong effect on the feul efficiency as well.
Many other such devices exist which users have a need to be able to control. However, we must choose our battles and focus on the highest-priority devices first.
What Can Be Done?
For many, porting a GNU/Linux distribution to an embedded device such as a mobile phone or a set-top box is not an insurmountable task. If you're interested in porting GNU/Linux to an embedded device, I can recommend the Gentoo Embedded Handbook. If you have other resources for interested parties, please post them in the comments.
In some cases, Free Software has been brought to devices without porting an operating system to them. For instance, the Nintendo Wii has the Homebrew Channel. This not an operating system, but it does allow for writing software for the Wii (as well as installing at least a couple of different GNU/Linux distributions.) For information on this type of approach, Andrew "Bunny" Huang's book "Hacking the Xbox" is an excellent resource.
Until next time, happy hacking.
Most people in the developed world have a multitude of computers around them. Most people don't even consider most of these computers to be computers, though some are more similar to laptop and desktop computers than others.
Just to name a few examples of the computers which surround us, most of us own a gaming system, cell phone, television, car, several set top boxes, kitchen appliances, networking and computer paraphernalia, and a multitude of other devices which contain embedded computers. As a software engineer, it makes me uncomfortable that I don't really know what these devices do while I'm not looking. And as a software engineer, it makes me think there must be a better way.
Why Is It The Way It Is?
Hackers are busy people, and their time is valuable to them. They tend to work on what has the most payoff. That doesn't usually describe flashing the firmware on their microwave ovens. It does however describe flashing the firmware on their routers and game systems. As a result, there are several GNU/Linux distributions made for routers such as DD-WRT and OpenWrt and for all of the major game consoles, there is a "homebrew" project soon after release.
In short, we hackers who are interested in exercising control over our devices choose our battles.
Which Devices are Lacking Free Software?
As I see it, the important devices which have yet to bet touched by a significant amount of user-controllable Free Software are the majority of mobile phones, televisions, some set-top boxes, computer peripherals such as scanners and printers, and automobiles.
Mobile phones have more control of our lives by the day. They allow almost our entire lives to be tracked. As many of you are already aware, it is possible for law enforcement to activate virtually all commercially available cell phones' microphones for covert surveillance. Aside from the fact that this is a power law enforcement has not been able to exercise over citizens before, this back door is vulnerable to exploitation by malicious parties. Why should we as owners of these devices allow this?
For televisions, the issue is more the fact that a television not in your control is one which you cannot use to its full capacity. If your television has a sufficiently powerful embedded computer, and you wish to be able to play games from said embedded computer, there's no reason why you as the owner of the television should not be able to do this.
Set-top boxes have the capability of limiting your freedoms to do with your content as you wish. Some already heed the "broadcast flag" which can prevent DVR's from recording content even from local broadcast television stations.
Among computer peripherals, printers are probably the most important devices to bring Free Software firmware to. Virtually all commercially available printers print virtually invisible dots on every page which may be used to track down the printer on which it was printed. The potential for abuse here is also great.
And, finally, automobiles' firmware touches on issues of safety, privacy, and efficiency, among others. With vulnerable firmware, a vehicle may be unsafe. Many vehicles these days have GPS built-in, making privacy a concern. And, the firmware has a strong effect on the feul efficiency as well.
Many other such devices exist which users have a need to be able to control. However, we must choose our battles and focus on the highest-priority devices first.
What Can Be Done?
For many, porting a GNU/Linux distribution to an embedded device such as a mobile phone or a set-top box is not an insurmountable task. If you're interested in porting GNU/Linux to an embedded device, I can recommend the Gentoo Embedded Handbook. If you have other resources for interested parties, please post them in the comments.
In some cases, Free Software has been brought to devices without porting an operating system to them. For instance, the Nintendo Wii has the Homebrew Channel. This not an operating system, but it does allow for writing software for the Wii (as well as installing at least a couple of different GNU/Linux distributions.) For information on this type of approach, Andrew "Bunny" Huang's book "Hacking the Xbox" is an excellent resource.
Until next time, happy hacking.
Subscribe to:
Posts (Atom)