New Features Oracle 11g: Tablespace Encryption
Posted by Sven Vetter on October 20th, 2007
Transparent Data Encryption wurde mit Oracle 10.2 eingeführt, hatte dort aber einige Einschränkungen:
- Es konnten nur einzelne Spalten verschlüsselt werden
- Nicht alle Datentypen konnten verschlüsselt werden (Long, LOB)
- Während Operationen waren die Daten nicht verschlüsselt, so dass eventuell unverschlüsselte und vertrauliche Daten im TEMP-Tablespace oder im REDO sichtbar waren
- Ausschliesslich B*Tree Indizes werden unterstützt (keine FBI)
- Index Range Scans werden nur bei Abfragen auf Gleichheit unterstützt
- Fremdschlüssel können nicht auf verschlüsselten Spalten definiert werden
Alle diese Einschränkungen wurden mit Oracle 11g aufgehoben ![]()
Es können nun Tablespaces komplett verschlüsselt werden. Leider ist dies nur beim Anlegen des Tablespaces einschaltbar. Alle Daten im Tablespace (einschliesslich Lobs, Indexes, ...) sind verschlüsselt – ausser BFILES (logisch...).
Die Daten bleiben auch bei Operationen wie Joins und Sorts verschlüsselt, damit sind sie auch verschlüsselt in UNDO, REDO und TEMP.
Verschlüsselung braucht natürlich Ressourcen. In diversen Tests konnte ich einen Performance-Impact zwischen 1% und 10% messen. Am kritischsten (10%) sind dabei Massen-Inserts per Einzel-Statement (wahrscheinlich da Blöcke dabei mehrmals angefasst werden?). Direct Path Inserts und Selects liegen bei 1-2%.
Interessant ist vielleicht auch, was die Oracle-Standard-Tools machen:
- EXP exportiert keine Daten aus verschlüsselten Tablespaces
- EXPDP hat die Daten unverschlüsselt im Dump-File
- RMAN lässt den Tablespace verschlüsselt
Das bedeutet, beim Restore muss das Wallet vorhanden sein!
Dieses Feature ist ein grosser Schritt in Richtung physische Sicherheit der Daten und wird bei sensitiven Systemen sicher in Betracht gezogen werden.
Tags: 11g, Encryption, Oracle, Security