Die wichtigsten Verschlüsselungs-Funktionen in Microsoft SQL Server 2014
SQL Server bietet Datenbank-Administratoren eine ganze Reihe von Optionen, um Daten zu verschlüsseln. Die wichtigsten Möglichkeiten stellen wir vor.
Die Sicherheitsfunktionen des Microsoft SQL Servers werden immer wichtiger. Aufgrund der zunehmenden Datenverluste und unbefugten Weitergabe vertraulicher Daten stoßen sie bei vielen Unternehmen auf wachsendes Interesse. Außerdem erfordern regulatorische Anforderungen oft eine robuste SQL Server Verschlüsselung – beispielsweise für Daten wie Kreditkarten- und Sozialversicherungsnummern. Die Features in SQL Server 2014 können dabei helfen.
Microsoft SQL Server bietet Datenbank-Administratoren verschiedene Optionen, um Daten bei der Übertragung über ein Netzwerk, beim Anlegen eines Backups oder beim Speichern auf dem Server oder im Netzwerk zu verschlüsseln. Diese Verschlüsselungsoptionen umfassen: transparente Datenverschlüsselung (Transparent Data Encryption), Verschlüsselung auf Spaltenebene (Column-Level Encryption), Verschlüsselung von SQL Server Objekt-Definitionen, Backup-Verschlüsselung,
Verschlüsselung von SQL Server-Verbindungen und Verschlüsselung auf Betriebssystemebene durch Windows EFS und BitLocker. Dieser Artikel stellt Ihnen alle Verschlüsselungsoptionen vor, die in SQL Server 2014 verfügbar sind, um vertrauliche Daten in Ihrer SQL Server-Datenbank zu verschlüsseln.
Transparente Datenverschlüsselung
Transparente Datenverschlüsselung (Transparent Data Encryption, kurz: TDE) wurde erstmals im Microsoft SQL Server 2008 eingeführt. TDE ist die primäre SQL Server-Verschlüsselungsoption, um vor potenziellen Angreifern unter Umgehung der Datenbanksicherheit und dem möglichen Lesen sensibler Daten zu schützen.
TDE erzwingt die Echtzeit Ver- und Entschlüsselung von inaktiven Daten in der Datenbankschicht. Dabei verschlüsselt TDE jede Seite Ihrer Datenbank und entschlüsselt während des Zugriffs automatisch wieder jede benötigte Seite. Die Vorteile: TDE verlangt weder zusätzlichen Speicherplatz noch eine Änderung des zugrunde liegenden Datenbankschemas, des Anwendungscodes oder Prozesses. Darüber hinaus ist TDE für den Benutzer oder die Anwendung völlig transparent, da es auf der SQL Server-Service-Schicht ausgeführt wird.
Die TDE-Verschlüsselung verwendet einen asymmetrischen Database Encryption Key (DEK), der mit dem in der Master-Datenbank liegenden Server-Zertifikat verschlüsselt ist. Der DEK-Schlüssel wird im Datenbank-Boot-Record gespeichert, weshalb er auch bei einer notwendigen Datenbank-Wiederherstellung verfügbar ist.
Das Server-Zertifikat wird mit einem Database Master Key (DMK) verschlüsselt, der seinerseits wiederum mit dem Server Master Key (SMK) verschlüsselt ist. Sowohl DMK als auch SMK sind asymmetrische Schlüssel. SMK wird automatisch erstellt, sobald Sie auf dem SQL Server das erste Mal etwas verschlüsseln. Der Key ist grundsätzlich an den SQL Server Service Account gebunden. SMK wird auch durch die Windows Data Protection API verschlüsselt.
TDE verschlüsselt außerdem Datenbank-Backups und Snapshots, so dass TDE die beste Wahl ist für die Einhaltung von Compliance und Corporate Datenschutz-Regularien.
Verschlüsselung auf Spaltenebene
Column-Level Encryption (auch bekannt als Cell-Level-Encryption) ermöglicht es, vertrauliche Daten auf Spaltenebene zu ver- und entschlüsseln. Sie können die Daten ver- oder entschlüsseln mit:
- Passphrase: Eine Passphrase ist die unsicherste Option. Sie erfordert, dass Sie dasselbe Passwort sowohl bei der Verschlüsselung als auch bei der Entschlüsselung der Daten verwenden. Wenn Stored Procedures und Funktionen nicht verschlüsselt werden, ist die Passphrase über Metadaten zugänglich.
- Asymmetrische Schlüssel: Asymmetrische Verschlüsselung bietet durch die Verwendung verschiedener Schlüssel zum Verschlüsseln und Entschlüsseln der Daten einen starken Schutz. Die Performance der asymmetrischen Verschlüsselung ist allerdings nicht die Beste. Sie sollte deshalb nicht verwendet werden, um sehr umfangreiche Daten zu verschlüsseln. Asymmetrische Verschlüsselung kann durch den Database Master Key (DMK) oder über ein Passwort signiert werden.
- Symmetrische Schlüssel: Ein symmetrischer Schlüssel bietet eine gute Leistung und ist stark genug für die meisten Anforderungen. Asymmetrische Verschlüsselung verwendet denselben Schlüssel zum Ver- und Entschlüsseln der Daten.
- Zertifikat: Ein Zertifikat bietet einen starken Schutz und gute Leistung und kann mit einem Benutzer verknüpft werden. Das Zertifikat muss vom Database Master Key signiert werden.
Der Nachteil der Column-Level Encryption: Um die Operationen für Ver- und Entschlüsselung zu unterstützen, erfordert die Verschlüsselung auf Spaltenebene Änderungen am Anwendungscode und beim Datenbankschema. Der Grund dafür ist, dass alle verschlüsselten Daten mit dem Datentyp „varbinary“ gespeichert werden müssen.
Dafür bietet Column-Level Encryption eine sehr granulare SQL Server-Verschlüsselung, und ermöglicht es sogar, eine einzelne Zelle innerhalb einer Tabelle zu verschlüsseln. Ein weiterer Pluspunkt: Die Daten werden so lange nicht entschlüsselt, bis sie verwendet werden. Das heißt, die Daten erscheinen nicht im Klartext, wenn die Seite in den Speicher geladen wird.
Verschlüsseln von Verbindungen zum SQL Server
Die SQL Server Encryption bietet zwei Möglichkeiten zur Verschlüsselung von Daten im Netzwerk: Internet Protocol Security (IPSec) und Secure Sockets Layer (SSL).
IPSec wird über das Betriebssystem implementiert und unterstützt die Authentifizierung mit Kerberos, Zertifikaten oder Pre-Shared Keys. IPsec verfügt über eine erweiterte Protokollfilterung, um den Verkehr durch das Protokoll und den Port zu blockieren. Sie können IPsec über lokale Sicherheitsrichtlinien oder über Gruppenrichtlinien konfigurieren. Um diese Option verwenden zu können, müssen sowohl das Client- als auch das Server-Betriebssystem IPSec unterstützen.
SSL wird über den SQL Server implementiert. Es wird meistens für sichere Web-Clients verwendet, kann aber auch für die Unterstützung nativer SQL Server-Clients eingesetzt werden. SSL prüft den Server, wenn der Client eine verschlüsselte Verbindung anfordert. Wenn die Instanz des SQL Servers auf einem Computer ausgeführt wird, der ein Zertifikat von einer öffentlichen Zertifizierungsstelle (Public Certificate Authority, PCA) hat, stellt die Identität des Computers und die Instanz des SQL Servers sicher, dass die Zertifikatskette zur Trust Root Authority führt.
Die serverseitige Validierung verlangt, dass der Computer, auf dem die Client-Anwendung läuft, so konfiguriert sein muss, dass der Root-Berechtigung des vom Server verwendeten Zertifikats vertraut werden kann. Die Verschlüsselung mit einem selbst signierten Zertifikat ist möglich, aber ein selbst signiertes Zertifikat bietet nicht viel Schutz.
Die beiden Hauptvorteile von SSL im Vergleich zu IPSec sind: SSL verlangt nur eine minimale Client-Konfiguration und eine einfache Konfiguration auf dem Server.
Andere Optionen für die SQL Server Verschlüsselung
Verschlüsseln von SQL Server-Objektdefinitionen: Sie können Stored Procedures, Views, Funktionen und Trigger mit der WITH ENCRYPTION-Klausel erzeugen, um den Definitionstext dieser Objekte zu verschlüsseln. Ist der Text einmal verschlüsselt, können Sie den Text der Objekte nicht entschlüsseln.
Mehr zum Thema Microsoft SQL Server:
So vermeiden und beheben Sie SQL Server Performance-Engpässe
In fünf Schritten zum Backup einer SQL Server Stored Procedure
SQL Server mit dem richtigen Transact SQL Code optimieren
Sieben Geheimnisse des SQL Server Management Studios für Microsoft SQL Server
fünf Business-Intelligence-Funktionen in SQL Server 2012
Verschlüsselung von Backups: Voraussetzung für die Verschlüsselung eines Backups sind der Database Master Key (DMK) für die Master-Datenbank und das Zertifikat oder der asymmetrische Schlüssel. Um das Backup zu verschlüsseln, müssen Sie einen Verschlüsselungsalgorithmus und eine Verschlüsselungseinheit spezifizieren.
File-Level-Verschlüsselung über Windows EFS: Mit der Auslieferung von Windows Server 2000 hat Microsoft das Encrypting File System (EFS) eingeführt, mit dem Sie Dateien auf Betriebssystemebene verschlüsseln können. Sie können diese EFS Funktion nutzen, um das gesamte SQL Server-Datenverzeichnis zu verschlüsseln.
Wie die native SQL Server Verschlüsselung setzt EFS auf der Windows DPAPI auf. Im Gegensatz zur transparenten Datenverschlüsselung, verschlüsselt es aber nicht automatisch Datenbanksicherungen. Vor SQL Server 2008 war EFS die einzige Möglichkeit, um Datenbankdateien, die auf NTFS-Festplatten gespeichert waren, zu verschlüsseln.
Dies liegt daran, dass SQL Server-I/O-Operationen synchron sind, wenn EFS aktiviert ist. Der Worker-Thread muss warten, bis die aktuelle I/O-Operation in der EFS-verschlüsselten Datenbankdatei abgeschlossen ist.
BitLocker Laufwerksverschlüsselung: Die BitLocker Drive Encryption ist eine Verschlüsselungsfunktion für die gesamte Festplatte. Sie ist für folgende Windows-Versionen verfügbar: Ultimate und Enterprise-Editionen von Windows Vista und Windows 7, Pro und Enterprise-Editionen von Windows 8, Windows Server 2008, Windows Server 2008 R2 und Windows Server 2012. Bitlocker verschlüsselt außerdem inaktive Daten mit einem AES-Verschlüsselungsalgorithmus, hat aber nicht die gleichen Performance-Probleme wie EFS.
Folgen Sie SearchEnterpriseSoftware.de auch auf Facebook, Twitter und Google+!