Datenverschlüsselung mit dem DBMS_OBFUSCATION_TOOLKIT



Ähnliche Dokumente
Oracle Forms Was validiere ich wo?

Verschlüsselung. Klaus Reimers ORDIX AG Köln. Verschlüsselung, encrypt, decrypt, dbms_obfuscation_toolkit, dbms_crypto, wallet, datapump, rman

Zusammenspiel von Spfile und Init.ora-Datei unter Windows

Latente Steuern im HGB-Einzelabschluss nach BilMoG

Bachelorarbeit. Latente Steuern nach dem BilMoG. Das neue HGB im Vergleich zum HGB a.f. und den IFRS. Jens Michael Neumann

Motivation und Führung von Mitarbeitern

Diplomarbeit. Demografie und Öffentlicher Dienst. Personalbedarfsdeckung. Thomas Dockenfuß. Bachelor + Master Publishing

Vermögenseinlagen stiller Gesellschafter, Genußrechtskapital und nachrangige Verbindlichkeiten als haftendes Eigenkapital von Kreditinstituten

Systemvoraussetzungen. audimexsd Version 3.3

Human Resources-Outsourcing in Deutschland

Online Table Shrink. Freigabe von ungenutztem Speicherplatz. Autor: Ralf Durben, ORACLE Deutschland GmbH

Bachelorarbeit. Fußball-Fernsehrechte in der Bundesliga. Eine ökonomische Analyse am Beispiel der deutschen Fußball-Liga.

Markus Schäfer. Menschenrechte und die Europäische Union. Geschichte und Gegenwart der Menschenrechte in Europa. Diplomica Verlag

Die Mathematiker an den Ziircher Zürcher Hochschulen

Partitioning mit Oracle Text 9i

Die Bilanzierung von Pensionsrückstellungen

Verschlüsselte Daten in der Datenbank Von 8i bis 10g Release 2

Bibliografische Information der Deutschen Nationalbibliothek:

Gemeinsam einsam fernsehen

Kundenorientierung von Dienstleistungsunternehmen als kritischer Erfolgsfaktor

Gudrun Höhne. Unternehmensführung in Europa. Ein Vergleich zwischen Deutschland, Großbritannien und Frankreich. Diplomica Verlag

Ist Europa ein optimaler Währungsraum?

Die gesetzliche Unfallversicherung - von der Behörde zum modernen Dienstleistungsunternehmen

Corporate Volunteering als Instrument der Personalarbeit

Bibliografische Information der Deutschen Nationalbibliothek:

Informatik. Christian Kuhn. Web 2.0. Auswirkungen auf internetbasierte Geschäftsmodelle. Diplomarbeit

Kundenzufriedenheit im Mittelstand

Die Bedeutung der Geburtenregistrierung. für die Verwirklichung der UN-Kinderrechte

Vorstandsvergütung in deutschen (DAX-) Unternehmen

Bibliografische Information der Deutschen Nationalbibliothek:

Diana Gabriela Födinger. Das F. Emmi Pikler und Maria Montessori im Vergleich S P E I. Diplomica Verlag

SPD als lernende Organisation

Innovatives Marketing

Projektmanagement und interkulturelle Kommunikation

Javaprogrammierung mit NetBeans. Variablen, Datentypen, Methoden

Bachelorarbeit. Grundlagen im Dienstleistungsunternehmen. Mit Qualitätsmanagement und Kundenorientierung zum Erfolg. Tobias Müller

Roland Thomas Nöbauer. Genossenschaften. als Chancen für Kommunen. Potentialanalyse genossenschaftlicher Infrastrukturbetriebe.

Kundenbeziehungsmanagement

Erfolgreicher Turnaround mit Private Equity

Das Spannungsverhältnis von Teamarbeit und Führung

Wiederholung. Symmetrische Verschlüsselung klassische Verfahren: moderne Verfahren: DES (Feistel-Chiffre) mehrfache Wiederholung einer Kombination aus

Angebotsstruktur der Spielhallen und Geldspielgeräte in Deutschland

Persönliches Budget in Werkstätten für behinderte Menschen Die Notwendigkeit von Change Management

