SQL SATURDAY #444 – Kansas City, MO. A LOOK AT ALWAYS ENCRYPTED SQL SATURDAY #444 – KANSAS CITY, MO DAVE WALDEN PRINCIPAL SOLUTIONS ARCHITECT DB BEST.

Slides:



Advertisements
Similar presentations
Yukon – What is New Rajesh Gala. Yukon – What is new.NET Framework Programming Data Types Exception Handling Batches Databases Database Engine Administration.
Advertisements

1. 2 Introduction This presentation describes introduction of data encryption into Oracle databases and how “Transparent Data Encryption” in Oracle 11g.
Administering Microsoft SQL Server 2012 Databases.
CryptDB: A Practical Encrypted Relational DBMS Raluca Ada Popa, Nickolai Zeldovich, and Hari Balakrishnan MIT CSAIL New England Database Summit 2011.
Overview and Roadmap for Microsoft SQL Server Security
Gavin Payne Transparent Data Encryption The Hows, Whys and Whens.
Securing Data Storage Protecting Data at Rest Advanced Systems Group Dell Computer Asia Ltd.
Jeremy Boyd Director – Mindscape MSDN Regional Director
1 Database Security & Encryption
Building Ad-Hoc Reports using the SQL Server 2005 Reporting Services (SSRS) Report Builder (SQL307) Adrian Rupp Business Intelligence Solutions Specialist.
Fraser Technical Solutions, LLC
Introduction to SQL 2005 Security Nick Ward SQL Server Specialist Nick Ward SQL Server Specialist
CSCI 6962: Server-side Design and Programming Course Introduction and Overview.
Jim McLeod MyDBA  SQL Server Performance Tuning Consultant with MyDBA  Microsoft Certified Trainer with SQLskills Australia 
Functions Lesson 10. Skills Matrix Function A function is a piece of code or routine that accepts parameters and stored as an object in SQL Server. The.
Copyright ®xSpring Pte Ltd, All rights reserved Versions DateVersionDescriptionAuthor May First version. Modified from Enterprise edition.NBL.
Cao Tiến Đức. Outline What is TDE How TDE works Basic TDE operations Tablespace encryption HSM Reference.
1 Oracle Database 11g – Flashback Data Archive. 2 Data History and Retention Data retention and change control requirements are growing Regulatory oversight.
ADO.NET A2 Teacher Up skilling LECTURE 3. What’s to come today? ADO.NET What is ADO.NET? ADO.NET Objects SqlConnection SqlCommand SqlDataReader DataSet.
Database Management 9. course. Execution of queries.
SEC835 Practical aspects of security implementation Part 1.
Additional Security Tools Lesson 15. Skills Matrix.
Putting it all together Dynamic Data Base Access Norman White Stern School of Business.
A Brief Documentation.  Provides basic information about connection, server, and client.
Mirek Sztajno SQL Server Security PM
Database Security Cmpe 226 Fall 2015 By Akanksha Jain Jerry Mengyuan Zheng.
Martin Cairney Hybrid data platform – making the most of Azure plus your on- prem kit DAT341 B.
Kristina Rumpff Securing Data on your Terms DAT33 1.
Implementing Secure IRC App with Elgamal By Hyungki Choi ID : Date :
SQLintersection Session: Tuesday, 12:00-1:00pm NEW SECURITY FEATURES IN SQL SERVER 2016 & AZURE SQL DB Aaron Bertrand
C Copyright © 2007, Oracle. All rights reserved. Security New Features.
#SQLSAT454 SQL Server 2016 New Security Features Gianluca
Securing Data on your Terms Kristina Rumpff SQL Saturday #464, Melbourne 20 th February 2016.
ADO .NET from. ADO .NET from “ADO .Net” Evolution/History of ADO.NET MICROSOFT .NET “ADO .Net” Evolution/History of ADO.NET History: Most applications.
Kerberos Miha Pihler MVP – Enterprise Security Microsoft Certified Master | Exchange 2010.
Secure SQL Database with TDE Thomas Chan SQL Saturday Raleigh.
End to End Always Encrypted in SQL Server 2016 Steve Jones SQLServerCentral Redgate Software.
SQL 2016 – WHAT’S NEW? David Cobb Daveslog.com.
SQL Server 2016 Security Features Marek Chmel Microsoft MVP: Data Platform Microsoft MCT: Regional Lead MCSE: Data Platform Certified Ethical Hacker.
Putting Your Head in the Cloud Working with SQL Azure David Postlethwaite 18/06/2016David Postlethwaite.
Session Name Pelin ATICI SQL Premier Field Engineer.
ORACLE's Approach ORALCE uses a proprietary mechanism for security. They user OLS.... ORACLE Labeling Security. They do data confidentiality They do adjudication.
Comprehensive Flexible Global Storage and Search Responsive Available Secure Manageable Federation Coordination Consolidation Transformation Synchronization.
Clouding with Microsoft Azure
Azure SQL Database Updates
Securing Your Data With SQL 2016 (An overview of Always Encrypted)
SQL Server 2016 Security and Privacy Features
Hiding Data from Prying eyes: Using SQL Server 2016 Always Encrypted
Data Platform and Analytics Foundational Training
Securing Data with SQL Server 2016
Hybrid Cloud Architecture for Software-as-a-Service Provider to Achieve Higher Privacy and Decrease Securiity Concerns about Cloud Computing P. Reinhold.
Always Encrypted overview
Uncover data protection in the world of Panama Papers
Always Encrypted, Data Masking, Row Level Security
SQL Server 2016 Security Features
Always Encrypted in the Real World
RMS with Microsoft SharePoint
Security enhancements in SQL Server 2016
Encrypting Data within SQL Server
Transparent Data Encryption (TDE)
Encryption Not just for the NSA anymore
Beginners 101 Guide To Always Encrypted
Security Enhancements in SQL Server 2016
Network Security – Kerberos
End to End Security and Encryption in SQL Server
SharePoint Online Authentication Patterns
SQL Server 2016 Security Features
Stefano Tempesta Secure Machine Learning with SQL Server Always Encrypted with Secure Enclaves.
We Need To Talk Security
Presentation transcript:

