Comparison of database encryption methods (for data at rest)

I recently came across a project where we had to evaluate different techniques suited for encryption of PII data at rest. Database is MySQL community 5.6, Red Hat enterprise OS. We had to encrypt (mask) PII information of customers. As of now data is hosted in local cloud. But we may have future plans to move to a third party cloud like Amazon.

We are talking about two threats, internal and external. Internal – we have support team accessing the database the data for fixes and reporting (slave) Also DBA or Linux root user who have special privileges. So PII needs to be masked from them. External – Mainly hackers, Amazon cloud admins if we move to their cloud environment. Finally we decided to have application layer to do the encryption/decryption. Here are the major factors that lead to the decision

Encryption Type
#
File system Encryption
Database level (TDE)
Application level
Column level privilege(with views)
1
Who is responsible
OS
MySQL EE
Application
DBA
2
who can access data
MySQL user(s)
MySQL users
application
Application, root, DBA
3
protects data from
stolen disk, hackers
file system hackers
everything
non Admin MySQL users
4
does not protect from
DBA, OPS
DBA, root user, OPS
DBA, root, access during changes
5
what can be encrypted
all required file systems
database file system
required fields
required fields
6
performance penalty
high
low
very low
nothing
7
protection strength
weak
strong
very strong
medium
8
application change required
No
No
Yes
No
9
Is backup encrypted
depends on the method (e.g. sqldump is not)
depends on the method
yes
No
10
protects from internal threat
no
no
yes
yes
11
protects from external threat
yes
yes
yes
depends
12
duration to encrypt existing data
long time
long time
depends which all fields
no time
OPS : support + dev team having mysql connectivity to the database
column level privilege – create views excluding PII data for support folks, this can be a different schema as well with only views present in there

This may not be very explanatory so let me know if you have any questions, I’ll try my best to answer them..

Praji

PlanetMySQL Voting: Vote UP / Vote DOWN
via Planet MySQL
Comparison of database encryption methods (for data at rest)