Logo Oracle Deutschland   DBA Community  -  August 2014
Oracle Key Vault - Hardware Security Modul für TDE und mehr
von Heinz-Wilhelm Fabry ORACLE Deutschland B.V. & Co.KG

Anfang August hat Oracle ein neues Produkt namens Oracle Key Vault (OKV) zum Einsatz freigegeben. Es handelt sich dabei um ein Hardware Security Modul (HSM) - also um ein Stück Hardware zum Speichern von Schlüsseln, Passwörtern und Dateien, die Schlüssel und Passwörter enthalten.

Oracle Datenbank Installationen nutzen die zuletzt genannte Form des Speicherns von Passwörtern und Schlüsseln in Dateien für Oracle Advanced Security Transparent Data Encryption (TDE) und external password stores. Die Dateien werden in den Versionen 10 und 11 der Datenbank als Wallets bezeichnet, in der Version 12 als Keystores. Allerdings gibt es auch schon seit der Datenbankversion 11.2 beim Einsatz von TDE die Möglichkeit, statt der Wallets / Keystores HSMs einzusetzen. Da Oracle selbst kein eigenes HSM Produkt anbieten konnte, haben Unternehmenskunden dann auf Produkte anderer Anbieter zurückgegriffen. Das kann sich mit OKV nun ändern.

Abhängig vom Bedrohungsszenario kann die Entscheidung gegen den Einsatz von Wallets / Keystores und für den Einsatz eines HSMs durchaus sinnvoll sein, denn

  • ein HSM bietet mehr Sicherheit: Eine Betriebssystemdatei kann leichter gestohlen (kopiert) werden, als ein HSM, das in der Regel als speziell gesicherte Steckkarte in einem Rechner eingebaut ist oder als eigenes Gerät geschützt in einem Rechenzentrum steht.
  • ein HSM kann anders als ein Wallet / Keystore systemübergreifend verwendet werden. Das erlaubt eine gemeinsame Nutzung von Schlüsseln - was wiederum zum Beispiel den Einsatz von TDE auf RAC Installationen perfekt unterstützt.
  • ein HSM kann von mehreren Anwendungen genutzt werden. Das erleichtert das Konsolidieren und Verwalten von Passwörtern und Schlüsseln.
Hier wird als Einführung in das neue Produkt dargestellt, wie OKV für TDE genutzt werden kann.

Installation des OKV
Die Installation von OKV ist denkbar einfach, denn das Produkt wird in Form eines ISO Images als Software Appliance geliefert. Das Konzept Software Appliance ist bereits von Oracle Audit Vault and Database Firewall bekannt: Die Kundin / der Kunde stellt einen X86-64bit Rechner zur ausschliesslichen Nutzung für OKV zur Verfügung. Auf dem Rechner wird die OKV Software durch das Starten des ISO Images installiert. Der gesamte installierte Softwarestack besteht aus dem Betriebssystem Oracle Enterprise Linux (OEL), einer Oracle Datenbank und einer graphischen Benutzeroberfläche, der Oracle Key Vault Management Console. Nach der Installation dürfen diese Komponenten in keiner Weise verändert, sondern nur in festgelegtem Ausmass konfiguriert werden.

Der Installationsprozess erwartet nur zwei Eingaben: Angaben zur IP Adresse (IP Adresse, Mask und sofern nötig Gateway) für den OKV und ein Einmalpasswort, das OKV als Passphrase bezeichnet. Es ermöglicht das erstmaligen Einloggen in die OKV Management Console.

Konfiguration des OKV
Nach Abschluss der eigentlichen Installation müssen noch einige Benutzer und ihre Passwörter eingerichtet werden. Ausserdem muss ein Passwort für Notfälle festgelegt werden. Ein Notfall ist in diesem Zusammenhang zum Beispiel ein eventuell erforderliches Recovery des OKV zu verstehen.

