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;
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
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:
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: HSMSTATUS: 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
- 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/
- PKCS#11-Konfiguration installieren:
# Copy pkcs11.toml
scp /etc/duokey/pkcs11.toml target_server:/etc/duokey/
- Zieldatenbank konfigurieren:
-- Set TDE configuration
ALTER SYSTEM SET TDE_CONFIGURATION='KEYSTORE_CONFIGURATION=HSM|FILE'
SCOPE=BOTH;
- Datenbank wiederherstellen:
# RMAN restore
rman target /
RMAN> RESTORE DATABASE;
RMAN> RECOVER DATABASE;
RMAN> ALTER DATABASE OPEN;
- 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
- 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>";
- Wallet-Status überprüfen:
-- Check wallet status for all PDBs
SELECT con_id, wrl_type, status, wallet_type
FROM v$encryption_wallet;
- 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;
- 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
- PDB-Datei kopieren:
# Copy .pdb file to target server
scp /u01/app/oracle/pdb2_clone.pdb \
target_server:/u01/app/oracle/oradata/ORCLDB/
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
- 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>";
- 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>";
- 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.
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;
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:
- E-Mail: [email protected]
- Dokumentation: DuoKey-Support
- Status: status.duokey.com