SQL SATURDAY #444 – Kansas City, MO

A LOOK AT ALWAYS ENCRYPTED SQL SATURDAY #444 – KANSAS CITY, MO DAVE WALDEN PRINCIPAL SOLUTIONS ARCHITECT DB BEST TECHNOLOGIES, LLC

DISCLAIMER… PLEASE NOTE We’re talking about a pre-release technology and features today. All information is up to date as of CTP2.4, however Microsoft may change anything up to and after RTM

DATABASE ENCRYPTION… A BRIEF OVERVIEW SQL Server 2000 and before – No native tools for encryption Data at rest encryption could be done with 3 rd party tools, or by encrypting the entire drive (TrueCrypt,etc) Cell Level Encryption – Introduced with SQL Server 2005 Transparent Data Encryption (TDE) Introduced with SQL Server 2008 Certificate based transport encryption Always Encrypted – introduced with SQL Server 2016

SQL ENCRYPTION NOW AND THEN

WHAT IS ALWAYS ENCRYPTED? From MSDN: “Always Encrypted is a feature designed to protect sensitive data, such as credit card numbers or national identification numbers (e.g. U.S. social security numbers), stored in SQL Server databases. Always Encrypted allows clients to encrypt sensitive data inside client applications and never reveal the encryption keys to SQL Server. As a result, Always Encrypted provides a separation between those who own the data (and can view it) and those who manage the data (but should have no access).”

WHAT IS ALWAYS ENCRYPTED? From MSDN: “Always Encrypted makes encryption transparent to applications. An Always Encrypted-enabled driver installed on the client computer achieves this by automatically encrypting and decrypting sensitive data in the SQL Server client application. The driver encrypts the data in sensitive columns before passing the data to SQL Server, and automatically rewrites queries so that the semantics to the application are preserved. Similarly, the driver transparently decrypts data, stored in encrypted database columns, contained in query results.”

WHAT IS ALWAYS ENCRYPTED? Always Encrypted provides transparent, end-to-end encryption for you sensitive columns All encryption and decryption is handled transparently by the driver library on the client 2 different encryption types depending on your requirements (random and deterministic) Deterministic type can be used for WHERE equality comparisons, as well as DISTINCT, JOIN, and GROUP BY

WHAT IS ALWAYS ENCRYPTED? Data is never in plain text while being stored or accessed while on SQL Server (including while in memory) Only clients with the proper Column Master Key will have access to decrypt the data Can be combined with TDE for a full encryption solution Provides gap coverage for regulatory compliance wince data is encrypted in flight, and DBAs have no access Supported in SQL Server 2016 and Azure SQL Database (soon)

ENCRYPTION TYPES Always Encrypted supports two types of encryption: randomized encryption and deterministic encryption. Deterministic encryption uses a method which always generates the same encrypted value for any given plain text value. Using deterministic encryption allows grouping, filtering by equality, and joining tables based on encrypted values, but can also allow unauthorized users to guess information about encrypted values by examining patterns in the encrypted column. This weakness is increased when there is a small set of possible encrypted values, such as True/False. Deterministic encryption must use a column collation with a binary2 sort order for character columns. Randomized encryption uses a method that encrypts data in a less predictable manner. Randomized encryption is more secure, but prevents equality searches, grouping, indexing, and joining on encrypted columns. Choose randomized for data that will just be returned, and deterministic for data that will be searched