Usability Analyse des Internetauftritts der Firma MAFI Transport-Systeme GmbH

Das Konzept der organisationalen Identität

Yoga - die Kunst, Körper, Geist und Seele zu formen

Erstellung eines Prototyps zum sicheren und gesteuerten Zugriff auf Dateien und Dokumente auf Basis von Lotus Domino und Notes

Innovationscontrolling

Ralf-Stefan Lossack Wissenschaftstheoretische Grundlagen für die rechnerunterstützte Konstruktion

Bachelorarbeit. Plankostenrechnung. Die Verrechnung von Kostenabweichungen höherer Ordnung. Eine verhaltenswissenschaftliche Analyse.

Principal-Agent-Problematik im E-Recruitment

Mobbing am Arbeitsplatz

Übergewichtige Kinder und Jugendliche in Deutschland

Die Bedeutung von Lebensversicherungsprodukten bei der Altersvorsorge amerikanischer Besserverdiener

Spätes Bietverhalten bei ebay-auktionen

Cyber-Mobbing. Der virtuelle Raum als Schauplatz für Mobbing unter Kindern und Jugendlichen. Problemlagen und Handlungsmöglichkeiten.

Nachhaltige Entwicklung im Tourismus in den Alpen

Waveletanalyse von EEG-Zeitreihen

Volkskrankheit Depression

Employer Branding vs. Nachhaltigkeit

Kennzahlenbasiertes Prozeßcontrolling für den Produktionsbereich in einem Unternehmen der Investitionsgüterindustrie

Rekrutierung von Hochschulabsolventen. über professionelles Personalmarketing

Best Ager. Katja Zaroba

Diplomarbeit. Das Selbstbild deutscher und französischer Mütter. Eine empirische Studie zur Familienpolitik. Katharina Heilmann

Diplomarbeit. Marketing für Kundengewinnung und Kundenbindung. Am Beispiel eines Spezialunternehmens. M.-Fatih Karasu

Kapitalbedarfs- und Liquiditätsplanung bei einer Existenzgründung

Frost- bzw. Frost-Taumittel-Widerstand von Beton

Die Übertragung von Wirtschaftsgütern bei Personengesellschaften im Ertragssteuerrecht

Landwirtschaft oder Gewerbe?

Pferdegestützte Persönlichkeitsbildung

Erfolgsfaktoren für virtuelle Teams

Der optimale Webshop

Bibliografische Information der Deutschen Nationalbibliothek:

Massenentlassungen, Betriebsstilllegungen, Unternehmensinsolvenzen

Sport. Silke Hubrig. Afrikanischer Tanz. Zu den Möglichkeiten und Grenzen in der deutschen Tanzpädagogik. Examensarbeit

Wertorientierte Kennzahlen

Andrea Burkhardt Umweltkatastrophen und Klimawandel Kalkulierbarkeit der Versicherung von Umweltrisiken Bachelor + Master Publishing

Innovative Preismodelle für hybride Produkte

Picking the winners - Dienstleistungsorientierte Bestandspflegeund Ansiedlungspolitik

Bachelorarbeit. Das Gap-Modell zur Identifikation von Ursachen für Qualitätsmängel. Einsatz und Weiterentwicklungen. Maike Dürk

X.systems.press ist eine praxisorientierte Reihe zur Entwicklung und Administration von Betriebssystemen, Netzwerken und Datenbanken.

Bibliografische Information der Deutschen Nationalbibliothek:

Personalbeschaffung im Internet

Westhoff Terlinden -Arzt. Entscheidungsorientierte psychologische Gutachten für das Familiengericht

Volkskrankheit Depression

Die Anforderungen der MaRisk VA. an das Risikocontrolling

Bibliografische Information der Deutschen Nationalbibliothek:

Dubai, Reiseziel der Zukunft

Das Insolvenzverfahren unter Berücksichtigung der Ertragssteuern und der Umsatzsteuer

Sicherheitsaspekte kryptographischer Verfahren beim Homebanking

Java für Fortgeschrittene

Erfolgsfaktor Inplacement

Transkript:

