DE602004013024T2 - Datenbanksystem mit zweitem Präprozessor und Verfahren für den Zugriff auf eine Datenbank - Google Patents

Datenbanksystem mit zweitem Präprozessor und Verfahren für den Zugriff auf eine Datenbank Download PDF

Info

Publication number
DE602004013024T2
DE602004013024T2 DE200460013024 DE602004013024T DE602004013024T2 DE 602004013024 T2 DE602004013024 T2 DE 602004013024T2 DE 200460013024 DE200460013024 DE 200460013024 DE 602004013024 T DE602004013024 T DE 602004013024T DE 602004013024 T2 DE602004013024 T2 DE 602004013024T2
Authority
DE
Germany
Prior art keywords
database
preprocessor
query
encryption
encrypted
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
DE200460013024
Other languages
English (en)
Other versions
DE602004013024D1 (de
Inventor
Ulf Mattsson
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Protegrity Corp
Original Assignee
Protegrity Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Protegrity Corp filed Critical Protegrity Corp
Publication of DE602004013024D1 publication Critical patent/DE602004013024D1/de
Application granted granted Critical
Publication of DE602004013024T2 publication Critical patent/DE602004013024T2/de
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2107File encryption
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2463/00Additional details relating to network architectures or network communication protocols for network security covered by H04L63/00
    • H04L2463/041Additional details relating to network architectures or network communication protocols for network security covered by H04L63/00 using an encryption or decryption engine integrated in transmitted data

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Storage Device Security (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Description

  • Technisches Gebiet
  • Die vorliegende Erfindung betrifft ein Datenbanksystem mit einer Datenbank und einem Datenbank-Managementsystem zum Zugriff auf die Datenbank, welches einen ersten Präprozessor umfasst, welcher mit dem Datenbank-Managementsystem kommuniziert, um Abfragen von einer Client-Anwendung zu empfangen.
  • Die Erfindung bezieht sich ferner auf ein Verfahren zum Zugreifen auf eine Datenbank mit einem solchen System.
  • Technischer Hintergrund
  • Werden Verschlüsselungen in einer Datenbankumgebung, z. B. in Verbindung mit einer Serveranwendung, verwendet, so kann die Verschlüsselung/Entschlüsselung seitens der Datenbank oder seitens der Anwendung durchgeführt werden. Beide Alternativen besitzen ihre Vor- und Nachteile.
  • Gemäß der ersten Alternative werden die Daten verschlüsselt, sobald sie in der Datenbank gespeichert werden. Die Verschlüsselung wird im Allgemeinen mittels eines Datenbank-Prozeduraufrufes ("Database Procedure Call") ausgeführt. Einige Anbieter unterstützten begrenzte Verschlüsse lungsmöglichkeiten mittels Datenbank-Erweiterungspacks (Add-ons). Andere Anbieter bieten lediglich "Alles-oder-nichts"-Lösungen zur Verschlüsselung an, d. h. entweder die gesamte Datenbank ist verschlüsselt oder gar nichts.
  • Das stärkste Argument für die Verschlüsselung von Daten innerhalb des Datenbank-Managementsystems (DBMS) besteht darin, dass viele Anwendungen von der Verschlüsselung unbeeinflusst sind, d. h. die DBMS-basierte Verschlüsselung kann ohne eine Vornahme von größeren Veränderungen in Vorgängerversionen der Anwendungen, E-Commerce-Anwendungen etc. durchgeführt werden. Indes erfordert diese Lösung einen Einsatz von verschlüsselter Kommunikation zwischen der Datenbank und den Anwendungen, wenn die Daten während interner Übertragungen (Transaktionen) hinsichtlich einer Zugänglichkeit als gefährdet erachtet werden. Da sämtliche Daten, welche in die Datenbank eingegeben oder aus dieser ausgegeben werden, entschlüsselt werden, werden die Daten andernfalls als Klartext übermittelt.
  • Ein inhärentes Gefahrenpotenzial der DBMS-basierten Verschlüsselung besteht überdies darin, dass der zur Verschlüsselung der Daten verwendete Schlüssel mit hoher Wahrscheinlichkeit durch übliche Zugriffskontrolle geschützt in einer Datenbanktabelle im Innern der Datenbank gespeichert wird. Häufig besitzen die Nutzer, welche Zugriffsrechte auf die verschlüsselten Daten besitzen dürfen, auch Zugriffsrechte auf den Verschlüsselungsschlüssel. Dies kann zu einem Gefährdungspotenzial für die Sicherheit führen, weil der verschlüsselte Text nicht von den Mitteln zu seiner Entschlüsselung getrennt ist.
  • Ein weiterer Hauptnachteil im Zusammenhang mit DBMS-Verschlüsselungswerkzeugen stellt die zusätzliche Verarbeitungslast dar. Da sowohl die Verschlüsselung als auch die Entschlüsselung in der Datenbank durchgeführt werden, wird das DBMS zur Durchführung zusätzlicher Prozeduren abgefragt – nicht nur im Falle einer Speicherung von Daten, sondern jedes Mal, wenn hierauf zugegriffen wird. Eine Verwendung von schnelleren Datenbankindizes vermag dieses Problem zu vermindern.
  • Gemäß der zweiten Alternative werden die Daten in einer Anwendungsstufe verschlüsselt/entschlüsselt. Eine Verlagerung der Verschlüsselung hin zu den Anwendungen, welche die Daten erzeugen, erhöht die Sicherheit.
  • Dies erfordert jedoch Änderungen des Quellcodes in den Stufen aller beteiligter Anwendungen sowie Werkzeuge zur Handhabung der Verschlüsselung/Entschlüsselung. Ferner werden einige der gegenwärtigen Datenbankoperationen sowie eine gemeinsame Benutzung der Daten zwischen den Anwendungen (Daten-Sharing) unterdrückt. Hierdurch erweist sich diese Alternative als ungeeignet für eine großangelegte Implementierung.
  • Die dezentrale Verschlüsselung erzeugt darüber hinaus eine insgesamt erhöhte Datenkommunikation sowie eine erhöhte Serververwaltung.
  • Die US 2004/059912 A1 beschreibt einen EDM-Server, welcher eine EDM-Datenbank steuert. Ein EDM-Client stellt ein Arbeitsplatzsystem mit einer Schnittstelle mit dem EDM-Server zur Verfügung, so dass er einem Nutzer an dem Arbeitsplatzsystem den Zugriff auf die EDM-Datenbank ermög licht. Ein Krypto-Server ist funktionell zwischen einer Anwendung und dem EDM-Client angeordnet und fängt I/O-Abfragen durch die Anwendung ab bzw. ein.
  • Die WO 00/69112 A1 beschreibt ein Datenbank-Managementsystem, welches Abfragen entgegennimmt und auf solche Abfragen mit Daten aus einer Datenbank antwortet. Das DBMS umfasst einen I/O-Bereich, welcher die Abfragen und Antworten behandelt. Der I/O-Bereich behandelt ferner den Prozess einer Weitergabe der Daten an eine Verschlüsselung/Entschlüsselung.
  • Zusammenfassung der Erfindung
  • Ein Ziel der vorliegenden Erfindung besteht darin, einigen der vorgenannten Probleme zu begegnen und ein Datenbank-Verschlüsselungssystem vorzuschlagen, welches einen ausgewogenen und optimierten Betrieb ermöglicht.
  • Ein weiteres Ziel der Erfindung besteht darin, eine End-2-End-Verschlüsselung für ausgewählte Bereiche der Datenbank vorzuschlagen.
  • Diese und weitere Ziele werden mit einem Datenbanksystem sowie mit einem Verfahren zum Zugreifen auf eine Datenbank gemäß den beigefügten Ansprüchen erreicht.
  • Gemäß einem Aspekt der Erfindung werden diese Ziele bei einem System der eingangs genannten Art erreicht, welches ferner einen zweiten Präprozessor, welcher funktionell zwischen der Client-Anwendung und dem ersten Präprozessor vorgesehen ist, um für eine Verschlüsselung/Entschlüsselung von Daten zu sorgen, sowie einen Dispatcher umfasst, wel cher zur Unterteilung einer Abfrage in Teilabfragen und zur Übermittlung einer jeden Teilabfrage entsprechend einer ausgewählten Verschlüsselungsstufe an den ersten oder zweiten Präprozessor ausgebildet ist.
  • Der zweite Präprozessor ermöglicht einen dynamischen Abgleich der Verschlüsselung außerhalb und innerhalb des Datenbanksystems selbst. Der Präprozessor lagert einige Verarbeitungsvorgänge der Verschlüsselung an die Anwendungen aus. Dies weist zwei Vorteile auf. Einerseits wird die Rechenüberlast der Kryptographie zwischen dem DBMA und den Anwendungen ausgeglichen. Andererseits – was möglicherweise von noch größerer Bedeutung ist – wird eine weitere Trennung des Kryptosystems in Verbindung mit einem Verfahren zur Aufnahme sämtlicher erforderlicher Datenbankabläufe ermöglicht (einschließlich JOIN-Operationen, gespeicherten Prozeduren etc.).
  • Es ist wichtig darauf hinzuweisen, dass die Datenbank selbst nicht in die beschriebene Verschlüsselung/Entschlüsselung involviert ist. Die an die Datenbank von dem zweiten Präprozessor weitergeleiteten Abfragen stellen offene Abfragen dar, d. h. die Datenbank behandelt sie als gänzlich unverschlüsselt. Die gesamte Verschlüsselung liegt in dem zweiten Präprozessor und stellt sicher, dass einige Tabellen in der Datenbank nur verschlüsselte Daten enthalten.
  • Der Verschlüsselungsprozess in dem zweiten Präprozessor kann Verschlüsselungsschlüssel verwenden, welche nicht in Datenbank- oder Anwendungsprozessen exponiert sind.
  • Darüber hinaus können Administratorfunktionen von Datenbank-Administratorfunktionen und von Anwendungs-Administratorfunktionen getrennt werden, da der Präprozessorprozess Prozesse und Daten verwendet, welche von den Informationen getrennt sind, die in Datenbank- und Anwendungsprozessen exponiert sind.
  • Der erfindungsgemäße Präprozessor sorgt folglich sowohl für eine Verschlüsselung als auch für eine Entschlüsselung jeglicher Bereiche der Datenbank, auf welche zugegriffen wird. Dies stellt eine wertvolle Eigenschaft zur Verminderung der Last einer verschlüsselten Datenbank dar, welche aber auch genutzt werden kann, um für eine Verschlüsselung/Entschlüsselung eines Datenbanksystems zu sorgen, welches überhaupt nicht an eine Unterstützung einer solchen Verschlüsselung/Entschlüsselung angepasst ist. Als solche liefert diese Ausführungsform der Erfindung ein einfach implementierbares Verschlüsselungs-/Entschlüsselungssystem für eine beliebige Datenbank. Die Verschlüsselung kann einer großen Anzahl an Anwendungsservern zugeteilt und kann die geringere Anzahl an Datenbankservern entsprechend entlastet werden.
  • Die Entscheidung, welche Abfragen verschlüsselt/entschlüsselt werden sollen, kann von einer Strategie (Policy) verwaltet werden, welche dem Präprozessor z. B. über ein Schlüsselverwaltungssystem zugänglich ist. In Abhängigkeit von dieser Strategie kann die Menge der von dem Präprozessor durchgeführten Entschlüsselung variieren. Das erfindungsgemäße System ist folglich auf einfache Weise skalierbar, um die Verschlüsselung/Entschlüsselung von Abfragen von vielen verschiedenen Anwendungen zu behandeln. Da der Präprozessor mit verschiedenen DB-Servern verbunden sein kann, ist die Lösung ferner unter Einschluss von verschiedenen Datenbanken skalierbar.
  • Die Erfindung ist nicht auf zwei Präprozessoren beschränkt, sondern kann auf eine beliebige Anzahl an Präprozessoren erweitert werden.
  • Der zweite Präprozessor ist vorzugsweise an ein Abfangen einer Abfrage von der Anwendung sowie an ein Parsen (Analysieren) dieser Abfrage, bevor sie an den Dispatcher weitergeleitet wird, angepasst.
  • In bevorzugter Ausführung umfasst der zweite Präprozessor Mittel zum Parsen einer Abfrage, welche einer vorherbestimmten Teilmenge an Abfragen zugehörig ist. Dies macht es dem Präprozessor möglich, die abgefangene Abfrage zu evaluieren, wobei die Last des Proxys vermindert wird, während die Effizienz der Verschlüsselung/Entschlüsselung verbessert wird.
  • In diesem Fall kann das System ferner Mittel zum Abändern der erkannten Abfrage umfassen, um verschlüsselte Informationen von der Datenbank anzufordern und die abgeänderte Abfrage an die Datenbank weiterzuleiten.
  • Gemäß einer bevorzugten Ausführungsform ist vorgesehen, dass das Mittel zum Erkennen einer DB-Abfrage zum Erkennen einer Teilmenge der Standardabfragesprache (SQL, Standard Query Language) ausgebildet ist. Die Abänderung kann dann beispielsweise einen Austausch des Datenbanktabellennamens umfassen, wobei angezeigt wird, dass ein verschlüsseltes Ergebnis abgefragt wird.
  • Sowohl der erste Präprozessor als auch der zweite Präprozessor können in einem Datenbank-Managementsystem implementiert sein. Alternativ kann der zweite Präprozessor in einem Zwischenserver implementiert sein, welcher zwischen der Anwendung und dem Datenbank-Managementsystem angeordnet ist. Der Zwischenserver kann ein Proxy-Server sein, wobei zwischen dem Client und dem Zwischenserver vorzugsweise eine SSL-Leitung vorgesehen ist.
  • Kurze Beschreibung der Zeichnungen
  • Nachstehend sind diese sowie weitere Aspekte der vorliegenden Erfindung anhand von gegenwärtig bevorzugten Ausführungsformen unter Bezugnahme auf die beigefügten Zeichnungen näher erläutert. Dabei zeigen:
  • 1 ein schematisches Blockschaltbild eines Datenbanksystems mit einem erfindungsgemäßen Präprozessor; und
  • 2 ein Fließbild einer Ausführungsform eines erfindungsgemäßen Verfahrens, welches zur Implementierung in dem System gemäß 1 geeignet ist.
  • Detaillierte Beschreibung
  • 1 zeigt eine Datenbanksystemumgebung, in welcher die Erfindung implementiert worden ist. Die beiden strichlinierten Umrisse 1 und 2 stellen jeweils eine Clientseite und eine Serverseite dar. Die Clientseite 1 umfasst eine Clientanwendung 3, während die Serverseite 2 ein Datenbank-Managementsystem 6 einschließlich eines DB-Servers (z. B. ein Secure-DataTM von Protegrity Inc.) sowie ei ne Datenbank 7 umfasst. Die Serverseite 2 umfasst des Weiteren ein Schlüsselverwaltungssystem 8 einschließlich beispielsweise eines Sicherheitssystems (SS) (z. B. Secure.ServerTM von Protegrity Inc.), eines Sicherheitsadministrationssystems (SAS) (z. B. (z. B. Secure.ManagerTM von Protegrity Inc.) und einer Datensicherheitserweiterung (Data Security Extension, DSE), z. B. eines Typs, wie er ebenfalls von Protegrity Inc. erhältlich ist. Das SAS wird von dem Administrator genutzt, um eine Policy-Datenbank 11 zu verwalten, auf welche von dem Schlüsselverwaltungssystem 8 aus zugegriffen werden kann, um festzustellen, welche Aktionen (z. B. Lesen oder Schreiben in bestimmte(n) Tabellen der Datenbank 7) einem individuellen Nutzer erlaubt sind.
  • Das Datenbanksystem umfasst ferner einen ersten, auch als Back-End-Präprozessor bezeichneten Präprozessor 12, welcher zum Empfangen von Abfragen von der Anwendung 3 ausgebildet ist. Der Abfrageprozessor kommuniziert mit dem DB-Server 6 und ist zum Zugreifen auf Informationen in der Datenbank ausgebildet. Ist die Datenbank 7 verschlüsselt, so ist der Back-End-Präprozessor zum Behandeln von Verschlüsselungen/Entschlüsselungen ausgebildet.
  • Zwischen der Anwendung 3 und dem DB-Server ist darüber hinaus ein auch als Front-End-Präprozessor bezeichneter, zweiter Präprozessor 14 angeordnet. Dieser Präprozessor ist zum Abfangen einer beliebigen Abfrage ausgebildet, welche von der Anwendung 3 an den Back-End-Präprozessor 12 übermittelt worden ist. Der Front-End-Präprozessor 14 ist vorzugsweise zum Erkennen einer Teilmenge der verwendeten Abfragesprache, beispielsweise SQL, ausgebildet. Eine solche erkannte Teilmenge kann einfache Abfragen, wie "Wähle das Alter der Person" und "Gebe Personendaten ein ('John', 'Smith', 34)", umfassen. Der Front-End-Präprozessor 14 ist ferner zur Behandlung von Verschlüsselung/Entschlüsselung ausgebildet, wodurch eine alternative Methode zur Verfügung steht, um eine Verschlüsselung der Datenbankinformationen zu ermöglichen.
  • Mit den beiden Präprozessoren 12, 14 sowie mit dem Schlüsselverwaltungssystem 8 ist ein Dispatcher 16 verbunden, welcher zum Empfangen einer beliebigen, von dem Front-End-Präprozessor abgefangenen Abfrage ausgebildet ist, wobei er ferner zum Auswählen, welcher Präprozessor die Kommunikation mit der Datenbank 7 behandeln soll, auf der Basis der Informationen gemäß der Policy-DB 11 ausgebildet ist. Beim Treffen dieser Auswahl wird darüber hinaus festgelegt, welcher Präprozessor die Verschlüsselung/Entschlüsselung behandeln soll.
  • Der zweite Präprozessor 14 kann als ein separater Prozess in dem Datenbanksystem implementiert sein, oder er ist als ein Zwischenserver zwischen dem Client und dem Server, beispielsweise als ein Proxy-Server, implementiert. Die gesamte Serverseite 2 mit ihren verschiedenen Komponenten kann in eine einzige Hardwareeinheit integriert oder unter verschiedenen Einheiten verteilt vorgesehen sein.
  • Nachstehend ist die Funktion des Systems gemäß 1 unter Bezugnahme auf 2 näher erläutert.
  • In einem Schritt S1 fängt der Front-End-Präprozessor 14 zunächst eine von der Clientanwendung 3 an die Datenbank 7 übermittelte Abfrage ab und parst diese Abfrage (sofern dies möglich ist). Ist das Parsen erfolgreich (Schritt S2), so wird die Abfrage an den Dispatcher übermittelt (Schritt S3). Im Falle des dargestellten Ausführungsbeispiels mit nur zwei Präprozessoren werden nicht erkannte Abfragen an den Back-End-Präprozessor 12 weitergeleitet (Schritt S4). Im allgemeinen Fall einer Mehrzahl an Präprozessoren entscheidet der Dispatcher, wohin eine Abfrage übermittelt werden soll, welche von dem Front-End-Präprozessor nicht erkannt worden ist.
  • Der Dispatcher führt die Übermittlung der Verschlüsselung aus (Schritt S5), d. h. die Abfrage wird in Teilabfragen unterteilt, welche sich auf verschiedene Bereiche, z. B. auf verschiedene Spalten, der Datenbank beziehen. Dabei ist es möglich, dass sich verschiedene Teilabfragen auf Bereiche der Datenbank 7 mit unterschiedlichen Sicherheits- und/oder Verschlüsselungsstufen beziehen.
  • Der Dispatcher behandelt sodann die Authentifizierung und Autorisierung des Nutzers (Schritt S6), indem auf das Schlüsselverwaltungssystem 8 zugegriffen wird. Nach der Authentifizierung und Autorisierung übermittelt der Dispatcher eine jede Teilabfrage an denjenigen Präprozessor 12, 14 (Schritt S7), welcher von dem Schlüsselverwaltungssystem angezeigt wird, um die Verschlüsselung dieses speziellen Bereiches der Datenbank vorzunehmen.
  • Teilabfragen, welche an den Back-End-Präprozessor 12 übermittelt worden sind, werden mit einer beliebigen Verschlüsselung behandelt, welche in dem Datenbanksystem 6 implementiert ist. Teilabfragen, welche an den Front-End-Präprozessor 14 übermittelt worden sind, werden jedoch mit einer zusätzlichen Verschlüsselung behandelt, wodurch eine erhöhte Verschlüsselungsstufe für ausgewählte Bereiche der Datenbank 7 ermöglicht wird. Wie oben erwähnt, kann eine solche zusätzliche Verschlüsselung einem bereits existierenden Datenbanksystem hinzugefügt werden, indem der Front-End-Präprozessor 14 und der Dispatcher 16 zur Verfügung gestellt werden.
  • Ein Falle eines Einfügevorgangs ("insert") verschlüsselt der Front-End-Präprozessor 14 die Daten in der Abfrage (Schritt S10), ändert die Abfrage ab (Schritt S11), um die verschlüsselten Daten einzuschließen, und übermittelt die Abfrage dann an die Datenbank, so dass die Tabelle mit den verschlüsselten Daten aktualisiert wird (Schritt S12).
  • Im Falle eines Abfragevorgangs ("request") kann der Front-End-Präprozessor 14 die Abfrage abändern und eine ab geänderte Abfrage an die Datenbank 7 übermitteln (Schritt S13). Die abgefragte Information wird aus der Datenbank 7 entnommen (Schritt S14) und entschlüsselt (Schritt S14). Das entschlüsselte Ergebnis wird sodann an die Clientanwendung 3 zurück übermittelt (Schritt S16).
  • Wird beispielsweise die Abfrage "Wähle das Alter der Person" erkannt und wird von dem Dispatcher festgestellt, dass eine verschlüsselte Tabelle involviert ist, so kann die Abfrage in "Wähle das Alter der Person_verschl" abgeändert werden, was impliziert, dass Daten aus einer verschlüsselten Tabelle in der Datenbank ausgewählt werden sollen. Wenn die verschlüsselten Daten von der Datenbank 7 empfangen werden, so entschlüsselt der Präprozessor 14 diese Daten, bevor sie über die Sicherheitsleitung an die Clientanwendung 3 übermittelt werden.
  • In gleicher Weise kann "Gebe Personendaten ein 'John', 'Smith', 34" abgeändert werden in "Gebe Personendaten_verschl ein", was impliziert, dass Daten in eine verschlüsselte Tabelle eingegeben werden sollen. Zugleich führt der Präprozessor 14 die Verschlüsselung der Datenfelder in der Abfrage durch, so dass die weitergeleitete Abfrage ähnlich wie "Gebe Personendaten_verschl ein 'xxxxx' 'xxxxx' xx" aussieht. Diese Abfrage stellt sicher, dass verschlüsselte Daten in die Datenbank eingegeben werden, ohne eine jegliche Verschlüsselung des DBMS 6 zu erfordern.
  • Aus den vorstehenden Ausführungen wird klar, dass der Front-End-Präprozessor 14 die gesamte Verschlüsselung/Entschlüsselung in Bezug auf ausgewählte Tabellen behandelt. Aus diesem Grund sei darauf hingewiesen, dass in einem Fall, in welchem die Datenbank selbst nicht an die Behandlung einer Verschlüsselung angepasst ist, die Erfindung als solche eine verschlüsselte Schnittstelle mit der Datenbank erzeugen kann, um eine Verschlüsselung/Entschlüsselung von bestimmten Tabellen zu ermöglichen. Welche Tabellen verschlüsselt werden sollen, wird durch den Inhalt der Policy-Datenbank 11 geregelt.
  • Das erfindungsgemäße Verfahren unterscheidet sich von herkömmlichen Verfahren in der Art und Weise der Kommunikation mit dem DB-Server 6. Im ersten Fall (Abfrage wird nicht erkannt oder Tabelle wird nicht ausgewählt, um durch das Modul 12 verschlüsselt zu werden) muss jegliche Verschlüsselung/Entschlüsselung sowie Authentifizierung innerhalb des DB-Servers 6 durchgeführt werden, während im zweiten Fall (Abfrage wird erkannt und die Tabelle wird ausgewählt, um durch das Modul 12 verschlüsselt/entschlüsselt zu werden) die Verschlüsselung/Entschlüsselung sowie die Au thentifizierung außerhalb des DB-Servers 6 durchgeführt wird, wodurch die Verifikation der Authentifizierung erleichtert wird, bevor eine Verschlüsselung/Entschlüsselung der speziellen geschützten Daten durchgeführt wird.
  • Durch das Festlegen der Teilmenge von Abfragen, welche von dem Präprozessor 14 erkannt werden, sowie durch das Auswählen einer Anzahl an Tabellen in der Datenbank, welche in ein Profil in der Policy-Datenbank eingeschlossen werden sollen, ist es dem Nutzer möglich zu entscheiden, in welchem Ausmaß eine Authentifizierung sowie eine Verschlüsselung/Entschlüsselung in dem Präprozessor 14 stattfinden soll.
  • Der Präprozessor 14 ist vorzugsweise eine Erweiterung (Add-on) für eine existierende Datenbank, wobei er dem Nutzer ein Höchstmaß an Flexibilität bietet.
  • der Präprozessor 14 muss nicht irgend welche Syntaxfehler behandeln, da jegliche nicht erkannte Abfrage (einschließlich fehlerhafter Abfragen) einfach an das DBMA 6 weitergeleitet wird (Schritt S4 in 2).
  • Dadurch dass nur einfache Abfragen in die Teilmenge eingeschlossen werden, ist eine Ausführungsform der Erfindung sehr einfach und mit nur geringen Kosten implementierbar. JOIN-Operationen müssen nicht in dem Präprozessor behandelt werden und vollständige Tabellen müssen nicht in den Präprozessor geladen werden, um Berechnungen durchzuführen. Da in der Regel ein großer Anteil der begehrten Abfragen einfache Abfragen sind, vermag eine solche Implementierung mit geringer Komplexität einer Mehrzahl an Nutzern eine zufriedenstellende Leistungsfähigkeit bieten.
  • Indes besteht kein technischer Grund, die gesamte SQL-Sprache nicht in die Teilmenge einzuschließen, um eine effektive Festlegung der Tabellenauswahl in der Policy-Datenbank 11 dahingehend zu ermöglichen, welche Tabellen in dem Präprozessor 5 verschlüsselt/entschlüsselt werden sollen.
  • Der Präprozessor 14 kann eine SSL-Verschlüsselung (Secure Socket Layer) mit starker Authentifizierung unterstützen, um eine SSL-Verbindung zwischen dem Client und dem Server zu ermöglichen. Das für die Authentifizierung verwendete Zertifikat kann mit dem erfassten Datenbanknutzer abgeglichen werden, um für eine starke Authentifizierung zu sorgen. In dem Fall, in welchem der Präprozessor 14 in demselben Prozess wie das DBMS 6 beinhaltet ist, besitzt das DBMS folglich die gesamte Kontrolle über den Authentifizierungsvorgang. Indes ist es auch möglich, das DBMS 6 und den Präprozessor 14 getrennt voneinander zu implementieren, z. B. wenn der Präprozessor 14 als ein Zwischenserver implementiert ist.
  • Dem Fachmann ist offensichtlich, dass eine Vielzahl an Modifikationen der vorstehend beschriebenen Ausführungsform möglich ist. Solche Modifikationen können sich beispielsweise auf Details des DBMS 6 und seiner Komponenten oder auf Besonderheiten der Client-/Serverschnittstelle beziehen. So kann z. B. der Präprozessor 14 von dem Datenbankserver 2 körperlich getrennt in einer anderen Einheit implementiert sein.
  • Derartige Modifikationen des Systems weichen jedoch nicht von dem durch die Ansprüche bestimmten erfindungsge mäßen Konzept ab, wobei die vorstehende Beschreibung keine Einschränkung der Ansprüche in einer solchen Weise beabsichtigt.

Claims (11)

  1. Datenbanksystem, umfassend: – eine Datenbank (7), – ein Datenbank-Managementsystem (6) zum Zugriff auf die Datenbank (7), – einen ersten Präprozessor (12), welcher mit dem Datenbank-Managementsystem (6) kommuniziert, um Abfragen von einer Client-Anwendung (3) zu empfangen, – einen zweiten Präprozessor (14), welcher funktionell zwischen der Client-Anwendung und dem ersten Präprozessor (12) vorgesehen ist, um für eine Verschlüsselung/Entschlüsselung von Daten zu sorgen, dadurch gekennzeichnet, dass das Datenbanksystem einen Dispatcher (16) umfasst, welcher zur Unterteilung einer Abfrage in Teilabfragen und zur Übermittlung einer jeden Teilabfrage entsprechend einer ausgewählten Verschlüsselungsstufe an den ersten oder zweiten Präprozessor ausgebildet ist.
  2. System nach Anspruch 1, wobei der zweite Präprozessor an eine Verschlüsselung von in die Datenbank (7) einzugebenden Daten sowie an eine Eingabe dieser verschlüsselten Daten direkt in die Datenbank (7) angepasst ist.
  3. System nach Anspruch 1, wobei der zweite Präprozessor an eine Anforderung von verschlüsselten Daten aus der Datenbank (7) sowie an eine Entschlüsselung dieser verschlüsselten Daten angepasst ist.
  4. System nach Anspruch 1, wobei der zweite Präprozessor (14) an ein Abfangen einer Abfrage von der Anwendung (3) sowie an ein Parsen diese Abfrage angepasst ist, bevor sie an den Dispatcher (16) weitergeleitet wird.
  5. System nach Anspruch 4, wobei der zweite Präprozessor (14) Mittel zum Parsen einer Abfrage umfasst, welche einer vorherbestimmten Teilmenge an Abfragen zugehörig ist.
  6. System nach Anspruch 5, wobei der zweite Präprozessor ferner Mittel zum Abändern der Abfrage umfasst, um verschlüsselte Informationen von der Datenbank anzufordern und die abgeänderte Abfrage an die Datenbank weiterzuleiten.
  7. System nach Anspruch 5, wobei das Mittel zum Erkennen einer Datenbankabfrage zum Erkennen einer Teilmenge der Standardabfragesprache (SQL, Standard Query Language) ausgebildet ist.
  8. System nach Anspruch 7, wobei der zweite Präprozessor (14) ferner mit Mitteln (14) versehen ist, um den Tabellennamen einer erkannten SQL-Abfrage abzuändern.
  9. System nach Anspruch 1, wobei sowohl der erste Präprozessor (12) als auch der zweite Präprozessor (14) in einem Datenbank-Managementsystem (6) implementiert sind.
  10. System nach Anspruch 1, wobei der zweite Präprozessor (14) in einem Zwischenserver implementiert ist, welcher zwischen der Anwendung (3) und dem Datenbank-Managementsystem (6) angeordnet ist.
  11. System nach Anspruch 6, wobei der Zwischenserver ein Proxy-Server ist.
DE200460013024 2004-12-02 2004-12-02 Datenbanksystem mit zweitem Präprozessor und Verfahren für den Zugriff auf eine Datenbank Active DE602004013024T2 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
EP20040028568 EP1667396B1 (de) 2004-12-02 2004-12-02 Datenbanksystem mit zweitem Präprozessor und Verfahren für den Zugriff auf eine Datenbank

Publications (2)

Publication Number Publication Date
DE602004013024D1 DE602004013024D1 (de) 2008-05-21
DE602004013024T2 true DE602004013024T2 (de) 2009-05-20

Family

ID=34927622

Family Applications (1)

Application Number Title Priority Date Filing Date
DE200460013024 Active DE602004013024T2 (de) 2004-12-02 2004-12-02 Datenbanksystem mit zweitem Präprozessor und Verfahren für den Zugriff auf eine Datenbank

Country Status (2)

Country Link
EP (1) EP1667396B1 (de)
DE (1) DE602004013024T2 (de)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8543835B2 (en) * 2006-07-12 2013-09-24 Irdeto B.V. Tamper resistance of a digital data processing unit
CN102855448B (zh) * 2012-08-10 2016-02-10 深圳市黎明网络***有限公司 一种字段级数据库加密装置

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7096358B2 (en) * 1998-05-07 2006-08-22 Maz Technologies, Inc. Encrypting file system
WO2000069112A1 (en) * 1999-05-07 2000-11-16 Centura Software Precomputing des key schedules for quick access to encrypted databases
US7246245B2 (en) * 2002-01-10 2007-07-17 Broadcom Corporation System on a chip for network storage devices

Also Published As

Publication number Publication date
DE602004013024D1 (de) 2008-05-21
EP1667396B1 (de) 2008-04-09
EP1667396A1 (de) 2006-06-07

Similar Documents

Publication Publication Date Title
DE60112205T2 (de) Methode und Verfahren zum Schutz von aus einer Datenbank abgerufenen Daten
DE60218160T2 (de) Verfahren und systeme zur datenübertragung über ein netz
DE60020293T2 (de) Erzeugung eines wiederholbaren kryptographischen Schlüssels basierend auf variablen Parametern
DE102007033615B4 (de) Verfahren und Vorrichtung zum Umwandeln von Authentisierungs-Token zur Ermöglichung von Interaktionen zwischen Anwendungen
DE69935920T2 (de) Lastausgleich in einer netzwerkumgebung
DE69532549T2 (de) Datenverarbeitungssystem mit Verifikation der Echtheitsprüfung von kryptographischen Algorithmen nach dem Challenge-Response-Prinzip
DE69736697T2 (de) Verfahren und Gerät zur Steuerung von Zugriff auf Systembetriebsmittel
DE69029759T2 (de) Flexible Schnittstelle für Beglaubigungsdienste in einem verteilten Datenverarbeitungssystem
DE69832786T2 (de) Vorrichtung und verfahren zur identifizierung von klienten die an netzwer-sites zugreifen
DE69633564T2 (de) Zugangskontrolle und überwachungssystem für internetserver
DE69934207T2 (de) Verfahren zur Zugriffsprüfung eines Anwenders
DE202020005715U1 (de) Dynamische Maskierung geteilter Datenobjekte
DE112014001363T5 (de) Verfahren, Vorrichtung und computer-lesbares Medium zum Datentokenisieren
EP1108308A1 (de) System und verfahren zur ablaufkontrolle bei netzwerk-anwendungen
DE112020000538T5 (de) Feinkörnige zugriffskontrolle auf token-grundlage
DE202011110893U1 (de) Verwaltung mehrfacher Anmeldungen über einen Einzelbrowser
DE19925910A1 (de) Verfahren zum Be- oder Verarbeiten von Daten
DE112021004937T5 (de) Sicheres erneutes verschlüsseln von homomorph verschlüsselten daten
DE102012218576B4 (de) Verschlüsseln von Daten und Charakterisierungsdaten, die den gültigen Inhalt einer Spalte beschreiben
DE112008002462T5 (de) Datensicherheitsvorrichtung
DE202021004036U1 (de) Data Clean Room
DE60317498T2 (de) Verfahren und System zur Schlüsseldistribution mit einem Authentifizierungschritt und einem Schlüsseldistributionsschritt unter Verwendung von KEK (key encryption key)
DE102011077218A1 (de) Zugriff auf in einer Cloud gespeicherte Daten
EP3552141B1 (de) Server-computersystem zur bereitstellung von datensätzen
DE112021006008T5 (de) Sichere übertragung grosser datenmengen

Legal Events

Date Code Title Description
8364 No opposition during term of opposition