Zum Hauptinhalt springen

Schlüsselverwaltung

Dieser Leitfaden behandelt Masterschlüsseloperationen für Oracle TDE mit DuoKey KMS, einschließlich Schlüsselrotation, Migrationsszenarien und Verwaltung des Schlüssellebenszyklus.

Schlüsselrotation​

Die periodische Schlüsselrotation ist eine wichtige Sicherheits-Best-Practice. DuoKey KMS macht es einfach, TDE-Masterverschlüsselungsschlüssel zu rotieren.

Warum Schlüssel rotieren?​

  • Sicherheits-Compliance: Erfüllung regulatorischer Anforderungen (in der Regel 6–12 Monate)
  • Exposition begrenzen: Reduzierung des Risikos bei Kompromittierung eines Schlüssels
  • Best Practice: Branchenstandard für die kryptografische Schlüsselverwaltung

Rotationshäufigkeit​

Empfohlener Zeitplan:

  • Produktionsdatenbanken: Alle 6–12 Monate
  • Hochsicherheitsumgebungen: Alle 3–6 Monate
  • Compliance-Anforderungen: Wie durch Vorschriften vorgeschrieben

Rotieren von Masterschlüsseln​

Ohne Auto-Login-Wallet​

Für Container Database (CDB):

-- Rotate master key for all containers
ADMINISTER KEY MANAGEMENT SET KEY
IDENTIFIED BY "<DKE_APP_PASSWORD>"
CONTAINER = ALL;

Für Non-Container Database:

-- Rotate master key
ADMINISTER KEY MANAGEMENT SET KEY
IDENTIFIED BY "<DKE_APP_PASSWORD>";

Mit Auto-Login-Wallet​

Für Container Database (CDB):

-- Rotate master key with auto-login
ADMINISTER KEY MANAGEMENT SET KEY
FORCE KEYSTORE
IDENTIFIED BY "<DKE_APP_PASSWORD>"
CONTAINER = ALL;
Pluggable Databases

In einigen Datenbankversionen müssen Sie möglicherweise Schlüssel einzeln innerhalb jeder Pluggable Database (PDB) rotieren.

Für Non-Container Database:

-- Rotate master key with auto-login
ADMINISTER KEY MANAGEMENT SET KEY
FORCE KEYSTORE
IDENTIFIED BY "<DKE_APP_PASSWORD>";

Schlüsselrotation überprüfen​

-- Check master key history
SELECT key_id, creation_time, activation_time
FROM v$encryption_keys
ORDER BY creation_time DESC;

-- Verify current key
SELECT * FROM v$encryption_wallet;

Überlegungen nach der Rotation​

Datenbankneustart

Nach der Schlüsselrotation kann der ältere Masterschlüssel vom Gen0-Prozess der Datenbank für Heartbeat-Operationen verwendet werden. Der neue Schlüssel wird nach dem nächsten Datenbankneustart verwendet.

Starten Sie die Datenbank neu, um den neuen Schlüssel zu verwenden:

SHUTDOWN IMMEDIATE;
STARTUP;

Migration vom lokalen Wallet zu DuoKey KMS​

Wenn Sie über bestehende TDE-Datenbanken verfügen, die lokale Wallets verwenden, können Sie zu DuoKey KMS migrieren.

Voraussetzungen​

  • Bestehende Oracle-Datenbank mit konfiguriertem TDE
  • Lokales TDE-Wallet (ewallet.p12)
  • DuoKey KMS gemäß dem Erste-Schritte-Leitfaden konfiguriert
  • PKCS#11-Bibliothek installiert und konfiguriert

Migrationsschritte​

Schritt 1: Aktuelles Wallet sichern​

# Backup existing wallet
cp $ORACLE_BASE/admin/$ORACLE_SID/wallet/tde/ewallet.p12 \
$ORACLE_BASE/admin/$ORACLE_SID/wallet/tde/ewallet.p12.backup

Schritt 2: Auto-Login-Wallet verschieben (falls vorhanden)​

# Rename auto-login wallet
cd $ORACLE_BASE/admin/$ORACLE_SID/wallet/tde
mv cwallet.sso cwallet.sso_backup

Schritt 3: Passwort des lokalen Wallets ändern​

Ändern Sie das Passwort des lokalen Wallets, sodass es mit dem DuoKey-App-Passwort übereinstimmt:

