blog.Mainzer Datenfabrik

Verschlüsselung einer Datenspalte und Transparente Datenverschlüsselung

cover image of blog article 'Verschlüsselung einer Datenspalte und Transparente Datenverschlüsselung'

Im folgenden Artikel möchten wir (ergänzend zu dem hier beschriebenen Always Encrypted-Verfahren) zwei weitere Verschlüsselungsmethoden des SQL Server genauer betrachten: zum einen die Verschlüsselung einer einzelnen Datenspalte, zum anderen die Anwendung der transparenten Datenverschlüsselung.

Verschlüsselung einer einzelnen Datenspalte

Die Verschlüsselung von Datenspalten (engl. Column-level encryption) ermöglicht dem Benutzer die Verschlüsselung einzelner Spalten einer Tabelle, ohne dabei die gesamte Datenbank verschlüsseln zu müssen. Der Vorteil hierbei ist die erhöhte Flexibilität in der Selektion der Attribute, die verschlüsselt werden sollen. Das Resultat ist die Minimierung der Ressourcen die beim Einfügen oder Auslesen von Daten für das Ver- und Entschlüsseln benötigt werden.

Vorteile

  • Für jede verschlüsselte Spalte wird ein eigener Schlüssel verwendet. Dies minimiert die Wahrscheinlichkeit von unautorisierten Zugängen.
  • Flexibilität in der Verschlüsselung der Daten: eine Anwendung kann steuern, welche Daten wann, wo und von wem ausgelesen werden.
  • Transparente Verschlüsselung ist möglich.
  • Verschlüsselung von “aktiven” Daten, also nicht nur von Daten, die nicht in Verwendung sind.
  • Geringe zusätzliche Latenz.

Nachteile

  • Limitiert bzw. verringert die möglichen Abfrage-Optimierungen.
  • Erhöhter Verbrauch von System-Ressourcen
  • Erhöhtes Potential von Sicherheitslücken.
  • Erhöhte Speichernutzung.

Erstellen eines Datenbank Hauptschlüssels

Mit dem folgenden T-SQL Befehl kann ein neuer Datenbank-Hauptschlüssel erzeugt werde

USE [master]
GO;

CREATE MASTER KEY ENCRYPTION BY PASSWORD = 'SecurePassword123?';

Erstellen eines neuen Zertifikats

Mit dem folgenden T-SQL Befehl kann ein neues Zertifikat erzeugt werden:

CREATE CERTIFICATE MyCertificate
  WITH SUBJECT = 'MyCertificate Subject';

Seitennavigation

Zur Artikel Übersicht