A friend of mine was wondering why cell-level encryption isn't used often in databases. What would seem to be a fast and efficient approach to data security actually requires a complex implementation. Cell-level encryption stands in stark contrast to commonly adopted transparent forms of database encryption, and helps us identify hidden costs and complexity.

Adrian Lane, Contributor

November 10, 2009

2 Min Read

A friend of mine was wondering why cell-level encryption isn't used often in databases. What would seem to be a fast and efficient approach to data security actually requires a complex implementation. Cell-level encryption stands in stark contrast to commonly adopted transparent forms of database encryption, and helps us identify hidden costs and complexity.Cell-based encryption is when you encrypt a single element within a single row of a database table. While it is considered database encryption, most commonly the encryption is performed outside of the database, from within the calling application. Sensitive data elements are encrypted before being inserted or updated.

The process of introducing encryption into an application is a fairly complex endeavor, requiring changes to the application logic, the addition of the cryptographic services, and assumption of key management tasks. You must additionally alter the database structure to store the encrypted strings, and alter any database queries that selected/used the now-encrypted data. The approach is very flexible, enabling you to encrypt pretty much any or all data. It also can be very secure, but the sheer amount of effort to make this work scares most people off.

Another misconception about cell-level encryption is it's faster because you encrypt less data. In practice, this is not correct. First, if you have sensitive data, then very seldom is it only a single row you are protecting. For example, if you have credit card numbers, then odds are you have one in every row of the table. Second, if you are running queries against encrypted data, then it is faster to decrypt that data as a whole column or table than row by row or element by element -- a lot faster. Technologies that work at the object level are more efficient in general-use cases and a heck of a lot simpler to implement.

Discussing cell encryption is mostly helpful in spotlighting the difficulties in encrypting database content at the application level. It is for these reasons, as well as a few others, that most people are moving to transparent forms of encryption.

In my next two posts, I'll discuss the two major forms of transparent encryption: file/folder and database transparent encryption. I want to clear up some of the confusion surrounding these technology approaches, delving into the business problems they solve, as well as the pitfalls around implementation and performance.

Adrian Lane is an analyst/CTO with Securosis LLC, an independent security consulting practice. Special to Dark Reading.

About the Author(s)

Adrian Lane

Contributor

Adrian Lane is a Security Strategist and brings over 25 years of industry experience to the Securosis team, much of it at the executive level. Adrian specializes in database security, data security, and secure software development. With experience at Ingres, Oracle, and Unisys, he has extensive experience in the vendor community, but brings a pragmatic perspective to selecting and deploying technologies having worked on "the other side" as CIO in the finance vertical. Prior to joining Securosis, Adrian served as the CTO/VP at companies such as IPLocks, Touchpoint, CPMi and Transactor/Brodia. He has been invited to present at dozens of security conferences, contributed articles to many major publications, and is easily recognizable by his "network hair" and propensity to wear loud colors.

Keep up with the latest cybersecurity threats, newly discovered vulnerabilities, data breach information, and emerging trends. Delivered daily or weekly right to your email inbox.

You May Also Like


More Insights