Das Einrichten der Benutzer und des Notfallpasswortes erfolgt in der Console. Sie ist über einen Browser unter der bei der Installation angegebenen URL erreichbar. In dieser ersten Version des OKV macht man sich das Leben leichter, wenn man den Browser und die Tastaturbelegung auf die englische Sprache einstellt.
Nach dem ersten Einloggen in der OKV Management Console
  1. Ein Key Administrator, der zum Beispiel den Zugriff auf Wallets und Schlüssel kontrolliert. Er kann auch weitere Key Administratoren einrichten.
  2. Ein Administrator, der für die Verwaltung des OKV zuständig ist. Er ist zum Beispiel zuständig für das Starten und Stoppen des OKV, für Backups und Recovery, Einrichten von Hochverfügbarkeit sowie von Endpoints und Benutzern. Er kann auch weitere Administratoren einrichten.
  3. Ein Audit Manager, der den Audit Trail des OKV verwaltet und weitere Audit Manager einrichten kann.
  4. Ein Root User, der sich bei Bedarf, zum Beispiel zum Ausführen festgelegter Skripte oder im Recoveryfall als Benutzer root auf dem OKV einloggen kann.
  5. Ein Support User, der sich mit SSH auf dem System anmelden kann.

Die Aufgaben, die die Benutzer 1 bis 3 wahrnehmen, können auch von einem Benutzer oder auch von zwei Benutzern wahrgenommen werden. Zum Abschluss wird das Passwort für Notfälle angegeben. Ausserdem wird man für Produktivumgebungen einstellen, wie die Zeitsteuerung des OKV erfolgen soll und welche Name Server zur Verfügung stehen.

OKV nutzen
Systeme, die Oracle Key Vault (OKV) nutzen, werden Endpoints genannt. Endpoints müssen in dieser ersten Version von OKV auf den Betriebssystemen Linux x86-64 (Versionen 5 und 6) sowie Solaris (Versionen 10 und 11) betrieben werden. Auf diesen Endpoints verwendete
  • Java Keystores (JKS)
  • Java Cryptography Extension Keystores (JCEKS)
  • SSH Key Files
  • Kerberos Keytabs und
  • Oracle Wallets
können als Backup im OKV zentral gespeichert werden. Aber es ist auch möglich, Masterkeys für Transparent Data Encryption (TDE) direkt in OKV zu speichern, OKV also als HSM zu nutzen. Dazu wird mindestens eine Oracle Datenbank der Version 11.2 benötigt. Diese direkte Nutzung für TDE in einer Datenbank 11.2.0.4 wird als Einstieg in das Arbeiten mit OKV im Weiteren beispielhaft vorgestellt. Ausgangsbasis soll eine Datenbank sein, die noch nicht für TDE konfiguriert wurde. (Falls diese Konfiguration bereits stattgefunden hat und nun statt mit Wallets mit OKV gearbeitet werden soll, besteht eine einfache Migrationsmöglichkeit, die in anderen Schritten abläuft. Das Administrationshandbuch - siehe unten - beschreibt die Details.)

Die Konfiguration für die direkte Nutzung geschieht in 3 Schritten:
  1. Endpoint einrichten
  2. Datenbank einrichten
  3. TDE einrichten
Endpoint einrichten
Endpoint einrichten Dieser Schritt bereitet den mit Abstand geringsten Aufwand.

Endpoints werden in Zusammenarbeit zwischen einem OKV System Administrator und einem Endpoint Administrator eingerichtet. In der Terminologie von OKV heisst das Administrator initiierte Einrichtung (administrator-initiated enrollment). Dabei vergibt der OKV System Administrator einen Namen für den neuen Endpoint, legt Typ und Betriebssystem des Endpoints fest und erzeugt schliesslich ein sogenanntes Token, das der Endpoint Administrator für den Start der Konfiguration übermittelt erhält.

Nach dem Klick auf Register wird das Token angezeigt. Es ist nur einmal einsetzbar. Token erzeugen

Datenbank einrichten
Die Verbindung zwischen Datenbank und OKV wird in zwei Schritten aufgebaut:
  1. Die Software okvutil, die OKV in Form einer Datei namens okvclient.jar zur Verfügung stellt, wird auf den Datenbankserver heruntergeladen und entpackt. Dazu muss mindestens JDK 1.5 installiert sein. Ausserdem ist die Variable JAVA_HOME zu setzen. Auch der Pfad zum Java Executable sollte explizit gesetzt sein.
  2. Eine Library, die den Zugriff auf das PKCS#11 kompatible OKV ermöglicht, muss verfügbar gemacht werden. Diese Library ist Teil der Datei okvclient.jar. Da das System die Library in einem bestimmten Verzeichnis erwartet, stellt Oracle ein Skript namens root.sh bereit, das das Verzeichnis anlegt und die Library dort ablegt. Die Library heisst liborapkcs.so.
Endpoint Enrollment and Software Download