Datenverschlüsselung mit dem DBMS_OBFUSCATION_TOOLKIT Autor: Markus Fiegler, ORDIX AG DOAGNews Q2_2 Dieses Werk ist urheberrechtlich geschützt. Die dadurch begründeten Rechte, insbesondere die der Übersetzung, des Nachdrucks, des Vortrags, der Entnahme von Abbildungen und Tabellen, der Funksendung, der Mikroverfilmung oder der Vervielfältigung auf anderen Wegen und der Speicherung in Datenverarbeitungsanlagen, bleiben, bei auch nur auszugsweiser Verwertung, vorbehalten. Eine Vervielfältigung dieses Werkes oder von Teilen dieses Werkes ist auch im Einzelfall nur in den Grenzen der gesetzlichen Bestimmungen des Urheberrechtes der Bundesrepublik Deutschland vom 9. September 1965 in der jeweils geltenden Fassung zulässig. Sie ist grundsätzlich vergütungspflichtig. Zuwiderhandlungen unterliegen den Strafbestimmungen des Urheberrechtsgesetzes.

Um sensible Daten vor unberechtigten Zugriffen zu schützen, werden unterschiedliche Techniken verwendet. Neben Authentifizierung und Zugriffskontrolle kommt auch Datenverschlüsselung zum Einsatz. Datenverschlüsselung bietet einen zusätzlichen Schutz vor den unberechtigten Zugriffen Dritter auf sensible Daten und deren Manipulation und Missbrauch. Denn sie erfolgt mit einem Verschlüsselungsalgorithmus und einem Schlüssel. Oracle stellt seit der Version 8i mit dem DBMS_OBFUSCATION_TOOLKIT Package ein Paket zur Verfügung, mit dem Daten innerhalb einer Oracle Datenbank verschlüsselt werden können, um so einen unberechtigten Zugriff darauf zu verhindern. Grundlagen Das DBMS_OBFUSCATION_TOOLKIT Package verwendet für die Verschlüsselung von Daten den Data Encryption Standard (DES) Algorithmus. Bei dem DES Algorithmus handelt es sich um einen symmetrischen Verschlüsselungsalgorithmus. Dieser zeichnet sich dadurch aus, dass ein betrachteter, geheimer Schlüssel sowohl für die Ver- als auch für die Entschlüsselung verwendet wird. Im Allgemeinen ist für die Verschlüsselung mit dem DES Algorithmus ein 56-Bit langer Schlüssel nötig. Abb. 1: Für die Verschlüsselung mit dem DES Algorithmus ist ein 56-Bit langer Schlüssel nötig. Neben dem DES Algorithmus stellt das DBMS_OBFUSCATION_TOOLKIT Package auch den Triple DES (3DES) Algorithmus zur Verfügung. Der 3DES Algorithmus basiert ebenfalls auf dem DES Algorithmus, bietet aber die Möglichkeit der Dreifach-Verschlüsselung der Daten und damit zusätzliche Sicherheit. Der 3DES Algorithmus kann im Gegensatz zum einfachen DES Algorithmus in einem Zwei- bzw. Drei- Schlüsselmodus ausgeführt werden. Für den Zwei-Schlüsselmodus wird ein Schlüssel mit der Länge von 128-Bit benötigt. Für den Drei-Schlüsselmodus ein Schlüssel mit der Länge von 192-Bit. Standard bei der Verschlüsselung mit dem 3DES Algorithmus ist der Zwei-Schlüsselmodus.

