If you think simply encrypting data will keep your data safe, then you don't really understand encryption.
One of my pet peeves is computer-related laws that have no
benefit and increase the cost of using computers. The relatively new California
law dubbed the "Database Security Breach Notification Act" went into effect in
July 2003 and is an example of this kind of legislation. It requires companies
that hold personal information about California residents to notify all
individuals whose data may have been compromised as a result of a security
breach. But the requirement is waived if the data is "encrypted" on the system.
The intent of this law is laudable, but the practical effects are laughable
because people might not be notified when they should be!
One can
conclude that the California legislature (along with lots of other folks)
believe that data stored in a database is more highly protected from "hacking"
if that data is encrypted. This blind faith in encryption is caused by something
I call the "encryption myth." It is the mistaken belief that encryption provides
more protection than other access control mechanisms. The belief that "if it's
encrypted, it's protected" just isn't true. In fact, encryption is just another
form of access control--a form that is useful and appropriate in certain
scenarios but inappropriate in other scenarios. The encryption myth stems from a
number of misconceptions about encryption.
In my opinion, the California
legislature would have fostered better practices and stronger protection had
they exempted companies with appropriate and demonstrable access control
mechanisms based on an exclusionary access model (i.e., everyone denied access
unless explicitly allowed). No additional protection beyond that provided by the
access control mechanism is derived from encrypting data that must be accessible
to someone or some application.
To understand why this is true, we have
to look at the attributes of data that companies store, the attributes of
encryption, and the threats that are assumed to be mitigated by encryption.
Then, we'll look at the requirements being levied by customers. Finally, we'll
pull these concepts together and see whether encryption provides any additional
value.
Attributes of Data
I've often said that it is impossible to perfectly
protect data because it's impossible to prevent unauthorized access to data.
This is not quite accurate. It is possible, but only if you also prevent
all authorized access! Of course, data that is inaccessible to everyone is
useless; it has no value, so there would be no reason to store it. As soon as
you introduce the requirement that someone or something must be able to access
the data, you enter the world of risk management. Risk management means reducing
the risk of unauthorized access to acceptable levels, not completely removing
the risk.
Stored data must be able to be accessed in a "timely" manner.
For example, if an application must process millions of Social Security Numbers
stored in a database, it is not feasible to ask a human to manually enter a key
that can decrypt each Social Security Number. It would take too much time. Since
these applications normally run without any human intervention, even requiring
human intervention once is unacceptable to most companies.
Data stored on
disk is never accessed by a person. It is always accessed by a program. Programs
run under an electronic user ID.
Hackers access data the same way any
user accesses data--through programs that run under a user ID.
Attributes of Encryption
The first and most important encryption attribute to
understand is this: Having access to the key that decrypts encrypted data and
access to the encrypted data is equivalent to being authorized to the clear-text
data. An algebraic representation of this is "access to clear-text data = access
to decryption key + access to encrypted data." A corollary to this is that once
data is encrypted and stored, the key that decrypts the data is just as
sensitive as the clear-text data.
Encryption is compute-intensive; it
takes a relatively large amount of resource to perform the numerous mathematic
operations required.
David L. Scott, in Wall Street Words: An A to Z
Guide to Investment Terms for Today's Investor, defines encryption as "the
manipulation of data to prevent accurate interpretation by all but those for
whom the data is intended." Financial institutions use encryption to increase
the security of data transmitted via the Internet.
Sounds a lot like
access control, doesn't it? This illustrates that encryption is useful for
protecting data as it is transmitted through a medium that has no other access
control mechanism.
Consider the following scenario, loosely based on my
Army National Guard, Radio/Teletype Operator experience a long time ago. It
serves as an example of several attributes of encryption.
An important
and sensitive message from the commander of Company A is encrypted using the
day's encryption key and sent to battalion headquarters. The person sending it
either destroys the original message or, if information may need to be accessed
later by someone in Company A, returns it to the sender, who puts it in a safe.
At battalion headquarters, the message is decrypted using the day's encryption
key. It is routed to the intended recipient. The recipient reads the message and
either destroys it or stores it in a safe. At the end of the day, the keys are
also destroyed. This is standard military operating procedure.
Why does
the military encrypt data when it is being sent from one location to another,
but store it unencrypted in a safe if the data may need to be accessed again at
either the sending or receiving location? Why don't they keep all data encrypted
at all times until it is needed again? The short answer is that access control
(i.e., the safe) provides just as much protection as encryption for data at rest
(in the safe, not in transit), and the safe provides a higher level of
timeliness and data accessibility.
Encryption is a useful form of access
control when no other access control mechanism is available. The military uses
encryption to protect messages as they are transported from the protection of
one access control mechanism (Company A) to the protection of a different access
control mechanism (the battalion headquarters safe). It doesn't use encryption
to protect the data "at rest" (i.e., while it is or can be under the control of
a different access control mechanism).
Why would the military destroy the
keys each day? First, the keys are just as sensitive as the data they encrypt.
Second, neither the sending nor the receiving entity needs the keys once the
data arrives at its intended destination and is decrypted. Third, the longer a
key is used and the greater the number of messages encrypted with that key, the
more likely an attacker may be able to compromise the key and thus any messages
encrypted with it.
A perfectly good encryption algorithm can be
successfully attacked if multiple messages are encrypted with the same key and
the contents or partial contents of one of those messages is known to the
attacker. This often-overlooked attribute of encryption was used by the allies
in World War II to win the battle of the Atlantic against Hitler's U-boats. The
Enigma machine was a marvelous encryption engine invented by the Germans prior
to World War II. However, the allies knew that several German radio operators
always started the first message of the day with a known phrase like "Heil
Hitler. It's a beautiful day in the fatherland." The allies were able to build a
machine that took advantage of this to find each day's key settings. By the end
of the war, the allies were often reading messages in England and the United
States before the Germans were able to decode and read them in Berlin. This
illustrates the fact that good encryption depends not only on the algorithms,
keys, and lengths used, but also on the data you choose to
encrypt!
Knowing that data is encrypted tells you
nothing about how well the data is protected. Without knowing the algorithm, the
key length, and, most importantly, how the keys are protected, one knows nothing
about how well encrypted data is actually protected.
Threats Encryption Is Supposed to Mitigate
The California law isn't the only legislation driving
customer requirements for encrypting data stored on disk. Auditors performing
Sarbanes Oxley (SOX) "compliance" (I think "assurance" is a better term) often
assert that sensitive data stored on disk must be encrypted. The Visa Cardholder
Information Security Program (CISP) also requires that certain data stored on
disk be encrypted while stored.
When I ask who they are trying to protect
the data from, the answer I get from customers and Visa usually includes
"unauthorized employees, administrators, and hackers." Often, they'll say from
"determined attackers."
Customer Requirements
Customers have a few requirements of their own over
and above the legislation, the primary one being that the encryption and
decryption be done by the application or the operating system. Most are unable
or unwilling to invest in changing all of their applications that store or
retrieve data on the system and feel this is something that should be provided
by the operating system.
But even if they could afford to, doing so
would provide no extra protection.
Why Encryption Doesn't Provide Additional Protection
let's take the concepts we've covered to this point
and see how they affect our understanding of the additional protection provided
by encryption.
We have legislation intended to provide more protection
of personal information and to prevent identity theft by requiring that personal
information be encrypted. We have customers who can meet the spirit of the
legislation only by having applications or operating systems perform the
encryption. We know that once data is encrypted, the key required to decrypt it
is as sensitive and valuable as the clear-text data.
If a program is
going to encrypt and decrypt data automatically, it must be able to generate
and/or access the encryption key, access the encrypted data, and determine when
and for whom it will decrypt the data.
To determine when and for whom it
will decrypt data, a program uses an access control mechanism! But doing this is
no different than relying only on access control! If the data is not encrypted
on disk, only those authorized to retrieve it can do so. If the data is
encrypted on disk, only those authorized to retrieve it can do so. It's the
access control mechanism that determines whether the user sees the data; the
decryption process just takes up computing resources.
Automatic
encryption performed by the OS or an application will still return clear-text
data to an *ALLOBJ user. By definition, *ALLOBJ users have access to the
encrypted data and the encryption key. Remember: "access to clear-text data =
access to encrypted data + access to encryption key." *ALLOBJ users, therefore,
have access to the clear-text data even though the data is stored encrypted.
Another argument for encryption that customers have used is "I trust my
administrators and have limited the number of people with *ALLOBJ, but the
encryption is required to protect against hackers that break into the system."
Sorry, but if an attacker breaks into the system with an ID that doesn't have
access to the key and the encrypted data, the attacker wouldn't have access to
the clear-text data either. However, hackers break into systems with *ALLOBJ
authority (otherwise, it's not worth the effort). As the previous paragraph
shows, encrypted data is not protected against *ALLOBJ users. Therefore,
encryption does not protect against hackers that break into the
system.
Is there any way that encrypting data stored on disk can provide
additional protection? I don't think so. Given the need for programs to be able
to encrypt and decrypt information automatically, I don't see how encryption
could be done without storing the key in a location accessible by the program.
This is what obviates the value of encrypting the data. Like I said, if the key
and the encrypted data are accessible to a program on a particular system, then
any user ID with *ALLOBJ has access to them. From the equation, substituting
"access to clear-text data" for the key and the encrypted data shows that the
access control mechanism alone is protecting the data.
One last argument
some folks use is that encrypting the data on disk provides value because if the
data is ever written to tape or the equivalent, it is protected while it is on
the tape. Of course, this is only true if the key is not stored on the same tape
as the data. But this means the data can only be retrieved if it is restored to
the same system and the key is the same at the time it is restored. But
using the same key also weakens the strength of the key. To maintain optimum
protection, it must be changed periodically. Now you have a situation where the
data encrypted on tape will not be available to you unless you put the key on
the disk (or implement a manual method for saving keys and associating them with
particular backup tapes).
Encryption or Access Control?
There is very little if any value to be derived from
encrypting data that resides on disk. The nature of encryption, the
accessibility requirements of data, and the impracticality of requiring
decryption keys entered manually by human beings all lead to the conclusion that
encrypting data stored on disk provides no additional protection of the data
beyond that provided by the access control mechanism.
Encryption is most
useful for protecting data when it is used in the absence of any other access
control mechanism--as it travels across the Internet, for example.
So
what should you do if you're a California company? Perhaps hire more savvy
legislators. If that's not an option, then the approach I would take is to spend
the least amount of money possible to provide some form of encryption. This way,
if you do suffer a breach, you can at least show that you were attempting to
meet the spirit of the law. But to really protect your data, encryption
alone is not the answer. Implementing access control is. And this goes for the
other 49 states as well.
Patrick Botz is currently responsible for
security within IBM’s Virtualization Engine. Prior to that, he was the
lead security architect for OS/400 and i5/OS. Pat was also the lead architect
for IBM’s Server Group’s Single Sign-On. He started his career
maintaining basic compilers, moved on to Electronic Computer Aided Design
development and support in distributed UNIX environments. Along with Carol
Woodbury, Pat recently co-authored the book Experts' Guide to OS/400 and i5/OS
Security and is working on another devoted to eliminating
passwords on server systems.
System Sentinel: The Encryption Myth Mar 22 2005 17:53:00
However, it is NOT workable for data that must be used in the normal course of a business cycle. <p>That is like saying that it is not workable to have merchandise secured from theft if you want to sell it! Every store makes a compromise between security and customer access, the expensive jewelry and electronic equipment has more rigorous access control than the light bulbs and underwear. When we take the attitude that universal ease of access trumps all other requirements we have already surrendered the protection. <p>For example, the common use of software that can "remember" our passwords is a response to complexity and the individual's difficulty coping with the proliferation of secured access but it amounts to unsecured access to anyone who really understands the process. Letting software remember passwords should rarely be used and only if one is willing to sacrifice the information protected by it. <p>What really needs to happen is for organizations to take security seriously and say to employees and customers, "It may be more difficult to manage but you must be willing to stop and intervene to provide the access codes or we CANNOT secure your data."
System Sentinel: The Encryption Myth Mar 21 2005 22:25:00
<blockquote><tt>My point is that they keys to the encrypted data must be secured on another server, on a physical device that is not attached to the network, by a manually entered password with a unique and constantly changing algorithym or some other method such as biological ID. Then the users must be made aware of the absolute necessity of protecting the keys and the data with equal dilligence and immediately report any compromise of either. </tt></blockquote><p>I agree 100%!!!! This is a valuable use of encryption. <p>However, it is NOT workable for data that must be used in the normal course of a business cycle. Encrypting data on backup media provides value (as long as the key is not stored on the media). Encrypting data as it flows over a network is a valuable use of encryption. <p>But encrypting data that is automatically decryptable by a program with no intervention of a human provides no value. It's the access control that provides the value.
System Sentinel: The Encryption Myth Mar 21 2005 22:21:00
<blockquote><tt>It is simply incorrect to imply that hackers go for *ALLOBJ and will >settle for nothing else. </tt></blockquote><p>I agree!!!! However, access control protects you against all but those with *ALLOBJ!!! That is my whole point. If you have access control set up correctly, encryption provides no extra protection. <p><blockquote><tt> Some accounts are very powerful but only within a specified application. Some accounts are "regular joe/jane user" accounts. </tt></blockquote><p>Ok. Lets look at a program that automatically decrypts certain data but only for "regular joe". How does encryption protect against a hacker that logs in with "regular joe"??? It doesn't. It will decrypt the data for him. If the hacker logs in with some other "regular jane" account, then access control protects the data. The fact that it happens to be encrypted too is moot. <p><blockquote><tt> A hacker gathers these in the hopes of leveraging their access upwards, but even the basic capabilities are worth something. Furthermore, because of i5 adopted authority, sometimes low level accounts can act like more powerful accounts. </tt></blockquote><p>Sure, but encryption does nothing to stop this. If they are authorized to run a program that adopts authority and automatically decrypts the data, then encryption provides no additional value. <p>Once they get to *ALLOBJ, encryption still does nothing to stop them. <p><blockquote><tt> You are also assuming that everyone is of an equal knowledge level, and that no one ever does anything dumb, or destructive, even self destructive. In the real world, people send confidential information out through the Internet all the time. I feel confident that much of this information is not encrypted, but would be better protected if it were. </tt></blockquote><p>Again, as long as people want encrypted data to be automatically decrypted for those who are "authorized" then encryption provides no protection against those that do dumb stuff. <BR>
If you don't authorize people to data they shouldn't be able to access, they can't do anything dumb with it -- they can't do anything with it. Encryption does not provide the protection -- access control does. <p><blockquote><tt> We can easily meet your test of having the encryption keys on the same hard drive, and handled by the OS. As long as it isn't on the same file/table as the data being sent, the data is reasonably safe. </tt></blockquote><p>Access control provides the same level of protection. <p>While encrypting the data does not make it less safe, it doesn't make it any more safe. Access control is sufficient to protect you against the "regular joe" -- assuming you get it right. And if you don't get it right, encryption still does not protect you. <p>Encryption cannot protect you against privileged individuals. <p>As far as layered security, certainly this has value -- but only when each layer provides a different kind of protection. For example, firewalls force you defeat a network-based control, while access control forces you to defeat an entirely different mechanism. <p>If you encrypt data that can be decrypted by a key that is accessible from the same machine as the encrypted data, then an attacker only has to defeat access control. In my opinion, it is not valid to assume that an attacker can defeat the access control mechanism in order to get at the data, but cannot defeat it to get at the key. The only thing that protects you in this case is "security by obscurity" and we know that is no security at all. <p><blockquote><tt>There is no such thing in the absolute sense as "security". Systems are only more secure or less secure. </tt></blockquote><p>Boy, if we could just get the other 99% of the public to understand this... <p>But your point is based on the assumption that having data encrypted on disk and decrypting it automatically for those who are authorized to it (or to the program that decrypts it) adds more security. It doesn't. I only have to break the access control mechanism (or spoof my way past it). I don't have to break the encryption. <p>The message is: Spend your time and money on getting access control right. <p>If you want to spend more money on encrypting/decrypting data automatically afterwards, then have at it. But it won't provide you any more protection beyond what the access control mechanism does.
System Sentinel: The Encryption Myth Mar 21 2005 19:09:00
One of the key points in creating a secure data record is to NOT have the KEY stored with the DATA. How secure is your home if you lock the door and hang the key on a hook next to the door? <p>Determined thieves love to find victim's "clever" hiding places and make short work of getting into locked buildings. (That concept is so common that Walt Disney immortalized in the film "Snow White" more than half a century ago when the last dwarf out of their mine locks the door and then hangs the key next to the door). <p>It is human nature to want an easy way to gain rapid access but the price of security is additional layers of protection. Pat's point about the German communications security is valid but the more blatant and serious problem was that many of the radiomen began their messages with the dial settings (essentially the combination) for the cypher machine IN CLEAR TEXT before the sent their encrypted messages. They did this on the assumption that only another German military unit would be able to use the combination. Boy were they wrong! <p>My point is that they keys to the encrypted data must be secured on another server, on a physical device that is not attached to the network, by a manually entered password with a unique and constantly changing algorithym or some other method such as biological ID. Then the users must be made aware of the absolute necessity of protecting the keys and the data with equal dilligence and immediately report any compromise of either.
System Sentinel: The Encryption Myth Mar 21 2005 13:46:00
Now, I may regret tackling a former lead security architect for the i5, but I know a thing or two about security myself. You are oversimplifying both security and human behaviour! <p>It is simply incorrect to imply that hackers go for *ALLOBJ and will settle for nothing else. Hackers are opportunists. Certainly they will try for Security Officer authority, or Administrator, or Super User, or All Objects authority, but they take what they can get. <p>Some accounts are very powerful but only within a specified application. Some accounts are "regular joe/jane user" accounts. A hacker gathers these in the hopes of leveraging their access upwards, but even the basic capabilities are worth something. Furthermore, because of i5 adopted authority, sometimes low level accounts can act like more powerful accounts. <p>You are also assuming that everyone is of an equal knowledge level, and that no one ever does anything dumb, or destructive, even self destructive. In the real world, people send confidential information out through the Internet all the time. I feel confident that much of this information is not encrypted, but would be better protected if it were. <p>We can easily meet your test of having the encryption keys on the same hard drive, and handled by the OS. As long as it isn't on the same file/table as the data being sent, the data is reasonably safe. <p>You are also doubtless aware that multi-layered security systems are, in general, more secure than single layered security systems. Having access control is great, but what if that layer is breached? <p>There is no such thing in the absolute sense as "security". Systems are only more secure or less secure. Making them more secure is always a tradeoff against ease of use, and you have to be very careful about implementing security systems that sound great on paper but will be defeated by human behaviour.
System Sentinel: The Encryption Myth Mar 22 2005 17:53:00
This is a discussion about <B>System Sentinel: The Encryption Myth</b>.<p align='center'><a href=http://www.mcpressonline.com/mc?1@232.1KNKfHX1eQT.17@.6b22169d>Click here for the article</a>.</p>