Der erste Schritt beginnt damit, dass ein Benutzer, der die Berechtigung hat, Dateien als Eigentümer der Oracle Datenbanksoftware auf dem Datenbankserver zu installieren, im Browser die OKV Konsole aufruft. Er / sie versucht nicht, sich einzuloggen, sondern klickt am Fuss der Seite auf den Link Endpoint Enrollment and Software Download.


Herunterladen von okvclient.jar Auf der Seite, die sich öffnet, wird das Token eingegeben. Ausserdem werden die Angaben zum Typ und Betriebssystem gemacht - hier Database und Linux. Nach dem Anklicken von Submit Token und Enroll wird die Datei okvclient.jar zum Speichern angeboten. Sie kann in einem beliebigen Verzeichnis abgelegt werden.

Die jar-Datei wird ausgepackt. Auf die Aufforderung, ein Passwort einzugeben und zu bestätigen, wird für das Beispiel dieses Artikels Oracle.1 eingegeben. Die Eingabe erfolgt verdeckt, aber das Passwort wird beim Einrichten von TDE noch gebraucht und deshalb hier offengelegt.
[oracle@hwf Desktop]$ java -jar okvclient.jar -d /oracle/app/oracle/product/okvutil -v
Detected JAVA_HOME: /usr/lib/jvm/java-1.6.0-openjdk-1.6.0.0.x86_64/jre
Enter new Key Vault endpoint password ( for auto-login):         
Confirm new Key Vault endpoint password:         
Oracle Key Vault endpoint software installed successfully.
Als nächstes führt der Benutzer root das Shell Skript root.sh aus dem Verzeichnis bin von okvutil aus.
[root@hwf bin]# pwd
/oracle/app/oracle/product/okvutil/bin
[root@hwf bin]# ./root.sh
Creating directory: /opt/oracle/extapi/64/hsm/oracle/1.0.0/
Copying PKCS library to /opt/oracle/extapi/64/hsm/oracle/1.0.0/
Setting PKCS library file permissions
Installation successful.
Damit ist die Datenbank für das Arbeiten mit OKV vorbereitet.

TDE einrichten
Das Einrichten von TDE erfolgt in der bekannten Art und Weise. Zunächst wird die Datei sqlnet.ora um den Parameter ENCRYPTION_WALLET_LOCATION ergänzt.
ENCRYPTION_WALLET_LOCATION=(SOURCE=(METHOD=HSM))
Eine Abfrage auf V$ENCRYPTION_WALLET zeigt, dass ein HSM als Speicherort für Schlüssel erwartet wird.
SQL> SELECT * FROM v$encryption_wallet;

WRL_TYPE   WRL_PARAMETER                                                STATUS
---------- ------------------------------------------------------------ -------
HSM                                                                     CLOSED
Das bekannte Statement ALTER SYSTEM erzeugt nun den ersten Masterkey. Das Passwort, das diesem Befehl übergeben wird, ist das, das oben beim Entpacken von okvutil festgelegt wurde, nämlich Oracle.1. Dass das Arbeiten mit dem OKV auch funktioniert, belegt das Anlegen eines verschlüsselten Tablespace.
SQL orcl> ALTER SYSTEM set encryption key IDENTIFIED BY "Oracle.1";

System altered.

SQL orcl> CREATE TABLESPACE sicheristsicher
  2  DATAFILE '/home/oracle/dateiname.dbf' SIZE 10M
  3  ENCRYPTION USING 'AES256' DEFAULT STORAGE (ENCRYPT);

Tablespace created.

SQL orcl> SELECT tablespace_name, encrypted FROM dba_tablespaces
  2  WHERE tablespace_name like 'SICHER%';

TABLESPACE_NAME                ENCRYPTED
------------------------------ ---------
SICHERISTSICHER                YES

Das erste der beiden abschliessenden Bilder belegt, dass in OKV ein Masterkey angelegt wurde. Auf dem zweiten Bild sind einige Detailinformationen zu erkennen, zum Beispiel welcher Algorithmus für das Erzeugen des Schlüssels verwendet wurde und für welche Zwecke der Schlüssel verwendet wird. Masterkey im OKV

Masterkey im OKV

Weitere Informationen
Der Einsatz, auch der in Testumgebungen, ist ohne die Lektüre der Handbücher für OKV nicht sinnvoll. Tröstlich ist hier vielleicht, dass diese Handbücher im Vergleich mit vielen anderen Handbüchern der technischen Oracle Produkte sehr überschaubar gehalten sind.

Zurück zum Anfang des Artikels

Zurück zur Community-Seite