-- Change wallet password
ADMINISTER KEY MANAGEMENT ALTER KEYSTORE PASSWORD
IDENTIFIED BY "<old_wallet_password>"
SET "<DKE_APP_PASSWORD>"
WITH BACKUP;

Für Oracle 11g R2:

# Use orapki utility
orapki wallet change_pwd \
-wallet $ORACLE_BASE/admin/$ORACLE_SID/wallet/tde \
-oldpwd old_password \
-newpwd DKE_APP_PASSWORD

Schritt 4: Wallet-Methode konfigurieren​

Für Oracle 18c und früher:

-- Set wallet method to both FILE and HSM
ALTER SYSTEM SET ENCRYPTION_WALLET_LOCATION=
'(SOURCE=(METHOD=HSM)(METHOD_DATA=(DIRECTORY=<wallet_location>)))'
SCOPE=SPFILE;

-- Restart database
SHUTDOWN IMMEDIATE;
STARTUP;

Für Oracle 19c und später:

-- Set TDE configuration for HSM and FILE
ALTER SYSTEM SET TDE_CONFIGURATION='KEYSTORE_CONFIGURATION=HSM|FILE'
SCOPE=BOTH;

Schritt 5: Beide Wallets öffnen​

-- Open both HSM and local wallets
ADMINISTER KEY MANAGEMENT SET KEYSTORE OPEN
IDENTIFIED BY "<DKE_APP_PASSWORD>";

-- Verify both wallets are open
SELECT * FROM V$ENCRYPTION_WALLET;

Erwartete Ausgabe: Sowohl FILE als auch HSM sollten den Status OPEN anzeigen.

Schritt 6: Schlüssel zu DuoKey KMS migrieren​

-- Migrate master key from local wallet to DuoKey KMS
ADMINISTER KEY MANAGEMENT SET ENCRYPTION KEY
IDENTIFIED BY "<DKE_APP_PASSWORD>"
MIGRATE USING "<DKE_APP_PASSWORD>"
WITH BACKUP USING 'LocalWalletMigration';

Für Oracle 11g R2:

-- Migrate key
ALTER SYSTEM SET ENCRYPTION KEY
IDENTIFIED BY "<DKE_APP_PASSWORD>"
MIGRATE USING "<DKE_APP_PASSWORD>";

Schritt 7: Migration überprüfen​

-- Check that keys are in DuoKey KMS
SELECT key_id, creation_time, activation_time
FROM v$encryption_keys
ORDER BY creation_time DESC;

Überprüfen Sie die Audit-Protokolle im DuoKey Cockpit auf Schlüsselmigrationsereignisse.

Schritt 8: Auto-Login konfigurieren (optional)​

Befolgen Sie die Schritte zur Auto-Login-Konfiguration aus dem Erste-Schritte-Leitfaden.

Rückmigration: DuoKey KMS zu lokalem Wallet​

Wenn Sie eine Rückmigration von DuoKey KMS zurück zu einem lokalen Wallet durchführen müssen:

Einschränkung bei Oracle 11g R2

Oracle 11g R2 unterstützt keine Rückmigration. Die Rückmigration ist nur beim Upgrade von 11g R2 auf 12c oder höher verfügbar.

Voraussetzungen​

  • Oracle Database 12c oder höher
  • TDE mit DuoKey KMS konfiguriert
  • Zugriff auf sowohl HSM- als auch lokale Wallets

Schritte zur Rückmigration​

Schritt 1: Auto-Login-Wallet verschieben​

# Backup auto-login wallet
cd $ORACLE_BASE/admin/$ORACLE_SID/wallet/tde
mv cwallet.sso cwallet.sso_backup

Schritt 2: Beide Wallets öffnen​

-- Open both HSM and local wallets manually
ADMINISTER KEY MANAGEMENT SET KEYSTORE OPEN
IDENTIFIED BY "<DKE_APP_PASSWORD>"
CONTAINER=ALL;

-- Verify both are open
SELECT * FROM V$ENCRYPTION_WALLET;

Schritt 3: Zur FILE-Methode wechseln​

Für Oracle 18c und früher:

-- Change to FILE method only
ALTER SYSTEM SET ENCRYPTION_WALLET_LOCATION=
'(SOURCE=(METHOD=FILE)(METHOD_DATA=(DIRECTORY=<wallet_location>)))'
SCOPE=SPFILE;

-- Restart database
SHUTDOWN IMMEDIATE;
STARTUP;

Für Oracle 19c und später:

