Showing posts with label Open Source. Show all posts
Showing posts with label Open Source. Show all posts

Monday, April 14, 2008

Social Implications of Open Source Software

Here's the prompt for this week's paper:

“Positive or Negative social implications of open source or 'free software'.”

What is open source or 'free' software? In this analysis I'm only going to refer to open source software, or what is commonly referred to as “Free as in 'Free Speech'”. This means you have access to the source code, and are free to modify it however you wish, and even redistribute it. The other definition is often stated as “Free as in 'Free Beer'”, meaning it costs nothing. These often go hand in hand since when you have the source code and may redistribute it, nothing stops you from giving it away for free. I'm not going to discuss the economics of open source software, as I feel that it is a discussion well suited for a different place.

What are the implications of open source software? You have the ability to look into exactly what a program does and learn from it or improve it. People also tend to argue that software that is not open source is unethical. Although I am a huge supporter of open source software, I have to argue that they are wrong. An article titled The Social Implications of Free Software on FSM states:

“Above all, Free Software is an ethical choice—not one of convenience. NGOs also tend to receive, store and disseminate huge amounts of information. It helps to be able to access info (in digital format) without having to 1) break the law, and 2) spend money to purchase applications to “read” the information. Using free software enables that, as South India-based lawyer Mahesh Pai points out.”

The argument made here is a non-sequitur; the arguments for open source software is that it is free and legal, which in no way implies that proprietary software is unethical. There should be a distinction between ethical implications and economic factors. It is not unethical to charge people for a product. The point made here is that a social implication of open source software is that is it much more likely to be used in a economically challenged locale, due to the low cost of the software (which is often gratis).

There are many benefits to using open source software. Nearly all proprietary software now has an open source counterpart, and in my opinion, many of them are much better than their proprietary counterparts. (There are also some that are much worse too.) Open Source software is often much more secure than proprietary software, which is interesting due to the full source code being available for anyone who would want to see it. I have written about this topic before, if you want to read more about this, go read my previous post Security through Open Source.

Open source software is created by a community of developers who share a generally common set of beliefs. This has lead to it's own community of OSS developers and users. This community continues to grow and thrive today. The community has a great property which will lead to it's success, and that is that the more developers that work on OSS, and the more users who commit to the community, the stronger it grows. This is fostered by the idea that all the software should be available from source code, and that anyone is free to modify and redistribute it. As more people work on it, bugs will be fixed, features will be added, and the software becomes more useful to more people.

Monday, March 24, 2008

Security through Open Source

Topic for paper number two:

Write a “Short paper on a computing technology of your choosing introduced in the last 30 years that you believe has been used unethically. Include references and cite from the Codes of Ethics in Appendix A.”



There have been many new computing tools introduced in the last 30 years, some even earlier, that have been used unethically. Usually these tools have legitimate and legal reasons for being created, but often these tools can also be used for questionable or unethical behavior. The UNIX security scanner Nmap has many legitimate uses, and comes installed on almost all Linux systems. However, even a program this widespread can be used for black-hat purposes.

A more recent example (Nmap was created in 1997), came up in an article on Coding Horror entitled A Question of Programming Ethics. A program called G-Archiver was found to contain code that used a hard coded email and password to send an email containing every username and password that entered into the software back to the creator of the program. This was a huge breach of trust between the author of the program and it's users. Luckily, a good hearted programmer had looked into the source code and found this, and instead of abusing what he found, he deleted all of the emails in the account, changed the password, and sent a message to Google asking them to delete the account.

There is no way to know exactly how many people could have found this before the security flaw was exposed, and instead of doing what this person did, stayed quiet and used the stolen information for their own purposes. Since the source code was easily examined, this flaw was found, but imagine how long this could have occurred if the source was not accessible. This brings up the topic of security through openness.

By completely exposing what your program does, the end user has a way to ensure your program only does what you say it does. However, this also allows the end user to more easily find vulnerabilities in the software. Having an open source program forces the programmer to understand these risks, which also helps to avoid poor decisions such as using security through obscurity. This could be interpreted to apply directly to Principle 1.04 of The Software Engineering Code of Ethics: “Disclose to appropriate persons or authorities any actual or potential danger to the user, the public, or the environment, that they reasonably believe to be associated with software or related documents.” How can you disclose any more information about your software than releasing the full source code?

There will always be tools created for completely legitimate purposes that will be converted into tools for unethical uses. Something as simple as a match can be used for many ethical uses, but it could also be used to burn down a house. The only thing that you as a programmer can do, is make sure that you make ethical decisions; you don't get a choice of what your users will do.