<Insert Picture Here> Verschlüsselung in der Datenbank Ralf Durben ORACLE Deutschland GmbH
Verschlüsselung in den Datendateien Bedrohung Direkter Zugriff aus BS- Ebene Online Datendateien Backup Abwehrmaßnahme Verschlüsselung
Verschlüsselte Speicherung Es geht also NICHT darum, das Lesen oder Ändern über die SQL-Schnittstelle zu unterbinden Es geht um Verschlüsselung auf der Platte und im Backup Schutz vor Insidern Schutz z.b. bei entsorgten Platten Schutz z.b. beim Verlust auf dem Transport ins Schließfach
Verfügbare Methoden Seit Oracle8i mittels PL/SQL-API Verfügbar in der Standard und der Enterprise Edition DBMS_OBFUSCATION_TOOLKIT DBMS_CRYPTO in Oracle Database 10g Anwendungen / Trigger rufen das API auf Kein automatisches Schlüsselmanagement Ab Oracle Database 10g Transparent Data Encryption (TDE) auf Spalten-Ebene Verfügbar nur innerhalb der Advanced Security Option Ab Oracle Database 11g Transparent Data Encryption (TDE) auf Tablespace-Ebene Verfügbar nur innerhalb der Advanced Security Option
Verschlüsseln mit DBMS_CRYPTO Anwendungen / Trigger rufen das API auf Kein automatisches Schlüsselmanagement CREATE OR REPLACE FUNCTION crypt (eingabe IN VARCHAR2) RETURN RAW IS v_rohdaten RAW(200); v_schluessel RAW(32); -- 256-bit v_verschluesselung PLS_INTEGER := DBMS_CRYPTO.ENCRYPT_AES256 + DBMS_CRYPTO.CHAIN_CBC + DBMS_CRYPTO.PAD_ZERO; BEGIN SELECT schluessel INTO v_schluessel FROM schluesseltabelle WHERE sysdate BETWEEN startdatum AND nvl(enddatum, sysdate); v_rohdaten := DBMS_CRYPTO.ENCRYPT( RETURN v_rohdaten; END; src => UTL_I18N.STRING_TO_RAW (eingabe, 'AL32UTF8'), typ => v_verschluesselung, key => v_schluessel);
Transparent Data Encryption (TDE) Oracle Database 10g Anwendung QL-Schnittstelle entlüsselt Daten ASO Netzwerk- Verschlüsselung Daten werden verschlüsselt auf die Platte geschrieben Daten sind verschlüsselt im Backup Datentypen VARCHAR2 NVARCHAR2 NUMBER DATE BINARY_FLOAT BINARY_DOUBLE TIMESTAMP RAW CHAR NCHAR Mit Key Management
Nicht unterstützte Features Materialized View Logs Oracle Streams Synchrones und asynchrones Change Data Capture (CDC) Direct Path Insert LOBs Transportable Tablespaces
Master Key und table (column) Keys Master Key in PKCS#12 wallet Tabellenschlüssel verschlüsselt durch Master Key (Wallet kann auch für Secure Backup genutzt werden) Tabellenschlüssel verschlüsselt Daten
Funktionstrennung & Aufgabenverteilung Wallet-Passwort ist getrennt vom System- und DBA- Passwort DBA startet Datenbank Kein Zugriff auf Wallet Security-DBA öffnet Wallet mit Master Key ALTER SYSTEM SET WALLET OPEN IDENTIFIED BY "passwort"
Allgemeine Hinweise zu TDE Speichern des Schlüssels für TDE (master key) in einem Hardware Security Module (HSM) Standard PKCS #11-API erlaubt Rückgriff auf Module unterschiedlicher Anbieter Ver- / Entschlüsseln findet nach wie vor auf dem Server statt Erleichtert das Schlüsselmanagement in verteilten Umgebungen z.b. mit Data Guard und RAC E-Business Suite und SAP unterstützen TDE Versionen der Applikations-Software beachten
TDE einsetzen: Vorbereitung In sqlnet.ora WALLET-Speicherort angeben (ENCRYPTION_)WALLET_LOCATION = (SOURCE = (METHOD=FILE) (METHOD_DATA= (DIRECTORY= $ORACLE_BASE/admin/<SID>/wallet))) Initialisieren oder Ändern des Master Key durch ALTER SYSTEM SET ENCRYPTION KEY IDENTIFIED BY "einpasswort" "einpasswort" ist das Wallet-Passwort, nicht der Master Key Kein Speicherort in SQLNET.ORA angegeben Wallet (ewallet.p12) in $ORACLE_BASE/admin/<SID>/wallet Verzeichnis muß existieren 3DES und AES bis zu einer Schlüsselgröße von 256 Bits
TDE nutzen CREATE TABLE kunden (name VARCHAR2(30), id NUMBER ENCRYPT USING 'AES192' IDENTIFIED BY einpasswort NO SALT); ALTER TABLE produkte MODIFY (...); Verschlüsselung muß für alle Spalten einer Tabelle identisch sein Es ist nicht möglich Foreign-Key-Spalten zu verschlüsseln Spalten in Tabellen von SYS zu verschlüsseln Gleichheitssuche über Index nur bei NO SALT LIKE-Vergleiche oder Range-Scans über eine verschlüsselte Indexspalte sind nicht möglich
TDE - Schlüsselfragen Verschiedene Algorithmen Standard ist AES192 Wechsel von Schlüsseln möglich Master Key s.o. Auf Tabellenebene ALTER TABLE kunden REKEY USING 'AES256' Wechsel des Algorithmus möglich
TDE - Tablespace-Verschlüsselung Tablespaces beim ersten Anlegen als verschlüsselt deklarieren Tablespaces nicht nachträglich zu ver- oder entschlüsseln Transport vorhandener Daten in verschlüsselte Tablespaces mit DATA PUMP, CTAS, ALTER TABLE... MOVE TDE-Wallet muß vorhanden und geöffnet sein CREATE TABLESPACE sicheristsicher DATAFILE '$ORACLE_BASE/dbdata/orcl/tdedatei.dbf' SIZE 20G ENCRYPTION USING 'AES128' DEFAULT STORAGE (encrypt);
Hinweise: Tablespace-Verschlüsselung Verschlüsselung wirksam auch für REDO-Einträge, UNDO und TEMPORARY SEGMENTE Unterstützt INDEX RANGE SCANs und FOREIGN KEYs Unterstützt sämtliche Segment-Typen Bei LOBs alternativ über Secure Files CREATE TABLE tabelle (region VARCHAR2(20), a BLOB) LOB(a) STORE AS SECUREFILE (ENCRYPT USING 'AES128')
LOB-Verschlüsselung mit TDE Ausschließlich mit SecureFiles CREATE TABLE tabelle (region VARCHAR2(20), a BLOB) LOB(a) STORE AS SECUREFILE ( ENCRYPT USING 'AES128')
Data Pump-Verschlüsselung Steuerung über Parameter ENCRYPTION ALL / DATA_ONLY / ENCRYPTED_COLUMNS_ONLY / METADATA_ONLY / NONE ENCRYPTION_ALGORITHM AES128 / AES192 / AES256 ENCRYPTION_MODE DUAL / PASSWORD / TRANSPARENT ENCRYPTION_PASSWORD Die Parameter beeinflussen sich z.t. gegenseitig
TDE und Data Guard Produktions-Datenbank Physical Standby Daten verschlüsselt in den Sicherungskopien Redo Apply Redo Logs mit verschlüsselten Daten
Backups verschlüsseln mit RMAN Oracle Recovery Manager (RMAN) Standard-Werkzeug zur Sicherung von Oracle-Datenbanken Auf Disk oder über Media Management Layer auf Bandlaufwerke Verschlüsselung des Backup möglich Algorithmus: Advanced Encryption Standard (AES) Benutzerdefiniertes Passwort oder Authentifizierung über Oracle Wallet Backup auf Bandlaufwerke mit Oracle Secure Backup RMAN Datenbank- Bereich Media Management Layer DIGITAL DATA STORAGE DIGITAL DATA STORAGE Flash Recovery Area DIGITAL DATA STORAGE
Oracle Secure Backup Ideale & kostengünstige Backup- & Recovery- Lösung im Oracle-Umfeld Sichert Datenbanken mit RMAN verschlüsselt auf Band Sichert Dateisysteme aller Art (einschließlich OCFS) Sichert Oracle Homes, Oracle Application Server und weitere Oracle-Software im Dateisystem Ist vollständig RMAN kompatibel Ist vollständig in Enterprise Manager integriert Unterstützt alle gängigen Tape Libraries und Laufwerke File Systeme Linux, Unix Win., OCFS, Filer Datenbanken RMAN Oracle Backup Unterstützung gängiger Tape Libraries & Drives