Sichern Sie Ihre Daten mit Actian Vector, Teil 1
Martin Fuerderer
3. Dezember 2024

Die Notwendigkeit, Daten vor unberechtigtem Zugriff zu schützen, ist nicht neu. Für den Umgang mit personenbezogenen Daten (PII) ist sie schon seit langem gesetzlich vorgeschrieben. Aber die zunehmende Nutzung von Datendiensten in der Cloud für alle Arten von geschützten Daten, bei denen es sich nicht um personenbezogene Daten handelt, macht die Datensicherheit jetzt zu einem wichtigen Bestandteil der meisten Datenstrategien.
Dies ist der Beginn einer Reihe von Blog-Beiträgen, die einen detaillierten Blick darauf werfen, wie Datensicherheit mit Actian Vector gewährleistet werden kann. Der erste Beitrag erklärt das grundlegende Konzept der Verschlüsselung im Ruhezustand und wie die Datenbankverschlüsselungsfunktion von Actian Vector diese implementiert.
Verständnis der Verschlüsselung im Ruhezustand
Verschlüsselung im Ruhezustand bezieht sich auf die Verschlüsselung von Data-at-Restd.h. Daten, die persistiert sind, in der Regel auf der Festplatte oder im Cloud . Diese Verschlüsselung kann in einem Datenbanksystem eingesetzt werden, das hauptsächlich Nutzer in Tabellen und Indizes enthält, aber auch die Metadaten , die die Organisation der Nutzer beschreiben. Der Hauptzweck von encryption at rest ist es, die persistierten Daten vor unbefugtem direkten Zugriff auf der Festplatte oder im Cloud , also ohne Verbindung zum Datenbanksystem, zu schützen.
Die Verschlüsselung kann für die Datenbankanwendungen transparent sein. In diesem Fall wird die Ver- und Entschlüsselung vom Administrator verwaltet, in der Regel auf der Ebene der Datenbanken. Die Anwendung braucht dann von der Verschlüsselung nichts zu wissen. Sie verbindet sich mit der Datenbank, um auf die Daten zuzugreifen und mit ihnen zu arbeiten, als gäbe es gar keine Verschlüsselung. In Actian Vector wird diese Art der Verschlüsselung im Ruhezustand als Datenbankverschlüsselung bezeichnet.
Bei der Verschlüsselung auf der Anwendungsebene hingegen muss die Anwendung die Ver- und Entschlüsselung übernehmen. Dies bedeutet häufig, dass der Nutzer der Anwendung einen Schlüssel sowohl für die Verschlüsselung (z. B. beim Einfügen von Daten) als auch für die Entschlüsselung (z. B. bei der Auswahl von Daten) bereitstellen muss. Dies ist zwar komplizierter, gibt aber der Anwendung und dem Nutzer mehr Kontrolle.
So kann die Verschlüsselung beispielsweise auf bestimmte Tabellen, Tabellenspalten oder sogar auf einzelne Aufzeichnung in Tabellenspalten angewandt werden. Es kann möglich sein, individuelle Verschlüsselungsschlüssel für verschiedene Datenwerte zu verwenden. So können Nutzer ihre privaten Daten mit ihrem eigenen Schlüssel verschlüsseln und sicher sein, dass ohne diesen Schlüssel kein anderer Nutzer die Daten im Klartext sehen kann. In Actian Vector wird die Verschlüsselung auf der Anwendungsebene als funktionsbasierte Verschlüsselung bezeichnet.
Verwendung der Datenbankverschlüsselung in Actian Vector
In Actian Vector funktioniert die für die Anwendung transparente Verschlüsselung im Rahmen einer Datenbank und wird daher als Datenbankverschlüsselung bezeichnet. Ob eine Datenbank verschlüsselt ist oder nicht, wird bei der Erstellung der Datenbank festgelegt und kann später nicht mehr geändert werden. Wenn eine Datenbank mit Datenbankverschlüsselung erstellt wird, werden alle persistierten Daten in Tabellen und Indizes sowie die Metadaten der Datenbank verschlüsselt.
Die Verschlüsselungsmethode ist 256-Bit-AES, die einen symmetrischen 32-Byte-Schlüssel erfordert. Symmetrisch bedeutet, dass zum Ver- und Entschlüsseln der Daten derselbe Schlüssel verwendet wird. Dieser Schlüssel wird für jede verschlüsselte Datenbank individuell generiert und wird als Datenbank-(Verschlüsselungs-)Schlüssel bezeichnet.
Um den Datenbankschlüssel verfügbar zu haben, wird er in einer internen Systemdatei des Datenbankservers gespeichert, wo er durch eine Passphrase geschützt ist. Diese Passphrase wird vom Nutzer bei der Erstellung der Datenbank angegeben. Der Datenbankschlüssel wird jedoch nicht zur direkten Verschlüsselung der Nutzer verwendet. Stattdessen wird er zur Verschlüsselung, d. h. zum Schutz, eines weiteren Satzes von Verschlüsselungsschlüsseln verwendet, die wiederum zur Verschlüsselung der Nutzer in den Tabellen und Indizes verwendet werden. Dieser Satz von Chiffrierschlüsseln wird als Tabellenschlüssel (Chiffrierschlüssel) bezeichnet.
Sobald die Datenbank erstellt ist, kann der Administrator die gewählte Passphrase verwenden, um die Datenbank zu "sperren". Wenn die Datenbank gesperrt ist, kann auf die verschlüsselten Daten nicht zugegriffen werden. Ebenso kann der Administrator mit der Passphrase eine gesperrte Datenbank "entsperren" und so den Zugriff auf die verschlüsselten Daten wieder freigeben. Wenn die Datenbank entsperrt ist, kann der Administrator die Passphrase ändern. Falls gewünscht, ist es auch möglich, den Datenbankschlüssel beim Ändern der Passphrase zu drehen.
Die Rotation des Datenbankschlüssels ist optional, da dies bedeutet, dass der gesamte Container der Tabellenschlüssel mit dem alten Datenbankschlüssel entschlüsselt werden muss, um ihn dann mit dem neuen Datenbankschlüssel neu zu verschlüsseln. Da dieser Container der Tabellenschlüssel auch andere Metadaten enthält, kann er recht groß sein und somit die Rotation des Datenbankschlüssels zu einer langsamen und rechenaufwendigen Operation werden. Die Rotation des Datenbankschlüssels wird daher nur empfohlen, wenn ein begründeter Verdacht besteht, dass der Datenbankschlüssel kompromittiert wurde. In den meisten Fällen dürfte es ausreichen, nur die Passphrase zu ändern. Und es ist schnell erledigt.
Mit Actian Vector ist es auch möglich, die Verschlüsselungsschlüssel der Tabellen zu rotieren. Dies geschieht unabhängig von der Änderung der Passphrase und des Datenbankschlüssels und kann sowohl für eine komplette Datenbank als auch für einzelne Tabellen durchgeführt werden. Für jeden Schlüssel, der rotiert wird, müssen die Daten mit dem alten Schlüssel entschlüsselt und mit dem neuen Schlüssel neu verschlüsselt werden. In diesem Fall handelt es sich um die Nutzer in Tabellen und Indizes. Wenn diese Daten sehr groß sind, kann die Schlüsselrotation sehr kostspielig und zeitaufwendig sein. Dies gilt insbesondere dann, wenn alle Tabellenschlüssel einer Datenbank rotiert werden.
Ein typischer Workflow der Datenbankverschlüsselung in Actian Vector:
- Erstellen Sie eine Datenbank mit Verschlüsselung:
-
-
createdb -encrypt <database_name>
-
-
Dieser Befehl fordert den Nutzer zweimal zur Eingabe der Passphrase auf und erstellt dann die Datenbank mit Verschlüsselung. Die neue Datenbank bleibt solange freigeschaltet, d.h. sie ist leicht zugänglich, bis sie explizit gesperrt wird oder das Datenbanksystem heruntergefahren wird.
Es ist wichtig, dass sich der Ersteller der Datenbank die angegebene Passphrase merkt, denn sie wird benötigt, um die Datenbank zu entsperren und zugänglich zu machen, z. B. nach einem Neustart des Datenbanksystems.
- Sperren Sie die verschlüsselte Datenbank:
-
- Stellen Sie mit dem Terminal Monitor eine Verbindung zur entsperrten Datenbank her:
sql <database_name>
- SQL, um die Datenbank zu sperren:
DISABLE PASSPHRASE '<user supplied passphrase>'; \g
- Stellen Sie mit dem Terminal Monitor eine Verbindung zur entsperrten Datenbank her:
-
Die SQL-Anweisung sperrt die Datenbank. Neue Verbindungsversuche zur Datenbank werden mit einer entsprechenden Fehlermeldung abgewiesen. Sitzungen, die zuvor eine Verbindung hergestellt haben, können weiterhin auf die Daten zugreifen, bis sie die Verbindung trennen.
Um die Datenbanksperre auch für bereits verbundene Sitzungen sofort wirksam werden zu lassen, geben Sie zusätzlich die folgende SQL-Anweisung ein:
-
-
-
CALL X100(TERMINATE); \g
-
-
- Entsperren Sie die verschlüsselte Datenbank:
-
- Verbinden Sie sich mit der gesperrten Datenbank mit dem Terminal Monitor und der Option "-no_x100":
sql -no_x100 <database_name>
- SQL, um die Datenbank zu entsperren:
ENABLE PASSPHRASE '<user supplied passphrase>'; \g
- Verbinden Sie sich mit der gesperrten Datenbank mit dem Terminal Monitor und der Option "-no_x100":
-
Die Verbindung mit der Option "-no_x100" stellt eine Verbindung ohne Zugriff auf die Warehouse-Daten her, ermöglicht aber die Freigabe der Datenbank durch die administrative SQL-Anweisung.
- Ändern Sie die Passphrase für die verschlüsselte Datenbank:
-
- Stellen Sie mit dem Terminal Monitor eine Verbindung zur entsperrten Datenbank her:
sql <database_name>
- SQL, um die Passphrase zu ändern:
ALTER PASSPHRASE '<old user supplied passphrase>' TO '<new passphrase>'; \g
- Stellen Sie mit dem Terminal Monitor eine Verbindung zur entsperrten Datenbank her:
-
Auch hier ist es wichtig, dass sich der Administrator die neue Passphrase merkt.
Nach der Änderung der Passphrase für eine verschlüsselte Datenbank wird empfohlen, eine neue backup (auch bekannt als "Datenbank-Checkpoint") durchzuführen, um die vollständige Wiederherstellbarkeit der Datenbank zu gewährleisten.
- Wenn die Datenbank nicht mehr benötigt wird, vernichten Sie sie:
-
-
destroydb <database_name>
-
-
Beachten Sie, dass die Passphrase der verschlüsselten Datenbank nicht benötigt wird, um sie zu zerstören. Der Befehl kann nur von Benutzern mit den entsprechenden Rechten ausgeführt werden, d.h. dem Datenbankbesitzer und den Administratoren.
In diesem ersten Blog-Beitrag der Serie zur Datenbanksicherheit wurde das Konzept der Verschlüsselung im Ruhezustand erläutert und wie die transparente Verschlüsselung - in Actian Vector Database Encryption genannt - verwendet wird.
Der nächste Blog-Beitrag in dieser Serie wird sich mit der funktionsbasierten Verschlüsselung in Actian Vector beschäftigen.
Abonnieren Sie den Actian Blog
Abonnieren Sie den Blog von Actian, um direkt Dateneinblicke zu erhalten.
- Bleiben Sie auf dem Laufenden - Holen Sie sich die neuesten Informationen zu Data Analytics direkt in Ihren Posteingang.
- Verpassen Sie keinen Beitrag: Sie erhalten automatische E-Mail-Updates, die Sie informieren, wenn neue Beiträge veröffentlicht werden.
- Ganz wie sie wollen: Ändern Sie Ihre Lieferpräferenzen nach Ihren Bedürfnissen.