KEYS Always Encrypted uses keys of two types: Column Encryption Keys and Column Master Keys Column master keys are protecting keys used to encrypt column encryption keys. Column master keys must be stored in a trusted key store. Information about column master keys, including their location, is stored in the database in system catalog views. Column encryption keys are used to encrypt sensitive data stored in database columns. All values in a column can be encrypted using a single column encryption key. Encrypted values of column encryption keys are stored in the database in system catalog views. You should store column encryption keys in a secure/trusted location for backup. Each CEK can have 2 encrypted values from 2 CMKs to allow master key rotation Column Master Keys must be deployed on each client machine that needs access to the unencrypted data. SQL Server does not contain the keys needed to decrypt data

HOW IT WORKS A Column Master Key (CMK) is created from a certificate on a client machine Column Encryption Keys (CEK) are then created from the CMK Create a new column specifying encryption type and CEK ENCRYPTED WITH (ENCRYPTION_TYPE = DETERMINISTIC, ALGORITHM = 'AEAD_AES_256_CBC_HMAC_SHA_256', COLUMN_ENCRYPTION_KEY = CEK1 ) Add new “ Column Encryption Setting=Enabled; ” option to connection string Driver interrogates SQL Server to see if requested columns are encrypted, and uses CMK to decrypt data returned from SQL Server using standard.NET encryption libraries Data remains encrypted in flight until being decrypted by client

KEY PROVISIONING OVERVIEW Security Officer Column Encryption Key (CEK) Column Master Key (CMK) Encrypted CEK CMK 1. Generate CEKs and Master Key 2. Encrypt CEK 3. Store Master Key Securely 4. Upload Encrypted CEK to DB CMK Store: Certificate Store HSM Azure Key Vault … Database Encrypted CEK

HOW IT WORKS (FROM MSDN) SQL Server or SQL Database ADO.NET Name Wayne Jefferson Name 0x19ca706fbd9a Result Set Client NameSSNCountry 0x19ca706fbd9a0x7ff654ae6dUSA dbo.Customers ciphertext "SELECT Name FROM Customers WHERE SSN 0x7ff654ae6d ciphertext "SELECT Name FROM Customers WHERE SSN " " Encrypted sensitive data and corresponding keys are never seen in plaintext in SQL Server trust boundary

TYPES OF ENCRYPTION IN V1 RELEASE

WHY WOULD I USE IT? To provide additional security for sensitive data (PHI, PII, etc.) in flight from SQL Server directly to client Running database and/or application in the cloud Prevent high-privileged users from having access to sensitive data Regulatory Compliance and audits

LIMITATIONS NOT available for use on the following: IDENTITY, text/ntext/image, XML/hierarchyid/geography/geometry, alias types/user-defined data types SQL_VARIANT, rowversion (timestamp), Computed columns, Sparse columns and in-memory tables (hekaton) Cannot ALTER a column and make it encrypted; must add new column and add/import data No LIKE or other non-equality operations allowed Queries must be passed with properly typed parameters (sqlcommand, sqlparameter). Ad-Hoc queries against data will raise an exception

LIMITATIONS Currently only supported using ADO.NET as part of framework 4.6 ODBC and JDBC may be supported in the future CDC does not work on encrypted columns, but change tracking does. Only tracks changes of encrypted values Replication is not officially supported – however Availability Groups and Mirroring/Log shipping is Temporal tables cannot include encrypted columns Triggers may fail if they reference encrypted columns

OTHER THINGS TO CONSIDER Performance - Still pre-release but initial findings show that performance is significantly slower compared to non-encrypted inserts and updates. More on this later Troubleshooting data issues become more complicated Additional management overhead of having to install certificates on all clients

PERFORMANCE (COMPLIMENTS OF SQLPERFORMANCE.COM)

PERFORMANCE

MORE INFORMATION MSDN - Aaron Bertrand - encrypted-limitations/, always-encryptedhttp://blogs.sqlsentry.com/aaronbertrand/t-sql-tuesday-69-always- encrypted-limitations/ always-encrypted Getting started with Always Encryption things you need to know about Always Encryption - server-2016-always-on-encryption server-2016-always-on-encryption Channel Encryptedhttps://channel9.msdn.com/Shows/Data-Exposed/SQL-Server-2016-Always- Encrypted

QUESTIONS?

THANK YOU!