-- Change to FILE method
ALTER SYSTEM SET TDE_CONFIGURATION='KEYSTORE_CONFIGURATION=FILE'
SCOPE=BOTH;

Schritt 4: Schlüssel rückmigrieren​

-- Reverse migrate from HSM to local wallet
ADMINISTER KEY MANAGEMENT SET ENCRYPTION KEY
IDENTIFIED BY "<DKE_APP_PASSWORD>"
REVERSE MIGRATE USING "<DKE_APP_PASSWORD>"
WITH BACKUP USING 'ReverseMigration';

Schritt 5: Rückmigration überprüfen​

-- Verify wallet status
SELECT * FROM V$ENCRYPTION_WALLET;

-- Should show FILE wallet only

Oracle Data Guard-Integration​

Befolgen Sie bei Oracle Data Guard-Umgebungen diese Schritte, um Standby-Datenbanken mit DuoKey KMS zu integrieren.

Voraussetzungen​

  • Primärdatenbank in DuoKey KMS integriert
  • Standby-Datenbank in Data Guard konfiguriert
  • PKCS#11-Bibliothek auf dem Standby-Server installiert

Integrationsschritte​

Schritt 1: Wallet-Dateien kopieren​

Kopieren Sie die Wallet-Dateien von der Primär- auf die Standby-Datenbank:

# On primary server
cd $ORACLE_BASE/admin/$ORACLE_SID/wallet/tde

# Copy to standby server
scp cwallet.sso standby_server:$ORACLE_BASE/admin/$ORACLE_SID/wallet/tde/
scp ewallet.p12 standby_server:$ORACLE_BASE/admin/$ORACLE_SID/wallet/tde/

Schritt 2: PKCS#11 auf Standby installieren​

Auf dem Standby-Server:

# Copy PKCS#11 library
sudo mkdir -p /opt/oracle/extapi/64/hsm/DuoKey/1.0
sudo cp /path/to/libdke_pkcs11.so \
/opt/oracle/extapi/64/hsm/DuoKey/1.0/libdke_pkcs11.so

# Set permissions
sudo chown -R oracle:oinstall /opt/oracle
sudo chmod -R 775 /opt/oracle

Schritt 3: PKCS#11-Konfiguration kopieren​

# Copy pkcs11.toml from primary to standby
scp /etc/duokey/pkcs11.toml \
standby_server:/etc/duokey/pkcs11.toml

# On standby, set permissions
sudo chown oracle:oinstall /etc/duokey/pkcs11.toml
sudo chmod 600 /etc/duokey/pkcs11.toml

Schritt 4: Standby-Datenbank konfigurieren​

Auf der Standby-Datenbank:

-- Point to both HSM and FILE
ALTER SYSTEM SET TDE_CONFIGURATION='KEYSTORE_CONFIGURATION=HSM|FILE'
SCOPE=BOTH;

Schritt 5: Auto-Login überprüfen​

Das Auto-Login-Wallet sollte das Wallet auf dem Standby automatisch öffnen.

-- Check wallet status on standby
SELECT * FROM V$ENCRYPTION_WALLET;

Erwartete Ausgabe:

  • WRL_TYPE: HSM
  • STATUS: OPEN (mit Auto-Login)
  • WALLET_TYPE: AUTO_LOGIN

Sicherung und Wiederherstellung​

Überlegungen zur TDE-Sicherung​

Beim Sichern von TDE-verschlüsselten Datenbanken:

Tablespace-Verschlüsselung:

  • Sicherungen werden standardmäßig verschlüsselt
  • RMAN-Sicherungen behalten die Verschlüsselung bei

Spaltenverschlüsselung:

  • Sicherungen werden standardmäßig nicht verschlüsselt
  • Daten in Export-Dumps (expdp) sind unverschlüsselt

Verschlüsselte RMAN-Sicherungen​

# RMAN backups of encrypted tablespaces are encrypted automatically
rman target /

RMAN> BACKUP DATABASE;

Verschlüsselter Export (Data Pump)​

Aktivieren Sie bei der Spaltenverschlüsselung die Verschlüsselung in Exporten explizit:

# Encrypted export
expdp hr DIRECTORY=dpump_dir1 \
DUMPFILE=hr_enc.dmp \
ENCRYPTION=all \
ENCRYPTION_ALGORITHM=AES256 \
ENCRYPTION_MODE=TRANSPARENT

Wiederherstellen von TDE-Datenbanken​

