-
Die
Erfindung betrifft allgemein das Speichern von, das Schützen von
und das Zugreifen auf Daten.
-
Einer
der Schlüsselvorteile
des Speicherns großer
Mengen von Daten in einer Datenbank ist, dass eine bestimmte Teilmenge
der gespeicherten Daten in einer organisierten Weise abgefragt werden
kann. Oft wird die abgefragte Teilmenge der gespeicherten Daten
analysiert, um verschiedene Indikatoren zu studieren, wie beispielsweise
Wirtschaftstrends, Kundenreaktionen und ähnliches. Um über Kunden
zu lernen, sammeln Unternehmen verschiedene Typen von Information über ihre
Kunden, wie beispielsweise personenbezogene Daten, geographische/demographische
Daten, Einkaufs-Gewohnheiten usw. Solche Kundendaten werden in einem
Datenbank-System gespeichert, wie beispielsweise in einem Verwaltungssystem
für relationale
Datenbanken (Relational Database Management System, RDBMS), wo die
Daten in ein Format verarbeitet und sortiert werden können, das
zum Berichten oder Analysieren geeignet ist. Ein Beispiel eines
Datenbank-Systems, in dem eine solche Information gesammelt wird,
ist ein Datenlager (data warehouse), in dem Daten von einer Vielfalt
von Quellen eingegeben werden und in ein Format gebracht werden,
das zur Abfrage und Analyse oder zum Report strukturiert ist. Das
Volumen der gesammelten Daten in einem großen Datenlager ist typischerweise
im Gigabyte-Bereich und manchmal im Terabyte-Bereich oder höher.
-
Um
die immense Menge an in solchen Datenlagern gesammelten und verarbeiteten
Daten zu handhaben, werden üblicherweise
aufwändige
Plattformen verwendet. Die Plattformen schließen parallel verarbeitende
Systeme ein, wie beispielsweise massiv parallel verarbeitende (Massive
Parallel Processing, MPP) Systeme oder symmetrisch simultan verarbeitende
(Symmetric Multiprocessing, SMP) Systeme. Ein MPP-System ist üblicherweise
ein Multi-Knoten-System, das eine Mehrzahl von durch ein Netz verbundene
physische Knoten aufweist. Ein SMP-System ist üblicherweise ein Einzel-Knoten-System,
das mehrere Prozessoren aufweist. Gesammelte Daten werden in Speichervorrichtungen
in solchen Systemen gespeichert, auf welche die verschiedenen Knoten
oder Prozessoren zugreifen können,
um eine Verarbeitung auszuführen.
In einem parallelen System sind gespeicherte Datenportionen parallel
zugreifbar, um Zugriffsgeschwindigkeiten zu erhöhen.
-
Oft
werden Daten aus einer Speicher-Datenbank zur Kunden-Profilbildung entnommen.
Beispielsweise kann unter Verwendung von Datensätzen von Einzelhandels-Transaktionen
eines Kunden ein Kunden-Profil erstellt werden, das Ausgabe-Gewohnheiten
einschließt.
Die Ausgabe-Gewohnheiten des Kundenprofils können die Typen der gekauften
Waren und das Verfahren der Zahlungen, wie beispielsweise die Typen
und Nummern der verwendeten Kreditkarten, einschließen. Es
ist allgemein wünschenswert,
den Zugriff auf solch empfindliche Daten zu beschränken, um
die Wahrscheinlichkeit eines Betrugs zu reduzieren. Empfindliche
Daten, die Kreditkarteninformationen enthalten, können zwischen
einer Datenbank und einer Anzahl von Client-Computersystemen, die entfernt angeordnet
sein können, übertragen
werden; daher sind Maßnahmen
zur Sicherung der Daten wichtig.
-
Zur
Zeit wird der Zugriff auf in einer relationalen Datenbank gespeicherte
empfindliche Daten, wie beispielsweise Kreditkarteninformationen,
beschränkt
unter Verwendung von Einschränkungen
in der Benutzer-Schnittstelle, die zum Ansehen der Daten verwendet
wird. Während
diese Einschränkungen
vor unautorisiertem Zugriff durch solch eine Benutzer-Schnittstelle
schützen,
hindern sie nicht unautorisierte Parteien daran, die Datenübertragung,
wie beispielweise von einem Server-Computersystem zu einem Client-Computersystem,
abzuhören.
Außerdem
verhindern die vorliegenden Verfahren nicht, dass empfindliche Daten
durch Arbeitspersonal abgehört
werden, die Computer-Absturz-Speicherauszug-Daten (Computer Crash
Dump Data) analysieren. Ein einfaches Verschlüsseln der empfindlichen Daten
kann vor dieser Art von unautorisiertem Zugriff schützen, es
führt jedoch
auch zu einer exorbitanten Menge an Verarbeitungs-Overhead, wenn
komplexe Vergleiche oder Aggregationen mit den Daten durchgeführt werden.
-
„An Access
Control Mechanism for Object-Oriented Database Systems", Tadashi Araki et
al., IEICE Transactions on Fundamentals of Electronics, Communications
and Computer Sciences, Vol. E76-A, Nr. 1, 1993, S. 112–121 beschreibt
ein Objektorientiertes Datenbank-System, in dem den Daten-Objekten
Sicherheitsstufen zugewiesen werden.
-
Die
US-A-5,559,888 offenbart ein gesichertes Informations-Abfragesystem, das
drei Stufen von vertrauenswürdigem
Zugriff auf eine Datenbank umfasst.
-
Gemäß einem
ersten Aspekt besteht die Erfindung in einem Verfahren zur Übergabe
von gesicherten Informationen aus einem Datenbank-System nach Anspruch
1.
-
Andere
Merkmale und Ausführungsformen
werden aus der folgenden Beschreibung, aus den Zeichnungen und aus
den Ansprüchen
deutlich werden.
-
Ausführungsformen
der vorliegenden Erfindung werden nun unter Bezugnahme auf die beiliegenden Zeichnungen,
in denen gleiche Bezugszeichen gleiche Elemente identifizieren,
beschrieben, wobei die Figuren zeigen:
-
1 ist
ein Blockdiagramm eines Beispiel-Datenbank-Kommunikations-Systems, das Datenbank-Controller
enthält
und in Übereinstimmung
mit einer Ausführungsform
der vorliegenden Erfindung ist;
-
2 zeigt
eine alternative Darstellung des Datenbank-Kommunikations-Systems der 1,
das Datenbank-Controller
enthält;
-
3 zeigt
eine genauere Darstellung einer Ausführungsform der in den 2 und 3 dargestellten
Datenbank-Controller;
-
4 zeigt
eine Ausführungsform
der Datenbank, die in dem Kommunikationssystem der 2 und 3 verwendet
werden kann;
-
5 zeigt
eine Flussdiagramm-Darstellung einer Ausführungsform der Verfahren, die
Datenkommunikation unter Verwendung von Benutzer-definierten Typen
unterstützen;
und
-
6 zeigt
eine genauere Darstellung einer Ausführung des Durchführens des
in der 5 beschriebenen Benutzer-definierter-Typ-Sicherheits-Protokolls.
-
Allgemein
ist ein bestimmtes Ausmaß an
Sicherheit zum Schutz von Daten gewünscht, wenn die Daten von einer
Vorrichtung zu einer anderen, wie beispielsweise von einem Server-System
zu einem Client-System, übertragen
werden. Oft werden empfindliche Daten von einem Computer-System
zu einem anderen übertra gen,
wobei Sicherheits-Maßnahmen
benötigt
werden, welche die Daten vor einem unautorisierten Zugriff schützen. Ausführungsformen
von Systemen, die verwendet werden, um zwischen Vorrichtungen übertragene Daten
zu schützen,
werden unten beschrieben.
-
Unter
Bezugnahme auf 1 ist ein System dargestellt,
das eine erste Datenbank 120, einen ersten Datenbank-Controller 210 und
einen Server 185 in Übereinstimmung
mit einer Anordnung der vorliegenden Erfindung umfasst. In einer
Ausführungsform
ist der erste Datenbank-Controller 210 fähig, angeforderte
oder angefragte Daten von der ersten Datenbank 120 zu sammeln
in Antwort auf Anforderungen oder Anfragen von einem Client 195.
In einer Anordnung enthält
der erste Datenbank-Controller 210 eine Schnittstelle,
die eine Übertragung
auf einer Netzverbindung 145 unterstützt. Das in der 1 beschriebene
System ist fähig,
Datenübertragungen
in einer gesichert organisierten Weise von einer Datenbank zu einer
anderen oder von einer Datenbank zu einem Client 195 zu
unterstützen.
In einer Ausführungsform
unterstützt
das System der 1 Datensicherheit durch Zuweisen
eines Benutzerdefinierten Datentyps oder eines kundenspezifischen
Datentyps, um durch die Verwendung von Verfahren Daten zu schützen und
den Zugriff zu beschränken.
-
In
der dargestellten Ausführungsform
empfängt
der Server 185 Anforderungen von dem Client 195. Die
Anforderungen, die in einem Beispiel Hypertext-Transfer-Protocol(HTTP)-Anfragen
sind, werden in ein Format übersetzt,
das von dem Datenbank-Controller 210 verstanden
werden kann, der wiederum Anfragen, wie beispielsweise Structure-Query-Language(SQL)-Anfragen,
an die Datenbank 120 ausgibt. In einer anderen Anordnung
ist der Client 195 direkt an den Datenbank-Controller 210 gekoppelt,
ohne über
den Server 185 zu laufen.
-
In
einer Ausführungsform
ist die Netzverbindung 145 üblicherweise entweder eine
private Netzverbindung oder eine öffentliche Netzverbindung oder
eine Kombination von beiden. Beispiele der Netzverbindung 145 schließen Kommunikations-Netze,
Kanäle,
Links oder Pfade und Systeme oder Vorrichtungen (wie beispielsweise
Router) ein, die dazu verwendet werden, Daten über solche Netze, Kanäle, Links
oder Pfade zu leiten. Eine private Netzverbindung 145 enthält üblicherweise
einen Großrechner-Zugang
und lokal ausgedehnte Netze (Local Area Networks, LANs) oder weit
ausgedehnte Netze (Wide Are Networks, WANs), während ein Beispiel für eine öffentliche
Netzverbindung das Internet ist. Die Typen von Vorrichtungen oder
Systemen, die Zugriff auf die Kommunikationsnetze haben, schließen sowohl
verkabelte als auch kabellose Vorrichtungen oder Systeme ein. Beispiele
von verkabelten Vorrichtungen enthalten persönliche Schreibtisch-Computer-Systeme,
die auf die Netzverbindung 145 durch Telefonwähldienste
oder andere Typen von Datennetzverbindungsdiensten Zugriff haben.
Drahtlose Vorrichtungen (beispielsweise tragbare Computer mit drahtlosen
Modems, personale digitale Assistenten (Personal Digital Assistants),
Mobiltelefone) haben Zugriff auf die Netzverbindung 145 über drahtlose
Infrastrukturen.
-
Fortschreitend
zu 2 enthält
eine andere Ausführungsform
des Systems einen zweiten Datenbank-Controller 220, eine
zweite Datenbank 180 und einen zweiten Server 230.
Der Client 195 kann verwendet werden, um eine Anforderung
an den Server 185 zu senden, einen Satz von Daten auszugeben,
der organisiert, verglichen oder abgefragt wird von der ersten Datenbank 120,
wobei die ausgelesenen Daten zu der zweiten Datenbank 180 gesendet
werden. Als Antwort auf eine Anforderung sammelt der Server 185 Daten von
der ersten Datenbank 120 und führt Sicherheits-Funktionen
in Übereinstimmung
mit der vor liegenden Erfindung aus, wobei die eingesammelten Daten
an die zweite Datenbank 180 über den zweiten Server 230 und den
zweiten Datenbank-Controller 220 gesendet werden.
-
Fortschreitend
zu der 3 wird eine genauere Darstellung einer Ausführungsform
des ersten Datenbank-Controllers 210 gezeigt. Der erste
Datenbank-Controller 210 enthält einen Anfrage-Koordinator 410,
eine Client-spezifische Anwendung 415, ein Interface 425 und
eine Speichereinheit 440. Der Anfrage-Koordinator 410 lokalisiert
die durch den Client 195 angefragten Daten in der ersten
Datenbank 120 und bestimmt einen Datentyp der angefragten
Daten. Die Client-spezifische Anwendung 415 enthält ein Datentyp-spezifisches Programm 420,
das ausgeführt
wird, um den Zugriff auf bestimmte Typen von geschützten Daten
in der Datenbank 120 zu kontrollieren. In einer Ausführungsform
platziert das Datentyp-spezifische Programm 420 zumindest
eine Beschränkung
auf den Daten, worin der Zugang zum Ansehen der Daten durch den
Client 195 kontrolliert werden kann. Beispielsweise können die
von der ersten Datenbank 120 ausgelesenen Daten einen Datentyp
aufweisen, der als Kreditkarten-Datentyp definiert ist. Ein Satz
von vorbestimmten Beschränkungen kann
auf den Kreditkarten-Datentyp
platziert werden, wie beispielsweise Beschränkungen zum Ansehen der Daten.
Unter Verwendung von Datentyp-Attributen kann eine Kreditkartennummer
als ein Identifizierer verwendet werden, um einen Satz von Daten
von der ersten Datenbank 120 zu empfangen, die Kreditkartennummer selbst
kann jedoch durch Einschränken
der Ansicht der Kreditkartennummer gesichert gehalten werden.
-
In
einer Ausführungsform
ist das Datentyp-spezifische Programm 420 ein JAVA-Programm.
Alternativ kann das Datentypspezifische Programm 420 auch
ein Computerprogramm sein, das in einer anderen Programmiersprache
geschrieben ist. Das Da tentyp-spezifische Programm 420 wird
verwendet, um einen Benutzerdefinierten Typ (User Defined Type,
UDT) zu erzeugen, um einen bestimmten Typ von Daten, wie beispielsweise
Kreditkartennummern zu speichern und um auf sie zuzugreifen. Die
Client-spezifische Anwendung 415 ist fähig, die angefragten Daten
zu verschlüsseln.
Die von dem Client 195 angeforderten Daten können durch die
Schnittstelle 425 über
die Netzschnittstelle 145 zu dem Client 195 oder
zu dem zweiten Server 220 zur Speicherung in der zweiten
Datenbank 180 gesendet werden. Der zweite Datenbank-Controller 220 und
der Client 195 sind fähig,
die angefragten Daten zu entschlüsseln.
In einer Ausführungsform
können
Verfahren oder Funktionen verwendet werden, um zu das beschränken, was
durch einen Benutzer gesehen wird. Beispielsweise können Verfahren
oder Funktionen verwendet werden, um eine gesamte Kreditkartennummer
zu blockieren oder um alle Nummern außer den letzten vier Ziffern
zu blockieren, wobei es jedoch einem Benutzer noch erlaubt wird,
andere mit der Kreditkartennummer verknüpfte Details, wie beispielsweise
die Ausgabegewohnheiten einer Person, die eine Kreditkarte verwendet,
die analysiert wird, zu sehen.
-
Die
Speichereinheit 440 in dem ersten Datenbank-Controller 210 speichert
eine oder mehrere Privilegien-Tabellen 450 und Verfahren 460.
Die Privilegien-Tabelle 450 enthält vorbestimmte Privilegien-Information, die
durch die Clientspezifische Anwendung 415 verwendet wird,
um einen Zugriff auf Daten zu beschränken. Die Verfahren 460 umfassen
vorbestimmte Verfahren, die durch die Client-spezifische Anwendung 415 aufgerufen
werden, um Beschränkungen
für einen
Zugriff auf Daten zu implementieren. Die Client-spezifische Anwendung 415 ist
fähig,
die Privilegien-Tabelle 450 zu prüfen, um den Privilegien-Typ
zu bestimmen, der an die Daten von der ersten Datenbank 120 angefügt wird.
Daher kann der Zugriff auf Daten von der ersten Datenbank 120 durch
Verwendung der in der Privilegien-Tabelle 450 gespeicherten
vorbestimmten Privilegien-Definitionen
gesichert werden.
-
Die
Client-spezifische Anwendung 415 ist auch fähig, auf
die in der Speichereinheit 440 gespeicherten Verfahren 460 zuzugreifen,
um verschiedene Verfahren auszuführen,
um den Daten von der ersten Datenbank 120 Beschränkungen
zu implementieren. In einer Anordnung verwendet die Client-spezifische
Anwendung 415 in Antwort auf die Anforderungen von dem
Client 195 die Verfahren 460 in Anfragen, wie
beispielsweise SQL-Anfragen,
an die Datenbank 120.
-
Fortschreitend
zu 4 ist eine Ausführungsform eines Datenbank-Systems 500 dargestellt.
Das dargestellte Datenbank-System 500 ist
ein Beispiel des aus der Datenbank 120 und dem Datenbank-Controller 210 zusammengesetzten
Datenbank-Systems. In der dargestellten Ausführungsform ist das Datenbank-System 500 ein
paralleles Multi-Knoten-System, das eine Mehrzahl von durch ein
Verbindungsnetz 510 verbundene Knoten 520, 530, 540 aufweist.
Das Datenbank-System 500 umfasst auch eine Analysemaschine 570, die
fähig ist,
Daten von der Mehrzahl der Knoten 520, 530, 540 zu
analysieren. In einer alternativen Ausführungsform umfasst das Datenbank-System 500 den
ersten Datenbank-Controller 210 und die erste Datenbank 120.
In einer weiteren anderen alternativen Ausführungsform umfasst das Datenbank-System 500 den
ersten Datenbank-Controller 210, die erste Datenbank 120 und
den Server 185. Jeder Knoten 520, 530, 540 umfasst eine
oder mehrere Speichervorrichtungen 550 und zumindest einen
Speicher-Controller 560. Die Anordnung der 4 ist
ein Beispiel eines parallelen Datenbank-Systems. In weiteren Ausführungsformen
können
andere Typen von Anordnungen verwendet werden, wie beispielsweise
Einzel-Knoten-Systeme.
-
Fortschreitend
zu 5 identifiziert der erste Datenbank-Controller 210 einen
Satz von Daten, der in einer gesicherten Weise zu speichern ist
und auf den in einer gesicherten Weise zuzugreifen ist (Schritt 580). In
einer Ausführungsform
enthalten diese Daten Kreditkartennummern und entsprechende Transaktionen. Wenn
ein Satz von Daten, der in einer gesicherten Weise zu speichern
ist und auf den in einer gesicherten Weise zuzugreifen ist, identifiziert
ist, führt
der erste Datenbank-Controller 210 ein Benutzer-definierter-Datentyp-Sicherheits-Protokoll
an den Daten aus (Schritt 585). Auf die Daten wird dann
von dem Client 195 zugegriffen, nachdem sie entschlüsselt wurden
(Schritt 590).
-
6 zeigt
eine Technik zur Verwendung beim Ausführen eines Benutzer-definierter-Datentyp-Sicherheits-Protokolls.
Zuerst wird ein Benutzer-definierter Datentyp durch den ersten Datenbank-Controller 210 erzeugt
und den Daten zugewiesen, die eine Sicherheit benötigen (Schritt 610).
In einer Ausführungsform
wird das Erzeugen und Zuweisen des Benutzerdefinierten Datentyps
von dem ersten Datenbank-Controller 210 an den Daten in
der ersten Datenbank 120 durchgeführt. Ein Beispiel eines Benutzer-definierten
Datentyps ist ein Kreditkartentyp, der mit einem vorbestimmten Feld
von Zeichen (characters) verknüpft
ist. Als ein illustratives Beispiel wird die folgende Funktion verwendet,
um einen mit einem Datenfeld verknüpften Kreditkartendatentyp
zuzuweisen.
-
-
Die
die Kreditkartennummer enthaltenden Daten werden in dem Datenfeld
CC_Num_Private gespeichert. Der Zugriff auf die gespeicherten Daten
wird durch den ersten Datenbank-Controller 210 beschränkt (Schritt 620).
Dies bietet die Möglichkeit,
ein vorbestimmtes Zugriffs-Privileg innerhalb des Datentyps zu setzen (beispielsweise
Kreditkartendatentyp). Das Attribut CC_Num_Private ist nicht ohne
weitere Ausführung
von zuvor definierten Verfahren sichtbar. Vorbestimmte Privilegien,
um die Daten zu sehen, können
basierend auf besonderen Verfahren zugewiesen werden. In einer Ausführungsform
können
Privilegien in dem Client 195 errichtet werden, so dass
Kreditkartendaten nur durch Ausführen
eines Verfahrens in dem Client 195 lediglich gelesen werden
können.
Als ein Beispiel der oben beschriebenen Privilegien kann das folgende
Verfahren verwendet werden, um auf den Kreditkarten-Datentyp zuzugreifen,
falls ein Benutzer ein Privileg aufweist, den Typ der Kreditkartendaten
zu sehen.
-
-
Das
folgende Verfahren kann verwendet werden, um es autorisierten Benutzern
zu erlauben, die beschränkten
Kreditkartennummerdaten zu sehen.
-
-
Autorisierte
Benutzer des Client-Computer-System 195 können die
Kreditkartennummern unter Verwendung des Verfahrens "Number" sehen. Weitere Beschränkungen
können
eingeführt
werden, um verschiedene Zugriffsebenen auf die beschränkten Daten
zu ermöglichen.
Beispielsweise können
einige Benutzer dazu autorisiert werden, die letzten vier Ziffern
einer Kreditkartennummer für
eine Marktanalyse zu sehen, wie beispielsweise durch Verwendung
des unten stehenden Verfahrens.
-
-
Der
erste Datenbank-Controller 210 weist auch Verfahren auf,
um einen Vergleich der gespeicherten Kreditkartendaten für einen
Abfrageaufruf zu ermöglichen
(Schritt 630). Beispielsweise können Vergleiche von Kreditkartennummern über einige
Transaktionen durchgeführt
werden, um die Anzahl von Transaktionen zu bestimmen, die eine bestimmte
Kreditkarte einschließen.
Die folgenden Verfahren unterstützen
den Vergleich einer Kreditkartennummer mit einer anderen, wobei
das Verfahren in SQL-Abfragen implementiert werden kann:
-
-
Unter
Verwendung der oben beschriebenen "Compare"-Verfahren wird ein Zugriff auf eine
Kreditkartennummer selbst nicht ermöglicht (solange nicht eines
der zuvor beschriebenen Verfahren verwendet wird), obwohl die Kreditkartennummer
in Anfragen an die Datenbank verwendet werden kann.
-
Ein
illustratives Beispiel basierend auf den obigen Verfahren wird unten
angegeben. Das folgende Beispiel zeigt eine Routine zum Erzeugen
einer Verkaufs-Tabelle, die verkaufte Objekte und die für den Verkauf verwendeten
entsprechenden Kreditkarten tabelliert.
-
-
-
Der
folgende SQL-Befehl erlaubt es einem Benutzer, die Kreditkartennummer-Eintragsinhalte
der Verkaufstabelle anzusehen, falls der Benutzer Zugriffsrechte
auf das "Number"-Verfahren aufweist.
-
-
Falls
ein Benutzer, der keinen Zugriff auf das "Number"-Verfahren
hat, versucht, den Inhalt der Verkaufstabelle unter Verwendung des
obigen SQL-Befehls zu sehen, wird ein „Zugriffsrecht-Verletzungs"-Fehler zurückgegeben.
Der folgende Befehl erlaubt es einem Benutzer, an eine Einzelperson
gestern und heute verkaufte Objekte zu tabellieren.
-
-
Die
Ausführung
des obigen Befehls wird in dem ersten Datenbank-Controller 210 durchgeführt. In
einer alternativen Ausführungsform
kann der obige Befehl in dem Client 195 ausgeführt werden
oder als weitere Alternative in dem zweiten Datenbank-Controller 220.
Der obige Befehl tabelliert an eine Einzelperson verkaufte Objekte
wie auch die für
die Transaktion verwendete Kreditkartennummer. Das „Compare"-Verfahren wird verwen det,
um die in den Transaktionen verwendete Kreditkartennummer zu vergleichen
und gibt eine Mitteilung zurück,
die angibt, ob dort eine Kreditkarten-Übereinstimmung vorliegt. Mit
anderen Worten wird das „Compare"-Verfahren einen
Benutzer informieren, ob dieselbe Kreditkarte durch eine Einzelperson
für mehrere
Transaktionen verwendet wurde.
-
In
einer Ausführungsform
können
Sicherheits-Anforderungen für
die Datentransaktionen (beispielsweise der Datentransfer von der
ersten Datenbank 120 zu dem Client 195) in der
ersten Datenbank 120 definiert sein. Daher werden die durch
den ersten Datenbank-Controller 210 definierten Sicherheitsbeschränkungen
auf die Daten der ersten Datenbank 120 angewendet. Für eine zusätzliche
Sicherheit werden die in der ersten Datenbank 120 gespeicherten
Daten für
die Übertragung
von dem ersten Datenbank-Controller 210 zu einer
entfernten Vorrichtung, wie beispielsweise dem Client 195 verschlüsselt (Schritt 640).
In einer Ausführungsform
wird die Verschlüsselung
ausgeführt,
nachdem die Datenvergleichsfunktionen abgeschlossen sind. In einer
Ausführungsform
können
zuvor definierte Verfahren verwendet werden, um eine öffentlich-private Schlüssel-Verschlüsselung
(Public-Private
Key Encryption) auszuführen.
Allgemein wird bei Verwendung einer öffentlich-privaten Schlüssel-Verschlüsselung
Information unter Verwendung eines öffentlichen Schlüssels verschlüsselt und
an dem empfangenden Ende werden die Daten unter Verwendung eines
privaten Schlüssels entschlüsselt.
-
Die
Client-spezifische Anwendung 415 enthält den öffentlichen Schlüssel des
Servers 185. Die Client-spezifische Anwendung 415 verwendet
den öffentlichen
Schlüssel,
um die Kreditkartennummer-Daten zu verschlüsseln, bevor sie die Kreditkartennummer-Daten an den Server 185 für eine Abfrage
sendet. Eine entfernte Vorrichtung, wie beispielsweise der Client 195,
sendet seinen öffentlichen
Schlüssel
zu dem Server 185. Der öffentliche Schlüssel wird
verwendet, um die Kreditkartendaten zu verschlüsseln, bevor die Daten an den Client 195 gesendet
werden. Dies erlaubt eine gesicherte Übertragung der Kreditkartennummer-Daten
von dem Server 185, der mit der ersten Datenbank 120 verbunden
ist, zu dem Client 195 oder zu der zweiten Datenbank 180 über den
zweiten Datenbank-Controller 220. Übertragungen in der entgegengesetzten
Richtung (d.h. von dem Client 185 zu dem Server 195)
können
auch unter Verwendung der oben beschriebenen Verfahren gesichert
werden. Die unten definierten Verfahren, die in einer Ausführungsform
durch den ersten Datenbank-Controller 210 ausgeführt werden,
werden verwendet, um Daten-Verschlüsselung
und -Entschlüsselung
durchzuführen
und um auf verschlüsselte
Daten zuzugreifen.
-
-
Das
Verfahren "Encrypt" (Verschlüsseln) und
das Verfahren "Decrypt" (Entschlüsseln) werden
durch die Client-spezifische An wendung 415 in dem ersten
Datenbank-Controller 210 aufgerufen. Die Client-spezifische
Anwendung 415 ruft das Verfahren „Encrypt" mit dem öffentlichen Schlüssel des
Servers 185 auf, um die Kreditkartennummer-Daten zu verschlüsseln. In
einer Ausführungsform übergibt
die Client-spezifische Anwendung 415 die verschlüsselten
Kreditkartennummer-Daten an den Client 195. In einer alternativen
Ausführungsform übergibt
die Client-spezifische Anwendung 415 die verschlüsselten
Kreditkartennummer-Daten
an den zweiten Datenbank-Controller 220. Die verschlüsselten
Kreditkartendaten werden durch den Client 195 oder den
zweiten Datenbank-Controller 220 entschlüsselt unter
Verwendung des privaten Schlüssels
des Clients 195, der privat dem Client-Computer-System 195 oder dem
zweiten Datenbank-Controller 220 zugeordnet ist.
-
Nachdem
die zu übertragenden
Daten verschlüsselt
sind, überträgt der Server 185 die
verschlüsselten Daten
von der ersten Datenbank 120 zu einer entfernten Vorrichtung,
wie beispielsweise dem Client 195 (Schritt 650).
Die Vollendung des Schritts des Übertragens
der verschlüsselten
Daten vervollständigt
im Wesentlichen den Akt des Ausführens
eines Benutzer-definierter-Typ-Sicherheits-Protokolls,
wobei das Ausführen
im Schritt 585 in 5 dargestellt
ist.
-
Das
Bereitstellen einer Übertragungssicherheit
ermöglicht
Zugriff auf die Daten durch Mittel Dritter, wobei die Mittel nicht
den Unternehmens-spezifischen oder den Daten-spezifischen Sicherheitscode
eingebaut haben. Die Übertragungssicherheits-Anforderungen sind
in der Datenbank definiert und in den Standard-Anwendungsprogramm-Schnittstellen
(Application Program Interfaces, APIs) implementiert, welche die
Mittel Dritter nutzen. Beispielsweise kann man unter Verwendung
des oben beschriebenen Benutzer-definierter-Typ-Sicherheits-Protokolls
eine Sicherheitsrichtlinie implementieren, die erfordert, dass alle
Kreditkartennummern mit einem 128-Bit-Verschlüsselungsalgorithmus verschlüsselt sind.
Allgemein wären
mit dieser Beschränkung
Datenanfragen, die nach einer zurückzugebenden Kreditkartennummer
fragen, von einer Anwendung abhängig,
die lokal bei dem Datenbank-Server 185 wäre. In einer
Ausführungsform
würde die
lokale Anwendung die Kreditkartennummer verschlüsseln und die verschlüsselten
Daten übertragen.
Die Kreditkartennummer würde
dann auf der Empfangsseite (beispielsweise im Client 195)
durch eine andere Anwendung entschlüsselt. Dies macht die Implementierung
von Standardmitteln Dritter und Datenanfrage- oder Datensuch-(Data-Mining)Mitteln
bei diesen Datentypen schwierig. Unter Benutzung des oben beschriebenen
Benutzerdefinierter-Typ-Sicherheits-Protokolls werden die Daten
jedoch in Datenbank-Datentyp-Definitionen definiert. Daher wird
die Übertragungssicherheit
gehandhabt, bevor auf die Daten durch die Mittel Dritter zugegriffen
wird. Daher können
die Mittel Dritter verwendet werden, um auf gesicherte Datentypen
direkt zuzugreifen, ohne dass andere Sicherheitsverfahren in den
Mitteln Dritter codiert sind.
-
Unter
Verwendung des oben beschriebenen Benutzer-definierter-Typ-Sicherheits-Protokolls
kann eine zusätzliche
Datensicherheit realisiert werden. Allgemein ist, wenn nur der Datentyp
verschlüsselt
ist, eine unautorisierte Entschlüsselung
der Daten schwieriger. In vielen Fällen schließen Verschlüsselungsaufbrechende Verfahren
ein, zu versuchen, unautorisierte Daten durch Verwenden von Entschlüsselungs-Schlüsseln zu entschlüsseln, die
einige lesbare Zeichen produzieren. Wenn eine gesamte Datenübertragung
verschlüsselt ist,
sind zusätzliche
Informationen, wie beispielsweise Namen, in den verschlüsselten
Daten enthalten. Nichtautorisierte Versuche, die Daten zu entschlüsseln, können eine
Verwendung von Entschlüsselungs-Schlüsseln einschließen, bis
ein Name entziffert ist. In einer Ausführungsform unter Verwendung
des oben beschriebenen Benutzer definierter-Typ-Sicherheits-Protokolls
würde nur
die Kreditkartennummer verschlüsselt.
Daher wäre dort
kein ASCII-Text vorhanden, den eine eine unautorisierte Entschlüsselung
versuchende Person verwenden kann. Allgemein implementieren Benutzer
ein vollständiges
Mitteilungs-Verschlüsselungsschema
für über ein öffentliches
Netz, wie beispielsweise das Internet, übertragene Mitteilungen. Da
verschlüsselte
Daten vollständiger
Mitteilungen allgemein Text enthalten, sind sie leichter zu entschlüsseln. Falls
jedoch nur Teile einer übertragenen
Mitteilung (d.h. spezifische Datentypen wie beispielsweise Kreditkartennummern)
verschlüsselt
werden, wird ein nichtautorisierter Benutzer es schwerer finden,
diese Teile zu entschlüsseln.
-
Zurückkommend
auf die 5, speichert der Client 195 die
verschlüsselten
Daten. In einer alternativen Ausführungsform speichert der zweite
Datenbank-Controller 220 die verschlüsselten Daten. Auf die verschlüsselten
Daten kann durch den Client 195 zugegriffen werden, nachdem
die Daten entschlüsselt
sind (Schritt 590). In einer Ausführungsform werden die Daten
in einem verschlüsselten
Format auf einem Speichermedium (beispielsweise einer Speicherplatte)
in der zweiten Datenbank 180 gespeichert, die Sicherheit bietet,
die zusätzlich
zu der durch die Verwendung der Benutzer-definierten Typen und Verfahren
geschaffenen Sicherheit bietet.
-
Falls
durch einen autorisierten Benutzer angefordert, verwendet der erste
Datenbank-Controller 210 das „Number"-Verfahren, um eine Kreditkartennummer
zu empfangen. Das in dem ersten Datenbank-Controller 210 ausgeführte „Number"-Verfahren entschlüsselt die
Kreditkartennummer-Daten unter Verwendung des „Decrypt"-Verfahrens und des privaten Verschlüsselungs-Schlüssels des
Servers. Der erste Datenbank-Controller 210 verschlüsselt die
Daten wieder unter Verwendung des „Encrypt"-Verfahrens mit dem durch den Client 195 bereitgestellten öffentlichen
Ver schlüsselungs-Schlüssel. Der
erste Datenbank-Controller 210 sendet dann die angeforderten
Daten an den Client 195 oder in einer alternativen Ausführungsform
an den zweiten Datenbank-Controller 220 in
einem verschlüsselten
Format. Allgemein werden die verschlüsselten angeforderten Daten
unter Verwendung des privaten Verschlüsselungs-Schlüssels des
Clients mit dem „Decrypt"-Verfahren und dem
privaten Verschlüsselungs-Schlüssel des
Clients 195 entschlüsselt.
-
Das „Compare"-Verfahren überprüft den Status
des Verschlüsselungs-Flags,
wenn es für
verschlüsselte
Daten verwendet wird. Falls er wahr (true) ist, entschlüsselt das „Compare"-Verfahren die Kreditkartennummer-Daten
unter Verwendung des „Decrypt"-Verfahrens und des privaten Verschlüsselungs-Schlüssels des
Servers, bevor ein Vergleich ausgeführt wird. Dies wird es dem
ersten Datenbank-Controller 210 ermöglichen, Verbindungen, Zusammenfügungen,
etc. unter Verwendung der Kreditkartennummer-Daten auszuführen, ohne die Kreditkartennummer-Daten
für den
Client 195 sichtbar zu machen.
-
Die
Verwendung der Verschlüsselung
mit einem öffentlichen
Schlüssel
mit den oben beschriebenen Verfahren kann es Anwendungen Dritter
und Benutzern erlauben, Daten, wie beispielsweise Kreditkartennummern,
in einer gesicherten Weise zu senden, zu speichern und zu empfangen.
Die Verwendung der verschiedenen oben beschriebenen Verfahren erlaubt
eine einfachere Implementierung der oben beschriebenen Sicherheitsmaßnahmen.
Weiterhin können
verschiedene Vorrichtungen in dem System auf dieselben Verfahren zugreifen.
-
Die
verschiedenen beschriebenen Vorrichtungen und Systeme enthalten
alle verschiedene Software-Ebenen, -Routinen oder -Module. Solche
Software-Ebenen, -Routinen oder -Module sind auf entsprechenden
Kontroll-Einheiten ausführbar.
Die verschiedenen Kontrolleinheiten in den Vorrichtungen oder Systemen können jede
einen Mikroprozessor, einen Mikrocontroller, eine Prozessorkarte
(einschließlich
einer oder mehrerer Mikroprozessoren oder Mikrocontroller) oder
andere Kontroll- oder Rechen-Vorrichtungen enthalten. Wie hier verwendet,
bezeichnet ein „Controller" eine Hardwarekomponente,
eine Softwarekomponente oder eine Kombination dieser beiden.
-
Die
in dieser Beschreibung bezeichneten Speichervorrichtungen können eine
oder mehrere maschinenlesbare Speichermedien zum Speichern von Daten
und Anweisungen enthalten. Das Speichermedium kann verschiedene
Formen von Speicher enthalten, einschließlich Halbleiter-Speichervorrichtungen,
wie beispielsweise dynamische oder statische Schreib-Lese-Speicher
(DRAMs oder SRAMs), löschbare
und programmierbare Nur-Lese-Speicher (EPROMs), elektronisch löschbare
und programmierbare Nur-Lese-Speicher
(EEPROMs) und Flash-Speicher; Magnetplatten wie beispielsweise Festplatten,
Floppies und entfernbare Platten; andere magnetische Medien, einschließlich Bändern, und
optische Medien, wie beispielsweise Compact-Discs (CDs) oder digitale
Videodisks (DVDs). Anweisungen, aus denen die verschiedenen Software-Routinen,
-Module oder -Lagen in den verschiedenen Vorrichtungen oder Systemen
zusammengesetzt sind, können
in entsprechenden Speichervorrichtungen gespeichert werden. Wenn
die Anweisungen durch eine entsprechende Kontrolleinheit ausgeführt werden,
veranlassen sie die entsprechende Vorrichtung oder das entsprechende
System dazu, programmierte Schritte auszuführen.
-
Die
Anweisungen der Software-Routinen, -Module oder -Ebenen können auf
jede Vorrichtung oder jedes System auf einem von vielen verschiedenen
Wegen geladen oder übertragen
werden. Beispielsweise können
Codeabschnitte einschließlich
Anweisungen, die auf Floppy-Discs, CD- oder DVD-Medien oder einer
Festplatte gespeichert sind oder durch eine Netz-Schnittstellen-Karte,
ein Modem oder eine andere Schnittellen-Vorrichtung übertragen
werden, in die Vorrichtung oder das System geladen werden und als
entsprechende Software-Routinen, -Module oder -Ebenen ausgeführt werden.
In dem Lade- oder Übertragungs-Prozess können Datensignale,
die in Trägerwellen
(übertragen
durch Telefonleitungen, Netzwerk-Leitungen, drahtlose Verbindungen,
Kabel u.ä.)
eingebettet sind, die Code-Abschnitte einschließlich Anweisungen zu der Vorrichtung
oder dem System übertragen.
Solche Trägerwellen
können
in der Form von elektrischen, optischen, akustischen, elektromagnetischen
oder anderen Typen von Signalen sein.