
372 CHAPTER 10 NETWORK SECURITY
10.5
OPEN SOURCE VERSUS CLOSED
SOURCE SOFTWARE
TECHNICAL
FOCUS
‘‘A
cryptographic system should still be secure if
everything is known about it except its key. You
should not base the security of your system upon its
obscurity.’’—Auguste Kerckhoffs (1883).
Auguste Kerckhoffs was a Flemish cryptographer
and linguist who studied military communications
during the Franco-Prussian War. He observed that
neither side could depend on hiding their telegraph
lines and equipment from the other side because
the enemy would find the hidden telegraph lines
and tap into the communications. One could not
rely on their system being obscure. In 1948, Claude
Shannon of Bell Labs extended Kerckhoffs’ Law when
he said, ‘‘Always assume that the enemy knows your
system.’’ Cryptographers and military colleges teach
Kerckhoffs’ and Shannon’s laws as fundamental rules
in information security.
How does this apply to computer security? There
are a few basics that we should understand first:
Programmers write their code in human-readable
source code, which is then compiled to produce
binary object code (i.e., zeros and ones); very few
people can read binary code. For-profit developers
do
not
release their source code when they sell soft-
ware; they only release the binary object code. This
closed source code is their proprietary ‘‘crown jew-
els,’’ to be jealously guarded. In contrast, open source
software is not-for-profit software in which the source
code is provided along with the binary object code
so that other developers can read the code and write
new features or find and fix bugs.
So, does this mean that closed source is safer
than open source because no one can see any bugs
or security holes that might be hidden in the source
code? No. With closed source, there is the temptation
to use ‘‘security via obscurity.’’ The history of security
holes is that they become well known. Why? First,
because there may be literally hundreds of people
with access to the source code. Some of those people
come and go. Some take the code with them. And
some talk to others, who post it on the Internet.
And then there are the decompilers. A decom-
piler converts binary object code back into source
code. Decompilers do not produce exact copies of
the original source code, but they are getting better
and better. With their use, attackers can better guess
where the security holes are.
There is also a tendency within the closed source
community to rely on the source code being hidden
as a line of defense. In effect, the users drop their
guard, falsely thinking that they are safe behind the
obscurity of hidden code. The open source commu-
nity has far more people able to examine the code
than any closed source system. One of the tenets
of the open source community is ‘‘No bug is too
obscure or difficult for a million eyes.’’
Also, the motives of the developers are different.
Open source coders generally do not write for profit.
Closed source developers are inevitably writing for
profit. With the profit motive comes more pressure
to release software quickly to ‘‘beat the market.’’
Rushing code to market is one of the surest ways of
releasing flawed code. This pressure does not exist
in the open source world since no one is going to
make much money on it anyway.
Can there be secure closed source software? Yes.
But the developers must be committed to security
from the very beginning of development. By most
reasonable measures, open source software has
been and continues to be more secure than closed
source software. This is what Auguste Kerckhoffs
would have predicted.
of the computer and could do anything he or she liked. As a result, Windows applications
regularly access and make changes to critical parts of the operating system. There are
advantages to this. Windows applications can do many powerful things without the user
needing to understand them. These applications can be very rich in features, and more
important, they can appear to the user to be very friendly and easy to use. Everything
appears to run “out-of-the-box” without modification. Windows has built these features
into the core of their systems. Any major rewrite of Windows to prevent this would