So stellen Sie TDE-Datenbanken auf einem Zielsystem wieder her:

Voraussetzungen​

  • DuoKey KMS auf dem Zielsystem konfiguriert
  • Dieselben Wallet-Dateien oder Zugriff auf dieselbe DuoKey-Anwendung
  • PKCS#11-Bibliothek installiert

Wiederherstellungsschritte​

  1. Wallet-Dateien kopieren (falls nicht dieselbe DuoKey-App verwendet wird):
# Copy from source to target
scp cwallet.sso target_server:$ORACLE_BASE/admin/$ORACLE_SID/wallet/tde/
scp ewallet.p12 target_server:$ORACLE_BASE/admin/$ORACLE_SID/wallet/tde/
  1. PKCS#11-Konfiguration installieren:
# Copy pkcs11.toml
scp /etc/duokey/pkcs11.toml target_server:/etc/duokey/
  1. Zieldatenbank konfigurieren:
-- Set TDE configuration
ALTER SYSTEM SET TDE_CONFIGURATION='KEYSTORE_CONFIGURATION=HSM|FILE'
SCOPE=BOTH;
  1. Datenbank wiederherstellen:
# RMAN restore
rman target /

RMAN> RESTORE DATABASE;
RMAN> RECOVER DATABASE;
RMAN> ALTER DATABASE OPEN;
  1. Wallet-Status überprüfen:
-- Check wallet is open
SELECT * FROM V$ENCRYPTION_WALLET;

Klonen von Pluggable Databases​

Sie können Pluggable Databases (PDBs) mit TDE-Verschlüsselungsschlüsseln klonen, die in DuoKey KMS gespeichert sind.

Voraussetzungen​

  • Quell- und Zieldatenbanken in DuoKey KMS integriert
  • Beide Datenbanken verwenden Anwendungen in derselben DuoKey-Gruppe
  • Masterschlüssel für beide Datenbanken zugänglich

Hot Clone aus der Quell-PDB​

Auf der Quelldatenbank​

  1. Hot Clone erstellen:
-- Connect as SYSDBA
sqlplus / as sysdba

-- Create hot clone of encrypted PDB
CREATE PLUGGABLE DATABASE PDB2_CLONE
FROM PDB2
FILE_NAME_CONVERT = (
'/u01/app/oracle/oradata/ORCLDB/pdb2',
'/u01/app/oracle/oradata/ORCLDB/pdb2_clone'
)
KEYSTORE IDENTIFIED BY "<DKE_APP_PASSWORD>";
  1. Wallet-Status überprüfen:
-- Check wallet status for all PDBs
SELECT con_id, wrl_type, status, wallet_type
FROM v$encryption_wallet;
  1. Verschlüsselte Daten überprüfen:
-- Switch to source PDB
ALTER SESSION SET CONTAINER=PDB2;

-- Check encrypted columns
SELECT * FROM dba_encrypted_columns;

-- Verify data is accessible
SELECT * FROM schema.encrypted_table;
  1. Geklonte PDB abstecken (unplug):
-- Connect as SYSDBA
conn / as sysdba

-- Unplug the cloned PDB
ALTER PLUGGABLE DATABASE PDB2_CLONE UNPLUG INTO
'/u01/app/oracle/pdb2_clone.pdb';

Auf der Zieldatenbank​

  1. PDB-Datei kopieren:
# Copy .pdb file to target server
scp /u01/app/oracle/pdb2_clone.pdb \
target_server:/u01/app/oracle/oradata/ORCLDB/
Voraussetzungen

Die Zieldatenbank muss:

  • Verschlüsselt und in DuoKey KMS integriert sein
  • Zugriff auf dieselbe DuoKey-Gruppe mit den Schlüsseln der Quell-PDB haben
  • Über einen im Root-Container (CDB) gesetzten Masterschlüssel verfügen
  1. PDB einstecken (plug in):
-- Connect to target database as SYSDBA
sqlplus / as sysdba

-- Create PDB from .pdb file
CREATE PLUGGABLE DATABASE PDB2 USING
'/u01/app/oracle/oradata/ORCLDB/pdb2_clone.pdb'
COPY FILE_NAME_CONVERT=(
'/u01/app/oracle/oradata/ORCLDB/pdb2_clone',
'/u01/app/oracle/oradata/ORCLDB/pdb2'
)
KEYSTORE IDENTIFIED BY "<DKE_APP_PASSWORD>";
  1. PDB und Wallet öffnen:
