Database Security & Encryption c.stanier@staffs.ac.uk 1 A Truly Secure Database 2 So In The Real World Database security protects the database against unwanted effects, accidental or deliberate There is always a trade off between high security and performance/user convenience Excessive security can in itself be a security threat - workarounds The first step is always a security audit This lecture looks at the use of encryption as part of a security policy 3 Excessive Security Can In Itself Be A Security Threat Dilbert 4 Before Deciding on Encryption Know the data and the database What should be encrypted? Which encryption algorithms? DBMS or external encryption? What is the acceptable performance hit? Who are you protecting against? Is the benefit worth the cost? 5 The Role of Encryption Most database security techniques focus on controlling access – passwords, privileges, encrypting data as it travels There is much less focus on protecting data at rest (data in storage) We are assuming here that access encryption has already been used – this lecture focuses on data in storage Encryption is increasingly being used to protect data in storage Which includes backups And all the pen drives, portable hard drives, mobiles that get lost or stolen Encryption is often described as ‘the last line of defence’ 6 Whole Database Encryption The whole database is encrypted This protects the data at rest but requires decryption for use Whole DB encryption has traditionally been regarded as too expensive – SQL Server TDE, new with 2008, claims to reduce the performance hit but still acknowledges a cost (1) 7 8 (2) Partial Data Encryption Partial encryption provides more granularity plus the data is not decrypted until it is used Usually referring to column encryption although it can also be cell level or encryption of DB objects such as triggers Rule of thumb – encrypting a single column is likely to produce a 5% performance hit, but this varies wildly Traditional partial encryption can produce a massive performance hit as indexes are not recognised – but this depends on the DBMS Highly configurable – can allocate different keys to different users With the downside that this increases the key management problem 9 Partial Data Encryption For SQL Server 2008, Microsoft suggest that with cell level encryption, basic query performance tends to be around 20% worse. Problem increases with scaling “One sample application with 10,000 rows was four times worse with one column encrypted, and 20 times worse with nine columns encrypted. Because cell-level encryption is custom to each application, performance degradation will vary depending on application and workload specifics.” (1) “Custom to each application” - this is an “it depends” area 10 The Encryption Process Plaintext Encrypt Cyphertext Decrypt Plaintext 11 Encryption Algorithms: Data Encryption Standard DES has a short (56 bit) key plus 8 bits used for parity checking Very susceptible to brute force attacks “No sane security expert would consider using DES to protect data.” (2) Now outdated – older versions of DBMS encryption routines used DES e.g. early versions of Oracle 12 Encryption Algorithms: 3DES The limitations of DES led to 3DES – uses the DES algorithm but employs a triple key approach Plain Text Much more secure but slower Cipher Text 13 Encryption Algorithms: AES Key size 128,192 or 256 bits Consists of a set of processing rounds – the number varies depending on the key size e.g. 14 rounds for 256 length keys More secure 14 Encryption Algorithms:RC5 Symmetric (same key used for en/decryption) block cypher Fast and flexible – the user can specify the number of rounds Allows for a variable length key Supported in Oracle & DB2 15 Encryption in the DBMS Some of the initial problems with DBMS encryption are on the way to being solved Disk size was a major problem as ciphers may produce output in fixed block sizes, meaning that the input must be padded – requiring resizing of columns DBMS encryption was typically criticised for using outdated algorithms such as DES & even 3DES Sometimes compatibility issues A plus with DBMS encryption is that there should be minimal change implications 16 Key Management The encryption is only as secure as the key DBMS based encryptions (typically) store the key inside the database Which raises issues such as How many keys Who manages them Where are they stored What happens if you lose your key? 17 Encryption Servers As an alternative to encrypting within the DB, a central encryption server can be used to encrypt data in applications as well as in the database This is a heavily vendor led area; benefits claimed include The downside is: More secure key management Wider choice of algorithms Wider coverage of data Easier management of encryption Removing computation overhead from DBMS/application servers Added complexity Applications changes Cost And – is the extra layer necessary? 18 Further Work You should understand the significance of the different encryption algorithms but the main areas to focus on are: The The benefits of encryption in a DB context downside to encryption in a DB context The business environment in which encryption would be useful What and how you should encrypt if you decide encryption would be useful How encryption would fit into your overall DB security policy 19 And a personal opinion My view: If someone truly wants to get into your database, they will probably manage it The biggest risk to data is accidental or casual intrusion People will lose pen drives – but an encrypted pen drive should not be too much of a problem Should we focus less on the main database and more on data storage? 20 References 1. 2. 3. http://msdn.microsoft.com/enus/library/cc278098.aspx http://msdn.microsoft.com/enus/library/bb934049.aspx http://www.tropsoft.com/strongenc/des3.htm 21