-
Die vorliegende Erfindung betrifft
Verfahren und Systeme zum Speichern von Information und zum Steuern
eines Zugriffs auf diese Information. Die Erfindung ist auf Verfahren
und Systeme zum sicheren Speichern von Information eines empfindlichen
Charakters anwendbar, wie beispielsweise medizinische Krankengeschichten,
und zum Steuern eines Zugriffs auf diese Information, um einen Zugriff
auf Personen oder Organisationen zu beschränken, für welche ein Zugriff autorisiert
ist.
-
Die vorliegende Erfindung betrifft
das Gebiet von Elementen einer Offenbarung, und kann solche enthalten,
die gleich Elementen sind, die in der gemeinsam zessionierten europäischen Patentanmeldung
mit der Seriennummer EP-A-0
875 868 (entsprechend der US-Patentanmeldung mit der Seriennr. 08/810,057)
von: Melvin J. Scolnick für:
KEY MANAGEMENT SYSTEM FOR USE WITH SMARTCARD, mit demselben Anmeldedatum
wie die vorliegende Erfindung offenbart sind.
-
FR-A-2,731,815 beschreibt ein System
zum Steuern eines Zugriffs auf vertrauliche medizinische Aufzeichnungen
eines Patienten, die auf einer Plastikkarte gespeichert sind. Die
Information ist verschlüsselt,
und der relevante Entschlüsselungsschlüssel ist
auch auf der Karte gespeichert.
-
Soziale, ökonomische und technische Veränderungen
sind kombiniert worden, um die Rolle wesentlich zu reduzieren, die
durch den Hausarzt, nämlich
den praktischen Arzt für
Allgemeinmedizin, der über
eine wesentliche Zeitperiode den größten Teil der Fürsorge für einen
Patienten lieferte und der ein effektiver Verwalter der medizinischen
Aufzeichnungen eines Patienten war, gespielt wird. Da sich die medizinische
Praxis von der traditionellen Basis einer Gebühr für einen Dienst zu HMOs und "Netzwerken" von Ärzten verschiebt und
eine Konkurrenz zwischen diesen Organisation immer intensiver anwächst, ändern oder
verlieren Beschäftigte/Patienten
ihre Jobs und ändern
oder verlieren somit ihren Zugriff auf bestimmte Gesundheitsvorsorgeorganisationen,
und da sowohl Geschäfts-
als auch Erholungsreisen fortgesetzt mehr werden, wird es immer
weniger effektiv, sich auf einen Hausarzt als den Verwalter von
medizinischen Aufzeichnungen für
einen Patienten zu verlassen. Aus diesen und anderen Gründen hat
es seit langem eine gefühlte
Notwendigkeit für einen
Mechanismus gegeben, durch welchen geeignetes medizinisches Personal
schnell auf medizinische Aufzeichnungen für einen Patienten zugreifen
kann.
-
Ein Ansatz für dieses Problem hat darin
bestanden, Systeme vorzuschlagen, bei welchen eine dritte Partei
eine Datenbank von medizinischen Aufzeichnungen unterhalten würde, auf
welche von entfernten Stellen zugegriffen werden könnte, die
in Arztpraxen, Krankenhäusern
und ähnlichem
angeordnet sind. Solche Systeme sind beispielsweise vorgeschlagen
im US-Patent mit der Nummer 5,325,294 von Keene für: Medical Privacy
System, erteilt am 28. Juni 1994, und im US-Patent mit der Nummer
5,301,105 für
Cummings, Jr., für: All
Care Health Management System, erteilt am 5. April 1994.
-
Während
solche Systeme sich als adäquat
erweisen können,
medizinische Aufzeichnungen zu verbreiten, ist es offensichtlich,
dass sie an den Problemen leiden, die allen großen Datenbanksystemen gemeinsam
sind. Die Partei, die mit einem Unterhalten einer solchen Datenbank
belastet ist, muss die Fähigkeit
dazu haben, die Genauigkeit der Information in der Datenbank sicherzustellen,
und dass die Information pünktlich aktualisiert
wird, eine Sicherheit für
das System zur Verfügung
zu stellen, sicherzustellen, dass autorisierte Anwender auf das
System auf eine pünktliche
Weise zugreifen können,
und, am wichtigsten, sicherzustellen, dass ein Zugriff auf autorisierte
Anwender begrenzt ist. Als Ergebnis gibt es eine Abneigung dagegen,
empfindliche Daten einer einzigen oder einer kleinen Anzahl von
Datenbanken anzuvertrauen; insbesondere dort, wo Information so
empfindlich ist wie diejenige, die in medizinischen Aufzeichnungen
enthalten ist.
-
Das Gegenstück für den Ansatz einer zentralen
Datenbank besteht darin, für
einen jeweiligen Patienten seine oder ihre eigenen medizinischen
Aufzeichnungen mit sich zu tragen. In seiner einfachsten Form enthält dieser
Ansatz Hundemarken oder Armbänder,
die vom Patienten getragen werden, welche den Bluttyp, Allergien
oder ähnliches
vom Patienten identifizieren. Während
dieser Ansatz für
eine begrenzte Information effektiv ist, wie beispielsweise für einen
Bluttyp, will die große
Mehrheit von Patienten nichts tragen oder mit sich führen, was
sie als HIV positiv identifiziert oder derart, dass sie Lepra bzw.
Aussatz haben.
-
Ein Ansatz zum Überwinden dieses Problems ist
vor geschlagen im US-Patent mit der Nummer 5,499,293 von Behram
et al. für:
Privacy Protected Information Medium Using a Data Compression Method, erteilt
am 12. März
1996. Behram et al. offenbart ein System, bei welchem medizinische
Information in komprimierter Form auf einer Karte aufgezeichnet
wird, die von einem Patienten getragen wird. Der verwendete Kompressionsalgorithmus
reduziert die Menge an Speicher, die auf der Karte nötig ist,
und lässt
auch einen Zugriff auf die Information für eine Person schwierig werden,
die keinen Zugriff auf ein spezielles Lexikon hat, um die Information
zu dekomprimieren. Während
dies Speicheranforderungen mildern kann, bleibt das Problem eines
Beibehaltens einer Vertrautheit für die medizinischen Aufzeichnungen,
die auf der Karte gespeichert sind, da dann, wenn das benötigte Lexikon
weit verbreitet ist, auf eine verlorene oder eine gestohlene Karte
auf einfache Weise zugegriffen werden kann, während dann, wenn die Verteilung
des Lexikons streng kontrolliert wird, die Karte ihren Zweck nicht
erfüllen
kann. Weiterhin kann die Karte selbst dann, wenn der Patient irgendwie
mit einem Passwort oder einem Schlüssel versehen ist, das bzw.
der zum Zugreifen auf die Karte nötig ist, immer noch ihren Zweck
nicht erfüllen,
wenn der Patient bewusstlos ist oder sonst wie dazu unfähig ist,
das Passwort oder den Schlüssel
zu liefern.
-
Somit ist es eine Aufgabe der vorliegenden
Erfindung, ein Verfahren und ein System zum Speichern von Information,
wie beispielsweise medizinische Aufzeichnungen, auf eine Weise zu
schaffen, die gegenüber einem
nicht autorisierten Zugriff sicher ist, jedoch für autorisierte Personen oder
Organisationen weit verbreitet und ohne weiteres zugreifbar sind.
-
Gemäß einem ersten Aspekt der Erfindung
ist ein System zum Lesen von Information und zum Steuern eines Zugriffs
auf die Information geschaffen, wobei das System folgendes aufweist:
a) ein tragbares Aufzeichnungsmedium mit einem Speicher zum Speichern
von Information und einem Mikroprozessor, wobei der Mikroprozessor
auf eine Eingabe eines Zugriffscodes zum Ermöglichen eines Zugriffs auf
den Speicher reagiert; b) ein Datenverarbeitungszentrum mit einer
Datenbank von Autorisierungen einer Vielzahl von Serviceprovidern
in Bezug auf die Information; und c) ein Endgerät zum Zulassen, dass ein Serviceprovider
mit dem Verarbeitungszentrum kommuniziert; und wobei d) das Verarbeitungszentrum
auf eine Nachricht vom Endgerät
reagiert, wobei die Nachricht einen Serviceprovider identifiziert,
der nach einem Zugriff auf die Information sucht, um auf die Datenbank
zuzugreifen, um zu bestimmen, ob der identifizierte Serviceprovider
dazu autorisiert ist, auf die Information zuzugreifen, und um den
Zugriffscode vom Verarbeitungszentrum zu dem identifizierten Serviceprovider
nur dann auszugeben, wenn der identifizierte Serviceprovider dazu
autorisiert ist, auf die Information zuzugreifen.
-
Gemäß einem zweiten Aspekt der
Erfindung ist ein Verfahren zum Steuern eines Zugriffs auf aufgezeichnete
Information geschaffen, wobei das Verfahren die folgenden Schritte
aufweist: a) Einrichten eines Datenverarbeitungszentrums; b) Empfangen
erster Daten, die Serviceprovider identifizieren, die mit dem Datenverarbeitungszentrum
kommunizieren können,
um nach einem Zugriff auf die Information zu fragen; c) Verifizieren
der ersten Daten beim Datenverarbeitungszentrum; d) Versehen eines
Anwenders mit einem tragbaren Aufzeichnungsmedium mit einem Speicher
zum Speichern der Information und einem Mikroprozessor, wobei der
Mikroprozessor auf eine Eingabe eines Zugriffscodes zum Ermöglichen
eines Zugriffs auf die Information reagiert; e) Einrichten einer
Datenbank im Datenverarbeitungszentrum von Autorisierungen von jedem
der Serviceprovider; f) Empfangen einer Nachricht von einem der
Serviceprovider beim Datenverarbeitungszentrum, die nach einem Zugriff
auf die in dem Speicher gespeicherte Information fragen; g) Zugreifen
auf die Datenbank, um zu bestimmen, ob der eine der Serviceprovider
dazu autorisiert ist, auf die Information zuzugreifen; und h) wenn
der eine der Serviceprovider dazu autorisiert ist, auf die Information
zuzugreifen, Liefern des Zugriffscodes vom Datenverarbeitungszentrum
zu dem einen der Serviceprovider.
-
Das System wird zum Steuern eines
Zugriffs auf Information verwendet, das auf dem tragbaren Aufzeichnungsmedium
aufgezeichnet ist, indem das Datenverarbeitungszentrum als sicher
eingerichtet wird und indem dann Daten empfangen werden, die verschiedene
Serviceprovider identifizieren, die nach einem Zugriff auf die Information
fragen können,
und diese Daten verifiziert werden. Eine Datenbank wird dann in
dem Datenverarbeitungszentrum eingerichtet, das die Autorisierungen
von jedem Serviceprovider in Bezug auf die Information identifiziert.
Wenn eine Nachricht von einem der Serviceprovider empfangen wird,
die nach einem Zugriff auf die Information fragen, greift das Datenverarbeitungszentrum
auf die Datenbank zu, um zu bestimmen, ob dieser Serviceprovider
dazu autorisiert ist, auf die Information zuzugreifen, und liefert
dann, wenn es so ist, dem Serviceprovider den nötigen Zugriffscode.
-
Gemäß einem bevorzugten Merkmal
der vorliegenden Erfindung ist jedes Mal ein anderer Schlüssel zum
Entschlüsseln
der Information erforderlich, wenn auf die Information zugegriffen
wird.
-
Gemäß einem weiteren bevorzugten
Merkmal der vorliegenden Erfindung zertifiziert eine zertifizierende
Autorität
jeden Serviceprovider, der dazu autorisiert ist, auf die Information
zuzugreifen, und werden Nachrichten, die nach einem Zugriff auf
die Information von einem Serviceprovider fragen, durch den Serviceprovider
mit einem privaten Schlüssel
digital signiert, der für
den Serviceprovider durch die zertifizierende Autorität zertifiziert
ist.
-
Gemäß einem weiteren bevorzugten
Merkmal der vorliegenden Erfindung werden die digital signierten Nachrichten
verschlüsselt,
und zwar vorzugsweise mit dem zertifizierten privaten Schlüssel.
-
(Wie es hier verwendet wird, soll "digital signiert" irgendeine Verwendung
von Verschlüsselungstechniken
enthalten, um eine Sicherung zur Verfügung zu stellen, dass eine
Nachricht tatsächlich
bei einem mutmaßlichem
Ursprung entstand. "Zertifikat", wie der Ausdruck
hierin verwendet und von Fachleuten auf dem Gebiet verstanden wird,
bedeutet eine verschlüsselte
Nachricht, die ein Nachweis für
die Sicherung einer "zertifizierenden
Autorität" ist, dass eine andere
verschlüsselte
Nachricht, zu welcher das Zertifikat gehört, tatsächlich bei einer dritten Partei
entstand, die durch das Zertifikat identifiziert ist.)
-
Gemäß eine weiteren bevorzugten
Merkmal der vorliegenden Erfindung ist das tragbare Aufzeichnungsmedium
eine Smartcard bzw. Chip-Karte.
-
Gemäß einem weiteren bevorzugten
Merkmal der vorliegenden Erfindung enthält das tragbare Aufzeichnungsmedium
einen beschreibbaren optischen Speicher.
-
Gemäß einem weiteren bevorzugten
Merkmal der vorliegenden Erfindung ist die Information medizinische
Information.
-
Gemäß einem weiteren bevorzugten
Merkmal der vorliegenden Erfindung wird das Datenverarbeitungszentrum
auf eine Nachricht von einem Serviceprovider reagieren, der nach
einem Notzugriff auf die Information sucht, um den Zugriffscode
ungeachtet einer Autorisierung von dem Serviceprovider zu liefern,
und wird dann wenigstens eine Zeit für die Anfrage und die Identität des Serviceproviders
aufzeichnen, der die Notanfrage durchführt.
-
Gemäß einem weiteren bevorzugten
Merkmal der vorliegenden Erfindung wird Information, die auf dem
tragbaren Aufzeichnungsmedium gespeichert ist, mit einem aktuellen
Sessionschlüssel
bzw. Sitzungsschlüssel
verschlüsselt
und enthält
der Zugriffscode den aktuellen Sitzungsschlüssel, und reagiert der Mikroprozessor
auf eine Eingabe des Zugriffscodes, um den aktuellen Sitzungsschlüssel zu bestimmen,
die Information zu entschlüsseln
und die entschlüsselte
Information auszugeben.
-
Gemäß einem weiteren bevorzugten
Merkmal der vorliegenden Erfindung wird die Information dann erneut
mit einem nächsten
Sitzungsschlüssel
verschlüsselt
und erneut zum Speicher geschrieben. Der nächste Sitzungsschlüssel wird
als vorbestimmte Funktion einer Zugriffssessioninformation bestimmt,
die eindeutig für
eine jeweilige Session bzw. Sitzung eines Zugriffs auf die Information
ist.
-
Gemäß einem weiteren bevorzugten
Merkmal der vorliegenden Erfindung löscht der Mikroprozessor nach
einem erneuten Verschlüsseln
der Information den nächsten
Sitzungsschlüssel,
so dass auf die Information nicht wieder zugegriffen werden kann,
bis ein neuer Zugriffscode empfangen wird.
-
Somit ist es Fachleuten auf dem Gebiet
offensichtlich, dass die vorliegende Erfindung vorteilhaft die obige
Aufgabe erreicht und die Nachteile des Standes der Technik überwindet.
Andere Aufgaben und Vorteile der vorliegenden Erfindung werden Fachleuten
auf dem Gebiet aus einer Betrachtung der beigefügten Zeichnungen und der nachfolgend
aufgezeigten detaillierten Beschreibung offensichtlich werden, wobei:
-
1 ein
schematisches Blockdiagramm eines Ausführungsbeispiels eines Systems
gemäß der vorliegenden
Erfindung ist;
-
2 ein
schematisches Diagramm eines Ausführungsbeispiels eines Netzwerks
von Datenverarbeitungszentren ist, die durch getreue Autoritäten betrieben
werden, um Zugriffscodes zu autorisierten Serviceprovidern zu liefern,
die nach einem Zugriff auf Information suchen, und durch eine zertifizierende
Autorität;
-
3 ein
schematisches Blockdiagramm eines Ausführungsbeispiels einer Smartcard
bzw. Chip-Karte
ist, die zur Verwendung bei dem System der vorliegenden Erfindung
geeignet ist;
-
4 ein
schematisches Diagramm eines Ausführungsbeispiels von Datenflüssen zwischen
einem Serviceprovider, der nach einem Zugriff auf Information sucht,
die zu einem Individuum gehört,
wobei eine Smartcard zu diesem Individuum gehört, und der getreuen Autorität, die mit
dem Serviceprovider kommuniziert und eine Datenbank von Autorisierungen
unterhält,
die durch das Individuum ausgegeben werden;
-
5 eine ähnliche
Darstellung von Datenflüssen
ist, wobei die getreue bzw. vertrauenswürdige Autorität, die die
Datenbank von Autorisierungen unterhält, unterschiedlich von der
getreuen bzw. vertrauenswürdigen
Autorität
ist, die mit dem Serviceprovider kommuniziert;
-
6a und 6b ein Ablaufdiagramm des
Betriebs der Smartcard der 3 zeigen,
wenn Information von der Smartcard gelesen wird;
-
7a und 7b ein Ablaufdiagramm des
Betriebs des Endgeräts
eines Serviceproviders zeigen, wenn Information von der Smartcard
der 3 gelesen wird;
-
8 ein
Ablaufdiagramm des Betriebs der Smartcard der 3 zeigt, wenn Information zur Smartcard
geschrieben wird; und
-
9 ein
Ablaufdiagramm des Betriebs des Endgeräts eines Serviceproviders zeigt,
wenn Information zur Smartcard der 3 geschrieben
wird.
-
Die folgenden Ausdrücke, die
hierin verwendet werden, sind wie folgt definiert:
ACODE | Zugriffscode,
der durch eine vertrauenswürdige
Autorität
ausgegeben wird, um einen Zugriff auf Information zuzulassen, die
gemäß der vorliegenden
Erfindung gespeichert ist. ACODE enthält den aktuellen Sitzungsschlüssel sowie
andere Information in Bezug auf die aktuelle Zugriffssession. |
CA | Zertifizierende
Autorität,
die Zertifikate zum Authentifizieren einer Identität ausgibt. |
CERT(x) | Zertifikat
von x; CERT(x) = Pr(CA)[Pb(x), ID(x)] |
CSK | Geheimschlüssel für aktuellen
Sessionschlüssel,
der zum Entschlüsseln
von Information verwendet wird, die während einer aktuellen Session
aus einem Speicher gelesen wird. CSK[CSK[M]] = M CSK = NSK einer
vorherigen Session |
H | Serviceprovider,
wie beispielsweise ein Krankenhaus oder, allgemeiner, irgendeine
Partei, die nach einem Zugriff auf Information sucht, die gemäß der vorliegenden
Erfindung gesichert ist. |
K | Funktion,
die zum Ableiten von NSK aus einer Zugriffssessioninformation in
ACODE verwendet wird (sowie möglicher
anderer Information). NSK = K (ACODE) |
key(x)[M] | M-verschlüsselt oder
-entschlüsselt,
wie es durch einen Zusammenhang angezeigt ist, mit key(x). |
NSK | Geheimschlüssel für nächsten Sessionschlüssel, der
zum Verschlüsseln
von Information verwendet wird, die während einer aktuellen Session
zum Speicher geschrieben wird. NSK[NSK[M]] = M |
P | Partei,
wie beispielsweise ein individueller Patient, oder allgemeiner irgendeine
Partei, die danach sucht, Information auf eine sichere Weise zu
speichern, während
ein Zugriff auf eine solche Information nur für autorisierte Parteien zugelassen
ist. |
Pb(x) | Der öffentliche
Schlüssel
von x – veröffentlicht
oder auf andere Weise verfügbar. |
Pr(x) | Der
private Schlüssel
von x – durch
x geheim gehalten. |
Pb(x)[M](Pr(x)[M]) | M,
verschlüsselt
mit dem öffentlichen
(privaten) Schlüssel
von x. |
Pr(x)[Pb(x)[M]](Pb(x)[Pr(x)[M]]) | M,
verschlüsselt
mit dem öffentlichem
(privaten) Schlüssel
von x und entschlüsselt
mit dem privaten (öffentlichen)
Schlüssel
von x = M. M kann aus Pb(x), Pb(x)[M] oder Pr(x), Pr(x)[M] nicht
gefunden werden; Pr(x) (Pb(x)) kann aus Pb(x)[M], M, Pb(x)[M'] , M'... (Pr(x)[M], M,
Pr(x)[M'], M'...) nicht gefunden
werden. |
TA | Getreue
bzw. vertrauenswürdige
Autorität,
die eine Datenbank von Autorisierungen unterhält, die von P gewährt werden,
und die Anfragen für
einen Zugriff gewährt
oder verweigert. |
-
1 zeigt
ein Netzwerk 10 zum Steuern eines Zugriffs auf Information,
die auf einer Smartcard bzw. Chip-Karte gespeichert ist. Bei dem
gezeigten Ausführungsbeispiel
enthält
die Information medizinische Information. Das Netzwerk 10 enthält eine
Vielzahl von Endgeräten 12,
die bei den Einrichtungen verschiedener Gesundheits-Serviceprovidern
angeordnet sind, wie beispielsweise Arztpraxen, Krankenhausnotaufnahmen, anderen
Krankenhausdiensten, Ambulanzen und Schwesternheimen; sowie bei
anderen Organisationen, die bei der Gesundheitsvorsorge beteiligt
sind, wie beispielsweise Versicherungsgesellschaften.
-
Die Endgeräte 12 weisen jeweils
ein Paar von Smartcard-Lesern bzw. Chip-Karten-Lesern 14h und 14p zum
Lesen von Information von den Smartcards eines Serviceproviders
H oder eines Individuums P auf, und zum Schreiben von Information
zu diesen, wobei die Smartcards eines Serviceproviders H oder eines
Individuums P medizinische Dienste suchen. Die Smartcard eines Individuums
P enthält
medizinische Information oder andere Information, wie beispielsweise
eine Versicherungsinformation, zusammen mit Verschlüsselungsschlüsseln, Zertifikaten
und anderen Daten, die zum Steuern eines Zugriffs auf die medizinische
Information nötig
sind, während
die Smartcard eines Providers H Verschlüsselungsschlüssel, Zertifikate
und andere Information enthält,
die zum Erhalten eines Zugriffs auf die medizinische Information
nötig sind,
wie es weiter nachfolgend beschrieben wird.
-
(Während der Einfachheit der Beschreibung
halber die Endgeräte 12 mit 2 Smartcard-Lesern
primär gezeigt
worden sind, wird es Fachleuten auf dem Gebiet klar sein, dass ein
einziger Leser dazu verwendet werden könnte, beide Smartcards sequentiell
zu lesen, oder dass Information für den Provider H permanent im
Endgerät 12 gespeichert
sein könnte.
Jedoch wird es bevorzugt, dass wenigstens ein Teil der Information, die
durch den Provider H zum Zugreifen auf Information auf der Smartcard
eines Individuums P nötig
ist, auf einer oder mehreren Smartcards gespeichert ist, um die
Sicherheit zu erhöhen
und um zuzulassen, dass individuelle Anwender des Endgeräts 12 identifiziert
werden.)
-
Die Endgeräte 12 enthalten auch
jeweils Steuerungen 16 zum Steuern eines Betriebs des Endgeräts 12 gemäß einem
Zugriffsschutz-Schnittstellen-(API-)Programms 20, wie es
weiter nachfolgend beschrieben wird.
-
Die Endgeräte 12 enthalten auch
eine herkömmliche
I/O zur Ausgabe von Daten von oder zur Eingabe von Daten zu der
Smartcard des Individuums P auf irgendeine angenehme Weise.
-
Die Endgeräte 12 kommunizieren über Verbindungen 26 (die
irgendeine angenehme Form von Kommunikationen aufweisen können) mit
einem Datenverarbeitungszentrum 30 einer vertrauenswürdigen Autorität. Das Datenverarbeitungszentrum 30 enthält einen
sicheren Prozessor 32 und einen sicheren Datenbankspeicher 34,
die auf eine Weise unterhalten und betrieben werden, die die Integrität eines
Betriebs des Datenverarbeitungszentrums 30 sicherstellt.
Der Datenbankspeicher 34 speichert eine Datenbank von Autorisierungen
für bestimmte
Provider H zum Zugreifen auf Information von bestimmten Individuen
P und das Datenverarbeitungszentrum 30 wird auf Anfragen
von bestimmten Providern H nach einem Zugriff auf die Information von
bestimmten Individuen P nur dann reagieren, wenn eine geeignete
Autorisierung im Datenbankspeicher 34 gefunden wird.
-
(Während das hierin beschriebene
Ausführungsbeispiel
der einfachen Beschreibung halber annimmt, dass nur ein einziger
Typ von Information auf der Smartcard jedes Individuums P gespeichert
ist, werden Fachleute auf dem Gebiet ohne weiteres erkennen, dass
für ein
Individuum P gespeicherte Information auf irgendeine angenehme Weise
aufgeteilt sein kann, und Autorisierungen für einen Zugriff auf verschiedene
Gruppen und Untergruppen von Information ohne weiteres separat und
unabhängig
durch das Datenverarbeitungszentrum 30 verarbeitet werden
können.
Somit können
andere Typen von Information, wie beispielsweise Finanzinformation
oder Lizenznehmer oder Autorisierungen auf einer einzigen Smartcard
gespeichert sein, wobei ein Zugriff gemäß der vorliegenden Erfindung
separat gesteuert wird.)
-
(Mit einer vertrauenswürdigen Autorität ist hierin
eine Partei gemeint, der von sowohl Providern H als auch von Individuen
P vertraut wird, um die Integrität
eines Systems gemäß der vorliegenden
Erfindung beizubehalten, und um dieses System gemäß dem Verständnis der
Parteien so zu betreiben, dass autorisierte Provider H, und nur
autorisierte Provider H, mit einem sofortigen, genauen Zugriff auf
Information versehen werden. Letztlich kann natürlich ein solches Vertrauen
nur durch eine weit verbreitete Reputation bezüglich einer Integrität aufgebaut
werden. Jedoch können
Individuen oder Organisationen, die keine gut eingerichtete Reputation
haben, das Datenverarbeitungszentrum 30 betreiben, wenn
sie durch gut eingerichtete Individuen oder Organisationen (hierin
nachfolgend zertifizierende Autorität) "zertifiziert" werden, wie es weiter nachfolgend beschrieben
wird.)
-
Fachleute auf dem Gebiet werden erkennen,
dass es für
ein einziges Datenverarbeitungszentrum 30 unpraktisch ist,
eine Datenbank von Autorisierungen für alle Individuen P zu unterhalten,
die den Wunsch haben könnten,
die Vorteile der vorliegenden Erfindung zu verwenden. Somit zeigt 2 eine Vielzahl von Datenverarbeitungszentren 30-1, 30-2 und 30-3 für eine vertrauenswürdige Autorität, die jeweils
eine Datenbank von Autorisierungen für Individuen P unterhalten
würden,
die in einem gegebenen Bereich wohnen. Da es auch finanziell und
betriebsmäßig schwierig
wäre, ein
solches Netzwerk auf einer nationalen oder weltweiten Basis zu betreiben,
was natürlich
viel mehr als drei Datenverarbeitungszentren enthalten würde, und
da eine bestimmte vertrauenswürdige
Autorität
in einem bestimmten Bereich für
die Industrie neu sein kann oder nicht weithin bekannt sein kann,
enthält
ein Netzwerk 40 eine zertifizierende Autorität 44,
für welche
angenommen ist, dass sie eine wohlbekannte Reputation für eine Integrität und Effizienz
hat, welche die Datenverarbeitungszentren 30-1, 30-2 und 30-3 auf
eine Weise zertifiziert, die nachfolgend vollständiger beschrieben wird, und zwar
nach einem Versichern für
sich selbst, dass die Zentren richtig betrieben werden.
-
Bei weiteren bevorzugten Ausführungsbeispielen
der vorliegenden Erfindung kann es eine Vielzahl von zertifizierenden
Autoritäten
geben, die bezüglich
einer Hierarchie geordnet sein können,
wobei im Rang höhere
Autoritäten
im Rang niedrigere Autoritäten
zertifizieren. Bei weiteren Ausführungsbeispielen
können zertifizierende
Autoritäten
zu vertrauenswürdigen
Autoritäten
zugeordnet sein (z. B. durch dieselbe Einheit betrieben werden).
Typischerweise würden
solche zugehörigen
zertifizierenden Autoritäten
Schlüsselpaare
und Zertifikate zu Serviceprovidern und Individuen liefern, deren
Aufzeichnungen unter der Aufsicht der zugehörigen vertrauenswürdigen Autorität sind.
-
3 zeigt
ein schematisches Blockdiagramm einer Smartcard hoher Kapazität, die zur
Verwendung bei einem Ausführungsbeispiel
der vorliegenden Erfindung geeignet ist. In 3 enthält die Smartcard 50 einen
herkömmlichen
Mikroprozessor 52, der mit einem herkömmlichen Programm- und Arbeitsspeicher 54 kommuniziert,
und enthält
I/O-Kontakte 56 zur Kommunikation zwischen dem Mikroprozessor 52 und
einem Kartenleser 14p. Die Smartcard bzw. Chip-Karte 50 enthält auch
einen optischen Lese/Schreib-Speicher 58. Da es keine direkte
Kommunikation zwischen dem Speicher 58 und dem Mikroprozessor 52 gibt,
werden Daten zwischen dem Speicher 58 und dem Mikroprozessor 52 über den
Kartenleser 14p übertragen
bzw. transferiert. Demgemäß beruht
eine Sicherheit von Daten im Speicher 52 auf einer Verschlüsselung
der Daten durch den Mikroprozessor 52, wie es weiter nachfolgend
beschrieben wird. Smartcards, die im Wesentlichen ähnlich der
Smartcard 50 sind, sowie kompatible Leser, sind auf dem
Markt von Lasercard Systems Corporation, Mountain View CA (einer
Unterabteilung von Drexler Technology Corporation) erhältlich und
sind in einem elektronisch veröffentlichten
Dokument LASERCARD SYSTEMS Technical Information http://www.lasercard.com/Isctec().html
beschrieben und müssen
hier für
ein Verstehen der vorliegenden Erfindung nicht weiter diskutiert
werden.
-
(Während es keine direkte Kommunikation
zwischen dem Mikroprozessor 52 und dem Lese/Schreib-Speicher
58 gibt, überwacht
der Mikroprozessor 52 bei einem bevorzugten Ausführungsbeispiel elektrische
Parameter des Speichers 58 auf eine bekannte Weise über eine
Verbindung 59, um Zeichen einer physikalischen Beeinflussung
zu erfassen. In dem Fall, dass eine Beeinflussung erfasst wird,
kann der Mikroprozessor 52 eine Datenausgabe sperren oder
andere geeignete Reaktionen initiieren, um Anwender bezüglich der
Möglichkeit
zu alarmieren, dass Daten kompromittiert bzw. bloßgelegt
worden sind.) Es sollte beachtet werden, dass Karten, die von Providern
H verwendet werden, allgemein keine großen Mengen von Information speichern
werden, und einfachere Smartcards oder Speicherkarten und entsprechende
Leser 14h von Providern H verwendet werden können.
-
4 zeigt
ein Datenablaufdiagramm für
einen Zugriff durch einen Provider H auf medizinische oder andere
Daten eines Individuums P, wobei Autorisierungen, die durch das
Individuum P gewährt
werden, bei dem Datenverarbeitungszentrum mit einer vertrauenswürdigen Autorität gespeichert
sind, das mit dem Provider H kommuniziert.
-
Eine Tabelle 1 zeigt Daten, die anfangs
der vertrauenswürdigen
Autorität,
dem Provider H und dem Individuum P geliefert werden; genauer gesagt
die Daten, die im Datenverarbeitungszentrum 30, im Endgerät 12 (oder
welche von der Smartcard des Providers H zum Endgerät 12 hinauf
geladen sind) und der Smartcard des Individuums P gespeichert sind.
-
Unter der Annahme, dass die Smartcard
des Individuums P in den Leser
14p eingefügt worden
ist und dass nötige
Information von der Smartcard des Providers H zum Endgerät
12 hinauf
geladen worden ist, sendet der Provider H bei
60 ein Startsignal
zum Individuum P. TABELLE
1
Initialisierung
TA:
Pr(TA),
Pb(TA) | Öffentliches,
privates Schlüsselpaar
von CA |
CERT(TA) | Pr(CA)[Pb(TA),
ID(TA)] |
Pb(CA) | CA-öffentlicher
Schlüssel |
K | Sessionschlüssel-Aktualisierungsfunktion |
Datenbank | Autorisierung
(H, P), Anfangs-CSK (P) |
H:
API | |
Pr(H),
Pb(H) | Öffentliches
Schlüsselpaar
von CA |
CERT(H) | Pr(CA)[Pb(H),
ID(H)] |
Pb(CA) | Öffentlicher
Schlüssel |
ID(U) | Optionale
Anwender-ID |
P:
Pr(P),
Pb(P) | Öffentliches
Schlüsselpaar
von CA |
CERT(P) | Pr(CA)[Pb(P),
ID(P)] |
Pb(CA) | CA-öffentlicher
Schlüssel |
K | Sessionschlüssel-Aktualisierungsfunktion |
ID(Tap) | ID
von TA unter Aufsicht von Autorisierungen, die von P gewährt sind |
-
Bei 62 springt ein Individuum
P zurück.
(62)
CERT(P)
-
Somit bringt ein Individuum P bei 62 ein
Zertifikat zurück,
das durch eine zertifizierende Autorität ausgegeben worden ist, welche
bei einem kleinen Netzwerk mit nur einer einzigen vertrauenswürdigen Autorität diese
vertrauenswürdige
Autorität
sein kann. Dann gilt bei 64:
(64) Pr(H)[CERT(P),
DATENANFRAGE], CERT(H)
-
Das Endgerät 12 empfängt das
Zertifikat des Individuums P und bildet eine Nachricht durch Anhängen einer
Datenanfrage für
einen Zugriff und durch Verschlüsseln
der Kombination mit dem privaten Schlüssel des Providers H und durch
Anhängen
des Zertifikats des Providers H. Die Anfrage nach einem Datenzugriff
wird anzeigen, ob der Zugriff zum Lesen von Daten oder zum Schreiben
von Daten erfolgt. Ebenso können,
wie es oben angegeben ist, auf der Smartcard des Individuums P gespeicherte
Daten auf irgendeine angenehme Weise aufgeteilt sein, und die Datenzugriffsanfrage
wird dann anzeigen, auf welche Gruppe oder Untergruppe von Daten
zuzugreifen ist.
-
Bei 66 empfängt die
vertrauenswürdige
Autorität
die Nachricht vom Provider H und verarbeitet sie, wie es folgt:
Bei
(66)(a) Pb(CA)[CERT(H)] = Pb(H) , ID(H)
-
Der Prozessor 32 entschlüsselt das
Zertifikat des Providers H mit dem öffentlichen Schlüssel der
zertifizierenden Autorität,
um den öffentlichen
Schlüssel
und die Identifikation des Providers H zu erhalten. Es sollte beachtet
werden, dass der öffentliche
Schlüssel
für den
Provider H eindeutig ist, und andere Information, die nötig ist,
aus der Datenbanktabelle erhalten werden könnte. Jedoch ist es der Effizienz
des Betriebs halber vorzuziehen, dass die Identifikation im Zertifikat
enthalten ist. Ebenso sollte diese Identifikation vorzugsweise den
Provider H charakterisieren, da die Individuen P häufig wünschen werden,
einen Zugriff für
eine bestimmte Klasse eines Providers zu autorisieren; z. B. alle
Notrufplätze.
Bei
(66) (b) Pb(H)[Pr(H)[CERT(P), DATENANFRAGE] CERT(P), DATENANFRAGE
-
Der Prozessor 32 verwendet
dann den öffentlichen
Schlüssel
des Providers H zum Erhalten des Zertifikats des Individuums P und
der Anfrage nach einem Datenzugriff.
Bei (66)(c) Pb(CA)[CERT(P)]
= Pb(P), ID(P)
-
Der Prozessor 32 verwendet
dann den öffentlichen
Schlüssel
der zertifizierenden Autorität
zum Erhalten des öffentlichen
Schlüssels
des Individuums P und der Identifikation des Individuums P aus dem
Zertifikat für
das Individuum P.
Bei (66)(d) Abfrage (ID(P), ID(H),
DATENANFRAGE)
-
Der Prozessor 32 fragt dann
die Datenbank 34, um zu bestimmen, ob das Individuum P
den Provider H (oder die Klasse des Serviceproviders) für den Typ
eines angefragten Datenzugriffs autorisiert hat.
Bei (66)(e)
Reaktion (CSK)
-
Unter der Annahme, dass der angefragte
Datenzugriff autorisiert ist, wird der aktuelle Sessionschlüssel von
der Datenbank 34 zurückgebracht.
(CSK = NSK der vorherigen Session). Wenn der angefragte Datenzugriff
nicht autorisiert ist, wird das System in eine Fehlerroutine eintreten,
um einen verweigerten Zugriff anzuzeigen.
Bei (66)(f)
ACODE = (Datenblock-Adresse, -Größe, Datum-Zeit,
R/W, CSK)
-
Der Prozessor 32 bildet
dann eine Nachricht ACODE, die bei einem bevorzugten Ausführungsbeispiel Sessioninformation,
wie beispielsweise eine Datenblockadresse und -größe, das
Datum und die Zeit, enthält, ob
ein Lese- oder Schreibzugriff autorisiert ist; und den aktuellen
Sessionschlüssel.
Bei
(66)(h) K(ACODE) = NSK (Datenbasis)
-
Der Prozessor 32 wendet
dann eine Funktion K auf eine aktuelle Zugriffssessioninformation
an, um den nächsten
Sessionschlüssel
zu erzeugen, und der Sessionschlüssel
wird dazu verwendet, den aktuellen Sessionschlüssel in der Datenbank 34 zu
aktualisieren. Eine Zugriffssessioninformation ist für eine bestimmte Zugriffssession
eindeutig und enthält
vorzugsweise wenigstens einen Teil der Information in ACODE. Bei
anderen Ausführungsbeispielen
kann eine Zugriffssessioninformation Information, wie beispielsweise
ID(H), ID(P) oder eine Zugriffssequenznummer, die jede Zugriffssession
eindeutig identifiziert, enthalten.
-
Bei weiteren bevorzugten Ausführungsbeispielen
speichert der Prozessor 32 der vorliegenden Erfindung ACODE,
oder nötige
Teile von ACODE (d.h. Sessioninformation und CSK für die Session,
während
welcher die "Saat" gespeichert wird),
oder eine Ableitung von solcher Information, wie beispielsweise
einer "Hash"-Information von
solcher Information bei 66 h als "Keim",
woraus CSK für
die nächste
Session berechnet werden kann. Der Prozessor 32 kann CSK
für die
nächste
Session berechnen, oder bei anderen Ausführungsbeispielen den "Keim" in ACODE für die nächste Session
einschließen,
so dass CSK für
die nächste
Session durch den Prozessor 52 der Karte 50 berechnet
werden kann. Bei solchen Ausführungsbeispielen
enthält ACODE
aktuelle Sessioninformation und den "Keim",
welcher zum Berechnen von CSK für
die aktuelle Session verwendet wird. CSK und die aktuelle Sessioninformation
von ACODE (welche dem aktualisierten "Keim" entsprechen,
der während
der aktuellen Session von TA gespeichert ist) werden dann zum Berechnen
von NSK für
die aktuelle Session verwendet.
-
Solche Ausführungsbeispiele können eine
erhöhte
Sicherheit bieten, da weder NSK noch CSK explizit entweder auf der
Karte 50 oder in der Datenbank 34 gespeichert
wird.
Bei (68) Pb(P)[Pr(TA)[ACODE], CERT(TA)]
-
Bei 68 verschlüsselt der
Prozessor 32 ACODE mit dem privaten Schlüssel der
vertrauenswürdigen
Autorität
und hängt
das Zertifikat der vertrauenswürdigen
Autorität
an und verschlüsselt
dann die gesamte Nachricht mit dem öffentlichen Schlüssel des
Individuums P und sendet die verschlüsselte Nachricht zum Endgerät 12 des
Providers H.
Bei (70) Pb(P)[Pr(TA)[ACODE], CERT(TA)]
-
Das Endgerät 12 leitet die verschlüsselte Nachricht
zur Smartcard des Individuums P weiter.
-
Bei 72 verarbeitet die Smartcard
des Individuums P die Nachricht wie folgt:
Bei (72)(a)
Pr(P)[Pb(P)[Pr(TA)[ACODE], CERT(TA)]] = Pr(TA)[ACODE], CERT(TA)
-
Die Smartcard verwendet den privaten
Schlüssel
des Individuums P zum Entschlüsseln
der Nachricht und zum Entdecken der Verschlüsselung von ACODE und des Zertifikats
der vertrauenswürdigen
Autorität.
Bei
(72)(b) PB(CA)[CERT(TA)] = Pb(TA), ID(TA)
-
Die Smartcard verwendet dann den öffentlichen
Schlüssel
der zertifizierenden Autorität
zum Entschlüsseln
des Zertifikats der vertrauenswürdigen
Autorität,
um den öffentlichen
Schlüssel
der vertrauenswürdigen
Autorität
und die Identifikation der vertrauenswürdigen Autorität zu erhalten.
Bei
(72)(c) Pb(TA)[Pr(TA)[ACODE]] = ACODE = (Datenblock-Adresse,
-Größe, Datum–Zeit R/W,
CSK)
-
Die Smartcard verwendet dann den öffentlichen
Schlüssel
der vertrauenswürdigen
Autorität
zum Entschlüsseln
von ACODE, was bei einem bevorzugten Ausführungsbeispiel einen Datenblock,
eine Adresse und eine Größe, das
Datum und die Zeit enthalten wird, ob der Zugriff ein Lese- oder
Schreibzugriff ist und den aktuellen Sessionschlüssel. Eine erfolgreiche Entschlüsselung
von ACODE liefert eine Sicherheit, dass ACODE von der vertrauenswürdigen Autorität erhalten
wurde und durch die vertrauenswürdige
Autorität
unter Verwendung eines privaten Schlüssels verschlüsselt wurde,
der durch die zertifizierende Autorität zur Verfügung gestellt wird.
(74)
Datenblock-Adresse, -Größe
-
Die Smartcard des Individuums P bringt
dann die Datenblock-Adresse
und -Größe zum Endgerät 12 zurück. Wie
es oben angegeben ist, werden Lese/Schreib-Operationen zum optischen
Datenspeicher 58 durch das Endgerät 12 ausgeführt.
-
Dann wird unter der Annahme, dass
eine Leseoperation ausgeführt
wird, der Datenblock wie folgt in Segmenten verarbeitet:
Bei
(76R) Lesen, Entschlüsseln
und erneutes Verschlüsseln
Erneutes Schreiben und Anordnen von Daten-Segmenten vom optischen
Speicher 58
Bei (78R) Ausgeben entschlüsselter
Daten
-
Typischerweise werden Daten in Segmenten
einer gegebenen Größe verschlüsselt und
entschlüsselt. Da
ein Datenblock allgemein mehr als ein Segment enthalten wird, werden
die Daten durch das Endgerät 12 als
Segmente gelesen und dann zur Smartcard gesendet, wo sie entschlüsselt und
mit einem neuen Sessionschlüssel
erneut verschlüsselt
werden. Sowohl das entschlüsselte
Segment als auch die erneute Verschlüsselung des Segments werden
dann zum Endgerät 12 zurückgebracht,
welches das erneut verschlüsselte
Segment erneut zum optischen Speicher 58 schreibt und die
entschlüsselten
Segmente zusammenbaut, um einen entschlüsselten Datenblock zu bilden.
Der entschlüsselte
Datenblock wird dann bei 78r ausgegeben. Die ausgegebenen Daten
können
dann auf irgendeine angenehme Weise angezeigt, verarbeitet oder
erneut übertragen
werden.
-
Zum Eingeben oder Aktualisieren von
Daten werden Segmente wie folgt verarbeitet:
Bei (76w)
Eingeben neuer Daten
Bei (78W) Verschlüsseln neuer
Datensegmente und Schreiben verschlüsselter Segmente zum Optischen Speicher 58
-
Wenn Daten zu schreiben oder zu aktualisieren
sind, werden die neuen Daten zuerst zum Endgerät 12 eingegeben, das
Datensegmente zur Smartcard sendet, wo sie mit dem neuen Sessionschlüssel verschlüsselt werden
und zum Endgerät 12 zurückgebracht
werden, das sie zum optischen Speicher 58 schreibt. Eine detailliertere
Beschreibung des Betriebs der Smartcard und des Endgeräts 12 beim
Verarbeiten der Daten ist nachfolgend aufgezeigt.
-
Die obige Beschreibung basiert auf
der Annahme, dass der Provider H in Kommunikation mit der vertrauenswürdigen Autorität ist, die
die Datenbank von Autorisierungen unterhält, die durch das Individuum
P gewährt
werden. Allgemein wird dies in einer modernen Gesellschaft, in welcher
Individuen oft umziehen und häufig
reisen, nicht der Fall sein. Bei einem Ausführungsbeispiel der vorliegenden
Erfindung könnte
dann, wenn ein Provider, wie beispielsweise ein Krankenhaus, sich
mit einem Individuum beschäftigt,
wie beispielsweise einem neuen Patienten, deren Aufzeichnungen von
Autorisierungen von einer entfernten vertrauenswürdigen Autorität gehalten
werden, der Provider auf die entfernte vertrauenswürdige Autorität über das
Telefonnetz zugreifen, und zwar auf die oben beschriebene Weise.
Jedoch sind bei einem bevorzugten Ausführungsbeispiel Provider, wie
beispielsweise Krankenhäuser,
mit lokalen vertrauenswürdigen
Autoritäten
durch eine bestimmte Verbindung zwischen dem Endgerät 12 und
dem Datenverarbeitungszentrum 30 verbunden. Dies wird einen
Zugriff hoher Geschwindigkeit für
die normale Situation zur Verfügung
stellen, in welcher ein Individuum, das dem Provider bekannt ist,
nach einem Service bzw. Dienst fragt, und die Datenbank von Autorisierungen
für dieses
Individuum lokal unterhalten wird. In anderen Situationen, wie beispielsweise
dort, wo ein fremder Patient, der einen medizinischen Notdienst
erfordert, nach einem Zugriff auf Daten fragt, Daten zwischen der
vertrauenswürdigen
Autorität
in Kommunikation mit dem Krankenhaus und der entfernten vertrauenswürdigen Autorität, die die
Datenbank von Autorisierungen unterhält, die durch das Individuum
gewährt werden, übertragen,
wie es ausführlicher
nachfolgend unter Bezugnahme auf 5 beschrieben
wird.
-
Wendet man sich der 5 zu, sendet bei einer Initialisierung,
wie sie in der Tabelle 1 gezeigt ist, bei 80 das Endgerät 12 des
Providers H ein Startsignal zur Smartcard des Individuums P, die
mit dem Endgerät 12 verbunden
worden ist. Dann gilt:
(82) CERT(P), ID(TAp)
-
Bei 82 bringt die Smartcard
das Zertifikat des Individuums P und die Identifikation der vertrauenswürdigen Autorität, die die
Aufzeichnungen von Autorisierungen unterhält, die durch das Individuum
P gewährt werden,
zurück.
Dann gilt:
(84) Pr(H)[CERT(P), DATENANFRAGE], ID(TAp),
CERT(H)
-
Bei 84 verschlüsselt das
Endgerät 12 das
Zertifikat des Individuums P und die Anfrage nach einem Datenzugriff
mit dem privaten Schlüssel
des Providers H, hängt
die Identifikation der vertrauenswürdigen Autorität des Individuums
P und das Zertifikat des Providers H an und sendet dies zu dem Datenverarbeitungszentrum 30 der
vertrauenswürdigen
Autorität,
die zum Provider H gehört.
Dann gilt:
(86) Pr(H)[CERT(P), DATENANFRAGE], ID(TAp),
CERT(H), ID(TAh)
-
Unter der Annahme, dass die zum Provider
H gehörende
vertrauenswürdige
Autorität
unterschiedlich von der vertrauenswürdigen Autorität ist, die
die Datenbank unterhält,
die die Aufzeichnungen von Autorisierungen enthält, die durch das Individuum
P gewährt
werden, hängt
die zu dem Provider H gehörende
vertrauenswürdige
Autorität
bei 86 ihre Identifikation an die vom Provider H empfangene
Nachricht an und sendet diese Nachricht zur vertrauenswürdigen Autorität des Individuums
P. Eine Kommunikation zwischen den vertrauenswürdigen Autoritäten kann
auf irgendeine angenehme Weise erfolgen, wie beispielsweise über das
Fernsprechwählnetz,
bestimmte Leitungen oder über
ein Computerkommunikationsnetz, wie beispielsweise das Internet.
Dann gilt:
(88)(a) Pb(CA)[CERT(H)] = Pb(H), ID(H)
(b)
PB(H)[Pr(H)[CERT(P), DATENANFRAGE] = CERT(P), DATENANFRAGE
(c)
PB(CA)[CERT(P)]) Pb(P), ID(P)
(d) Abfrage (ID(P), ID(H), DATENANFRAGE)
(e)
Reaktion (CSK)
(f) ACODE =(DATENBLOCK-ADRESSE, -GRÖSSE DATUM-ZEIT;
R/W, CSK)
(g) K(ACODE) = NSK DATENBASIS
-
Bei 88 bestimmt die vertrauenswürdige Autorität des Individuums
P, ob der angefragte Datenzugriff autorisiert ist, und erzeugt dann,
wenn es so ist, einen Zugriffscode und aktualisiert den aktuellen
Sessionschlüssel
auf eine Weise, die im Wesentlichen identisch zu derjenigen ist,
die bei (66) in 4 beschrieben
ist. Dann gilt:
(90) Pb(P)[Pr(TAp)[ACODE], CERT(TAp)],
ID(H), ID(P)
-
Bei 90 verschlüsselt die
vertrauenswürdige
Autorität
von P ACODE mit ihrem privaten Schlüssel und hängt ihr Zertifikat an, verschlüsselt die
Kombination mit dem öffentlichen
Schlüssel
des Individuums P und hängt
die Identifikationen des Individuums P und des Providers H an und
bringt diese Nachricht zu der zum Provider H gehörenden vertrauenswürdigen Autorität zurück. Dann
gilt:
(92) Pb(P)[Pr(TAp)[ACODE], CERT(TAp)], ID(p)
(94)
Pb(P)[Pr(TAp)[ACODE], CERT(TAp)]
-
Bei 92 lässt die zu dem Provider H gehörende vertrauenswürdige Autorität die Identifikation
des Providers H fallen und leitet bei 94 die Nachricht
zur Smartcard des Individuums P weiter. Dann gilt:
(96)(a)
Pr(P)[Pb(P)[Pr(TAp)[ACODE], CERT(TAp)] = Pr(TAp)[ACODE], CERT(TAp)
(b)
Pb(CA)[CERT(TAp)] = Pb(TAp), ID(TAp)
(c) Pb(TAp)[Pr(TAp)[ACODE]
= ACODE = (Datenblock-Adresse, -Größe; Datum-Zeit; R/W (CSK)
(98)
Datenblock, Adresse, Größe
(100r)
Lesen, Entschlüsseln
und erneutes Verschlüsseln,
erneutes Schreiben und Zusammenbauen von Datensegmenten vom optischen
Speicher 58
(102r) Ausgeben entschlüsselter
Daten
(100w) Eingeben neuer Daten
(102w)
Verschlüsseln
neuer Datensegmente vom optischen Speicher 58 und Schreiben
verschlüsselter
Segmente zum optischen Speicher 58
-
Bei 96 bis 102 interagieren
das Endgerät 12 und
die Smartcard des Individuums P zum Verarbeiten eines Datenzugriffs
auf eine Weise, die im Wesentlichen identisch zu derjenigen ist,
die unter Bezugnahme auf 72–78
der 4 beschrieben ist.
-
Bei anderen Ausführungsbeispielen der vorliegenden
Erfindung muss die Smartcard des Individuums P nicht mit dem Endgerät des Serviceproviders
verbunden sein, der nach einem Datenzugriff fragt. Es wird Fachleuten
auf dem Gebiet ohne weiteres klar werden, dass ein Serviceprovider
einen Datenzugriff zu einer Smartcard nachfragen kann, die mit einem
entfernten Endgerät
verbunden ist, welches wiederum mit dem Datenverarbeitungszentrum
von entweder der zu diesem Serviceprovider gehörenden vertrauenswürdigen Autorität oder mit
einem anderen Datenverarbeitungszentrum verbunden sein kann, und
zwar mit nur kleineren Modifikationen, die Fachleuten auf dem Gebiet
ohne weiteres offensichtlich sind, an den oben beschriebenen Kommunikationsprotokollen.
-
Bei einem weiteren Ausführungsbeispiel
der vorliegenden Erfindung wird diese Fähigkeit dazu verwendet, eine
neue Einrichtung für
eine sichere Kommunikation zur Verfügung zu stellen. Gemäß diesem
Ausführungsbeispiel
könnte
ein erster Provider nach einem Zugriff auf die Smartcard eines Individuums
fragen, um Daten zu einer bestimmten Stelle zu schreiben. Ein zweiter
Provider könnte
dann nach einem Zugriff auf diese Stelle zum Lesen der Daten fragen,
und zwar entweder während
einer einzelnen Transaktion oder bei einer separaten Transaktion.
Die zweite Partei würde
eine Sicherheit haben, dass die Daten bei einem bestimmten Serviceprovider
entstanden sind, und mit der Autorisierung eines bestimmten Individuums.
-
Beispielsweise dann, wenn der Provider
H ein Krankenhaus wäre,
das wünscht,
den Versicherungszustand des Individuums P zu kennen, der nach medizinischen
Diensten fragt, würde
der Provider eine Anfrage zur Smartcard des Individuums P schreiben,
und die Versicherungsgesellschaft könnte dann diese Anfrage von
der Smartcard des Individuums P lesen. Die Versicherungsgesellschaft
würde dann
sicher sein, dass die Anfrage bei dem Provider H entstanden war
und mit der Autorisierung des Individuums P übertragen wurde.
-
Fachleute auf dem Gebiet werden erkennen,
dass zusätzliche
Kommunikationen, die zum Initiieren und Koordinieren von verschiedenen
Kommunikationstransaktionen bei dem gerade beschriebenen Ausführungsbeispiel
nötig sind,
auf irgendeine angenehme Weise ausgeführt werden können und
hier für
ein Verstehen der vorliegenden Erfindung nicht weiter beschrieben
werden müssen.
-
Die 6a und 6b und 7a und 7b zeigen
die Interaktion des Endgeräts 12 und
der Smartcard des Individuums P beim Lesen von Daten, wo die Smartcard
eine Smartcard 50 ist, wie sie in 3 gezeigt ist.
-
Wendet man sich den 6a und 6b zu,
empfängt
die Smartcard 50 bei 110 die Verschlüsselung
von ACODE und das Zertifikat der vertrauenswürdigen Autorität, die Aufzeichnungen
von Autorisierungen hält,
die durch das Individuum P gewährt
werden, wie es oben unter Bezugnahme auf den Schritt 70 in 4 und den Schritt 94 in 5 beschrieben ist. Bei 112 entdeckt
die Smartcard 50 ACODE, wie es auch oben beschrieben ist.
Dann bestimmt die Smartcard 50 bei 114, ob ACODE
gültig
ist. Vorzugsweise wird dies durch einfaches Bestimmen durchgeführt, ob
ACODE sinnvoll ist, da die Wahrscheinlichkeit einer nicht richtig
entschlüsselten Nachricht,
die verständlich
ist, verschwindend gering ist. Wenn ACODE nicht gültig ist,
tritt die Smartcard 50 bei 116 zu einer Fehlerroutine
aus.
-
Dann berechnet die Smartcard 50 bei 120 den
nächsten
Sessionschlüssel
(NSK) gemäß einer
vorbestimmten Funktion K, die auf Information in ACODE angewendet
wird. Bei einem bevorzugten Ausführungsbeispiel
weist die Funktion K eine Verschlüsselung mit dem privaten Schlüssel Pr(P)
des Individuums P auf.
-
Dann gibt die Smartcard 50 bei 122 die
Datenblock-Adresse und -Größe zum Endgerät 12 aus.
Dann empfängt
die Smartcard 50 bei 124 ein verschlüsseltes
Datensegment vom Endgerät 12.
Bei 128 entschlüsselt sie
das Segment mit dem aktuellen Sessionschlüssel (CSK) und verschlüsselt bei 130 die
entschlüsselten
Daten erneut mit NSK. Bei 132 gibt die Smartcard 50 das
entschlüsselte
Segment und das erneut verschlüsselte Segment
zur Steuerung 16 aus. Bei 136 testet die Smartcard 50,
um zu bestimmen, ob dies das letzte Segment ist, und, wenn es nicht
so ist, kehrt sie zu 124 zurück, um das nächste Datensegment
zu empfangen.
-
Nachdem das letzte Datensegment empfangen
ist, stellt die Smartcard 50 bei 138 NSK und ACODE auf 0 ein.
-
Es sollte beachtet werden, dass durch
Löschen
von NSK und ACODE von der Smartcard ein hohes Maß an Sicherheit selbst für Smartcards,
wie beispielsweise die Smartcard 50, erreicht wird, wo
ein optischer Datenspeicher 58 notwendigerweise für externe
Vorrichtungen zugreifbar ist, da die Smartcard 50 entweder den
Schlüssel,
der zum Verschlüsseln
der Daten verwendet wird, oder Information, aus welcher dieser Schlüssel abgeleitet
werden kann, nicht enthält.
-
Dieses Ausmaß an Sicherheit hat jedoch
den Nachteil, dass ein Systemfehler bzw. Systemausfall, der eine
Kommunikation zu der vertrauenswürdigen
Autorität
verhindert, jeden Zugriff auf die verschlüsselte Information verhindern
würde.
Demgemäß kann bei
weiteren Ausführungsbeispielen
der vorliegenden Erfindung die Smartcard des Individuums oder des
Providers H den Schlüssel,
der zum Verschlüsseln
bestimmter, empfindlicher, kritischer Information verwendet wird,
speichern und kann programmiert werden, um diese Information für bestimmte
Provider zu entschlüsseln
und auszugeben, die durch die zertifizierende Autorität derart
zertifiziert sind, dass sie eine Notfall-Autorisierung haben, um
auf eine solche Information selbst in dem Fall eines Systemausfalls
zuzugreifen. Beispielsweise könnte
der Leiter eines medizinischen Notdienstes eine Autorität zum Zugreifen
auf solche empfindlichen, kritischen Daten in dem Fall eines Systemausfalls
haben, während ein
anderes medizinisches Personal nur auf solche Daten mit einem Zugriffscode
zugreifen könnte,
der durch eine vertrauenswürdige
Autorität
ausgegeben wird, aber ohne einen sofortigen Zugriff auf die vertrauenswürdige Autorität zu benötigen. Natürlich kann
unempfindliche Information, wie beispielsweise ein Bluttyp, auf
der Oberfläche
der Karte gedruckt werden.
-
Wendet man sich den 7a und 7b zu,
ist ein Ablaufdiagramm des Betriebs der Steuerung 16 gezeigt,
wie sie mit der Smartcard 50 zum Lesen von Daten interagiert.
Bei 140 empfängt
die Steuerung 16 die Verschlüsselung von ACODE und das Zertifikat
der vertrauenswürdigen
Autorität
von der vertrauenswürdigen Autorität, und leitet
sie bei 144 zur Smartcard weiter.
-
Wenn keine Reaktion von der Smartcard
innerhalb einer vorbestimmten Zeitperiode empfangen wird, tritt
die Steuerung 16 bei 146 zu einer Fehlerroutine 147 aus.
Sonst werden bei 148 die Datenblock-Adresse und -Größe von der
Smartcard 50 empfangen, und liest die Steuerung 16 bei 152 ein
verschlüsseltes
Datensegment, das im Datenblock vorgesehen ist, vom optischen Speicher 158.
dann wird bei 154 das verschlüsselte Datensegment zum Mikroprozessor 52 gesendet.
-
Wiederum tritt dann, wenn keine Reaktion
empfangen wird, die Steuerung 16 bei 156 zur Fehlerroutine 157 aus.
-
Sonst werden bei 158 das
erneut verschlüsselte
Datensegment (d. h. das mit NSK neu verschlüsselte Datensegment) und das
entschlüsselte
Datensegment von der Smartcard 50 zurückgebracht.
-
Bei 160 bestimmt die Steuerung 16,
ob dies das letzte Segment ist und wenn es nicht so ist, bringt
sie zu 152 zurück,
um das nächste
Datensegment zu lesen.
-
Wenn einmal das letzte Datensegment
empfangen ist, assembliert die Steuerung 16 bei 162 alle
entschlüsselten
Datensegmente und gibt sie aus, und schreibt bei 164 die
erneut verschlüsselten
Daten zum optischen Datenspeicher 58 und tritt dann aus.
-
Wendet man sich der 8 zu, ist ein Ablaufdiagramm des Betriebs
der Smartcard 50 gezeigt, wie sie mit der Steuerung 16 zum
Schreiben von Daten interagiert.
-
Fachleute auf dem Gebiet werden erkennen,
dass der Betrieb der Smartcard 50 beim Ausführen von Elementen 170 bis 182 identisch
zu dem in 6a beim Ausführen von
Elementen 110 bis 122 gezeigten Betrieb ist, und
dass diese Elemente unter Verwendung von gemeinsamen Programmmodulen
implementiert sein können.
Jedoch sind sie in separaten Ablaufdiagrammen hier der Einfachheit
der Beschreibung halber als separate Elemente gezeigt.
-
Nachdem die Datenblock-Adresse und
-Größe bei 182 zur
Steuerung 16 ausgegeben sind, empfängt die Smartcard 50 bei 184 ein
Eingangsdatensegment von der Steuerung 16. Bei 188 wird
das Segment mit NSK verschlüsselt.
Bei 190 wird das verschlüsselte Segment zur Steuerung 16 ausgegeben,
und bei 192 bestimmt die Smartcard 50, ob dies
das letzte Datensegment ist. Wenn es nicht so ist, springt die Smartcard 50 zu 184 zurück, um das
nächste
Datensegment auszugeben.
-
Wenn einmal das letzte Segment empfangen
ist, werden NSK und ACODE bei 196 auf 0 gesetzt,
und die Smartcard 50 tritt aus.
-
Wendet man sich der 9 zu, ist ein Ablaufdiagramm des Betriebs
der Steuerung 16 gezeigt, wie sie mit der Smartcard zum
Eingeben von Daten kooperiert. Wiederum werden Fachleute auf dem
Gebiet erkennen, dass die Ausführung
von Elementen 200 bis 206 identisch zu der Ausführung von
Elementen 140 bis 146 in 7a ist; aber wiederum ist sie hier der
Einfachheit der Beschreibung halber separat gezeigt.
-
Nachdem die Datenblock-Adresse und
-Größe von der
Smartcard 50 empfangen sind, werden bei 210 die
zu speichernden Daten eingegeben und werden bei 212 in
Datensegmente aufgeteilt, die durch den verwendeten Verschlüsselungsalgorithmus
auf geeignete Weise weiter bearbeitet werden.
-
Bei 214 tritt die Steuerung 16 dann,
wenn die Smartcard nicht in einer vorbestimmten Zeit reagiert, zu einer
Fehlerroutine 215 aus.
-
Sonst empfängt die Steuerung 16 bei 218 das
verschlüsselte
Datensegment von der Smartcard 50 und schreibt bei 220 das
verschlüsselte
Datensegment zum optischen Speicher 58.
-
Bei 222 bestimmt die Steuerung 16,
ob dies ein letztes Segment ist, und springt dann, wenn es nicht so
ist, zu 212 zurück,
um das nächste
Datensegment zur Smartcard 50 zu senden, und tritt sonst
aus.
-
Vorzugsweise werden im optischen
Datenspeicher 58 gespeicherte Daten unter Verwendung eines einzelnen
Schlüssel-Verschlüsselungsalgorithmus,
wie beispielsweise DES, verschlüsselt.
-
Es sollte beachtet werden, dass bei
dem oben beschriebenen Ausführungsbeispiel
einen Verschlüsselung
von Nachrichten, die zwischen verschiedenen Parteien übertragen
werden, primär
zum Authentifizieren der Nachrichten verwendet worden ist. Somit
ist bei den oben beschriebenen Ausführungsbeispielen keine weitere
Verschlüsselung
von Daten, wie beispielsweise verschiedene Zertifikate, verwendet
worden, und solche Elemente müssen
als verfügbar
für Parteien
außerhalb
vorausgesetzt werden, die wünschen,
das System anzugreifen. Bei weiteren Ausführungsbeispielen der vorliegenden
Erfindung können
Verschlüsselungstechniken
zum Überwinden
dieses Problems verwendet werden. Beispielsweise können, wie
es bekannt ist, alle Nachrichten zwischen Parteien mit dem öffentlichen
Schlüssel
der empfangenden Partei verschlüsselt werden, die
dann die Nachrichten mit einem geheimen, privaten Schlüssel, entschlüsselt.
-
Dies schützt die Nachricht von dritten
Parteien, aber da öffentliche
Schlüssel
per Definition öffentlich sind,
stellt sie keine Sicherheit zur Verfügung, dass eine Nachricht tatsächlich von
dem mutmaßlichen
Sender entsteht. Dies kann, wie es auch bekannt ist, durch Verschlüsseln jeder
Nachricht mit dem privaten Schlüssel des
Senders und durch Anhängen
eines durch eine zertifizierende Autorität gelieferten Zertifikats erreicht
werden, wie es oben beschrieben worden ist. Eine erfolgreiche Entschlüsselung
der Nachricht stellt eine Sicherheit zur Verfügung, dass die Nachricht tatsächlich bei
dem mutmaßlichen
Sender entstand, aber auf die Nachricht kann von dritten Parteien
zugegriffen werden, die den öffentlichen
Schlüssel
von zertifizierenden Autoritäten haben.
Natürlich
können
Nachrichten unter Verwendung beider Techniken zum Bereitstellen
von sowohl einer Sicherheit als auch einer Authentifizierung verschlüsselt werden,
und diese und andere bekannte Verschlüsselungstechniken können bei
verschiedenen Ausführungsbeispielen
der vorliegenden Erfindung auf Nachrichten angewendet werden, die
zwischen Parteien kommuniziert werden.
-
Fachleute auf dem Gebiet werden erkennen,
dass eine Sicherheit des Systems der vorliegenden Erfindung auf
eine Sicherheit der verschiedenen privaten Schlüssel basiert. Demgemäß sollten
Schlüssel
auf die Parteien auf eine sichere Weise verteilt werden und durch
die Parteien sicher gehalten werden. Viele Verfahren zum Verteilen
von Schlüsseln
und zum Beibehalten einer Sicherheit von Schlüsseln sind bekannt, und irgendwelche
angenehmen Verfahren zum Beibehalten einer Sicherheit von Schlüsseln können in
Zusammenhang mit der vorliegenden Erfindung verwendet werden, und
bestimmte Schlüsselsicherungsverfahren,
die bei der vorliegenden Erfindung verwendet werden, bilden keinen
Teil der vorliegenden Erfindung an sich.
-
Gegenwärtig wird gemeint, dass eine
Initialisierung durch einen gesteuerten Transfer von Medien ausgeführt wird,
wobei zertifizierende Autoritäten
vertrauenswürdige
Autoritäten
initialisieren, vertrauenswürdigen Autoritäten Serviceprovider
initialisieren und Serviceprovider Individuen initialisieren.
-
Die obigen Beschreibungen und Zeichnungen
bevorzugter Ausführungsbeispiele
sind nur anhand einer Darstellung zur Verfügung gestellt worden, und zahlreiche
andere Ausführungsbeispiele
der vorliegenden Erfindung werden Fachleuten auf dem Gebiet aus
einem Betrachten der obigen Beschreibung und der beigefügten Zeichnungen
offensichtlich werden. Demgemäß sind Beschränkungen
für die
vorliegende Erfindung nur in den nachfolgend aufgezeigten Ansprüchen zu
finden.