-- Switch to new PDB
ALTER SESSION SET CONTAINER=PDB2;

-- Check wallet status
SELECT * FROM V$ENCRYPTION_WALLET;

-- Open wallet if needed (external keystore; the PIN is advisory —
-- the access_guid bearer token in pkcs11.toml authenticates the request)
ADMINISTER KEY MANAGEMENT SET KEYSTORE OPEN
IDENTIFIED BY "<DKE_APP_PASSWORD>";
  1. Datenzugriff überprüfen:
-- Verify encrypted columns
SELECT * FROM dba_encrypted_columns;

-- Test data access
SELECT * FROM schema.encrypted_table;

Upgrade der PKCS#11-Bibliothek​

Regelmäßige Updates der PKCS#11-Bibliothek bieten neue Funktionen und Sicherheitsverbesserungen.

Ausfallzeit erforderlich

Das Upgrade der PKCS#11-Bibliothek erfordert eine Datenbankausfallzeit.

Upgrade-Schritte​

Schritt 1: Neue Bibliothek beziehen​

Beziehen Sie die neueste DuoKey-PKCS#11-Bibliothek (libdke_pkcs11.so) vom DuoKey-Support und kopieren Sie sie auf den Datenbank-Host.

Schritt 2: Aktuelle Bibliothek sichern​

# Backup current library
cd /opt/oracle/extapi/64/hsm/DuoKey/1.0
cp libdke_pkcs11.so libdke_pkcs11.so.backup

Schritt 3: Datenbank herunterfahren​

-- Shutdown database
sqlplus / as sysdba

SHUTDOWN IMMEDIATE;

Schritt 4: Bibliothek ersetzen​

# Copy the new library into place (overwriting the backed-up copy)
sudo cp libdke_pkcs11.so \
/opt/oracle/extapi/64/hsm/DuoKey/1.0/libdke_pkcs11.so

# Set permissions
sudo chown -R oracle:oinstall \
/opt/oracle/extapi/64/hsm/DuoKey/1.0
sudo chmod -R 775 \
/opt/oracle/extapi/64/hsm/DuoKey/1.0

Schritt 5: Datenbank starten​

-- Start database
sqlplus / as sysdba

STARTUP;

Schritt 6: Betrieb überprüfen​

# Check PKCS#11 logs
tail -f /var/log/dke-pkcs11/*.log

Achten Sie auf:

  • Erfolgreiche Verbindung zu DuoKey KMS
  • Schlüsselzugriffsvorgänge

Rollback-Verfahren​

Wenn nach dem Upgrade Probleme auftreten:

# Shutdown database
sqlplus / as sysdba
SHUTDOWN IMMEDIATE;
exit

# Restore previous version
cd /opt/oracle/extapi/64/hsm/DuoKey/1.0
mv libdke_pkcs11.so.backup libdke_pkcs11.so

# Restart database
sqlplus / as sysdba
STARTUP;
Support

Für Unterstützung beim Upgrade oder bei Problemen wenden Sie sich an den DuoKey-Support unter [email protected].

Zusammenfassung der Best Practices​

Schlüsselrotation​

  • Schlüssel alle 6–12 Monate rotieren
  • Rotationszeitplan dokumentieren
  • Rotation zunächst außerhalb der Produktion testen
  • Datenbank nach der Rotation neu starten

Sicherungsstrategie​

  • Regelmäßige RMAN-Sicherungen verschlüsselter Datenbanken
  • Wallet-Dateien separat sichern
  • Wiederherstellungsverfahren testen
  • Wiederherstellungsverfahren dokumentieren

Hochverfügbarkeit​

  • Auto-Login-Wallets verwenden
  • Wallet-Dateien in RAC/Data Guard verteilen
  • Verfügbarkeit von DuoKey KMS überwachen
  • Wiederholungs-Timeouts angemessen konfigurieren

Sicherheit​

  • Aufgaben trennen: DBAs und Sicherheitsadministratoren
  • Zugriff auf pkcs11.toml beschränken
  • Audit-Protokolle im DuoKey Cockpit überwachen
  • Eindeutige Apps pro Datenbank verwenden

Betrieb​

  • Alle Konfigurationen dokumentieren
  • Upgrades außerhalb der Produktion testen
  • PKCS#11-Protokolle überwachen
  • Aktuelle PKCS#11-Version pflegen

Support​

Für Unterstützung bei Schlüsselverwaltungsvorgängen: