
| TDE Transparent Data Encryption (deutsch: Transparente Datenverschlüsselung). |
| Package Stellt eine Sammlung logisch zusammengehöriger Funktionalitäten (Prozeduren, Funktionen, Typdeklarationen,... ) dar. |
| Export Utility (EXP) Werkzeug zum Extrahieren von Strukturen und Daten aus einer Oracle Datenbank. |
| Data Pump Werkzeug zum Extrahieren und Importieren von Strukturen und Daten einer Oracle Datenbank ab der Version Oracle Database 10g (siehe ORDIX News 2/2004). |
| Wallet Aufbewahrungsort der Zertifikate. |
| OWM Oracle Wallet Manager, Tool zur Erzeugung und Bearbeitung von Wallets. |
Weiterführende Links
Mit Hilfe der Datenverschlüsselung wird ein zusätzlicher Schutz vor unberechtigten Zugriffen von Dritten auf sensible Daten und deren Manipulation und Missbrauch erreicht, da die Daten mit einem Verschlüsselungsalgorithmus und einem Schlüssel codiert werden. Seit der Version 8i stellt Oracle das Package DBMS_OBFUSCATION_TOOLKIT zur Verfügung. In der Version 10g Release 1 kam das Package DBMS_CRYPTO hinzu.
In dem nun beschriebenen Release 2 von Oracle 10g gibt es die so genannte "Transparente Datenverschlüsselung" (Transparent Data Encryption, kurz TDE) als zusätzliche Möglichkeit, die Daten innerhalb der Datenbank (also auch auf der Platte) und auch im Netzwerk zu verschlüsseln (siehe Abbildung 1).
Mit TDE ist es möglich, Tabellenspalten ohne zusätzlichen Programmieraufwand zu verschlüsseln. Selbst beim Einsatz von Views entsteht kein administrativer Mehraufwand.
![]() |
| Abb. 1: Die transparente Datenverschlüsselung in ihrer schematischen Übersicht. |
Ist TDE für eine oder mehrere Spalten einer Tabelle eingericht, findet bereits beim INSERT in eine Tabelle automatisch eine Verschlüsselung der Daten statt. Bei der Abfrage der Daten aus einer Tabelle werden die Daten automatisch entschlüsselt. TDE unterstützt 3DES (Data Encryption Standard) und AES (Advanced Encryption Standard) Verschlüsselungsalgorithmen.
Die Verschlüsselung kann sehr einfach eingerichtet werden. Soll eine Tabellenspalte mit TDE verschlüsselt werden, so kann diese Information bereits beim Anlegen einer Tabelle mit dem Schlüsselwort ENCRYPT angegeben werden. In Abbildung 2 wird eine Tabelle mitarbeiter mit einer verschlüsselten Spalte gehaltsgruppe unter Nutzung des Verschlüsselungsalgorithmus "AES128" angelegt.
Um eine Tabellenspalte im Nachhinein als verschlüsselt zu kennzeichnen, kann das Kommando ALTER TABLE verwendet werden. Die einzelnen, verschlüsselten Tabellenspalten lassen sich über die Datenbanksicht DBA_ENCRYPTED_COLUMNS ermitteln. Die Verwendung beider Kommandos wird in Abbildung 2 gezeigt.
Mit dem Schlüsselwort DECRYPT kann eine Verschlüsselung auf einer Tabellenspalte wieder deaktiviert werden.
Wird eine Spalte mit dem Kommando ENCRYPT als verschlüsselt gekennzeichnet, so wird implizit ein Schlüssel für die Tabelle zum Verschlüsseln erzeugt und im Data Dictionary abgelegt. Aus Sicherheitsgründen wird dieser Schlüssel mit einem Master-Schlüssel verschlüsselt.
Der Master-Schlüssel wird wiederum in einem Wallet abgelegt, das sich standardmäßig auf dem Datenbankserver unter dem in Abbildung 2 genannten Verzeichnis befindet. Die Ablage der Wallets kann in der sqlnet.ora nach Bedarf geändert werden. Das Wallet dient zur Ablage von Master-Schlüsseln. Es zeichnet sich dadurch aus, dass es durch ein Passwort geschützt ist und über den Oracle Wallet Manager (OWM) verwaltet werden kann.
Ein Wallet kann mit dem Kommando ALTER SYSTEM erzeugt werden. In Abbildung 2 wird ein Wallet angelegt und sein Kennwort auf "geheim" gesetzt. Gleichzeitig wird es für die transparente Datenverschlüsselung geöffnet.
Beim Einfügen von Datensätzen in eine Tabelle mit einer verschlüsselten Spalte wird zuerst der Master-Schlüssel aus dem Wallet ermittelt. Danach wird mit Hilfe des Master-Schlüssels der Tabellenschlüssel aus dem Data Dictionary entschlüsselt. Anschließend werden mit dem entschlüsselten Tabellenschlüssel die in die Tabelle eingefügten Daten verschlüsselt und in der Datenbank abgelegt.
Außerdem besteht die Möglichkeit, bereits verschlüsselte Tabellenspalten mit einem neuen Kodieralgorithmus neu zu verschlüsseln. Mit der REKEY Anweisung in Abbildung 2 wird für die Tabelle mitarbeiter ein neuer Tabellenschlüssel erzeugt. Gleichzeitig werden die bereits verschlüsselten Spalten mit dem Kodieralgorithmus "AES256" neu verschlüsselt.
|
Beim Extrahieren von Daten in eine Datei mit dem Werkzeug Data Pump (ab Oracle Version 10) werden die Daten standardmäßig im Klartext (also unverschlüsselt) abgelegt. Lediglich eine Warnung weist darauf hin, dass eventuell verschlüsselte Daten aus einer Tabelle unverschlüsselt in eine Datei gespeichert werden.
Um die mit Data Pump erzeugten Dateien zu schützen, kann mit der Option ENCRYPTION_ PASSWORD ein Kennwort für die erzeugten Dateien festgelegt werden.
Sollen die mit Data Pump extrahierten Dateien wieder in eine Datenbank importiert werden, so wird das beim Exportieren festgelegte Kennwort benötigt.
Anmerkung: Das Export Utility (EXP) unterstützt keine mit TDE verschlüsselten Tabellen und kann solche somit auch nicht exportieren.
Das Ver- und Entschlüsseln beim Zugriff auf Daten stellt einen im Einzelfall minimalen Aufwand dar, der sich bei der Verarbeitung von Massendaten jedoch akkumulieren kann. Insbesondere beim Zugriff auf verschlüsselte, indizierte Attribute sollte man dies bedenken.
Die Performance beim TDE ist im Vergleich zu den anderen Verfahren im Hinblick auf verschlüsselte, indizierte Attribute besser, da auch die Indizes verschlüsselt abgelegt werden.
Die Verschlüsselung sollte demzufolge nur dann eingesetzt werden, wenn sensible Daten gespeichert werden sollen und eine hohe Sicherheit der Daten erforderlich ist.
Klaus Günther (info@ordix.de).