Einsatz der Verschlüsselung Das Beispiel in Abbildung 2 zeigt, wie man Daten mit dem DBMS_OBFUSCATION_TOOLKIT Package verschlüsseln bzw. entschlüsseln kann: DECLARE v_key VARCHAR2(50) := '1234567890123456'; v_chiffretext VARCHAR2(50); v_klartext VARCHAR2(50); BEGIN -- Verschluesseln... v_chiffretext := DBMS_OBFUSCATION_TOOLKIT.DES3Encrypt( input_string => 'ORDIX AG', key_string => v_key ); DBMS_OUTPUT.PUT_LINE('Chiffretext: ' v_chiffretext); -- Entschluesseln... v_klartext := DBMS_OBFUSCATION_TOOLKIT.DES3Decrypt( input_string => v_chiffretext, key_string => v_key ); DBMS_OUTPUT.PUT_LINE('Klartext: ' v_klartext); END; / Chiffretext: _k;32.å^ Klartext: ORDIX AG Abb. 2: Ver- und Entschlüsseln der 8 Zeichen langen Zeichenkette ORDIX AG mit dem 3DES Algorithmus. Für die Verschlüsselung deklariert der DECLARE-Block eine Variable v_key, in der der Schlüssel abgelegt wird (Initialisierung in Abbildung 2). Für dieses Beispiel muss der Schlüssel also aufgrund des verwendeten 3DES Algorithmus aus mindestens 128-Bit bestehen. Die DES3Encrypt Funktion verschlüsselt dann die Zeichenkette ORDIX AG mit dem v_key Schlüssel und entschlüsselt sie anschließend mit der DES3Decrypt Funktion. Einschränkungen bei der Verschlüsselung Mit dem DBMS_OBFUSCATION_TOOLKIT Package können die Datentypen STRING und RAW ver- bzw. entschlüsselt werden. Dafür stellt Oracle spezielle Funktionen bzw. Prozeduren wie DES3Encrypt oder DES3Decrypt zur Verfügung. Sie unterscheiden sich lediglich im Datentyp der Parameter. Das DBMS_OBFUSCATION_TOOLKIT Package kann eine Zeichenkette immer nur einfach verschlüsseln. Eine mehrfache Verschlüsselung einer bereits verschlüsselten Zeichenkette ist nicht erlaubt. Beim Versuch eine bereits verschlüsselte Zeichenkette noch einmal zu verschlüsseln, wird eine Fehlermeldung ORA- 28233 "Doppelte Verschlüsselung nicht unterstützt" ausgegeben. Die Länge einer Zeichenkette, die verschlüsselt werden soll, muss dabei ein Vielfaches der Länge von 8- Byte besitzen. Zeichenketten mit einer Länge, die ungleich des Vielfachen der Länge von 8-Byte ist, können nicht verschlüsselt werden. In einem solchen Fall muss die Zeichenkette auf eine entsprechende Länge erweitert werden. Das Beispiel in Abbildung 3 zeigt, wie man eine Zeichenkette erweitern kann, damit man sie mit dem DBMS_OBFUSCATION_TOOLKIT Package verschlüsseln kann.

i := 8 - MOD( LENGTH('HALLO'), 8 ); v_klartext := 'HALLO' RPAD(CHR(i), i, CHR(i)); DBMS_OBFUSCATION_TOOLKIT.DES3Encrypt(input_string=>v_klartext,... Abb. 3: Verschlüsseln: Eine Zeichenkette muss verlängert werden, bis die Länge einem Vielfachen der Länge von 8-Byte entspricht. Im Quellcode in Abbildung 3 wird zuerst die Anzahl der Stellen ermittelt, die der Zeichenkette HALLO fehlen, um auf eine Länge zu gelangen, die ein Vielfaches der Länge von 8-Byte darstellt. Anschließend wird die ermittelte Anzahl an aufzufüllenden Stellen als ASCII-Code interpretiert und der CHR Funktion übergeben. Die CHR Funktion liefert zu einem ASCII-Code das entsprechende Zeichen aus der ASCII- Tabelle zurück. Danach wird die HALLO Zeichenkette so oft um das Zeichen aus der ASCII-Tabelle erweitert, bis die Gesamtlänge der Zeichenkette ein Vielfaches der Länge von 8-Byte besitzt. Für die Entschlüsselung der Zeichenkette gilt das analoge Verfahren. Dabei muss der Klartext um die erweiterten Zeichen aus der ASCII-Tabelle gekürzt werden (s. Abbildung 4). DBMS_OBFUSCATION_TOOLKIT.DES3Decrypt(input_string=>v_chiffretext,... v_laenge := LENGTH(v_klartext); v_klartext := RPAD(v_klartext,v_laenge - ASCII(SUBSTR(v_klartext,v_laenge))); Abb. 4: Entschlüsselung: Die bei der Verschlüsselung verlängerte Zeichenkette wird auf die eigentliche Länge zurückgekürzt. Der Vorteil bei der oben beschriebenen Vorgehensweise ist, dass die Zeichenketten immer nur um Steuerzeichen wie z. B. ^E oder ^G erweitert werden. Derartige Steuerzeichen kommen in Zeichenketten nur selten vor. Schlüsselmanagement Eine zentrale Rolle bei der Verschlüsselung spielt das Erzeugen und Verwalten des Schlüssels. Besteht ein Schlüssel aus einfachen, zusammengesetzten Wörtern, so errät man diesen leicht. Für die Erzeugung von sicheren und zufälligen Schlüsseln stellt Oracle im DBMS_OBFUSCATION_TOOLKIT Package spezielle DESGetKey- bzw. DES3GetKey Funktionen zur Verfügung. Um einen Schlüssel mit Hilfe der DES3GetKey Funktion zu erzeugen, wird eine beliebige Zeichenkette benötigt, die der Funktion DESGetKey als Parameter übergeben wird. Diese (beliebige) Zeichenkette wird bei der Generierung von Schlüsseln benötigt. Sie muss mindestens 80 Zeichen lang sein. Nachdem ein Schlüssel erzeugt wurde, stellt sich die Frage, wo dieser abgelegt werden kann. Grundsätzlich besteht die Möglichkeit, einen Schlüssel in der Datenbank, in einer Datei im Betriebssystem oder in der Datenbankanwendung zu speichern. Darüber hinaus kann die Eingabe des Schlüssels durch den Anwender selbst erfolgen. Wird die Eingabe des Schlüssels dem Anwender selbst überlassen, so kann es vorkommen, dass dieser den Schlüssel vergisst bzw. verliert. In einem solchen Fall können die verschlüsselten Daten nicht wieder entschlüsselt werden.

Legt man den Schlüssel in einer Datei auf dem Dateisystem ab, so kann es bei häufigen Zugriffen auf den Schlüssel zu Performanceeinbußen kommen. Wird der Schlüssel in der Anwendung abgelegt, so kann sichergestellt werden, dass selbst ein Datenbankadministrator die verschlüsselten Daten nicht entschlüsseln kann. Voraussetzung dafür ist allerdings, dass die Anwendung sich auf einem anderen Rechner befindet als die Datenbank. Auswirkungen der Verschlüsselung auf die Performance Da die Daten vor der Darstellung entschlüsselt und vor dem Abspeichern verschlüsselt werden müssen, ist mit einer erhöhten Ausführungszeit solcher Datenbankanwendungen zu rechnen. Die erhöhte Ausführungszeit macht sich vor allem bei einer Jobverarbeitung mit sehr großen Datenmengen bemerkbar. Bei einem Programm mit einer Benutzerschnittstelle fällt allerdings die etwas höhere Ausführungszeit nahezu nicht ins Gewicht. Hier liegt die Ausführungszeit erfahrungsgemäß im Millisekundenbereich. Fazit Mit dem DBMS_OBFUSCATION_TOOLKIT Package bietet Oracle eine Möglichkeit, Daten in der Datenbank zu verschlüsseln. Ziel der Datenverschlüsselung ist, einen unberechtigten Zugriff von Dritten auf sensible Daten und deren Manipulation und Missbrauch zu verhindern. Es ist allerdings zu beachten, dass die hohe Sicherheit zu Performanceeinbußen bei der Ausführungszeit von Datenbankanwendungen führt. Die Verschlüsselung sollte demzufolge nur dann eingesetzt werden, wenn sensible Daten gespeichert werden sollen und eine hohe Sicherheit der Daten erforderlich ist. Das DBMS_OBFUSCATION_TOOLKIT Package ist sowohl in der Oracle Standard Edition als auch in der Oracle Enterprise Edition verfügbar. Im Gegensatz zu der Advanced Security Option (ASO), mit der unter anderem die Datenübertragung im Netz verschlüsselt werden kann, ist das DBMS_OBFUSCATION_- TOOLKIT Package nicht lizenzpflichtig und verursacht somit keine zusätzlichen Kosten. Kontakt: Markus Fiegler (info@ordix.de) ORDIX AG Westernmauer 12-16 D-33098 Paderborn