DE69519473T2 - Datenaustauschlsysteme mit tragbaren Datenverarbeitungseinheiten - Google Patents
Datenaustauschlsysteme mit tragbaren DatenverarbeitungseinheitenInfo
- Publication number
- DE69519473T2 DE69519473T2 DE69519473T DE69519473T DE69519473T2 DE 69519473 T2 DE69519473 T2 DE 69519473T2 DE 69519473 T DE69519473 T DE 69519473T DE 69519473 T DE69519473 T DE 69519473T DE 69519473 T2 DE69519473 T2 DE 69519473T2
- Authority
- DE
- Germany
- Prior art keywords
- data
- communication
- procedure
- exchange system
- references
- 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.)
- Expired - Fee Related
Links
Classifications
-
- G—PHYSICS
- G07—CHECKING-DEVICES
- G07F—COIN-FREED OR LIKE APPARATUS
- G07F7/00—Mechanisms actuated by objects other than coins to free or to actuate vending, hiring, coin or paper currency dispensing or refunding apparatus
- G07F7/08—Mechanisms actuated by objects other than coins to free or to actuate vending, hiring, coin or paper currency dispensing or refunding apparatus by coded identity card or credit card or other personal identification means
- G07F7/10—Mechanisms actuated by objects other than coins to free or to actuate vending, hiring, coin or paper currency dispensing or refunding apparatus by coded identity card or credit card or other personal identification means together with a coded signal, e.g. in the form of personal identification information, like personal identification number [PIN] or biometric data
- G07F7/1008—Active credit-cards provided with means to personalise their use, e.g. with PIN-introduction/comparison system
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06K—GRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
- G06K19/00—Record carriers for use with machines and with at least a part designed to carry digital markings
- G06K19/06—Record carriers for use with machines and with at least a part designed to carry digital markings characterised by the kind of the digital marking, e.g. shape, nature, code
- G06K19/067—Record carriers with conductive marks, printed circuits or semiconductor circuit elements, e.g. credit or identity cards also with resonating or responding marks without active components
- G06K19/07—Record carriers with conductive marks, printed circuits or semiconductor circuit elements, e.g. credit or identity cards also with resonating or responding marks without active components with integrated circuit chips
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/08—Payment architectures
- G06Q20/10—Payment architectures specially adapted for electronic funds transfer [EFT] systems; specially adapted for home banking systems
- G06Q20/102—Bill distribution or payments
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/08—Payment architectures
- G06Q20/10—Payment architectures specially adapted for electronic funds transfer [EFT] systems; specially adapted for home banking systems
- G06Q20/105—Payment architectures specially adapted for electronic funds transfer [EFT] systems; specially adapted for home banking systems involving programming of a portable memory device, e.g. IC cards, "electronic purses"
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/30—Payment architectures, schemes or protocols characterised by the use of specific devices or networks
- G06Q20/34—Payment architectures, schemes or protocols characterised by the use of specific devices or networks using cards, e.g. integrated circuit [IC] cards or magnetic cards
- G06Q20/341—Active cards, i.e. cards including their own processing means, e.g. including an IC or chip
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/30—Payment architectures, schemes or protocols characterised by the use of specific devices or networks
- G06Q20/34—Payment architectures, schemes or protocols characterised by the use of specific devices or networks using cards, e.g. integrated circuit [IC] cards or magnetic cards
- G06Q20/357—Cards having a plurality of specified features
- G06Q20/3576—Multiple memory zones on card
Landscapes
- Business, Economics & Management (AREA)
- Engineering & Computer Science (AREA)
- Accounting & Taxation (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- Finance (AREA)
- Theoretical Computer Science (AREA)
- Strategic Management (AREA)
- General Business, Economics & Management (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Economics (AREA)
- Development Economics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Computer Hardware Design (AREA)
- Storage Device Security (AREA)
- Telephonic Communication Services (AREA)
- Mobile Radio Communication Systems (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
- Computer And Data Communications (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Credit Cards Or The Like (AREA)
Description
- Die Erfindung betrifft ein Datenaustauschsystem mit mehreren Datenverarbeitungseinheiten, von denen einige tragbar sind und eine temporäre Kommunikationsverbindung mit einer oder mehreren anderen Einheiten innerhalb des Systems herstellen und von denen andere unbeweglich sind und eine permanente Kommunikationsverbindung mit einer oder mehreren anderen Einheiten innerhalb des Systems haben können. Die Verarbeitungseinheiten umfassen Datenkommunikationsmittel, Verarbeitungsmittel sowie Speichermittel, wobei die letzteren ein Ausführungsprogramm enthalten.
- Die vorliegende Erfindung ist eine Verallgemeinerung des in der EP-A-0 666 550, die Stand der Technik nach Artikel 54(3) EPÜ ist, beanspruchten Systems.
- Ein ähnliches System ist aus der internationalen Patentanmeldung WO-A- 87/07063 bekannt, in der ein System für einen tragbaren Datenträger mit mehreren Anwendungsdateien beschrieben ist. Eine der wichtigsten Anwendungen eines solchen tragbaren Datenträgers ist eine für Mehrfachanwendungen geeignete intelligente Karte. Der bekannte Datenträger ist als Träger hierarchisch strukturierter Daten mit Sicherheitsmerkmalen zur Unterstützung mehrfacher Anwendungen auf demselben Datenträger beschrieben. Die Anwendungen werden als Sätze von Daten gesehen. Die Patentanmeldung beschreibt eine Implementierung eines hierarchischen Dateisystems auf einem Datenträger zur Speicherung veränderbarer Daten in Kombination mit einem hierarchischen Satz von Zugriffserlaubnissen. Der Datenträger antwortet auf einen Satz von gemeinsamen Befehlen. Die Dateizugriffserlaubnisse sind für verschiedene Operationen unterschiedlich und werden in Abhängigkeit einer Passwortverifizierung erteilt. Es wird ein Passwortverifizierungsversuchszähler eingeführt wie auch die Maßnahme der Zerstörung gespeicherter Daten als Sanktion gegen zu viele Zugriffsversuche. Der bekannte Datenträger stellt sich primär als Speichervorrichtung und nicht als Prozessor dar. Durch das Ausführungsprogramm können lediglich sehr einfache Funktionen ausgeführt werden, wie etwa eine binäre logische Operation. Es ist nicht möglich, auf Anforderung eines mit dem Datenträger kommunizierenden Endgeräts die Ausführung eines unspezifizierten Satzes von Operationen zu erlauben. Die einzige Sicherheitsoption ist die Einführung der Passwortverifizierung. Andere Zugriffsbedingungsverifizierungen sind innerhalb des bekannten Systems nicht möglich. Daneben besitzt jede Anwendung des Datenträgers ihre eigene Datei in der Speicheranordnung des Datenträgers. Es sind keine speziellen Maßnahmen getroffen, um die Nutzung des verfügbaren Speicherraums zu verbessern, der insbesondere bei intelligenten Karten stark beschränkt ist und daher der Zahl der möglichen Anwendungen Grenzen setzt.
- Die EP-A-0 479 655 befaßt sich mit der Implementierung von Zugriffsbedingungsprüfungen in intelligenten Karten. Hierfür ist eine Spezifizierungstechnik offenbart; es ist jedoch wünschenswert, Maßnahmen vorzusehen, um die Möglichkeit weiterer Verifizierungen von Zugriffsbedingungen einzuschließen.
- Die EP-A-0 361 491 betrifft ein Chipkartenprogrammiersystem, welches die geschützte (Um-) Programmierung von Karten erlaubt. Sie beschreibt die Verwendung von Einmalschreib-Zugriffsbedingungen zur Steuerung des Zugriffs auf zu programmierende Teile des programmierbaren Speichers. Die Zahl der Anwendungen bei einer einzelnen Karte kann auf diese Weise erweitert werden. Es wird eine Verifizierung der Zugriffsbedingungen mit einer Vielzahl von Techniken einschließlich kryptografischer Protokolle beschrieben.
- Die EP-A-0 292 248 befaßt sich mit dem Laden von Anwendungen auf eine intelligente Karte unter Verwendung eines unveränderbaren Betriebssystemprogramms. Sie beinhaltet die Implementierung eines Verfahrens zur Durchsetzung von Datenzugriffsbedingungen unter Verwendung von Speicherzonen mit zugeordneten Zugriffsattributen. Spezielle Zugriffsbedingungen sind "Einmalschreiben" (was nur implizit beschrieben ist) und "Nur-Ausführen".
- Die US-A-4,874,935 befaßt sich mit der Kartenprogrammierung unter Verwendung eines Datenlexikons, wobei dieses Datenlexikon die Ausbildung von Datenelementen beschreibt, welche im Speicher der Karte gespeichert sind. Datenlexika werden gemeinhin so verstanden, daß sie sich von Verzeichnissen insofern unterscheiden, als sie nicht nur Daten beschreiben, die tatsächlich gespeichert sind, sondern auch Daten, die später gespeichert werden. Außerdem beinhalten Datenlexika üblicherweise eine Beschreibung des Datenformats. In kompiliertem Format werden Datenlexika in Datenbankverwaltungssystemen verwendet, wo sie auf der Festplatte als Teil der Datenbank gespeichert sind. Man findet sie auch in den Objektladedateien, die aus der Programmkompilierung in Softwareentwicklungsumgebungen resultieren. Das Patent beansprucht jedoch keine speziell für intelligente Karten geeignete Darstellung von Datenlexika.
- Die EP-O 466 969 A1 befaßt sich mit der Bereitstellung von Funktionen im Ausführungsprogramm einer intelligenten Karte, die die korrekte Abwicklung einer Abfolge von Nachrichten zwischen der intelligenten Karte und einem Terminal unterstützen, indem ein Teil des Speichers der Karte als Speicher für Zustandsinformationen reserviert wird und spezielle Mittel bereitgestellt werden, um eine Zustandsmaschine zu implementieren, die Zustandsübergänge steuert. Solche Zustandsinformationen sind wichtig bei der Festlegung von Aktionen, die auf den Empfang von Nachrichten hin auszuführen sind. Zustandsmaschinen, die eine veränderliche Sequenz von Nachrichten akzeptieren, sind von det Entwicklung von Computersprachübersetzern her und aus der rechentechnischen Komplexitätstheorie wohlbekannt. Das Patent spricht nicht die Möglichkeit an, verschiedenartige Sätze von möglichen Aktionen zu implementieren, die spezifisch sind für eine Anzahl möglicher Anwendungen, welche sich gleichzeitig in der intelligenten Karte befinden können.
- Das Hauptziel der vorliegenden Erfindung ist es, Mittel bereitzustellen, um ein aus vertraulichen Verarbeitungseinheiten bestehendes System formal, präzise und eindeutig in der Weise zu beschreiben, wie sich diese Verarbeitungseinheiten verhalten, wenn sie mit der Kommunikation untereinander beschäftigt sind, wobei diese Kommunikation dazu vorgesehen ist, einen Wert oder eine andere vertrauliche Information zu übertragen. Diese umfassenden Beschreibungen der möglichen Kommunikationsmodi zwischen den Datenverarbeitungseinheiten sollen anwendbar sein sowohl auf das System als Ganzes als auch auf die Detailoperationen der einzelnen Verarbeitungsvorrichtungen. Einen solche formale Beschreibung soll die Basis für formale Betrachtungen bei der Verifizierung der Korrektheit von Implementierungen bilden, was für die Akzeptanz von Systemen erforderlich ist, die zur weltweiten Verbreitung vorgesehen sind.
- Eine weitere Aufgabe der vorliegenden Erfindung ist es, Mittel bereitzustellen, um optimal mit den Beschränkungen umzugehen, die durch die begrenzten physikalischen Dimensionen des verfügbaren Speicherraums auf tragbaren Datenverarbeitungseinheiten, insbesondere auf intelligenten Karten, auferlegt werden.
- Eine weitere Aufgabe der vorliegenden Erfindung ist es, einen allgemeineren Mechanismus zum geschützten Laden von Programmcodes anzubieten und dieses Laden für eine Vielzahl von Programmen zu ermöglichen, nämlich jeweils für eine Anwendung jeder tragbaren Datenverarbeitungseinheit.
- Darüber hinaus ist die vorliegende Erfindung auf die Maßnahme gerichtet, Zugriffsbedingungsverifizierungen zu verwenden, die nicht durch den Hersteller der tragbaren Verarbeitungseinheit vorgeschrieben sind, sondern seitens des Anwendungsentwicklers gewählt werden, und zwar so, daß sie seinen speziellen Anforderungen gerecht werden.
- Weiterhin ist die vorliegende Erfindung darauf gerichtet, einen Mechanismus bereitzustellen, um die Kommunikation zwischen Verarbeitungseinheiten derart zu schützen, daß intervenierende oder vermittelnde Vorrichtungen den Inhalt und die ordnungsgemäße Abfolge nicht stören können.
- Das erfindungsgemäße System ist daher durch die Merkmale des Anspruchs 1 definiert.
- Indem die Beschreibung des Systems kommunizierender vertraulicher Verarbeitungseinheiten in diesem strengen Rahmen organisiert wird, werden dessen Operationen, soweit die Bedingungen und Auswirkungen möglicher Kommunikationen zwischen den Geräten betroffen sind, vollständig und erschöpfend beschrieben. Vermehrt um formal exakte semantische Definitionen der Strukturelemente werden die Daten für formale Betrachtungen zugänglich, weswegen auch die Implementierung des Systems besser zugänglich wird für eine formale Überprüfung der Korrektheit. Zu diesem Zweck ist es nicht notwendig, daß alle Daten in allen Speichermitteln der einzelnen Verarbeitungseinheiten vorhanden sind. Es genügt, daß die Daten in eine Verarbeitungseinheit geladen werden, bevor sie verwendet werden. Das sichere Laden der Daten ist in die vorliegende Erfindung einbezogen.
- Bei einer ersten bevorzugten Ausführungsform sind die einzelnen Verarbeitungseinheiten des wie oben beschriebenen Datenaustauschsystems durch die Merkmale des unabhängigen Anspruchs 2 definiert.
- Wie zuvor angegeben, ist die vorliegende Erfindung auf die Verallgemeinerung von Konzepten gerichtet, welche bereits in der EP-A-0 666 550, die Stand der Technik nach Artikel 54(3) EPÜ ist, beansprucht wurden. Der in der EP-A-0 666 550 beanspruchte Schutzumfang ist in der folgenden Weise definiert:
- Datenaustauschsystem mit wenigstens einer tragbaren Datenverarbeitungseinheit (5), welche eine Datenkommunikationseinrichtung (14), eine Verarbeitungseinrichtung (15) sowie eine Speichereinrichtung (16) umfaßt, wobei die letztere ein Ausführungsprogramm (17) umfaßt, dadurch gekennzeichnet, daß die Speichereinrichtung (16) ferner wenigstens einen Interaktionskontext (19(1)...19(m)) umfaßt, welcher die folgende kohärente Datenstruktur beinhaltet:
- a. einen Satz von Basis-Kommunikationsgrundelementen (A(1)...), die immer dann akzeptiert werden, wenn die Datenverarbeitungseinheit (5) mit einer entsprechenden Einheit (4) kommuniziert, wobei die Grundelemente zumindest ein Grundelement umfassen, das dazu verwendet wird, selektiv in einen der Interaktionskontexte (19(1)...) einzusteigen,
- b. einen Satz von Prozedurbeschreibungen (C(1)...), die die in Antwort auf jedes der akzeptierten Kommunikationsgrundelemente (A(1)...) durchzuführenden Aktionen definieren und zumindest eine erste Prozedurbeschreibung umfassen, die bei Aktivierung des Interaktionskontexts durchzuführen ist, sowie eine letzte Prozedurbeschreibung, die unmittelbar vor Deaktivierung des Kontexts durchzuführen ist,
- c. einen möglicherweise leeren Satz von entweder permanent gespeicherten oder berechneten Datenelementen (H(1)...), die zur Verwendung verfügbar sind, wenn Prozeduren, Wie sie in den Prozedurbeschreibungen (C(1)...) definiert sind, durchgeführt werden,
- d. einen möglicherweise leeren Satz von Verweisen auf Datenelemente, welche Verweise den Prozedurbeschreibungen (C(1)...) zugeordnet sind, wobei die Datenelemente auch möglichen weiteren Interaktionskontexten zugänglich sind und zur Verwendung verfügbar sind, wenn Prozeduren, wie sie in den Prozedurbeschreibungen (C(1)...) definiert sind, durchgeführt werden,
- e. eine möglicherweise leere Datenliste mit einer Liste von Verweisen (B(1)...) auf Datenelemente, die zum expliziten Verweis als Teil eines Kommunikationsgrundelements (A(1)...) verfügbar sind, um durch die dem Kommunikationsgrundelement zugeordnete Prozedurbeschreibung (C(1)...) verwendet zu werden,
- f. einen Satz von Zugriffsbedingungen, die den Datenelementen zugeordnet sind, auf welche im Zusammenhang mit den Prozedurbeschreibungen (C(1)...) verwiesen wird,
- g. einen Satz von Zugriffsbedingungen, die der Liste von Datenverweisen (B(1)...) in der Datenliste zugeordnet sind.
- Dieser Schutzumfang wird ausdrücklich vom Schutzumfang, der durch die vorliegenden unabhängigen Ansprüche 1 und 2 beansprucht wird, ausgenommen.
- Indem die Daten in den Speichermitteln der tragbaren Verarbeitungseinheit in dieser Weise definiert werden, ist die Verarbeitungseinheit tatsächlich als Prozessor organisiert, d. h. sie erlaubt nicht nur Addieren und Subtrahieren, sondern führt auch Prozesse durch, die durch hierzu authorisierte Personen, z. B. einen Angestellten einer Bank, in die Verarbeitungseinheit geladen werden können. Durch Bereitstellung von Prozeduren, die beliebige komplexe Operationen in Antwort auf erhaltene Befehle liefern können, und durch Bereitstellung einer expliziten Liste der gespeicherten Datenelemente, die als Teil solcher Befehle adressierbar sind, kann die Kommunikationsbandbreite optimal genutzt werden, was zu einer verringerten Anzahl an ausgetauschten Befehlen führt. Bei einem erfindungsgemäßen System werden viele reale Anwendungen des Systems jedoch immerhin den Austausch von zwei Befehlen erfordern. Was einzig und allein festgelegt ist, ist die Struktur innerhalb der Speichermittel, die in solcher Weise definiert ist, daß verschiedene Anwendungen der Einheit in sehr effizienter Weise hinzugefügt werden können, d. h. unter Verwendung so wenig zusätzlichen Speicherraums wie möglich.
- Dies ist insbesondere dann von vorrangiger Bedeutung, wenn die Einheit eine intelligente Karte bzw. Chipkarte ist, die im Hinblick auf den verfügbaren Speicherraum stark beschränkt ist. Daneben bietet die erfindungsgemäße Struktur alle Möglichkeiten zur Einbeziehung von Sicherheitsmaßnahmen, um den Zugriff auf Prozesse oder Daten durch unauthorisierte Personen, die zu deren Nutzung nicht befugt sind, zu unterbinden. Eine vorteilhafte Ausführungsform der Erfindung kann realisiert werden, wenn die Verarbeitungseinheit, die eine Mehrzahl von Interaktionskontexten enthält, ferner dadurch gekennzeichnet ist, daß der Satz der Prozedurbeschreibungen zumindest eine erste Prozedurbeschreibung umfaßt, die in Antwort auf das Kommunikationsgrundelement oder die Kommunikationsgrundelemente durchzuführen ist, welches bzw. welche einen der Interaktionskontexte zur weiteren Bezugnahme in der das Kommunikationsgrundelement akzeptierenden Verarbeitungseinheit indiziert bzw. indizieren, wobei diese Durchführung in einer ordnungsgemäßen Aktivierung des indizierten Interaktionskontexts resultiert. Die Beschreibung dieser Kontextaktivierungsprozedur kann mit Vorteil dazu verwendet werden, die mit der Auswahl des Kontexts verbundenen Sicherheitsanforderungen festzulegen und die Initialisierung von Sicherheits- und Arbeitsdaten im flüchtigen Teil der Speichermittel vorzunehmen.
- Einen weiteren Vorteil kann man mit Verarbeitungseinheiten, die eine Mehrzahl von Interaktionskontexten enthalten, erzielen, wenn sie dadurch gekennzeichnet sind, daß der Satz der Prozedurbeschreibungen zumindest eine letzte Prozedurbeschreibung umfaßt, die in Antwort auf das Kommunikationsgrundelement oder die Kommunikationsgrundelemente durchzuführen ist, welches bzw. welche einen der Interaktionskontexte zur weiteren Bezugnahme in der das Kommunikationsgrundelement akzeptierenden Verarbeitungseinheit indiziert bzw. indizieren, wobei diese Durchführung in einer ordnungsgemäßen Deaktivierung des Interaktionskontexts resultiert, welcher während des Empfangs des Kommunikationsgrundelements indiziert war. Diese Deaktivierungsprozedur gibt derjenigen Anwendung Kontrolle, die dabei ist, infolge des Empfangs des Kommunikationsgrundelements abgelöst zu werden. Dies verschafft dem Entwickler der Anwendung eine Gelegenheit, eine Säuberung des Speicherinhalts vorzunehmen und Operationen abzuschließen, wenn die Anwendung - möglicherweise unerwartet - abgebrochen wird.
- Bei einer weiteren bevorzugten Ausführungsform ist das oben definierte Datenaustauschsystem dadurch gekennzeichnet, daß die Speichermittel ferner mindestens zwei Interaktionskontexte, mindestens eine Anwendungsbeschreibung sowie ein Speicherelement enthalten, welches einen Verweis auf den Interaktionskontext speichert, der momentan in Kraft ist, wobei jede Anwendungsbeschreibung umfaßt:
- a. eine Datenliste mit Verweisen auf Datenelemente, welche Verweise zwei oder mehr Interaktionskontexten zugänglich sein können und durch zusätzliche Datenelemente erweitert sein können,
- b. einen weiteren Satz von Zugriffsbedingungen, die den Verweisen oder den zusätzlichen Datenelementen zugeordnet sind und Nutzungsbeschränkungen definieren.
- Durch diese Maßnahmen sind alle Verweise auf Datenelemente, die verschiedenen Interaktionskontexten gemeinsam sind, für alle diese Interaktionskontexte zugänglich, so daß sie nur einmal gespeichert werden müssen, was Speicherplatz spart. Indem sind vorbestimmten Interaktionskontexten gemeinsame Zugriffsbedingungen für die Datenverweise zugänglich. Daher müssen auch diese gemeinsamen Zugriffsbedingungen nur einmal gespeichert werden, wodurch Speicherplatz gespart und die Effizienz verbessert wird.
- Jede Anwendungsbeschreibung kann darüber hinaus eine Prozedurbibliothek mit Codes umfassen, welche von Prozedurbeschreibungen jedes Interaktionskontexts verwendet werden können, der jeder der Anwendungsbeschreibungen zugeordnet ist.
- Vorzugsweise ist die Verarbeitungseinheit für mindestens zwei Anwendungen geeignet, wobei nur wenig zusätzlicher Speicherplatz verwendet wird. Um dieses Ziel zu erreichen, ist das erfindungsgemäße Datenaustauschsystem dadurch gekennzeichnet, daß die Speichermittel mindestens zwei Anwendungsbeschreibungen und ausführbare Codeeinheiten enthalten, welche von Prozedurbeschreibungen jedes Interaktionskontexts innerhalb jeder Anwendungsbeschreibung oder von jeder ausführbaren Codeeinheit jeder Prozedurbibliothek innerhalb jeder Anwendungsbeschreibung verwendet werden können.
- Vorzugsweise sind die ausführbaren Codeeinheiten in der Prozedurbibliothek durch Einfügung einer Spezifikation der Verwendung ihrer Operationsparameter in Klassen vergrößert, welche sich auf Attribute beziehen, die Datenelemente betreffen, welche als aktueller Wert in einer Berechnung genommen werden können, welche Berechnung nur dann vorangeht, wenn die Datenattribute und die Parameterklassen zueinander passen. Dies ist ein effizienter Weg zur Verifizierung von Zugriffsbedingungen sowohl auf Datenebene als auch auf funktionaler Ebene, wofür eine sehr effiziente Implementierung existiert.
- Das System bietet eine höhere Zuverlässigkeit, wenn das erfindungsgemäße Datenaustauschsystem dadurch gekennzeichnet ist, daß das Ausführungsprogramm einen Verweis auf einen Standardinteraktionskontext enthält, welcher dazu verwendet wird, das Speicherelement zu initialisieren, das einen Verweis auf den momentan in Kraft befindlichen Interaktionskontext speichert, um eine Endaktion nach einer Erfassung einer internen Inkonsistenz bei einer Wiederkehr in einen normalen Operationszustand durchzuführen oder wann immer das Ausführungsprogramm aktiv ist und kein expliziter Interaktionskontext durch ein von einer ähnlichen Datenverarbeitungseinheit erhaltenes Kommunikationsgrundelement spezifiziert wurde.
- Um die Kompaktheit der Implementierung der Prozedurbeschreibungen, Prozedurbibliotheken, Codefragmente und des Ausführungsprogramms weiter zu verbessern, kann das erfindungsgemäße Datenaustauschsystem dadurch gekennzeichnet sein, daß das Ausführungsprogramm Routinen umfaßt, welche einen Interpretierer für codierte Anweisungen für einen abstrakten Prozessor bilden, derart, daß die Mehrheit der Prozedurbeschreibungen und einige der ausführbaren Codeeinheiten in numerischen Werten zur Interpretation durch die Interpretierroutinen codiert sind. Zusätzlich hilft der durch das Ausführungsprogramm bereitgestellte abstrakte Codeinterpretierer bei der formalen Verifizierung der Korrektheit der implementierten Funktionen, da die Verwendung eines abstrakt entworfenen Instruktionensatzes und einer geringen Anzahl kleiner Implementierungsroutinen diese Verifizierung besser zugänglich für formale Methoden der Beurteilung und der Beweiserzeugung machen kann.
- Mit weiteren Vorteilen hinsichtlich der Kompaktheit der Speicherung der Interaktionskontextbeschreibungen und der Anwendungsdeskriptoren kann das erfindungsgemäße Datenaustauschsystem dadurch gekennzeichnet sein, daß die Prozedurbeschreibungen als Indizes in einer Liste über eine Untergruppe von Prozeduren codiert sind, welche in der Prozedurenbibliothek enthalten sind, die ausführbare Codeeinheiten enthält. Speziell im Rahmen der vorliegenden Erfindung können diese Dispatch- Tabellen vorteilhaft genutzt werden, da die Anzahl der unterschiedlichen Prozedurbeschreibungen von der Natur der Datenstruktur her im allgemeinen sehr klein sein wird, z. B. weniger als 16, so daß das System ferner dadurch gekennzeichnet sein kann, daß die Codierung der Prozedurbeschreibungen in derart kleinen Werten erfolgt, daß in einer Zugriffs- Grundeinheit für die Speichermittel mehr als eine Beschreibung gehalten werden kann oder daß die Beschreibung mit anderen relevanten Informationen in der gleichen Speicherzugriffs-Grundeinheit kombiniert werden kann. Um den selten erwarteten Fall zu behandeln, daß die Anzahl der Prozedurbeschreibungen in einem einzelnen Interaktionskontext größer als der hierfür unmittelbar erlaubte Codierraum ist, kann ein erfindungsgemäß ausgeführtes System vorteilhafterweise eine zusätzliche Ebene der indirekten Verweisung nutzen, derart, daß es dadurch gekennzeichnet sein kann, daß mindestens einer der Codierungswerte der Prozedurbeschreibungen auf eine spezielle Funktion des Ausführungsprogramms verweist, die dazu ausgelegt ist, die für die codierte Prozedurbeschreibung auszuführende tatsächliche Funktion indirekt auszuwählen, möglicherweise durch Einfügung zusätzlicher Codierinformationen, die in Zuordnung zu der mit den speziellen Werten codierten Prozedurbeschreibung gespeichert sind. Eine solche zusätzliche Kompaktheit bei der Speicherung der Daten in der Ausführungskontextdatenstruktur ist besonders dann von Vorteil, wenn man bedenkt, daß die Speichermittel im allgemeinen eine beträchtliche Anzahl unterschiedlicher Anwendungs- und Kontextbeschreibungen halten müssen.
- Um die Sicherheit der Daten und Funktionen in der Verarbeitungseinheit zu verbessern, kann das erfindungsgemäße Datenaustauschsystem dadurch gekennzeichnet sein, daß die Speichermittel einen Interaktionskontext umfassen, dessen Zweck es ist, persönliche Identifizierungsnummern zu umfassen, und daß das Ausführungsprogramm dazu ausgelegt ist, von einem Benutzer des Datenaustauschsystems gelieferte persönliche Identifizierungsnummern zu verifizieren.
- Vorteilhafterweise können der Interaktionskontext zur Verwaltung der persönlichen Identifzierungsnummern und der Standardkontext als Teil derselben Besitzeranwendung für den Besitzer der Vorrichtung implementiert sein. Die Unterstützung dieser Anwendung durch die meisten Geräte, mit denen eine erfindungsgemäße Vorrichtung kommuniziert, würde dem Eigentümer der Vorrichtung die Möglichkeit geben, seine persönlichen Daten, so wie sie in dem Vorrichtungsspeicher gespeichert sind, nachzuschauen; beispielsweise könnte es einem Chipkartenbesitzer erlaubt sein, seine PIN an jedem Chipkartenterminal zu modifizieren, das eine geeignete Benutzerschnittstelle bereitstellt.
- Eine vorteilhafte Vielseitigkeit bei der Wahl der kryptografischen Schutzmethoden, die zum Laden der Speichermittel mit die Interaktionskontexte und die Anwendungen beschreibenden Daten zu verwenden sind, kann bei einem erfindungsgemäßen Datenaustauschsystem geboten werden, das dadurch gekennzeichnet ist, daß die Speichermittel mindestens einen Interaktionskontext enthalten, der dazu bestimmt ist, Zahl und Inhalt anderer ebenfalls in den Speichermitteln enthaltener Interaktionskontexte zu verwalten. Die Anbietung einer derartigen Vielseitigkeit mit unterschiedlichen Ebenen sicherheitsmäßiger und betriebsmäßiger Komplexität kann vom Markt für tragbare Verarbeitungseinheiten verlangt werden, um verschiedene Anwendungen auf die gleiche Chipkarte zu laden und um den ausgebenden Organisationen die Wahl unterschiedlicher Produkte zu verschaffen, die alle nach der gleichen grundlegenden Anwendungsinfrastruktur aufgebaut sind, wie sie durch die Erfindung bereitgestellt wird. Gegenwärtig existieren kaum Lösungen für dieses Problem und sie beruhen gewöhnlich auf speziellen Eigentümerfunktionen, die als integraler Teil des Ausführungsprogramms implementiert sind und weder ein einheitliches Verfahren noch einen Bereich von Optionen bieten.
- Jede Anwendungsbeschreibung kann eine Liste von numerischen Werten umfassen, die so aufgebaut ist, daß sie Identifizierer für alle Interaktionskontexte bereitstellt, und mindestens einen der folgenden numerischen Werte enthält: einen ersten, der einen Anwendungstyp angibt, einen zweiten numerischen Wert, der eine eindeutige Identifizierung des die Anwendung bereitstellenden Organs angibt, einen dritten numerischen Wert, der die Art der Anwendungsbeschreibung angibt, und weitere Nummern, die jeweils eindeutig auf einen der Anwendungsbeschreibung zugeordneten Interaktionskontext verweisen.
- Die Reihe der numerischen Werte, die sich eindeutig auf einen Interaktionskontext beziehen, stellt ein Mittel zur Sicherstellung der wechselseitigen Funktionsfähigkeit zwischen zwei Kommunikationseinrichtungen bereit, das effizienter ist als man sich gegenwärtig beispielsweise für Chipkarten vorstellt, wobei dem Anwendungsbereitsteller die Verantwortung übertragen wird, jedem Interaktionskontext eigene Werte zuzuweisen, während es betroffenen Gruppen sektoraler und internationaler Zusammenarbeit überlassen bleibt, den Organen und Anwendungen eigene Nummern zuzuordnen. Vorteilhafterweise kann der Anwendungsbereitsteller die eindeutigen Kontextnummern zuweisen, um Informationen über die implementierte Version und die Geheimschlüsselerzeugung einzubauen.
- Ein erfindungsgemäßes Datensystem kann so ausgeführt sein, daß es dadurch gekennzeichnet ist, daß die Datenkommunikationsmittel dazu ausgelegt sind, den Datenaustausch in Datenblöcke zu strukturieren, welche wenigstens zwei Teile aufweisen, wobei ein erster Teil Daten sind, die insofern als operationsrelevant qualifiziert sind, als sie dazu verwendet werden, die Art der Operationen zu beeinflussen, die mittels eines Befehls durchgeführt werden, wie er indiziert ist durch ein Kommunikationsgrundelement oder Daten, welche aus ausgeführten Operationen resultieren, wobei ein zweiter Teil insofern als sicherheitsrelevant qualifiziert ist, als er zur Bestimmung der Eignung zur Durchführung einer Operation oder der Akzeptierbarkeit von Daten in dem Operationsteil verwendet wird, um bei der Operation verwendet zu werden oder die Beendigung der Operation oder die Korrektheit der resultierenden Daten nachzuweisen. Eine derartige Eignung, Akzeptierbarkeit, Nachweis und Korrektheit werden dadurch erhalten, daß relevante kryptografische Operationen an den Daten durchgeführt werden.
- Diese Struktur der Nachrichten beim Datenaustausch und die Reihenfolge der kryptografischen Berechnungen vor und nach der Durchführung der eigentlichen operationalen Definition, die diese mit sich bringt, stellen einen Mechanismus zum Schutz gegen mittige Angriffe auf Protokolle des Datenaustausches bereit. Insbesondere kann dies dazu verwendet werden, die Notwendigkeit zu beseitigen, den Sicherheitsstatus in den Speichermitteln jeder der Verarbeitungseinheiten explizit beizubehalten, da es ermöglicht wird, kryptografisch codierte Zustandsinformationen in jeder Nachricht auszutauschen, die in dem für die Sicherheit bezeichneten Teil enthalten ist: Die Verifizierung der kryptografischen Bedingung initialisiert sicher die Zustandsvariable, die nur bis zur Absendung der Antwortnachricht und nicht länger in den Speichermitteln gespeichert werden muss, was die Zeit verringert, die diese Zustandsinformationen Versuchen ausgesetzt sind, sich unbefugt daran zu schaffen zu machen. Schließlich erlaubt diese Struktur der Nachrichten eine freiere Verwendung der Sicherheit von Ende zu Ende, wobei die Sicherheit in der Kommunikation von keinen eingreifenden oder vermittelnden Einrichtungen abhängt.
- Die Authentisierung und der Datenschutz werden so zu einem integralen Teil der Befehlsausführung gemacht, was für eine bessere Sicherheit sorgt, als sie bei gegenwärtigen Systemen, z. B. bei Chipkarten, erreichbar ist.
- Das Ausführungsprogramm kann so ausgelegt sein, daß es bei Akzeptierung eines Kommunikationsgrundelements zur Durchführung von in dem momentanen Interaktionskontext spezifizierten Operationen jede Operation als Teil einer vorbestimmten und festen Sequenz von Aktionen durchführt, von denen jede gesondert als Teil einer dem akzeptierten Kommunikationsgrundelement zugeordneten Prozedurbeschreibung spezifiziert ist, welche Prozedurbeschreibung zumindest verschiedene Beschreibungen, die jeweils leer sein können, für die folgenden Aktionen umfaßt:
- a. Authorisierung der Verwendung des Kommunikationsgrundelements;
- b. Entschlüsselung von Operationsdaten oder eines Teils derselben;
- c. Durchführung eines Befehls mit Eingangsdaten;
- d. Verschlüsselung von Operationsdaten, die aus einer durchgeführten Operation resultieren;
- e. Berechnung eines Nachweises der Beendigung einer durchgeführten Aktion oder der Korrektheit der resultierenden Daten, um in Sicherheitsberechnungen verwendet zu werden.
- Die Sicherheit wird weiter verbessert, wenn die Datenverarbeitungseinheit bei Initialisierung des Datentransfers eine Transaktionszufallszahl erzeugt, die als Basis für kryptografische Berechnungen dient.
- Um für die Möglichkeit zu sorgen, erforderlichenfalls in einen neuen Interaktionskontext einzutreten, kann einem Kommunikationsgrundelement ein bestimmter Wert zugewiesen sein, der stets als Anforderung interpretiert wird, in einen neuen Interaktionskontext einzusteigen.
- Bei einer weiteren bevorzugten Ausführungsform ist das erfindungsgemäße Datenaustauschsystem dadurch gekennzeichnet, daß es eine weitere Datenverarbeitungseinheit mit den gleichen Elementen wie die Datenverarbeitungseinheit umfaßt, welche optional in ihrem Speicher eine Anwendungsprogrammierschnittstelle enthalten kann, die aus einem Programmcode besteht, der dazu ausgelegt ist, eine Implementierung zusätzlicher Computerprogramme zu erlauben, um Benutzern eine Kontrolle über die Sequenz ausgetauschter Kommunikationsgrundelemente zu geben oder um die in ihnen transferierten Daten zu beeinflussen oder um die beim Austausch erhaltenen Daten zu erfahren oder weiterzuverarbeiten.
- Bei dieser bevorzugten Ausführungsform der Erfindung kann das zum Einstieg in einen spezifizierten Interaktionskontext verwendete Kommunikationsgrundelement numerische Werte umfassen, die bei Sicherheitsberechnungen in nachfolgenden Kommunikationen zu verwenden sind, einen ersten, durch eine der Verarbeitungseinheiten zufällig oder auf ähnlich eindeutige Weise erzeugten Wert sowie möglicherweise einen zweiten Wert, der zum Nachweis der Authentizität der einen Verarbeitungseinheit oder zur anderweitigen Identifzierung dieser einen Verarbeitungseinheit dient.
- Um weitere Vorteile aus der vorliegenden Erfindung zu ziehen, kann jedes Kommunikationsgrundelement ferner so strukturiert sein, daß es aus zwei oder mehr numerischen Werten besteht, was die Ausdruckskraft des Kommunikationsgrundelements zur Interpretation durch das Ausführungsprogramm stärkt.
- Als eine erste Alternative kann jedes Kommunikationsgrundelement mit Ausnahme eines ersten, das eine Rücksetzung signalisiert, aus zwei oder mehr numerischen Werten aufgebaut sein, wobei ein erster Wert dazu verwendet wird, auf eine Prozedurbeschreibung einer dem Kommunikationsgrundelement zugeordneten Aktion zu verweisen, wobei ein zweiter Wert aus einer festen Anzahl binärer Werte aufgebaut ist, von denen jeder durch das Ausführungsprogramm als Verweis auf ein einzelnes Datenelement interpretiert wird.
- Als eine zweite Alternative kann jedes Kommunikationsgrundelement mit Ausnahme eines ersten, das eine Rücksetzung signalisiert, aus zwei oder mehr numerischen Werten aufgebaut sein, wobei ein erster Wert dazu verwendet wird, auf eine Prozedurbeschreibung einer dem Kommunikationsgrundelement zugeordneten Aktion zu verweisen, wobei ein zweiter Wert dazu verwendet wird zu bestimmen, welches der zur externen Verweisung in einem aktiven Interaktionskontext verfügbaren Datenelemente verwendet wird, während Antwortaktionen durchgeführt werden, in solcher Weise, daß ein Datenelement ausgewählt wird, wenn es einen Wert enthält, der zu dem zweiten Wert passt, oder wenn es einen Wert enthält, der in anderer Weise genügt, um es zu indizieren.
- Als eine dritte Alternative ist jedes Kommunikationsgrundelement mit Ausnahme eines ersten, das eine Rücksetzung signalisiert, aus zwei oder mehr numerischen Werten aufgebaut, wobei ein erster Wert dazu verwendet wird, auf eine Prozedurbeschreibung einer dem Kommunikationsgrundelement zugeordneten Aktion zu verweisen, wobei ein zweiter Wert aus einer Anzahl binärer Werte aufgebaut ist, denen durch das Ausführungsprogramm spezielle Bedeutungen zugewiesen werden, um bei der Interpretation von Datenformaten in dem Kommunikationsgrundelement und bei der Durchführung von Antwortaktionen verwendet zu werden.
- Die vorgenannten tragbaren Verarbeitungseinheiten können in intelligenten Karten oder in PCMCIA-Karten implementiert sein.
- Bei einer Weiterbildung der Erfindung verwenden die Kommunikationsmittel externe Kommunikationsmittel, nämlich solche externen Kommunikationsmittel, wie sie für die Datenverarbeitungseinheit durch die Datenverarbeitungseinheit verfügbar gemacht werden, oder eine ähnliche derartige elektronische Vorrichtung, die die PCMCIA- oder die intelligente Karte aufnimmt, welche die Datenverarbeitungseinheit bildet.
- Bei einer Alternative der Erfindung ist die Datenverarbeitungseinheit als tragbarer Personalcomputer ausgeführt.
- Die Kommunikationsmittel können ein Lesegerät für intelligente Karten oder einen PCMCIA-Kartenschlitz verwenden.
- Des weiteren können die Kommunikationsmittel vorrangig oder zusätzlich einen berührungslosen Datentransfer mit Elektromagnetfeld-c.q.-Teilchen anwenden.
- Der oben definierte Kontextmechanismus und die Techniken, die er verfügbar macht, führen zu einem breiten Einsatzbereich für intelligente Karten und zu einem Ansatz zur Entwicklung von Chipkartenanwendungen, wobei sich zahlreiche Vorteile gegenüber den herkömmlichen Wegen ergeben.
- Als erstes wird die Ausführung eines anwendungsspezifischen Programmcodes in einer Chipkarte ohne die Notwendigkeit ermöglicht, den Code auf mögliche Gefahren für die Sicherheit von Daten, die für andere Anwendungen gespeichert sind, sorgfältig zu untersuchen. Da den Zugriffsbedingungen, die mit den Daten auf der Karte gespeichert sind, durch das Kartenbetriebssystem Geltung verschafft wird, ohne daß während der Ausführung eines Anwendungscodes Störungen von außen möglich sind, benötigt ein Kartenschema für mehrfache Anwendungen keine den Programmcode überprüfende Instanz. Eine derartige Instanz ist der einzige Weg, bei herkömmlichen Chipkarten eine Ausführungsmöglichkeit für private Codes zu erlauben. Durch Genehmigung eines Codes zur Ausführung auf einer Karte zieht eine Überprüfungsinstanz Anfälligkeiten im Hinblick auf die Sicherheit des Gesamtsystems auf sich; sie macht die Verwaltung von Chipkartenschemata für Mehrfachanwendungen viel komplexer. Die einhergehende Komplexität und die einhergehenden Kosten machen anwendungsspezifische Codes bei herkömmlichen Kartenschemata fast unmöglich. Mit der neuen Technik kann der seit einiger Zeit seitens der Bereitsteller von Chipkartenanwendungen bestehende Bedarf nach dieser Möglichkeit bedient werden.
- Zweitens kann als unmittelbare Folge der geschützten Anwendung spezieller Programme in Karten eine spezielle Anwendung implementiert werden, die dazu bestimmt ist, weitere Anwendungen in die Karte zu laden. Auf diese Weise können die einmal in eine Karte geladenen Anwendungen vor genau der Anwendung geschützt werden, die sie geladen hat. Dieser Schutz gibt den an einem Kartenschema für Mehrfachanwendungen beteiligten Parteien, insbesondere dem Kartenausgeber und den Anwendungsbereitstellern, eine Basis für ihre geschäftliche Übereinkunft. Anhand greifbarer Dinge wie der auf jeder Karte benötigten Speichermenge, der Zahl der auszurüstenden Karten und der Dauer der Anwendung auf der Karte anstelle eines abstrakten Vermerks über "Vertrauen" und "hohe Sorgfalt" ist der Vertrag des Anwendungsbereitstellers leichter als bei herkömmlich ausgeführten Chipkarten zu formulieren. Außerdem müssen der Kartenausgeber und der Anwendungsbereitsteller keine Geheimschlüssel teilen und diese Teilung mit vertraglichen Verpflichtungen und gegenseitig abgestimmten Schlüsselübermittlungsmöglichkeiten schützen.
- Drittens besitzt die Anwendungssoftware, falls sie auf Grundlage der neuen Technik implementiert wird, einige Vorteile im Vergleich zu bekannten Chipkartenbetriebssystemen:
- - ein minimaler Austausch von Daten zwischen einem Endgerät und einer Karte ist erforderlich, um das wechselseitige Funktionieren zwischen Karte und Endgerät sicherzustellen, z. B. unterstützen sie die gleiche(n) Anwendung(en). Auszutauschende Datenwerte können so strukturiert sein, wie in dem Entwurf des internationalen Standards ISO 7816-5 vorgeschlagen;
- - zur Beendigung einer Transaktion zwischen Karte und Endgerät kann tatsächlich die minimale Anzahl von Datenaustauschen - wie theoretisch hergeleitet - verwendet werden, weil die Transaktion als private Berechnung beendet wird, dies anstelle der Notwendigkeit, eine lange Folge von Standardbefehlen zu verwenden;
- - sie erlaubt den kontrollierten Zugriff auf Daten, ohne einen beteiligten Zugriffsweg zu benötigen, der durch eine von allen Anwendungen geteilte Verzeichnis- und Dateihierarchie vorgeschrieben ist, wie momentan gebräuchlich und zur Standardisierung vorgeschlagen;
- - sie erlaubt die parallele Entwicklung der Endgeräte- und Chipkartenanwendung, wobei dieser Entwicklungsprozess mit Computersoftwarewerkzeugen wie Compilern und Emulatoren unterstützt werden kann. Gestaltung und Implementierung der Karten- und Endgerätesoftware können so über die gegenwärtig erforderliche, langweilige und fehleranfällige Codierung in Assemblersprache hinausgehoben werden;
- - sie erlaubt die Standardisierung der Ausrüstung, und zwar sowohl der Karten wie auch der Endgeräte, unter Verwendnung eines abstrakten Formalismus zur Beschreibung der Fähigkeiten der Komponenten, was Flexibilität im Hinblick auf zukünftige Entwicklungen, etwa neue, von Karten- oder Endgeräteherstellern offerierte Merkmale, verleiht. Der standardisierte Endgeräteumfang könnte eine API umfassen. Dagegen konzentrieren sich die gegenwärtigen Standardisierungsbemühungen bei Chipkarten darauf, feste Dateninhalte von Nachrichten vorzuschreiben, um Identifizierungswerte bereitzustellen, die in einer durch den Standard festgelegten Weise zu interpretieren sind, was wenig Raum für neue Entwicklungen lässt.
- Schließlich wird den Herstellern der Chipkartenbetriebssysteme mit der neuen Technik eine große Freiheit gegeben, was die Entwicklung optimaler Implementierungen des Betriebssystemkerns der Karte und des Endgerätebetriebssystems anbelangt. Hardwarekonstrukteuren von Chipkarten werden verschiedene Optionen an die Hand gegeben, um die Ausnutzung des Chip-Siliciums mit Hardwareunterstützung für Basisoperationen, die im Systemkern enthalten sind, zu optimieren. Die erzielte Reduzierung der Hardwarekosten, beginnend mit dem oben angegebenen speziellen Design, kann größer sein, als wenn man Verbesserungen bei universellen Ein-Chip-Computern zugrundelegt.
- Die Erfindung wird nun im Detail mit Bezug auf einige Zeichnungen beschrieben, die ein Ausführungsbeispiel der Grundprinzipien der vorliegenden Erfindung zeigen.
- Fig. 1 zeigt ein auf einer hierarchisch organisierten Sammlung von Datenelementen basierendes, bekanntes Anwendungsdesign bei Chipkarten.
- Fig. 2 stellt ein Schaubild des Kommunikationsstroms zwischen einer tragbaren Verarbeitungseinheit und einer entsprechenden Verarbeitungseinheit in einem gegenwärtig als Standard akzeptierten Format dar.
- Fig. 3 stellt eine Grundausführung der vorliegenden Erfindung mit Interaktionskontexten in tragbaren Verarbeitungseinheiten, etwa Chipkarten oder PCMCIA-Karten, und eher stationären Verarbeitungseinheiten, wie etwa Kartenendgeräten oder tragbaren Personalcomputern, dar.
- Fig. 4 stellt ein Beispiel einer praxisgemäßen Organisation eines Ausführungskontexts dar, das verschiedene Beziehungen zwischen Prozedurbeschreibungen, die in dem Interaktionskontext enthalten sind, und Datenelementen sowie Bibliotheksfunktionen herausstellt, welche bei der Durchführung der Prozeduren benutzt werden.
- Fig. 5 zeigt ein Beispiel eines Flußdiagramms für eine Programmausführungssteuerung und für Sicherheitskontextwechsel, die bei der Durchführung der durch ein Kommunikationsgrundelement aufgerufenen Prozedurbeschreibung auftreten.
- Die Struktur der Daten und Dateien in bekannten Systemen ist in Fig. 1 dargestellt. Grundsätzlich gibt es eine Stammdatei 1, die mit mehreren Elementardateien 3 und einer oder mehreren reservierten Dateien 2 verbunden ist. Jede reservierte Datei 2 kann mit einer oder mehreren weiteren reservierten Dateien 2 oder mit einer oder mehreren Elementardateien 3 verbunden sein. Der Stand der Technik benutzt eine baumartige Hierarchie der Verzeichnisse und Dateien. Die Anzahl der untergeordneten Ebenen ist bei der bekannten Struktur im Prinzip unbeschränkt. Die in Fig. 1 verwendete Terminologie ist dem internationalen ISO-Standard 7816-4 entnommen. Gemäß dem Standardformat für den Kommunikationsstrom zwischen einer tragbaren Datenverarbeitungseinheit 5 und einer entsprechenden Datenverarbeitungseinheit 4, wie in Fig. 2 gezeigt, umfaßt die Kommunikation eine Menge von Blockpaaren. Die Kommunikation beginnt mit einem Rücksetzsignal m0 von der Datenverarbeitungseinheit 4. Dieses Rücksetzsignal kann außerhalb der Kommunikationsbandbreite liegen, etwa durch die Betriebslogik in der Datenverarbeitungseinheit 5 erzeugt werden, ist aber konzeptmäßig Teil des geordneten Nachrichtenaustausches. Die tragbare Datenverarbeitungseinheit 5 antwortet mit einer Rücksetzantwort (ATR) ml, auf die möglicherweise Inhalte folgen. Alle nachfolgenden Paare von Blöcken m2, m3, ..., m(n-1), mn bestehen aus Blöcken, die von unterscheidenden Werten angeführt werden, auf welche Inhalte folgen, und die unterschiedliche Kommunikationsgrundelemente bilden.
- Fig. 3 zeigt den internen Aufbau zweier erfindungsgemäßer Datenverarbeitungseinheiten, die durch Senden und Empfangen von Daten miteinander kommunizieren. Die linke Datenverarbeitungseinheit 4 kann u. a. ein Endgerät sein, die rechte Datenverarbeitungseinheit kann u. a. eine tragbare Datenverarbeitungseinheit, etwa eine Chipkarte, sein. Die Erfindung ist jedoch auch auf zwei oder mehr tragbare Datenverarbeitungseinheiten anwendbar, die durch geeignete Kommunikationsmittel oder eine geeignete Verbindungstopologie miteinander kommunizieren.
- Jede der Datenverarbeitungseinheiten 4, 5 umfaßt Datenkommunikationsmittel 7, 14, über die strukturierte Blöcke von Daten ausgetauscht werden können. Jede der Datenverarbeitungseinheiten umfaßt Verarbeitungsmittel 8, 15 sowie Speichermittel 9, 16. Die Speichermittel 9, 16 können jede beliebige Ausbildung eines Festspeichers (ROM), eines Direktzugriffsspeichers (RAM) und eines programmierbaren Festspeichers, wie etwa eines elektrisch löschbaren programmierbaren Festspeichers (EEPROM), besitzen.
- Die Speichermittel 9, 16 umfassen ein Ausführungsprogramm 12, 17, das hier durch "MAXOS" angedeutet ist. Wenn die tragbare Datenverarbeitungseinheit 5 für zwei oder mehr Anwendungen geeignet ist, umfaßt die Speichereinrichtung 9, 16 Anwendungsbeschreibungen 13(1) 13(n), 18(1)...18(n). Es gibt so viele Anwendungsbeschreibungen, wie Anwendungen der betreffenden Datenverarbeitungseinheit vorgesehen sind. Jede Anwendungsbeschreibung ist durch "CSA" angedeutet. Die zweite Anwendungsbeschreibung 13(2), 18(2) ist in Fig. 3 in vergrößertem Maßstab gezeigt, um die Inhalte der jeweiligen Anwendungsbeschreibung anzeigen zu können. Jede Anwendungsbeschreibung 13(i), 18(i) umfaßt zumindest einen "Interaktionskontext" 11(1)...11(m), 19(1)...19(m). Jeder Interaktionskontext ist durch "CTA" angedeutet. Der erste dieser Interaktionskontexte 11(1), 19(1) ist in vergrößertem Maßstab gezeigt, um seine Inhalte darstellen zu können. Jeder Interaktionskontext enthält:
- - einen Satz von Befehlen, welche die durch den Interaktionskontext erkannten Kommunikationsgrundelemente spezifizieren und auf geeignete, in einem Prozedurensatz spezifizierte Prozeduren verweisen;
- - einen Satz von Daten;
- - einen Satz von Datenverweisen auf Daten, welche in anderen Interaktionskontexten - falls vorhanden - angesiedelt sind;
- - einen Satz von Prozeduren, welche von dem Ausführungsprogramm 12, 17 ausgeführt werden können;
- - einen Satz von Zugriffsbedingungen für die Datenelemente;
- - einen Satz von externen Verweisen, welche auf Datenelemente verweisen, die von Befehlen zu verwenden sind, welche von der anderen Datenverarbeitungseinheit ausgegeben werden;
- - optional entwicklerspezifizierte weitere Listen.
- Schließlich umfassen die Speichermittel 9, 16 ein Speicherelement 21, 20, welches einen Verweis auf den "momentanen CTA" enthält, also den Interaktionskontext, der momentan in Kraft ist.
- Der Sinn mehrerer Interaktionskontexte innerhalb einer Anwendungsbeschreibung ist, eine funktionale Trennung in mögliche Interaktionen zwischen den Datenverarbeitungseinheiten 4, 5 vorzusehen. Dies ist besonders bedeutsam, wenn die funktionale Trennung auch eine Trennung in Sicherheitsbedingungen ist. Ein Beispiel kann eine erste Interaktion zwischen einer Chipkarte und einem Endgerät etwa zum Öffnen einer Tür und eine zweite Interaktion bei der Programmierung von Türen, die geöffnet werden dürfen, sein. Die zweite Interaktion benötigt eine bessere Sicherheit als die erste Interaktion und besitzt ihren eigenen Interaktionskontext. Zugriff auf den Interaktionskontext zu erhalten, ist der erste Schritt bei der Gewährleistung der Sicherheit der Operationen, die im Rahmen des Interaktionskontextes ausgeführt werden können.
- Fig. 4 zeigt einen zweckmäßigen Ansatz zur Realisierung des Kontextmechanismus, der als Speicherorganisationsmodell dargestellt ist, das die Beziehungen zwischen Datenelementen, Zugriffsbedingungen und Prozeduren zeigt. Die Struktur der Fig. 4 gilt immer dann, wenn es zwei oder mehr Anwendungen der tragbaren Datenverarbeitungseinheit 5 gibt. Wenn es nur eine Anwendung gibt, ist die Struktur stark vereinfacht, wie später erläutert wird. In Fig. 4 sind die Bezugsziffern der Datenverarbeitungseinheit 5 dargestellt. Die Struktur der Fig. 4 ist jedoch in gleicher Weise auf die Speichermittel 9 der Datenverarbeitungseinheit 4 anwendbar. In Fig. 4 sind Datenelementbeschreibungen und Prozedurbeschreibungen optimal organisiert, um die Aufteilung des Programmcodes und die Aufteilung der Daten zwischen verschiedenen Interaktionskontexten (CTAs) widerzuspiegeln, die eine Anwendung (CSA) bilden.
- Die Speichermittel 16 umfassen Datenelemente H(1)...H(7), ausführbare Codelemente G(1)...G(5), welche Teil des Betriebssystems sind, sowie Anwendungsbeschreibungen 18(1), 18(2) (CSA1, CSA2). In Fig. 4 sind betriebssysteminterne Daten und Codes weggelassen. Die Anzahl der Datenelemente, der ausführbaren Codelemente und der Anwendungsbeschreibungen, wie sie in Fig. 4 dargestellt sind, ist lediglich beispielhaft: In der Realität können sich die Anzahlen nach Bedarf ändern.
- Jede Anwendungsbeschreibung 18(1), 18(2) ist physikalisch in den Speichermitteln vorhanden. Sie bilden eine erste, untere Schicht der Abstraktion, um die Speichernutzung widerzuspiegeln. Jede Anwendungsbeschreibung 18(1), 18(2) besteht aus:
- - einer Prozedurbibliothek, welche aus ausführbaren Codeeinheiten F(1)...F(4) besteht, die auf zu diesem Zweck verfügbar gemachte ausführbare Codeelemente des Betriebssystems verweisen können, wie durch Pfeile P(1)...P(5) angedeutet;
- - eine Liste von Datenelementen E(1)...E(7), welche von Prozeduren im Rahmen der Interaktionskontexte 19(1)...19(2) in der momentanen Anwendungsbeschreibung 18 zu verwenden sind. Diese Datenliste umfaßt Datenzugriffsbedingungen sowie Zeiger q(1) q(7) auf Speicherbereiche, welche Datenelemente enthalten;
- - eine Interaktionskontextliste mit einer Anzahl von Interaktionskontextbeschreibungen 19(1), 19(2).
- Die Anzahl der Elemente in der Prozedurbibliothek, in der Liste der Datenelemente und in der Interaktionskontextliste in der Anwendungsbeschreibung 18(1), wie sie in Fig. 4 gezeigt ist, dient lediglich zum Zwecke der Darstellung. Es versteht sich, daß die Anzahl der Elemente abhängig von der gewünschten Anwendung variieren kann.
- Der Inhalt der Datenstrukturen der Interaktionskontexte 19(1), 19(2) und der Anwendungsbeschreibung 18(1) in den Verarbeitungseinheiten 4, 5, die am Datenaustausch teilnehmen, ist insofern komplementär, als die Antwort einer Einheit von der anderen Einheit als Befehl interpretiert wird. Durch diese komplementäre Natur kann der möglicherweise kompakt codierte Inhalt der Datenstrukturen anhand einer einzelnen textlichen Beschreibung erzeugt werden. Ein Datenaustauschsystem besteht im allgemeinen aus vielen Implementierungen der Verarbeitungseinheiten mit unterschiedlicher Zielsetzung, die während des Betriebsablaufs des Systems in Kommunikation zu einem Datenaustausch treten können, um diesen Zweck zu erfüllen. Jede Verarbeitungseinheit kann in ihren Speichermitteln nur einen solchen Teil der Datenstruktur enthalten, wie er für ihren vorgesehenen Zweck in dem System relevant ist. Das System im Ganzen wird durch die Sammlung all der verschiedenen Inhalte von Interaktionskontexten beschrieben. Einige der Interaktionskontexte oder ein Teil ihres Inhalts können bei Bedarf auch zu beliebiger Zeit geladen werden. Dieses Laden kann sicher geschehen, wenn es beispielsweise durch die oben angedeutete Verwaltungsanwendung geschützt wird.
- Die Interaktionskontexte 19(1), 19(2) sind physikalisch in den die Anwendungsbeschreibung 18(1) speichernden Speichermitteln vorhanden.
- In logischer Hinsicht bilden die Interaktionskontexte eine zweite Ebene bzw. Schicht der Steuerung der Speichernutzung. Die durch diese zweite Ebene und die Ebene der Anwendungsbeschreibung gebildete kombinierte Steuerung ergibt eine effektive Realisierung eines Ausführungskontextmechanismus für tragbare Datenverarbeitungseinheiten, wie etwa Chipkarten. Jeder Interaktionskontext 19(1), 19(2) umfaßt:
- - eine Liste von Prozedurbeschreibungen C(1)...C(5). Diese Prozedurbeschreibungen können auf Prozedurbeschreibungen in der Prozedurbibliothek in der Anwendungsbeschreibung 18 verweisen, wie durch einen Beispielpfeil s(1) angedeutet. Alternativ können diese Prozedurbeschreibungen auf ausführbare Codeelemente G(1) ...G(5) verweisen, die durch das Betriebssystem bereitgestellt werden, wie durch einen Beispielpfeil t(1) angedeutet. Als weitere Alternative können diese Prozedurbeschreibungen explizite Verweise auf Datenelemente enthalten, die von der Prozedur während der Ausführung verwendet werden und die in der Datenliste der betreffenden Anwendungsbeschreibung 18 vorhanden sind, wie durch Pfeile r(1)...r(6) angedeutet;
- - eine Datenliste mit Datenelementen B(1)...B(5), welche exklusiv zur Verwendung durch die Prozeduren in dem betreffenden Interaktionskontext verfügbar sind. Die Datenelemente sind als Verweise auf die Datenliste der betreffenden Anwendungsbeschreibung 18 mit zugehörigen. Zugriffsbedingungen dargestellt, an die man sich beim Zugriff auf die eigentlichen Daten halten muss, wie durch Pfeile u(1)...u(5) angedeutet;
- - eine externe Schnittstellenliste mit Kommunikationsgrundelementen A(1)...A(4), welche von den betroffenen Interaktionskontexten 19(1), 19(2) als Befehle akzeptiert werden. Jeder Befehl in einem Kommunikationsgrundelement verweist auf ein Element der Prozedurbeschreibungen C(1)...C(5) der Prozedurenliste in dem betreffenden Interaktionskontext, wie durch Pfeile v(1)...v(4) angedeutet. Bei Ausgabe durch die Kommunikationsvorrichtung 4 können die Befehle durch eine oder mehrere auf den Befehl folgende Adressen auf Elemente in der Datenliste der Anwendungsbeschreibung verweisen. Jeder Befehl kann von Datenelementen als Eingabe für die Befehlsverarbeitung begleitet werden. Die Anzahl der Adressen, wie sie hier gegeben ist, ist lediglich beispielhaft und wird in der Realität für jeden Befehl nach Bedarf festgelegt.
- Für den Schutz der Datenelemente wird durch die Vorsehung der Zugriffsbedingungen gesorgt. Jeder externe Befehl in einem Kommunikationsgrundelement A(1)...A(4) kann lediglich Datenelemente adressieren, auf die in der Datenliste des betreffenden Interaktionskontexts 19 verwiesen wird. Der Zugriff wird nur dann gestattet, wenn die Zugriffsbedingungen erfüllt sind. Diese Zugriffsbedingungen spezifizieren die Art des Zugriffs, der für den Befehl zugelassen ist; eine solche Zugriffsbedingung kann sein: kein Zugriff, nur Lesezugriff, Lese- und Schreibzugriff und Geheimschlüsselverwendung. Es können auch andere Zugriffsbedingungen gelten. Beispielsweise kann der Befehl des Kommunikationsgrundelements A(1) nur einen Lesezugriff auf das Datenelement B(2) über den Verweispfeil w(2) haben, während der Befehl des Kommunikationsgrundelements A(2) über den Verweispfeil w(3) einen Lese- und Schreibzugriff auf dasselbe Datenelement B(2) hat.
- Die Prozedurbeschreibungen C(1)...C(5) können auf Datenelemente in der Datenliste der betreffenden Anwendungsbeschreibung 18 und auf keine anderen verweisen. Wiederum wird der Zugriff nur gestattet, wenn die Zugriffsbedingung erfüllt ist. Diese Zugriffsbedingungen geben ebenfalls die Art des Zugriffs an, der erlaubt ist: beispielsweise kein Zugriff, nur Lesezugriff, Lese- und Schreibzugriff und Geheimschlüsselverwendung. Die Zugriffsbedingungen für verschiedene Prozedurbeschreibungen innerhalb desselben Interaktionskontexts 19 können für das gleiche Datenlistenelement E(1)...E(7) der Anwendungsbeschreibung unterschiedlich sein, z. B. kann der Verweispfeil r(1) eine Nur-Lese-Zugriffsbedingung darstellen, wohingegen der Verweispfeil r(2) eine Lese/Schreib- Zugriffsbedingung darstellen kann:
- Die Zugriffsbedingungen werden auf der betroffenen Ebene geprüft, d. h. auf der Ebene der Anwendungsbeschreibung oder des Interaktionskontexts, und zwar nur einmal. Ein Element B(1)...B(5) der Datenliste in einem Interaktionskontext 19(1), 19(2) verweist durch den Pfeil u(1) u(5) direkt auf den Zeiger eines Datenelements in der Datenliste der Anwendungsbeschreibung 18(1), weil die Zugriffsbedingungen in dem Datenlistenelement E(1)...E(7) der Anwendungsbeschreibung 18(1) bereits erfüllt sind. Die Prozedurbeschreibungen C(1)...C(5) in einem Interaktionskontext 19(1), 19(2), die auf Datenlistenelemente in der Anwendungsbeschreibung 18(1) verweisen, müssen jedoch zunächst die den Datenlistenelementen E(1)...E(7) in der Anwendungsbeschreibung 18(1) zugeordneten Zugriffsbedingungen erfüllen. Auf Datenelemente oder Prozedurbeschreibungselemente in den Datenlisten der Anwendungsbeschreibung 18(1) und ihrer zugehörigen Interaktionskontexte 19(1), 19(2) kann nicht von einer anderen Anwendungsbeschreibung in den Speichermitteln 16 verwiesen werden. Der ausführbare Code, der die Prozedurbeschreibung bildet, kann Daten lediglich indirekt über die beschränkte Menge von Datenverweisen adressieren, die jeder der Prozedurbeschreibungen C(1)...C(5) zugeordnet sind. Mit Hilfe der durch B(1) ...B(5) beschriebenen Datenelemente wird die Verweisliste durch das Ausführungsprogramm zeitweilig um Verweise auf Datenelemente erweitert, die durch Auswertung der Adressen erhalten werden, welche aktuell in der Kommunikationsnachricht angegeben sind, die als mit der Prozedurbeschreibung verbundener Befehl akzeptiert wird. Auf diese Weise kann auf keine anderen Daten als die explizit angegebenen zugegriffen werden, wobei nur bestimmte Nutzungsbedingungen beachtet werden. Mit anderen Worten sieht das bevorzugte Speicherreferenzmodell der Fig. 4, was die Anwendungsbeschreibung mit ihren zugehörigen Interaktionskontexten anbelangt, einen exklusiven Kontext für Operationen im Rahmen einer einzelnen Anwendung der Datenverarbeitungseinheit 5 vor. Die Datenelemente H(1)...H(7) werden für alle Anwendungen gemeinsam in den Speichermitteln 16 gespeichert, enthalten jedoch Daten zur exklusiven Verwendung im Kontext der Anwendungsbeschreibung 18(1), wobei diese Exklusivität durch das Ausführungsprogramm gewährleistet wird, indem die Existenz eines einzelnen Zeigers auf jeden Speicherplatz zugelassen wird, wie etwa q(1) von E(1) nach H(2). Lediglich auf die Codelemente G(1)...G(5) kann durch jede der in den Speichermitteln 16 gespeicherten Anwendungsbeschreibungen 18(1)... verwiesen werden. Diese letzten Verweise anderer Anwendungsbeschreibungen als der Anwendungsbeschreibung 18(1) auf die gemeinsamen Codes G(1)...G(5) sind in Fig. 4 nicht explizit angegeben. Es kann jedoch jeder Fachmann leicht die Struktur der Fig. 4 auf zwei oder mehr Anwendungsbeschreibungen 18(1), 18(2), ... erweitern.
- Nach der Erläuterung, wie die Datenelemente durch die Verwendung von Zugriffsbedingungen unterschiedlicher Arten geschützt werden können, werden nun die Vorkehrungen zur Speicherverwaltung erläutert. Für die Speicherverwaltung ist es wünschenswert, daß veränderbare Daten (Datenelemente) und unveränderbare Daten (Betriebssystemcode) von dem Betriebssystem gesondert verwaltet werden können. Das in Fig. 4 gezeigte Speicherreferenzmodell sieht eine Trennung der Code- und Datenelemente in den Speichermitteln 16 vor, auf die durch die Zeiger q(1) ...q(7), p(1)...p(5) von der Datenliste bzw. der Prozedurbibliothek in der betreffenden Anwendungsbeschreibung 18 verwiesen wird. Die Datenlistenelemente in jedem Interaktionskontext 19(1), 19(2) enthalten lediglich Verweise auf diese Zeiger und keine unmittelbaren Verweise auf die Codes G(1)...G(5) und die Datenelemente H(1)...H(7) in den Speichermitteln 16. Die Datenliste der betreffenden Anwendungsbeschreibung 18 sieht den vom Betriebssystem verlangten Grad an Indirektheit vor, um die Speicherverwaltung vorzunehmen.
- Eine Codeverdoppelung wird dadurch vermieden, daß gemeinsame Codebibliotheken auf zwei Ebenen bereitgestellt werden: "Befehlsrümpfe" wie die Prozedurbeschreibung C(3), die auf das Codeelement F(2) in der Prozedurbibliothek in der Anwendungsbeschreibung 18(1) verweist, um gemeinsame Codes unter verschiedenen Interaktionskontexten zu teilen. Der Rumpf der Prozedurbeschreibung C(3) verweist jedoch auch direkt auf einen Code G(3), der in den Speichermitteln 16 gespeichert ist und durch das Betriebssystem bereitgestellt wird. Alle von dem Betriebssystem bereitgestellten Codeelemente G(1)...G(5) sind zur effizienten Ausführung ausgelegt.
- Die Verweisung auf die Codeelemente F(1), F(2) kann mit einer Speicheradresse oder mit zusätzlichen Ebenen der Indirektheit anhand von Indizes in geeignet aufgebauten Tabellen erfolgen. Die hier vorgesehene hierarchische Strukturierung der Verweise ist für eine Realisierung mit Indizes sehr geeignet.
- Grundsätzlich ist die Speicherstruktur nach Fig. 4 auch in Situationen anwendbar, in denen nur eine Anwendung der Datenverarbeitungseinheit 5 vorgesehen ist. In diesem Fall kann diese Anwendungsbeschreibung 18(1) sogar mit einem Interaktionskontext 19(1) zusammenfallen, welcher Interaktionskontext dann den folgenden kohärenten Satz von Definitionen enthält:
- a. einen Satz von Basis-Kommunikationsgrundelementen A(1)..., die immer dann akzeptiert werden, wenn die Datenverarbeitungseinheit 5 mit einer entsprechenden Einheit 4 kommuniziert, wobei die Grundelemente zumindest ein Grundelement umfassen, das dazu verwendet wird, in den mindestens einen Interaktionskontext einzutreten;
- b. einen Satz von Prozedurbeschreibungen C(1)..., die die in Antwort auf jedes der akzeptierten Kommunikationsgrundelemente A(1)... durchzuführenden Aktionen definieren und zumindest eine erste Prozedurbeschreibung umfassen, die bei Aktivierung des Interaktionskontexts durchzuführen ist, sowie eine letzte Prozedurbeschreibung umfassen, die unmittelbar vor Deaktivierung des Kontexts durchzuführen ist;
- c. einen möglicherweise leeren Satz von entweder permanent gespeicherten oder berechneten Datenelementen H(1)..., die zur Verwendung verfügbar sind, wenn Prozeduren, wie sie in den Prozedurbeschreibungen C(1)... definiert sind, durchgeführt werden;
- d. einen möglicherweise leeren Satz von Verweisen auf Datenelemente, welche Verweise den Prozedurbeschreibungen C(1)... zugeordnet sind, wobei die Datenelemente auch möglichen weiteren Interaktionskontexten zugänglich sind und zur Verwendung verfügbar sind, wenn Prozeduren, wie sie in den Prozedurbeschreibungen C(1)... definiert sind, durchgeführt werden;
- e. eine möglicherweise leere Datenliste mit einer Liste von Datenverweisen auf Datenelemente, die zum expliziten Verweis als Teil eines Kommunikationsgrundelements verfügbar sind, um durch die dem Kommunikationsgrundelement zugeordnete Prozedurbeschreibung verwendet zu werden;
- f. einen Satz von Zugriffsbedingungen, die den Datenelementen zugeordnet sind, auf welche im Zusammenhang mit den Prozedurbeschreibungen verwiesen wird;
- g. einen Satz von Zugriffsbedingungen, die der Liste von Datenverweisen B(1)... in der Datenliste zugeordnet sind.
- Wenn für die Datenverarbeitungseinheit 5 nur eine Anwendung vorgesehen ist und es wenigstens zwei Interaktionskontexte 19(1), 19(2) gibt, umfaßt jede Anwendungsbeschreibung:
- a. eine Datenliste mit Verweisen E(1)... auf Datenelemente, welche Verweise zwei oder mehr Interaktionskontexten 19(1)... zugänglich sind und durch zusätzliche Datenelemente erweitert sein können;
- b. einen weiteren Satz von Zugriffsbedingungen, die den Verweisen E(1)... oder den zusätzlichen Datenelementen zugeordnet sind und Nutzungsbeschränkungen definieren.
- Der Satz von Prozedurbeschreibungen in jeder der zwei oder mehr Interaktionskontextbeschreibungen enthält außerdem eine zusätzliche letzte Prozedurbeschreibung, die unmittelbar vor Deaktivierung des Kontexts durchzuführen ist.
- Fig. 5 stellt den Ablauf der Steuerung in dem oben durch "MAXOS" (12, 17) angegebenen Ausführungsprogramm dar.
- Nach Einschalten des Systems beginnt die Software mit der Verarbeitung eines Rücksetzcodes in Schritt 30. In Schritt 31 erfolgt der Eintritt in die Sicherheitsebene für die Kernoperationen der Datenverarbeitungseinheit. Die diese Ebene beschreibenden Zugriffsbedingungen sind in einem nicht modifizierbaren Teil des Speichers gespeichert, z. B. in einem ROM oder in einer Hardwarelogik. In Schritt 32 wird der nichtflüchtige Speicher auf Konsistenz geprüft; jegliche Modifikationen, die infolge eines plötzlichen Abschaltens, etwa infolge eines Herausziehens einer Chipkarte, unbeendigt geblieben sein können, werden annuliert. Die Konsistenzprüfung des nichtflüchtigen Speichers beinhaltet nur eine Untersuchung der im Speicher gespeicherten Zustandsinformationen und die Berechnung von Prüfsummen. Der Inhalt des Speichers - falls überhaupt auf ihn zugegriffen wird - wird lediglich zur Berechnung der Prüfsummen verwendet. Die Konsistenzprüfung ist somit ein sicherer Vorgang. Die genaue Art der Gegebenheiten der Konsistenzprüfung hängt von den Einzelheiten der Hardware in der Datenverarbeitungseinheit und von Modifikationsroutinen für den nichtflüchtigen Speicher ab, die für die spezielle Sicherheitsarchitektur in hohem Maße irrelevant sind. Nach der allgemeinen Speicherkonsistenzprüfung werden die vorberechneten, im Speicher gespeicherten Ebenen des Sicherheitskontexts verifiziert. Schließlich wird der Direktzugriffsspeicher der Datenverarbeitungseinheit gestartet.
- Wenn die Ausführungsumgebung somit für sicher erklärt wird, erfolgt in Schritt 33 der Einstieg in die Sicherheitsebene für eine sichere Anwendung der Datenverarbeitungseinheit. Auf dieser Ebene wird jeder die Kernoperationen betreffende Speicherzugriff blockiert. Der Zugriff auf Anwendungsdaten und -beschreibungen von dieser Ebene erfolgt ausschließlich über Routinen im Kern, die Zustandsinformationen über ablaufende Speicheroperationen führen.
- Beim ersten Einstieg nach der Rücksetzung werden in Schritt 34 Anwendungsdatenelementdeskriptoren verwendet, um die Konsistenz gespeicherter Daten mit dem Deskriptor zu prüfen; der Speicher wird geändert, falls er sich in einem mit dem beschriebenen Attribut inkonsistenten Zustand befindet. Eine Rücksetzantwortnachricht (ATR) wird aus den Anwendungsidentifizierern zusammengesetzt, die in den Anwendungsdeskriptoren gespeichert sind, und mit einer Transaktionsnummer vervollständig, die so berechnet wird, daß sie seitens der empfangenden anderen Datenverarbeitungseinheit 4 unvorhersagbar ist. Intern in der Datenverarbeitungseinheit wird ein Endgerätebefehl erzeugt, um einen Standardinteraktionskontext zu aktivieren. Unmittelbar nachdem die ATR-Nachricht an die andere Datenverarbeitungseinheit 4 geschickt wird, wird dieser interne Kontextaktivierunsbefehl ausgeführt, um einen Interaktionskontext für nachfolgende Befehle bereitzustellen. Die ATR- Nachricht gibt eindeutig die Bereitschaft der Datenverarbeitungseinheit an, weitere Befehle anzunehmen. Der Standardinteraktionskontext kann als Teil einer "Chipkartenbesitzeranwendung" ausgeführt sein, die als eine Standardanwendung in allen Vielfachanwendungs-Chipkarten vorhanden ist. Bei diesem speziellen Anwendungskontext kann der Benutzer, d. h. der Chipkartenbesitzer, seine persönlichen Daten nachsehen oder eine der anderen Anwendungen auf der Karte öffnen.
- In Schritt 35 erfolgt als Folge des-Kontextaktivierungsbefehls der Eintritt in die Interaktionskontext- (CTA-) Sicherheitsebene für den standardmäßigen Chipkartenbesitzer CTA.
- Nach vollständiger Aktivierung einer Anwendung ist diese bereit, Befehle von der anderen Datenverarbeitungseinheit zu empfangen. Die weitere Verarbeitung hängt von dem empfangenen Befehl ab: Ein Befehl, eine Anwendung zu aktivieren, wird anders behandelt als ein Befehl, der ausgeführt werden soll. Daher wird in Schritt 38 nach der Feststellung, daß in Schritt 36 ein Kommunikationsgrundelement erhalten wurde und es in Schritt 37 als akzeptierbar bestimmt wurde, getestet, ob eine neue Anwendung aktiviert werden soll. Falls nicht, wird in Schritt 39 eingetreten, in dem der Befehl überprüft wird, um herauszufinden, ob er zugelassen ist und die Eingangsdaten akzeptiert werden können. Diese Prüfungen werden für einen Befehl nur dann durchgeführt, wenn dies in dem Anwendungsdeskriptor angegeben ist. In Schritt 39 kann auch eine Entschlüsselung der Eingangsdaten durchgeführt werden.
- Wenn der Test erfolgreich ist, erfolgt der Einstieg in die "Datenzugriffsschutzebene", Schritt 40. Auf dieser Ebene, der höchsten Sicherheitsebene, können Routinen ausgeführt werden, die von den Anwendungsbereitstellern codiert wurden, Schritt 41. Diese Routinen sind in dem Anwendungsdeskriptor gespeichert und wirken als anwendungsspezifische Reaktion auf einen von der anderen Datenverarbeitungseinheit 4 ausgegebenen speziellen Befehl. Diese Sicherheitsebene beschränkt den Speicherzugriff auf eine Teilmenge, die speziell für den Befehl festgelegt ist, der gerade ausgeführt wird.
- Nach Ausführung des Befehls mit den übermittelten Eingangsdaten in Schritt 41 wird die Datenzugriffsschutzebene in Schritt 42 verlassen.
- In Schritt 43 werden Ausgabedaten und ein (kryptografischer) Nachweis der Befehlsbeendigung erzeugt. Diese Funktion wird für einen Befehl nur dann ausgeführt, wenn es so in der Prozedurbeschreibung angegeben ist, die für beliebige der definierenden Bestandteilaktionen leer sein kann. Nach Schritt 43 wartet das Programm auf neue Kommunikationsgrundelemente, Schritt 36.
- Falls keine spezielle Befehlsroutine definiert ist und der Befehl anhand von Prozeduren ausgeführt werden kann, die lediglich aus Betriebssystemfunktionen bestehen, wird die Datenzugriffsschutzebene (Schritt 40) nicht betreten; der Befehl wird unmittelbar auf der Interaktionskontextsicherheitsebene ausgeführt, da die Betriebssystemroutinen so ausgelegt sind, daß sie den Datenschutz nicht verletzen.
- Wenn in Schritt 38 festgestellt wird, daß keine neue Anwendung aktiviert werden soll, fährt das Programm fort mit Schritt 44, in dem eine Kontextdeaktivierungsprozedur durchgeführt wird. In Schritt 45 wird die momentane anwendungsspezifische Sicherheitsebene verlassen und in Schritt 46 werden im Rahmen der Sicherheitsebene des Ausführungsprogramms "MAXOS" die den Befehl begleitenden Daten geprüft.
- Wenn der Befehl durch geeignete, für die verlangte Anwendung angegebene Authorisierung zugelassen wird, erfolgt der Einstieg in eine neue anwendungsspezifische CTA-Sicherheitsebene, Schritt 47. Diese Ebene beschränkt den Zugriff auf Daten, die die neu geöffnete Anwendung betreffen.
- Die Datenverarbeitungseinheit erzeugt Daten in Antwort auf einen Kontextaktivierungsbefehl, indem sie eine Initialisierungsanweisung ausführt, die in der Prozedurliste definiert ist, Schritt 48. Falls eine solche vom Anwendungsbereitsteller codierte Routine vorhanden ist, wird die Datenzugriffsschutzebene in Schritt 49 betreten. In Schritt 50 wird die Kontextaktivierungsprozedur durchgeführt. In Schritt 51 wird die Datenzugriffsschutzebene verlassen und die Antwort der anderen Datenverarbeitungseinheit 4 mitgeteilt; die Datenverarbeitungseinheit 4 selbst ist bereit, einen neuen Befehl nach dem oben angegebenen Schritt 43 zu empfangen.
- Nach der Beschreibung der Fig. 1 bis 5 erfolgen nun einige allgemeine Anmerkungen zu dem erfindungsgemäßen Datenaustauschsystem.
- Die Codes in der Prozedurbibliothek in jeder Anwendungsbeschreibung 18(1), 18(2) können dadurch erweitert werden, daß eine Spezifikation der Verwendung ihrer Operationsparameter in Klassen eingefügt wird, welche sich auf Attribute beziehen, die Datenelemente betreffen, welche als tatsächlicher Wert in einer Berechnung herangezogen werden können, welche Berechnung nur dann fortschreitet, wenn die Datenattribute und die Parameterklassen zueinander passen. Dies stellt einen Weg bereit, Zugriffsbedingungen sowohl für Datenelemente als auch für Funktionen zu verifizieren. Der Vergleich von geeignet codierten Bitbildern von Datenattributen und Parameterklassen kann zu einer effizienten Realisierung dieser zusätzlichen Technik führen.
- Das Ausführungsprogramm 12, 17 kann einen Verweis auf einen Interaktionskontext umfassen, der dazu verwendet wird, den momentanen Interaktionskontext in demjenigen Speicherelement 20 zu initialisieren, das einen Verweis auf den momentan in Kraft befindlichen Interaktionskontext speichert. Durch diese Maßnahme ist es möglich, eine Endaktion nach Erfassung einer internen Inkonsistenz bei Wiederaufnahme eines normalen Betriebszustands durchzuführen oder wann immer das Ausführungsprogramm 12, 17 aktiv ist und kein expliziter Interaktionskontext durch ein von der anderen Datenverarbeitungseinheit 5 erhaltenes Kommunikationsgrundelement angegeben wurde. Dieser Standardinteraktionskontext kann ohne weiteres ein Kontext sein, der in der oben beschriebenen Kartenbesitzeranwendung enthalten ist.
- Zusätzlich können die Speichermittel 9, 16 einen Interaktionskontext 11, 19 umfassen, dessen Zweck es ist, persönliche Identifizierungsnummern (PINs) zu umfassen, wobei das Ausführungsprogramm 12, 17 dazu ausgebildet ist, die von einem Benutzer des Datenaustauschsystems gelieferten persönlichen Identifizierungsnummern zu verifizieren. Es können verschiedene solcher persönlichen Identifizierungsnummern - Passwörter - verwendet werden. Ein Passwort kann dazu verwendet werden, den Gebrauch der Vorrichtung bei Transaktionen zu schützen, bei denen geheimhaltungsempfindliche Daten offenbart werden können. Ein zweites Passwort kann dazu verwendet werden, Transaktionen zu schützen, bei denen Daten mitgeteilt werden, die einen von dem Passwortbesitzer zu zahlenden Wert darstellen. Ein drittes Passwort kann dazu verwendet werden, Transaktionen zu schützen, bei denen Operationen durchgeführt werden, die als kritisch für die Sicherheit der Anwendung angesehen werden, wie etwa Schutzmodi, die aufgerufen werden, so wie in jedem der Interaktionskontexte 18, die dies benötigen können, angegeben. Weitere Passwörter können vorgesehen sein. Dieser PIN- Verwaltungsinteraktionskontext kann sehr wohl ein Kontext sein, der in der oben beschriebenen Kartenbesitzeranwendung enthalten ist.
- Jede Anwendungsbeschreibung 13, 18 kann eine Liste von numerischen Werten umfassen, die so aufgebaut ist, daß sie Identifizierer für alle Interaktionskontexte 11, 19 bereitstellt, wobei jede Anwendungsbeschreibung 13, 18 eine beliebige Kombination aus einem ersten numerischen Wert, der den Anwendungstyp angibt, einem zweiten numerischen Wert, der eine eindeutige Bezeichnung des die Anwendung bereitstellenden Organs angibt, einem dritten numerischen Wert, der die Art der Anwendungsbeschreibung 13, 18 angibt, und weiteren Zahlen bzw. Nummern umfassen kann, die sich jeweils eindeutig auf einen Interaktionskontext 11, 19 beziehen. Die ersten zwei Nummern können nach Maßgabe von Regeln zugeordnet werden, die im Markt wohl eingeführt sind, wohingegen die übrigen Nummern von dem die Anwendung bereitstellenden Organ so gewählt werden können, wie es als geeignet erscheint. Insbesondere kann es numerische Werte zuweisen, um zwischen verschiedenen Versionen der Implementierung zu unterscheiden oder um die Erzeugung des von der Anwendung in ihren kryptografischen Berechnungen verwendeten Satzes kryptografischer Schlüssel anzuzeigen. Zusätzlich kann die Vorrichtung in die Rücksetzantwortnachricht eine Liste einfügen, welche für jeden der in ihren Speichermitteln enthaltenen Anwendungskontexte 11, 19 eine Identifizierungsnummer aufweist, die aus den mit dem Interaktionskontext gespeicherten eindeutigen Identifizierungswerten aufgebaut ist. Das erste Element in der Liste der Interaktionskontextidentifizierungsnummern kann eine Identifizierung für den Standardkontext sein.
- Die Datenkommunikationsmittel 7, 14 sind vorzugsweise so ausgeführt, daß sie den Datenaustausch datenblockweise strukturieren. Diese Datenblöcke umfassen mindestens zwei Teile, nämlich einen ersten Teil, der insofern als operationsrelevant qualifiziert ist, als er dazu verwendet wird, die Art der Operationen zu beeinflussen, die infolge eines Befehls durchgeführt werden, wie er durch ein Kommunikationsgrundelement oder durch Daten angegeben wird, welche aus durchgeführten Operationen resultieren. Ein zweiter Teil ist insofern als sicherheitsrelevant qualifiziert, als er dazu verwendet wird, die Eignung zur Durchführung einer Operation oder zur Akzeptierbarkeit von Daten in dem operationsrelevanten Teil zu bestimmen, um in der Operation verwendet zu werden oder um die Beendigung der Operation oder die Korrektheit der offenbarten Daten nachzuweisen.
- Wenn die Daten in dieser Weise strukturiert werden, kann das Ausführungsprogramm 17 so ausgelegt sein, daß es bei Akzeptierung eines Kommunikationsgrundelements zur Durchführung von im momentanen Interaktionskontext 20, 21 angegebenen Operationen jede Operation als Teil einer vorbestimmten und festen Folge von Aktionen ausführt, von denen jede gesondert als Teil einer Prozedurbeschreibungsregel spezifiziert ist, die dem akzeptierten Kommunikationsgrundelement zugeordnet ist. Eine erste Aktion kann als Funktion zur Authorisierung der Verwendung des Kommunikationsgrundelements an diesem Punkt in der Kommunikationssequenz spezifiziert sein. Eine zweite Aktion kann als Funktion zur Entschlüsselung der Operationsdaten oder eines Teils derselben spezifiziert sein, wohingegen eine dritte Aktion als die eigentliche Operationsprozedur spezifiziert sein kann. Ein vierter Teil kann zur Verschlüsselung von Operationsdaten spezifiziert sein, welche aus den durchgeführten Operationen resultieren, und eine fünfte Aktion kann als Funktion spezifiziert sein, um einen Nachweis der Beendigung der durchgeführten Aktion oder der Korrektheit der resultierenden Daten zu berechnen oder um in Sicherheitsberechnungen in der empfangenden Datenverarbeitungseinheit verwendet zu werden. Diese Aktionen sind in dem Flußdiagramm der Fig. 5 wiedergegeben.
- Darüber hinaus enthält die Datenverarbeitungseinheit 5 in ihrer Rücksetzantwortnachricht eine Nummer, die so gewählt ist, daß ihr Wert seitens der empfangenden Datenverarbeitungseinheit 4 unvorhersagbar ist, und die als Grundlage für kryptografische Berechnungen dienen kann. Diese Nummer kann als "Kartentransaktionsnummer" bezeichnet werden.
- Für ein Kommunikationsgrundelement wird ein bestimmter zugewiesener Wert vorhanden sein, der stets als Anforderung interpretiert wird, in einen neuen Interaktionskontext 11, 19 einzusteigen. Dieses Kommunikationsgrundelement kann als "Aktivierungsbefehl" bezeichnet werden. Die den Aktivierungsbefehl begleitenden Daten spezifizieren den zu aktivierenden Kontext in hinreichender Weise, indem sie möglicherweise auf die als Teil der Rücksetzantwortnachricht mitgeteilten Identifizierungsnummern verweisen. Die in Antwort auf den Aktivierungsbefehl durchgeführten Aktionen werden erstens durch die Prozedurbeschreibung beschrieben, welche in dem Kontext enthalten ist, der das als zur Deaktivierung bezeichnete Grundelement akzeptiert, und werden zweitens in der Prozedurbeschreibung beschrieben, die als zur Aktivierung bezeichnet ist und in dem Kontext enthalten ist, dessen Betreten spezifiziert wurde.
- Vorzugsweise umfaßt das zum Einstieg in einen spezifizierten Interaktionskontext 11, 19 verwendete Kommunikationsgrundelement numerische Werte, die bei Sicherheitsberechnungen in nachfolgenden Kommunikationen zu verwenden sind. Ein erster Wert kann durch eine der Verarbeitungseinheiten zufällig erzeugt werden, ein zweiter Wert kann zur Identifzierung dieser einen Verarbeitungseinheit dienen. Dieser Wert kann auf verschiedene Weise gemäß den Anforderungen des verwendeten kryptografischen Protokolls berechnet werden, wobei diese Verschiedenheit als Teil der Prozedurbeschreibung C1 spezifiziert sein kann. Diese Identifizierung kann das Ergebnis von Berechnungen sein, die derart sind, daß der resultierende Wert die Vorrichtung und den Zustand ihres Speichers in ausreichender Weise identifiziert, wie es für Berechnungen oder andere Aktionen erforderlich ist, die in anschließenden Datenaustauschvorgängen in dem zu aktivierenden Interaktionskontext 11, 19 erfolgen können. Der zweite Wert kann als "Endgeräteidentifizierung" bezeichnet werden.
- Zusätzlich gibt der Aktivierungsbefehl als Teil der resultierenden Daten einen numerischen Wert, der dazu dient, die spezielle antwortende Dafienverarbeitungseinheit in ausreichender Weise zu identifizieren, wie es für Berechnungen oder andere Aktionen erforderlich ist, die in anschließenden Datenaustauschvorgängen in dem soeben aktivierten Kontext erfolgen können, welche Nummer als "Chipkartenidentifizierung" bezeichnet werden kann.
- Daneben kann die Chipkartenidentifizierungsnummer mit Hilfe kryptografischer Funktionen aus Daten, die in der Datenverarbeitungseinheit 5 gespeichert sind, oder aus den als Teil des Aktivierungsbefehls erhaltenen Daten in solcher Weise berechnet werden, daß die Nummer in unvorhersagbarer Weise variiert, wenn sie in Antwort auf Aktivierungsbefehle berechnet wird, die von auslösenden Vorrichtungen mit unterschiedlichen Endgeräteidentifizierungsnummern erhalten werden; eine so berechnete Chipkartenidentifizierung kann als "Chipkartenpseudonym" bezeichnet werden. Bevor die in der Prozedurbeschreibung der Aktivierungsprozedur eines zu betretenden Kontexts beschriebenen Aktionen durchgeführt werden, kann zudem das Ausführungsprogramm eine kryptografische Berechnung durchführen, welche als Prozedurbeschreibung in diesem Kontext spezifiziert ist und dazu bestimmt ist, bei Aktivierung durchgeführt zu werden, um zu bestimmen, ob der Kontext aktiviert werden kann. Die Berechnungen können die Verwendung der Chipkartentransaktionsidentifizierung, der Endgerätetransaktionsidentifizierung und der Endgeräteidentifizierung sowie weiterer in den Speichermitteln gespeicherter Werte beinhalten.
- Als Alternative zu diesen kryptografischen Protokollen, die anhand spezieller Daten in den Aktivierungsbefehlen unterstützt werden, können Befehle mit einer Bitfeldspezifizierung der referenzierten Datenelemente verwendet werden. Jedes Kommunikationsgrundelement kann dann aus zwei oder mehr numerischen Werten zusammengesetzt sein, wobei ein erster Wert dazu verwendet wird, auf eine Prozedurbeschreibung einer dem Kommunikationsgrundelement zugeordneten Aktion zu verweisen, wobei ein zweiter Wert aus einer festen Zahl binärer Werte zusammengesetzt ist, von denen jeder seitens des Ausführungsprogramms 12, 17 als Verweis auf ein einzelnes Datenelement interpretiert wird. Dieses Datenelement ist in der Liste externer Datenverweise in dem betreffenden Interaktionskontext 11, 19 spezifiziert, wobei jedes Datenelement in der Liste durch das Vorhandensein eines binären Werts einer der binären Zahlen an einer entsprechenden Position in der Liste der binären Werte spezifiziert ist. Dieser zweite Wert kann als "Operandenadresse" bezeichnet werden. Jedes der Datenelemente, die so spezifiziert sind, wird durch das ablaufende Ausführungsprogramm 12, 17 verfügbar gemacht, um bei der Antwortaktion in einer Weise verwendet zu werden, wie sie in der Prozedurbeschreibung dieser Aktion beschrieben sein kann. Als Alternative zu kryptografischen Protokollen und Befehlen mit einer Bitfeldspezifikation der referenzierten Datenelemente kann ein Befehlsformat mit einer Datenübereinstimmungsspezifikation der Datenelemente zur Anwendung kommen. In diesem Fall setzt sich jedes Kommunikationsgrundelement aus zwei oder mehr numerischen Werten zusammen, wobei ein erster Wert dazu verwendet wird, auf eine Prozedurbeschreibung einer dem Kommunikationsgrundelement zugeordneten Aktion zu verweisen, wobei ein zweiter Wert dazu verwendet wird zu bestimmen, welches der zur externen Verweisung in einem aktiven Interaktionskontext 12, 19 verfügbaren Datenelemente verwendet wird, während Antwortaktionen in solcher Weise durchgeführt werden, daß ein Datenelement ausgewählt wird, wenn es einen Wert enthält, der mit dem zweiten Wert übereinstimmt. Dieser zweite Wert kann als "Operandenkennzeichnungsspezifizierer" bezeichnet werden. Zusätzlich kann der Interaktionskontext 11, 19 eine Prozedurbeschreibung enthalten, die angibt, in welcher Weise ein als Teil eines Befehls gegebener Operandenkennzeichnungsspezifizierer mit Daten zu vergleichen ist, welche in einem der zur externen Verweisung in diesem Kontext verfügbaren Datenelemente enthalten sind, welche Prozedurbeschreibung durchgeführt wird, um die beabsichtigten Datenelemente auszuwählen, bevor die die eigentlichen Befehlsaktionen spezifizierende Prozedurbeschreibung durchgeführt wird.
- Als weitere Alternative kann ein Befehlsformat mit einer Bitfeldspezifikation der Befehlsinterpretation verwendet werden. Jedes Kommunikationsgrundelement kann dann aus zwei oder mehr numerischen Werten zusammengesetzt sein, wobei ein erster Wert dazu verwendet wird, auf eine Prozedurbeschreibung einer dem Kommunikationsgrundelement zugeordneten Aktion zu verweisen, wobei ein zweiter Wert sich aus einer Anzahl binärer Werte zusammensetzt, denen durch das Ausführungsprogramm 12, 17 eine bestimmte Bedeutung zugewiesen wird, um bei der Interpretation von Datenformaten in dem Kommunikationsgrundelement und bei der Durchführung von Antwortaktionen verwendet zu werden. Der zweite Wert kann hier als "Befehlsmodifizierer" bezeichnet werden. Die Werte werden von allen mit dieser zusätzlichen Technik ausgestatteten Einheiten im Hinblick auf ihre zugewiesene Bedeutung erkannt.
- Im Fall, daß die letztere Alternative angewendet wird, kann der Befehlsmodifizierer einen binären Wert umfassen, welcher bestimmt, ob ein dritter Teil des Befehls als Operandenadresse oder als Operandenkennzeichnungsspezifizierer zu verwenden ist. Der Befehlsmodifizierer kann jedoch als Alternative einen binären Wert umfassen, welcher bestimmt, ob die als Antwort auf den Befehl durchgeführte Operation Daten als ein Datenelement verwendet oder sich aus einer Verkettung von Datenelementen zusammensetzt, die einzeln in Verbindung mit jedem als Teil des Befehlswerts spezifizierten Datenelement unter Verwendung von Operandenadressen oder des Operandenkennzeichnungsspezifizierers zu verarbeiten sind. Alternativ kann der Befehlsmodifizierer einen binären Wert umfassen, welcher bestimmt, ob mit dem Befehl bereitgestellte Daten unter Verwendung der Kennzeichnungslängenwert-Methode codiert sind, um aufeinanderfolgende verkettete Datenelemente zu unterscheiden.
- Eine weitere Option ist, daß der Befehlsmodifizierer einen binären Wert umfassen kann, welcher bestimmt, ob die Durchführung der durch den Befehl vorgegebenen Aktion tatsächlich zu einer effektiven Änderung der in der Datenverarbeitungseinheit 5 (Chipkarte) gespeicherten Daten führt oder tatsächlich in von der Datenverarbeitungseinheit 5 berechneten Daten resultiert, oder daß das Befehlsergebnis Daten sind, welche den Zustand der Einheit im Hinblick auf die Akzeptierbarkeit des Befehls, der diesen begleitenden Daten, die Größe der Daten, die aus den Berechnungen resultieren können, oder andere diverse Attribute widerspiegeln.
- Zusammenfassend ist die oben eingeführte neue Technik bei Chipkartenimplementierungen das Konzept einer gesonderten Ausführungsumgebung. Bei diesem Ansatz werden die Verarbeitungsmittel und andere Resourcen in einem Computer zwischen verschiedenen Anwendungen geteilt, so als ob die Anwendung der einzige Nutzer des Computers wäre. Aufbauend auf dieser neuen Technik bei Chipkartenimplementierungen wird zusätzlich ein Mechanismus bereitgestellt, um mehrfache Zugriffsbedingungen für Daten zu definieren, die von einer Anzahl verwandter Anwendungen geteilt werden. Eine zweite, von den gesonderten Ausführungsumgebungen unterstützte und oben eingeführte Technik ist die Möglichkeit, die funktionale Bedeutung von Befehlen in jeder Umgebung so zu definieren, daß bei jeder Interaktion zwischen zwei entsprechenden Datenverarbeitungseinheiten 4, 5 in einem Datenaustauschsystem eine minimale Anzahl von Befehlen erhalten wird. Schließlich ist es mit der neuen Technik möglich, daß Bezeichnungen, die auf gespeicherte Datenelemente verweisen, in jedem Kontext gesondert zugewiesen werden. Die Verweisung auf gespeicherte Datenelemente als Teil eines von einer der Datenverarbeitungseinheiten 4, 5 erhaltenen Befehls kann so sehr effizient gemacht werden: Aufgrund der sehr kleinen Zahl von Datenelementen und der kleinen Zahl unterschiedlicher Operationen, die in der heutigen Chipkartenpraxis in jeder Umgebung gesondert verwendet werden, werden nur wenige Bits benötigt, um die Bezeichnung und den Instruktionsraum zu codieren. In ähnlicher Weise werden Zugriffsbedingungen, Methoden zu deren Verifizierung und zu diesem Zweck verfügbare kryptografische Operationen bei realen Chipkarten zahlenmäßig stark beschränkt sein und können sehr effizient in der Zweischicht-Hierarchie der in der Anwendungsbeschreibung 18 enthaltenen Interaktionskontextbeschreibungen 19(1)... ausgedrückt werden.
Claims (32)
1. Datenaustauschsystem mit mehreren Datenverarbeitungseinheiten (4, 5),
welche mehrere tragbare Datenverarbeitungseinheiten und mehrere unbewegliche
Datenverarbeitungseinheiten umfassen, wobei die tragbaren
Datenverarbeitungseinheiten dazu ausgelegt sind, eine temporäre Kommunikationsverbindung (6) mit
mindestens einer anderen Datenverarbeitungseinheit herzustellen, und die
unbeweglichen Datenverarbeitungseinheiten dazu ausgelegt sind, eine permanente
Kommunikationsverbindung (6) mit mindestens einer anderen
Datenverarbeitungseinheit herzustellen, wobei jede der Datenverarbeitungseinheiten (4, 5)
Datenkommunikationsmittel (7, 14), Verarbeitungsmittel (8, 15) sowie
Speichermittel (9, 16) umfaßt, wobei die letzteren ein Ausführungsprogramm (12, 17)
enthalten, wobei die Speichermittel (9, 16) der Gesamtheit der
Verarbeitungseinheiten ferner Beschreibungen der möglichen Kommunikationsmodi zwischen den
Datenverarbeitungseinheiten als Interaktionskontexte (11(1)... 11(m), 19(1)...
19(m)) gemäß der folgenden Datenstruktur enthalten:
a. ein Satz verschiedener Basis-Kommunikationsgrundelemente (A(1)...), die
verschiedene Werte sind und bei ihrem Empfang durch eine der
Datenverarbeitungseinheiten (4, 5) während Kommunikationen mit mindestens einer
anderen der Datenverarbeitungseinheiten (5, 4) als Befehle akzeptiert
werden;
b. ein Satz von Prozedurbeschreibungen (C(1)...), die Prozeduren definieren,
welche von einer der Datenverarbeitungseinheiten (4, 5) in Antwort auf
akzeptierte Kommunikationsgrundelemente (A(1)...) durchzuführen sind;
c. ein Satz von über die mehreren Verarbeitungseinheiten (4, 5) verteilten
Datenelementen (H(1)...), die entweder permanent gespeichert sind oder
berechnet werden und die zur Verwendung verfügbar sind, wenn die
Prozeduren, wie sie in den Prozedurbeschreibungen (C(1)...) definiert sind,
durchgeführt werden, wobei die Verwendung der Datenelemente und der
Zugriff auf sie kontrolliert werden;
d. ein erster Satz von Verweisen (r(1), r(2), r(3)) auf die Datenelemente
(H(1)...), wobei die Verweise des ersten Satzes (r(1), r(2), r(3)) den
Prozedurbeschreibungen (C(1)...) zugeordnet sind, derart, daß die
Datenelemente zur Verwendung verfügbar sind, wenn Prozeduren, wie sie in den
Prozedurbeschreibungen (C(1)...) definiert sind, durchgeführt werden;
e. ein möglicher zweiter Satz von Verweisen (r(4), r(5), r(6)) auf die
Datenelemente (H(1)...), wobei die Verweise des zweiten Satzes (r(4), r(5), r(6))
Prozedurbeschreibungen (C(4)...) möglicher weiterer Interaktionskontexte
zugeordnet sind, derart, daß die Datenelemente zur Verwendung verfügbar
sind, wenn Prozeduren, wie sie in Prozedurbeschreibungen (C(1)...) der
möglichen weiteren Interaktionskontexte definiert sind, durchgeführt
werden;
f. eine möglicherweise leere erste Datenliste (B(1)...), die möglicherweise
einen geordneten dritten Satz von Verweisen (u(1)...) auf die
Datenelemente (H(1)...) enthält, wobei der dritte Satz von Verweisen (u(1)...) als Ziel für
Verweise eines vierten Satzes von Verweisen (w(1)...) verfügbar ist, wobei
die Verweise des vierten Satzes (w(1)...) Teil der
Kommunikationsgrundelemente (A(1)...) sind, welche Datenelemente von den den
Kommunikationsgrundelementen (A(1)...) zugeordneten Prozedurbeschreibungen
(C(1)...) zu verwenden sind;
g. ein erster Satz von Zugriffsbedingungen, die den Datenelementen (H(1)...)
zugeordnet sind, weiche Bedingungen in Verbindung mit dem ersten Satz
(r(1), r(2), r(3)) und dem zweiten Satz (r(4), r(5), r(6)) von Verweisen auf die
Datenelemente berücksichtigt werden;
h. ein zweiter Satz von Zugriffsbedingungen, die dem dritten Satz von
Verweisen (u(1)...) in der ersten Datenliste (B(1)...) zugeordnet sind.
2. Datenverarbeitungseinheit eines Datenaustauschsystems nach Anspruch 1,
wobei das Datenaustauschsystem mehrere Datenverarbeitungseinheiten (4, 5)
umfaßt, von denen mindestens eine tragbar ist, wobei die
Datenverarbeitungseinheit (5) Datenkommunikationsmittel (14), Verarbeitungsmittel (15) sowie Speichermittel
(16) umfaßt, wobei die letzteren ein Ausführungsprogramm (17)
enthalten, wobei die Speichermittel (16) ferner Beschreibungen der möglichen
Kommunikationsmodi zwischen den Datenverarbeitungseinheiten als Interaktionskontexte
(19(1)... 19(m)) gemäß der folgenden Datenstruktur enthalten:
a. ein Satz verschiedener Basis-Kommunikationsgrundelemente (A(1)...), die
verschiedene Werte sind und bei ihrem Empfang durch die
Datenverarbeitungseinheit (5) während Kommunikationen mit mindestens einer anderen
der Datenverarbeitungseinheiten (4) als Befehle akzeptiert werden;
b. ein Satz von Prozedurbeschreibungen (C(1)...), die Prozeduren definieren,
weiche von der Datenverarbeitungseinheit (5) in Antwort auf akzeptierte
Kommunikationsgrundelemente (A(1)...) durchzuführen sind;
c. ein möglicherweise leerer Satz von Datenelementen (H(1)...), die entweder
permanent gespeichert sind oder berechnet werden und die zur
Verwendung verfügbar sind, wenn die Prozeduren, wie sie in den
Prozedurbeschreibungen (C(1)...) definiert sind, durchgeführt werden, wobei die
Verwendung der Datenelemente und der Zugriff auf sie kontrolliert werden;
d. ein möglicherweise leerer erster Satz von Verweisen (r(1), r(2), r(3)) auf die
Datenelemente (H(1)...), wobei die Verweise des ersten Satzes (r(1), r(2),
r(3)) den Prozedurbeschreibungen (C(1)...) zugeordnet sind, derart, daß die
Datenelemente zur Verwendung verfügbar sind, wenn Prozeduren, wie sie
in den Prozedurbeschreibungen (C(1)...) definiert sind, durchgeführt
werden;
e. ein möglicherweise leerer zweiter Satz von Verweisen (r(4), r(5), r(6)) auf
die Datenelemente (H(1)...), wobei die Verweise des zweiten Satzes (r(4),
r(5), r(6)) Prozedurbeschreibungen (C(4)...) möglicher weiterer
Interaktionskontexte zugeordnet sind, derart, daß die Datenelemente zur Verwendung
verfügbar sind, wenn Prozeduren, wie sie in Prozedurbeschreibungen
(C(1)...) der möglichen weiteren Interaktionskontexte definiert sind,
durchgeführt werden;
f. eine möglicherweise leere erste Datenliste (B(1)...)., die möglicherweise
einen geordneten dritten Satz von Verweisen (u(1)...) auf die
Datenelemente (H(1)...) enthält, wobei der dritte Satz von Verweisen (u(1)...) als Ziel für
Verweise eines vierten Satzes von Verweisen (w(1)...) verfügbar ist, wobei
die Verweise des vierten Satzes (w(1)...) Teil der
Kommunikationsgrundelemente (A(1)...) sind, welche Datenelemente von den den
Kommunikationsgrundelementen (A(1)...) zugeordneten Prozedurbeschreibungen
(C(1)...) zu verwenden sind,
g. ein erster Satz von Zugriffsbedingungen, die den Datenelementen (H(1)...)
zugeordnet sind, welche Bedingungen in Verbindung mit dem ersten Satz
(r(1), r(2), r(3)) und dem zweiten Satz (r(4), r(5), r(6)) von Verweisen auf die
Datenelemente berücksichtigt werden;
h. ein zweiter Satz von Zugriffsbedingungen, die dem dritten Satz von
Verweisen (u(1)...) in der ersten Datenliste (B(1)...) zugeordnet sind,
wobei die Datenverarbeitungseinheit mehr als einen Interaktionskontext enthält,
wobei mindestens eines der von der Datenverarbeitungseinheit akzeptierten
Kommunikationsgrundelemente dazu vorgesehen ist, selektiv einen der
Interaktionskontexte (19(1)...) zur weiteren Bezugnahme in der Datenverarbeitungseinheit
zu indizieren.
3. Datenaustauschsystem nach Anspruch 1 oder Anspruch 2, ferner dadurch
gekennzeichnet, daß der Satz der Prozedurbeschreibungen (C(1)...) zumindest
eine erste Prozedurbeschreibung umfaßt, die in Antwort auf das
Kommunikationsgrundelement oder die Kommunikationsgrundelemente durchzuführen ist, welches
bzw. weiche einen der Interaktionskontexte (19(1)...) zur weiteren Bezugnahme in
der das Kommunikationsgrundelement akzeptierenden Verarbeitungseinheit
indiziert bzw. indizieren, wobei diese Durchführung in einer ordnungsgemäßen
Aktivierung des angegebenen Interaktionskontexts resultiert.
4. Datenaustauschsystem nach einem der Ansprüche 1, 2 oder 3, ferner dadurch
gekennzeichnet, daß die Speichermittel ferner mindestens zwei
Interaktionskontexte (19(1)...) enthalten und daß der Satz der Prozedurbeschreibungen (C(1)...)
zumindest eine letzte Prozedurbeschreibung umfaßt, die in Antwort auf das
Kommunikationsgrundelement oder die Kommunikationsgrundelemente durchzuführen
ist, weiches bzw. weiche einen der Interaktionskontexte (19(1)...) zur weiteren
Bezugnahme in der das Kommunikationsgrundelement akzeptierenden
Verarbeitungseinheit indiziert bzw. indizieren, wobei diese Durchführung in einer ordnungsgemäßen
Deaktivierung des Interaktionskontexts resultiert, welcher indiziert
war, während das Kommunikationsgrundelement empfangen wurde.
5. Datenaustauschsystem nach einem der Ansprüche 1, 2, 3 oder 4, dadurch
gekennzeichnet, daß die Speichermittel (16) ferner mindestens zwei
Interaktionskontexte (19(1)... 19(m)), mindestens eine Anwendungsbeschreibung (18(1)...)
sowie ein Speicherelement (20) enthalten, welches einen Verweis auf den
Interaktionskontext speichert, der momentan in Kraft ist, wobei jede
Anwendungsbeschreibung umfaßt:
a. eine Datenliste mit Verweisen (E(1)...) auf Datenelemente, weiche
Verweise zwei oder mehr Interaktionskontexten (19(1)...) zugänglich sein können
und durch zusätzliche Datenelemente erweitert sein können;
b. einen weiteren Satz von Zugriffsbedingungen, die den Verweisen (E(1)...)
oder den zusätzlichen Datenelementen zugeordnet sind und
Nutzungsbeschränkungen definieren.
6. Datenaustauschsystem nach Anspruch 5, dadurch gekennzeichnet, daß jede
Anwendungsbeschreibung (18(1)...) außerdem eine Prozedurbibliothek umfaßt,
die Codes (F(1)...) enthält, welche von Prozedurbeschreibungen (C(1)...) jedes
Interaktionskontexts verwendet werden können, der jeder der
Anwendungsbeschreibungen (18(1)...) zugeordnet ist.
7. Datenaustauschsystem nach Anspruch 5 oder 6, dadurch gekennzeichnet, daß
die Speichermittel mindestens zwei Anwendungsbeschreibungen (18(1)...) und
ausführbare Codeeinheiten (G(1)...) enthalten, welche von
Prozedurbeschreibungen (C(1)...) jedes Interaktionskontexts (19(1)...) innerhalb jeder
Anwendungsbeschreibung (18(1)...) oder von jeder ausführbaren Codeeinheit (F(1)...) jeder
Prozedurbibliothek innerhalb jeder Anwendungsbeschreibung (18(1)...) verwendet
werden können.
8. Datenaustauschsystem nach einem der Ansprüche 6 oder 7, dadurch
gekennzeichnet, daß die ausführbaren Codeeinheiten in der Prozedurbibliothek durch
Einfügung einer Spezifikation der Verwendung ihrer Operationsparameter in Klassen
vergrößert sind, welche sich auf Attribute beziehen, die Datenelemente
betreffen, welche als aktueller Wert in einer Berechnung genommen werden können,
weiche Berechnung nur dann vorangeht, wenn die Datenattribute und die
Parameterklassen zueinander passen.
9. Datenaustauschsystem nach einem der Ansprüche 5 bis 8, dadurch
gekennzeichnet, daß das Ausführungsprogramm (17) einen Verweis auf einen
Standardinteraktionskontext enthält, welcher dazu verwendet wird, das Speicherelement
(20) zu initialisieren, das einen Verweis auf den momentan in Kraft befindlichen
Interaktionskontext speichert, um eine Endaktion nach einer Erfassung einer
internen Inkonsistenz bei einer Wiederkehr in einen normalen Operationszustand
durchzuführen oder wann immer das Ausführungsprogramm (17) aktiv ist und kein
expliziter Interaktionskontext durch ein von einer ähnlichen
Datenverarbeitungseinheit (4) erhaltenes Kommunikationsgrundelement spezifiziert worden ist.
10. Daten austauschsystem nach einem der vorhergehenden Ansprüche, dadurch
gekennzeichnet, daß das Ausführungsprogramm (17) Routinen umfaßt, welche
einen Interpretierer für codierte Anweisungen für einen abstrakten Prozessor
bilden, derart, daß die Mehrheit der Prozedurbeschreibungen (C(1)...) und einige
der ausführbaren Codeeinheiten (F(1)..., G(1)...) in numerischen Werten zur
Interpretation durch die Interpretiererroutinen codiert sind.
11. Datenaustauschsystem nach Anspruch 6 oder Anspruch 7, dadurch
gekennzeichnet, daß die Prozedurbeschreibungen (C(1)...) als Indizes in einer Liste über
eine Untergruppe von Prozeduren codiert sind, welche in der Prozedurenbibliothek
enthalten sind, die ausführbare Codeeinheiten enthält.
12. Datenaustauschsystem nach Anspruch 11, dadurch gekennzeichnet, daß die
Codierung der Prozedurbeschreibungen (C(1)...) in derart kleinen Werten erfolgt,
daß in einer Zugriffs-Grundeinheit für die Speichermittel (16) mehr als eine
Beschreibung gehalten werden kann oder daß die Beschreibung mit anderen
relevanten Informationen in der gleichen Speicherzugriffs-Grundeinheit kombiniert
werden kann.
13. Datenaustauschsystem nach Anspruch 12, dadurch gekennzeichnet, daß
mindestens einer der Codierungswerte der Prozedurbeschreibungen (C(1)...) auf
eine spezielle Funktion des Ausführungsprogramms (17) verweist, die dazu
ausgelegt ist, die für die codierte Prozedurbeschreibung auszuführende
tatsächliche Funktion indirekt auszuwählen, möglicherweise durch Einfügung
zusätzlicher Codierinformationen, die in Verbindung mit der mit den speziellen
Werten codierten Prozedurbeschreibung gespeichert sind.
14. Datenaustauschsystem nach einem der vorhergehenden Ansprüche, dadurch
gekennzeichnet, daß die Speichermittel (16) einen Interaktionskontext enthalten,
der dazu bestimmt ist, persönliche Identifizierungsnummern zu enthalten, und daß
das Ausführungsprogramm (17) dazu ausgelegt ist, von einem Benutzer des
Datenaustauschsystems gelieferte persönliche Identifizierungsnummern zu
verifizieren.
15. Datenaustauschsystem nach einem der vorhergehenden Ansprüche, dadurch
gekennzeichnet, daß die Speichermittel (16) mindestens einen Interaktionskontext
enthalten, der dazu bestimmt ist, Zahl und Inhalt anderer ebenfalls in den
Speichermitteln enthaltener Interaktionskontexte (19(1)...) zu verwalten.
16. Datenaustauschsystem nach einem der Ansprüche 5 bis 15, dadurch
gekennzeichnet, daß jede Anwendungsbeschreibung (18(1)...) eine Liste von
numerischen Werten enthält, die so aufgebaut ist, daß sie Identifizierer für alle
Interaktionskontexte (19(1)...) bereitstellt, und mindestens einen der folgenden
numerischen Werte enthält: einen ersten, der einen Anwendungstyp angibt, einen
zweiten numerischen Wert, der eine eigene Identifizierung des die Anwendung
bereitstellenden Organs angibt, einen dritten numerischen Wert, der die Art der
Anwendungsbeschreibung (18(1)...) angibt, und weitere Zahlen, die jeweils auf einen
eigenen, der Anwendungsbeschreibung zugeordneten Interaktionskontext
(19(1)...) verweisen.
17. Datenaustauschsystem nach einem der vorhergehenden Ansprüche,
umfassend mehrere Datenverarbeitungseinheiten (4, 5), von denen einige, die tragbar
sind, eine temporäre Kommunikationsverbindung (6) herstellen und von denen
andere, die nicht beweglich sind, eine permanente Kommunikationsverbindung (6)
haben können, wobei die Einheiten Datenkommunikationsmittel (7, 14),
Verarbeitungsmittel (8, 15) und Speichermittel (9, 16) umfassen, wobei die letzteren ein
Ausführungsprogramm (12, 17) enthalten, dadurch gekennzeichnet, daß die
Kommunikationsmittel (14) dazu ausgelegt sind, den Datenaustausch in
Datenblöcke zu strukturieren, welche wenigstens zwei Teile aufweisen, wobei ein erster
Teil Daten sind, die insofern als operationsrelevant qualifiziert sind, als sie dazu
verwendet werden, die Art der Operationen zu beeinflussen, die mittels eines
Befehls durchgeführt werden, wie er indiziert ist durch ein
Kommunikationsgrundelement oder Daten, welche aus ausgeführten Operationen resultieren, wobei ein
zweiter Teil insofern als sicherheitsrelevant qualifiziert ist, als er zur Bestimmung
der Eignung zur Durchführung einer Operation oder Akzeptierbarkeit von Daten in
dem Operationsteil verwendet wird, um bei der Operation verwendet zu werden
oder die Beendigung der Operation oder die Korrektheit der resultierenden Daten
nachzuweisen.
18. Datenaustauschsystem nach einem der Ansprüche 1 bis 17, dadurch
gekennzeichnet, daß das Ausführungsprogramm (17) dazu ausgelegt ist, bei
Akzeptierung eines Kommunikationsgrundelements zur Durchführung von in dem
momentanen Interaktionskontext (19(1)...) spezifizierten Operationen jede Operation als
Teil einer vorbestimmten und festen Sequenz von Aktionen durchzuführen, von
denen jede gesondert als Teil einer dem akzeptierten
Kommunikationsgrundelement zugeordneten Prozedurbeschreibung spezifiziert ist, weiche
Prozedurbeschreibung zumindest verschiedene Beschreibungen, die jeweils leer sein können,
für die folgenden Aktionen umfaßt:
a. Authorisierung der Verwendung des Kommunikationsgrundelements;
b. Entschlüsselung von Operationsdaten oder eines Teils derselben;
c. Durchführung eines Befehls mit Eingangsdaten;
d. Verschlüsselung von Operationsdaten, die aus einer durchgeführten
Operation resultieren;
e. Berechnung eines Nachweises der Beendigung einer durchgeführten
Aktion oder der Korrektheit der resultierenden Daten, um in Sicherheitsberechnungen
verwendet zu werden.
19. Datenaustauschsystem nach einem der vorhergehenden Ansprüche, dadurch
gekennzeichnet, daß die Datenverarbeitungseinheit (5) bei Initialisierung eines
Datentransfers eine Transaktionszufallszahl erzeugt, die als Basis für
kryptographische Berechnungen dient.
20. Datenaustauschsystem nach einem der vorhergehenden Ansprüche, dadurch
gekennzeichnet, daß einem Kommunikationsgrundelement ein bestimmter Wert
zugewiesen ist, der stets als Anforderung interpretiert wird, in einen neuen
Interaktionskontext(19(1)...) einzusteigen.
21. Datenaustauschsystem nach einem der vorhergehenden Ansprüche, dadurch
gekennzeichnet, daß es eine weitere, die gleichen Elemente wie die
Datenverarbeitungseinheit (4) aufweisende Datenverarbeitungseinheit (4) umfaßt,
welche optional in ihrem Speicher eine Anwendungsprogrammierschnittstelle (14)
enthalten kann, die aus einem Programmcode besteht, der dazu ausgelegt ist,
eine Implementierung zusätzlicher Computerprogramme zu erlauben, um
Benutzern eine Kontrolle über die Sequenz ausgetauschter
Kommunikationsgrundelemente zu geben oder um die in ihnen transferierten
Daten zu beeinflussen oder um die beim Austausch erhaltenen Daten zu lernen
oder weiterzuverarbeiten.
22. Datenaustauschsystem nach Anspruch 21, dadurch gekennzeichnet, daß das
zum Einstieg in einen spezifizierten Interaktionskontext (19(1)...) verwendete
Grundelement numerische Werte enthält, die bei Sicherheitsberechnungen in
nachfolgenden Kommunikationen zu verwenden sind, einen ersten, von einer der
Verarbeitungseinheiten zufallsmäßig oder auf ähnlich einzigartige Weise
erzeugten Wert sowie möglicherweise einen zweiten Wert, der zum Nachweis der
Authentizität der einen Verarbeitungseinheit oder zur anderweitigen Identifizierung
der einen Verarbeitungseinheit dient.
23. Datenaustauschsystem nach Anspruch 21, dadurch gekennzeichnet, daß
jedes Kommunikationsgrundelement mit Ausnahme eines ersten, das eine Rücksetzung
signalisiert, aus zwei oder mehr numerischen Werten aufgebaut ist, wobei
ein erster Wert dazu verwendet wird, auf eine Prozedurbeschreibung einer dem
Kommunikationsgrundelement zugeordneten Aktion zu verweisen, wobei ein
zweiter Wert aus einer festen Anzahl binärer Werte aufgebaut ist, von denen jeder
durch das Ausführungsprogramm (12; 17) als Verweis auf ein einzelnes
Datenelement interpretiert wird.
24. Datenaustauschsystem nach Anspruch 21, dadurch gekennzeichnet, daß
jedes. Kommunikationsgrundelement mit Ausnahme eines ersten, das eine
Rücksetzung signalisiert, aus zwei oder mehr numerischen Werten aufgebaut ist, wobei
ein erster Wert dazu verwendet wird, auf eine Prozedurbeschreibung einer dem
Kommunikationsgrundelement zugeordneten Aktion zu verweisen, wobei ein
zweiter Wert dazu verwendet wird zu bestimmen, weiches der zur externen
Verweisung in einem aktiven Interaktionskontext (19(1)...) verfügbaren
Datenelemente verwendet wird, während Antwortaktionen durchgeführt werden, in solcher
Weise, daß ein Datenelement ausgewählt wird, wenn es einen Wert enthält, der
zu dem zweiten Wert paßt, oder wenn es einen Wert enthält, der in anderer Weise
genügt, um es zu indizieren.
25. Datenaustauschsystem nach Anspruch 21, dadurch gekennzeichnet, daß
jedes Kommunikationsgrundelement mit Ausnahme eines ersten, das eine
Rücksetzung signalisiert, aus zwei oder mehr numerischen Werten aufgebaut ist, wobei
ein erster Wert dazu verwendet wird, auf eine Prozedurbeschreibung einer dem
Kommunikationsgrundelement zugeordneten Aktion zu verweisen, wobei ein
zweiter Wert aus einer Anzahl binärer Werte aufgebaut ist, denen durch das
Ausführungsprogramm (12, 17) spezielle Bedeutungen zugewiesen werden, um bei
der Interpretation von Datenformaten in dem Kommunikationsgrundelement und
bei der Durchführung von Antwortaktionen verwendet zu werden.
26. Datenaustauschsystem nach einem der vorhergehenden Ansprüche, dadurch
gekennzeichnet, daß tragbare Verarbeitungseinheiten in intelligenten Karten
implementiert sind.
27. Datenaustauschsystem nach einem der Ansprüche 1 bis 25, dadurch
gekennzeichnet, daß tragbare Verarbeitungseinheiten in PCMCIA-Karten implementiert
sind.
28. Datenaustauschsystem nach Anspruch 26 oder 27, dadurch gekennzeichnet,
daß die Kommunikationsmittel (14) externe Kommunikationsmittel zur Herstellung
einer Datenverbindung (6) verwenden, solche externen Kommunikationsmittel, wie
sie für die Datenverarbeitungseinheit (5) durch die Datenverarbeitungseinheit
verfügbar gemacht werden, oder eine ähnliche derartige elektronische
Vorrichtung, die die PCMCIA- oder die intelligente Karte aufnimmt, welche die
Datenverarbeitungseinheit (5) bildet.
29. Datenaustauschsystem nach einem der Ansprüche 1 bis 25, dadurch
gekennzeichnet, daß die Datenverarbeitungseinheit (4) als tragbarer Personalcomputer
implementiert ist.
30. Datenaustauschsystem nach Anspruch 28 oder 29, dadurch gekennzeichnet,
daß die Kommunikationsmittel (7) ein Lesegerät für intelligente Karten verwenden.
31. Datenaustauschsystem nach Anspruch 28 oder 29, dadurch gekennzeichnet,
daß die Kommunikationsmittel (7) einen PCMCIA-Kartenschlitz verwenden.
32. Datenaustauschsystem nach einem der Ansprüche 26 bis 31, dadurch
gekennzeichnet, daß die Kommunikationsmittel (7) vorrangig oder zusätzlich einen
berührungslosen Datentransfer mit Elektromagnetfeld-c.q.-Teilchen anwenden.
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
EP95202143A EP0757336B1 (de) | 1995-08-04 | 1995-08-04 | Datenaustauschlsysteme mit tragbaren Datenverarbeitungseinheiten |
Publications (2)
Publication Number | Publication Date |
---|---|
DE69519473D1 DE69519473D1 (de) | 2000-12-28 |
DE69519473T2 true DE69519473T2 (de) | 2001-05-10 |
Family
ID=8220554
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE69519473T Expired - Fee Related DE69519473T2 (de) | 1995-08-04 | 1995-08-04 | Datenaustauschlsysteme mit tragbaren Datenverarbeitungseinheiten |
Country Status (13)
Country | Link |
---|---|
US (2) | US6094656A (de) |
EP (1) | EP0757336B1 (de) |
JP (3) | JP3459649B2 (de) |
CN (3) | CN1154071C (de) |
AT (1) | ATE197743T1 (de) |
AU (1) | AU706393B2 (de) |
DE (1) | DE69519473T2 (de) |
DK (1) | DK0757336T3 (de) |
ES (1) | ES2153455T3 (de) |
GR (1) | GR3035224T3 (de) |
NZ (1) | NZ313777A (de) |
PT (1) | PT757336E (de) |
WO (1) | WO1997006516A1 (de) |
Families Citing this family (84)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6385645B1 (en) * | 1995-08-04 | 2002-05-07 | Belle Gate Investments B.V. | Data exchange system comprising portable data processing units |
ES2153455T3 (es) | 1995-08-04 | 2001-03-01 | Belle Gate Invest B V | Sistema de intercambio de datos que incluye unidades portatiles de procesamiento de datos. |
EP0874334A1 (de) * | 1997-04-21 | 1998-10-28 | Koninklijke KPN N.V. | Gesicherter Anwendungsmodul für mehrere Dienstleistungen und Endgerät mit solch einem gesicherten Anwendungsmodul |
FR2772957B1 (fr) * | 1997-12-19 | 2000-02-04 | Gemplus Card Int | Procede de gestion d'applications evolutives dans un systeme terminal / carte a puce |
JP3815022B2 (ja) * | 1998-02-09 | 2006-08-30 | 富士ゼロックス株式会社 | 利用資格検証装置および方法、ならびに、利用資格検証システム |
JPH11272825A (ja) | 1998-03-24 | 1999-10-08 | Toshiba Corp | アクセス管理方法及びその装置 |
AU755388B2 (en) * | 1998-04-01 | 2002-12-12 | Chip Application Technologies Limited | Data carrying device and systems for use therewith |
AUPP274098A0 (en) | 1998-04-01 | 1998-04-30 | Chip Application Technologies Limited | Data carrying device and systems for use therewith |
CN1322430A (zh) | 1998-09-29 | 2001-11-14 | 太阳微系统公司 | 在话音上的数据叠加 |
US7073129B1 (en) | 1998-12-18 | 2006-07-04 | Tangis Corporation | Automated selection of appropriate information based on a computer user's context |
TW463107B (en) * | 1998-12-22 | 2001-11-11 | Ibm | Extended card file system |
US6922835B1 (en) * | 1999-01-22 | 2005-07-26 | Sun Microsystems, Inc. | Techniques for permitting access across a context barrier on a small footprint device using run time environment privileges |
US7093122B1 (en) | 1999-01-22 | 2006-08-15 | Sun Microsystems, Inc. | Techniques for permitting access across a context barrier in a small footprint device using shared object interfaces |
US6633984B2 (en) * | 1999-01-22 | 2003-10-14 | Sun Microsystems, Inc. | Techniques for permitting access across a context barrier on a small footprint device using an entry point object |
US6823520B1 (en) | 1999-01-22 | 2004-11-23 | Sun Microsystems, Inc. | Techniques for implementing security on a small footprint device using a context barrier |
US6907608B1 (en) * | 1999-01-22 | 2005-06-14 | Sun Microsystems, Inc. | Techniques for permitting access across a context barrier in a small footprint device using global data structures |
BR9917358B1 (pt) | 1999-06-10 | 2012-07-24 | meio legÍvel por computador, sistema, e, mÉtodos para suportar armazenamento persistente de um conjunto de dados, e para atualizar um conjunto de dados. | |
AU1586500A (en) | 1999-12-06 | 2001-06-12 | Sun Microsystems, Inc. | Computer arrangement using non-refreshed dram |
CA2393645A1 (en) | 1999-12-07 | 2001-06-14 | Sun Microsystems, Inc. | Computer-readable medium with microprocessor to control reading and computer arranged to communicate with such a medium |
CA2393642A1 (en) | 1999-12-07 | 2001-06-14 | Eduard Karel De Jong | Secure photo carrying identification device, as well as means and method for authenticating such an identification device |
FR2809894B1 (fr) * | 2000-05-31 | 2002-10-25 | France Telecom | Procede de cryptographie, microcircuit pour carte a puce et cartes a puce incluant un tel microcircuit |
CA2416844A1 (en) | 2000-07-20 | 2002-01-31 | Belle Gate Investment B.V. | Method and system of communicating devices, and devices therefor, with protected data transfer |
EP1314297B1 (de) * | 2000-08-31 | 2005-05-04 | Sun Microsystems, Inc. | Verfahren ein Computersystem unter Benutzung eines manuell einführbaren Datenträgers zu betreiben und zugehöriges System |
FR2816429B1 (fr) * | 2000-11-06 | 2003-04-11 | Gemplus Card Int | Carte a puce avec descripteur d'application |
US6988109B2 (en) * | 2000-12-06 | 2006-01-17 | Io Informatics, Inc. | System, method, software architecture, and business model for an intelligent object based information technology platform |
US20100223295A1 (en) * | 2000-12-06 | 2010-09-02 | Io Informatics, Inc. | Applied Semantic Knowledgebases and Applications Thereof |
GB0106082D0 (en) | 2001-03-13 | 2001-05-02 | Mat & Separations Tech Int Ltd | Method and equipment for removing volatile compounds from air |
WO2002097746A1 (de) * | 2001-06-01 | 2002-12-05 | Anton Gunzinger | System und verfahren zur übertragung von information, informationsträger |
CN100347667C (zh) | 2001-06-27 | 2007-11-07 | 索尼公司 | 集成电路器件、信息处理设备、信息存储器件的存储管理方法、移动终端设备、半导体集成电路器件、以及使用移动终端设备的通信方法 |
US7275260B2 (en) * | 2001-10-29 | 2007-09-25 | Sun Microsystems, Inc. | Enhanced privacy protection in identification in a data communications network |
US7496751B2 (en) * | 2001-10-29 | 2009-02-24 | Sun Microsystems, Inc. | Privacy and identification in a data communications network |
US20030084171A1 (en) * | 2001-10-29 | 2003-05-01 | Sun Microsystems, Inc., A Delaware Corporation | User access control to distributed resources on a data communications network |
US20030084302A1 (en) * | 2001-10-29 | 2003-05-01 | Sun Microsystems, Inc., A Delaware Corporation | Portability and privacy with data communications network browsing |
US7085840B2 (en) * | 2001-10-29 | 2006-08-01 | Sun Microsystems, Inc. | Enhanced quality of identification in a data communications network |
US6912633B2 (en) * | 2002-03-18 | 2005-06-28 | Sun Microsystems, Inc. | Enhanced memory management for portable devices |
US6996802B2 (en) * | 2002-03-18 | 2006-02-07 | Sun Microsystems, Inc. | Method and apparatus for deployment of high integrity software using initialization order and calling order constraints |
US7010783B2 (en) * | 2002-03-18 | 2006-03-07 | Sun Microsystems, Inc. | Method and apparatus for deployment of high integrity software using reduced dynamic memory allocation |
US20030177366A1 (en) * | 2002-03-18 | 2003-09-18 | Sun Microsystem, Inc., A Delaware Corporation | Method and apparatus for dynamic personal identification number management |
US7181737B2 (en) * | 2002-03-18 | 2007-02-20 | Sun Microsystems, Inc. | Method and apparatus for deployment of high integrity software using static procedure return addresses |
US7596531B2 (en) * | 2002-06-05 | 2009-09-29 | Sun Microsystems, Inc. | Method and apparatus for protecting against side channel attacks against personal identification numbers |
US7162456B2 (en) * | 2002-06-05 | 2007-01-09 | Sun Microsystems, Inc. | Method for private personal identification number management |
US7167843B2 (en) * | 2002-06-05 | 2007-01-23 | Sun Microsystems, Inc. | Apparatus for private personal identification number management |
US8010405B1 (en) | 2002-07-26 | 2011-08-30 | Visa Usa Inc. | Multi-application smart card device software solution for smart cardholder reward selection and redemption |
US8626577B2 (en) | 2002-09-13 | 2014-01-07 | Visa U.S.A | Network centric loyalty system |
US7121456B2 (en) | 2002-09-13 | 2006-10-17 | Visa U.S.A. Inc. | Method and system for managing token image replacement |
US9852437B2 (en) | 2002-09-13 | 2017-12-26 | Visa U.S.A. Inc. | Opt-in/opt-out in loyalty system |
US8015060B2 (en) | 2002-09-13 | 2011-09-06 | Visa Usa, Inc. | Method and system for managing limited use coupon and coupon prioritization |
US6920611B1 (en) | 2002-11-25 | 2005-07-19 | Visa U.S.A., Inc. | Method and system for implementing a loyalty merchant component |
US20040143739A1 (en) * | 2003-01-16 | 2004-07-22 | Sun Mircosystems, Inc., A Delaware Corporation | Run time code integrity checks |
US8121955B2 (en) | 2003-01-16 | 2012-02-21 | Oracle America, Inc. | Signing program data payload sequence in program loading |
US7165246B2 (en) * | 2003-01-16 | 2007-01-16 | Sun Microsystems, Inc. | Optimized representation of data type information in program verification |
US7484095B2 (en) * | 2003-01-16 | 2009-01-27 | Sun Microsystems, Inc. | System for communicating program data between a first device and a second device |
US7281244B2 (en) * | 2003-01-16 | 2007-10-09 | Sun Microsystems, Inc. | Using a digital fingerprint to commit loaded data in a device |
US7222331B2 (en) * | 2003-01-16 | 2007-05-22 | Sun Microsystems, Inc. | Linking of virtual methods |
US7272830B2 (en) * | 2003-01-16 | 2007-09-18 | Sun Microsystems, Inc. | Ordering program data for loading on a device |
US20040199787A1 (en) * | 2003-04-02 | 2004-10-07 | Sun Microsystems, Inc., A Delaware Corporation | Card device resource access control |
US7827077B2 (en) | 2003-05-02 | 2010-11-02 | Visa U.S.A. Inc. | Method and apparatus for management of electronic receipts on portable devices |
US8554610B1 (en) | 2003-08-29 | 2013-10-08 | Visa U.S.A. Inc. | Method and system for providing reward status |
US7104446B2 (en) | 2003-09-03 | 2006-09-12 | Visa U.S.A., Inc. | Method, system and portable consumer device using wildcard values |
US7051923B2 (en) | 2003-09-12 | 2006-05-30 | Visa U.S.A., Inc. | Method and system for providing interactive cardholder rewards image replacement |
US8005763B2 (en) | 2003-09-30 | 2011-08-23 | Visa U.S.A. Inc. | Method and system for providing a distributed adaptive rules based dynamic pricing system |
US8407083B2 (en) | 2003-09-30 | 2013-03-26 | Visa U.S.A., Inc. | Method and system for managing reward reversal after posting |
US7653602B2 (en) | 2003-11-06 | 2010-01-26 | Visa U.S.A. Inc. | Centralized electronic commerce card transactions |
US7140549B2 (en) * | 2004-02-24 | 2006-11-28 | Sun Microsystems, Inc. | Method and apparatus for selecting a desired application on a smart card |
US7374099B2 (en) * | 2004-02-24 | 2008-05-20 | Sun Microsystems, Inc. | Method and apparatus for processing an application identifier from a smart card |
US7165727B2 (en) * | 2004-02-24 | 2007-01-23 | Sun Microsystems, Inc. | Method and apparatus for installing an application onto a smart card |
US7191288B2 (en) | 2004-02-24 | 2007-03-13 | Sun Microsystems, Inc. | Method and apparatus for providing an application on a smart card |
US20090055597A1 (en) * | 2004-06-09 | 2009-02-26 | Javier Canis Robles | Method and Device for Sharing Information Between Memory Parcels In Limited Resource Environments |
DE102004044454A1 (de) * | 2004-09-14 | 2006-03-30 | Giesecke & Devrient Gmbh | Tragbares Gerät zur Freischaltung eines Zugangs |
JP5150116B2 (ja) * | 2006-03-31 | 2013-02-20 | パナソニック株式会社 | Icカード及び読み書き装置 |
CN101449490A (zh) * | 2006-05-23 | 2009-06-03 | 索福帮Bb股份有限公司 | 便携式通信终端及通信服务器 |
US9137212B2 (en) * | 2006-12-04 | 2015-09-15 | Oracle America, Inc. | Communication method and apparatus using changing destination and return destination ID's |
US8725638B2 (en) * | 2007-05-18 | 2014-05-13 | Visa U.S.A. Inc. | Method and system for payment authorization and card presentation using pre-issued identities |
US20080309665A1 (en) * | 2007-06-13 | 2008-12-18 | 3D Systems, Inc., A California Corporation | Distributed rapid prototyping |
US7979685B1 (en) | 2007-11-27 | 2011-07-12 | Oracle America, Inc. | Multiple instruction execution mode resource-constrained device |
US8789753B1 (en) | 2008-03-28 | 2014-07-29 | Oracle International Corporation | Method for using and maintaining user data stored on a smart card |
US8225386B1 (en) | 2008-03-28 | 2012-07-17 | Oracle America, Inc. | Personalizing an anonymous multi-application smart card by an end-user |
US8152074B1 (en) | 2008-03-28 | 2012-04-10 | Oracle America, Inc. | Method for preparing by a smart card issuer an anonymous smart card and resulting structure |
US7992781B2 (en) | 2009-12-16 | 2011-08-09 | Visa International Service Association | Merchant alerts incorporating receipt data |
US8429048B2 (en) | 2009-12-28 | 2013-04-23 | Visa International Service Association | System and method for processing payment transaction receipts |
CN103716434B (zh) * | 2013-12-27 | 2017-04-19 | 北京大唐智能卡技术有限公司 | 一种数据交互方法和系统 |
CN106021199B (zh) * | 2016-05-13 | 2019-02-15 | 中国农业银行股份有限公司 | 一种面向业务数据的字符串报文处理方法和装置 |
WO2018089800A1 (en) | 2016-11-10 | 2018-05-17 | Ronald Scott Visscher | System with a unique and versatile evaluation method |
US10552212B2 (en) * | 2016-11-28 | 2020-02-04 | Arm Limited | Data processing |
Family Cites Families (100)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4425642A (en) | 1982-01-08 | 1984-01-10 | Applied Spectrum Technologies, Inc. | Simultaneous transmission of two information signals within a band-limited communications channel |
JPS61177585A (ja) * | 1985-02-04 | 1986-08-09 | Toshiba Corp | 携帯用電子装置密封体 |
CN85100700A (zh) | 1985-04-01 | 1987-01-31 | 陆伯祥 | 计算机莫尔条纹证件及其识别系统 |
US4874935A (en) | 1986-03-10 | 1989-10-17 | Data Card Coprporation | Smart card apparatus and method of programming same |
DE3780008T2 (de) | 1986-05-16 | 1992-12-24 | American Telephone & Telegraph | Anlage fuer einen tragbaren datentraeger mit mehreren anwendungsdatenbestaenden. |
US4816654A (en) * | 1986-05-16 | 1989-03-28 | American Telephone And Telegraph Company | Improved security system for a portable data carrier |
FR2600441B1 (fr) | 1986-06-18 | 1990-09-21 | France Etat | Unite de gestion de memoire |
JP2514954B2 (ja) | 1987-03-13 | 1996-07-10 | 三菱電機株式会社 | Icカ−ド |
GB2204973A (en) | 1987-05-19 | 1988-11-23 | Gen Electric Co Plc | Data processing system |
GB8720332D0 (en) | 1987-08-28 | 1987-10-07 | Mars Inc | Data carrying devices |
US4953160A (en) | 1988-02-24 | 1990-08-28 | Integrated Network Corporation | Digital data over voice communication |
JP3017736B2 (ja) * | 1988-03-09 | 2000-03-13 | 株式会社東芝 | 携帯可能電子装置 |
JPH01277993A (ja) | 1988-04-28 | 1989-11-08 | Toshiba Corp | 携帯可能電子装置 |
US5283885A (en) | 1988-09-09 | 1994-02-01 | Werner Hollerbauer | Storage module including a refresh device for storing start and stop refresh addresses |
JPH02156357A (ja) | 1988-12-08 | 1990-06-15 | Fujitsu Ltd | プログラム破壊防止方法 |
US5057997A (en) | 1989-02-13 | 1991-10-15 | International Business Machines Corp. | Interruption systems for externally changing a context of program execution of a programmed processor |
JPH0390977A (ja) | 1989-09-01 | 1991-04-16 | Toyo Ink Mfg Co Ltd | 情報識別方法 |
US5204663A (en) * | 1990-05-21 | 1993-04-20 | Applied Systems Institute, Inc. | Smart card access control system |
ES2047774T3 (es) | 1990-07-20 | 1994-03-01 | Siemens Nixdorf Inf Syst | Procedimiento para impedir desviaciones inadmisibles del protocolo de desarrollo de una aplicacion en un sistema de intercambio de datos. |
FR2667417B1 (fr) | 1990-10-02 | 1992-11-27 | Gemplus Card Int | Carte a microprocesseur concue pour recevoir des programmes multiples en memoire programmable. |
JP3007425B2 (ja) | 1991-02-14 | 2000-02-07 | 凸版印刷 株式会社 | Icカード |
US5148546A (en) | 1991-04-22 | 1992-09-15 | Blodgett Greg A | Method and system for minimizing power demands on portable computers and the like by refreshing selected dram cells |
US5204897A (en) | 1991-06-28 | 1993-04-20 | Digital Equipment Corporation | Management interface for license management system |
DE4126213C2 (de) * | 1991-08-08 | 2000-06-15 | Deutsche Telekom Ag | Chipkarte für mehrere Diensteanbieter |
FR2683357A1 (fr) | 1991-10-30 | 1993-05-07 | Philips Composants | Microcircuit pour carte a puce a memoire programmable protegee. |
US5721788A (en) | 1992-07-31 | 1998-02-24 | Corbis Corporation | Method and system for digital image signatures |
JPH06119393A (ja) * | 1992-08-20 | 1994-04-28 | Ricoh Co Ltd | 電子ファイル装置 |
ATE237854T1 (de) * | 1992-10-26 | 2003-05-15 | Intellect Australia Pty Ltd | Host-benutzer-transaktionssystem |
CN1112786C (zh) * | 1992-10-28 | 2003-06-25 | 李光实 | 具有远距离自动响应能力的电子识别系统及其自动识别方法 |
DE4242247C2 (de) | 1992-12-15 | 1998-05-14 | Orga Kartensysteme Gmbh | Ausweiskarte mit optischem Datenträger |
DE59407988D1 (de) | 1993-01-18 | 1999-04-29 | Eric Dr Dardel | Vorrichtung zum orten und punktieren von blutgefässen |
FR2703800B1 (fr) | 1993-04-06 | 1995-05-24 | Bull Cp8 | Procédé de signature d'un fichier informatique, et dispositif pour la mise en Óoeuvre. |
US5446901A (en) | 1993-06-30 | 1995-08-29 | Digital Equipment Corporation | Fault tolerant distributed garbage collection system and method for collecting network objects |
US5469559A (en) | 1993-07-06 | 1995-11-21 | Dell Usa, L.P. | Method and apparatus for refreshing a selected portion of a dynamic random access memory |
US5534372A (en) | 1993-07-28 | 1996-07-09 | Konica Corporation | IC card having image information |
US5649118A (en) * | 1993-08-27 | 1997-07-15 | Lucent Technologies Inc. | Smart card with multiple charge accounts and product item tables designating the account to debit |
US5544246A (en) * | 1993-09-17 | 1996-08-06 | At&T Corp. | Smartcard adapted for a plurality of service providers and for remote installation of same |
US6546112B1 (en) | 1993-11-18 | 2003-04-08 | Digimarc Corporation | Security document with steganographically-encoded authentication data |
US5832119C1 (en) | 1993-11-18 | 2002-03-05 | Digimarc Corp | Methods for controlling systems using control signals embedded in empirical data |
JP3594980B2 (ja) * | 1993-12-10 | 2004-12-02 | 株式会社東芝 | ファイル管理方式 |
US5481715A (en) | 1993-12-15 | 1996-01-02 | Sun Microsystems, Inc. | Method and apparatus for delegated communications in a computer system using trusted deputies |
ATE152539T1 (de) | 1994-02-08 | 1997-05-15 | Belle Gate Invest Bv | Datenauswechselsystem mit tragbaren datenverarbeitungseinheiten |
FR2717931B1 (fr) | 1994-03-23 | 1996-05-31 | Gemplus Card Int | Système de vérification d'identité. |
US5404377A (en) | 1994-04-08 | 1995-04-04 | Moses; Donald W. | Simultaneous transmission of data and audio signals by means of perceptual coding |
JPH07336460A (ja) | 1994-06-03 | 1995-12-22 | Hitachi Ltd | データ通信装置 |
US5568641A (en) | 1995-01-18 | 1996-10-22 | Hewlett-Packard Company | Powerfail durable flash EEPROM upgrade |
US5930363A (en) | 1995-03-17 | 1999-07-27 | Transmo Limited | Card charging systems |
US5594227A (en) | 1995-03-28 | 1997-01-14 | Microsoft Corporation | System and method for protecting unauthorized access to data contents |
WO1996031823A1 (en) | 1995-04-07 | 1996-10-10 | Sofmap Future Design Co., Ltd. | Data processing system and method, and computer program architecture |
CA2173695A1 (en) | 1995-04-14 | 1996-10-15 | Panagiotis Kougiouris | Method and system for providing interoperability among processes written to execute on different operating systems |
SG73580A1 (en) | 1995-05-12 | 2000-06-20 | Macrovision Corp | Video media security and tracking system |
ES2153455T3 (es) | 1995-08-04 | 2001-03-01 | Belle Gate Invest B V | Sistema de intercambio de datos que incluye unidades portatiles de procesamiento de datos. |
US6385645B1 (en) * | 1995-08-04 | 2002-05-07 | Belle Gate Investments B.V. | Data exchange system comprising portable data processing units |
US5768385A (en) | 1995-08-29 | 1998-06-16 | Microsoft Corporation | Untraceable electronic cash |
US5721781A (en) | 1995-09-13 | 1998-02-24 | Microsoft Corporation | Authentication system and method for smart card transactions |
DE19536169A1 (de) | 1995-09-29 | 1997-04-03 | Ibm | Multifunktionale Chipkarte |
DE19542910B4 (de) | 1995-11-17 | 2005-01-05 | Deutsche Telekom Ag | Verfahren und Vorrichtung zum Schutz gespeicherter Daten |
DE19600081C2 (de) | 1996-01-03 | 1999-11-18 | Ibm | Sicherung der Datenintegrität bei Datenträgerkarten |
FR2743910B1 (fr) | 1996-01-19 | 1998-02-27 | Solaic Sa | Procede de mise en oeuvre d'un programme securise dans une carte a microprocesseur et carte a microprocesseur comportant un programme securise |
US5742756A (en) | 1996-02-12 | 1998-04-21 | Microsoft Corporation | System and method of using smart cards to perform security-critical operations requiring user authorization |
DE19616819A1 (de) | 1996-04-26 | 1997-10-30 | Giesecke & Devrient Gmbh | CD mit eingebautem Chip |
EP0809245B1 (de) | 1996-05-02 | 2002-04-10 | Texas Instruments Incorporated | Verbesserungen in Bezug auf Sicherheitssysteme |
KR100186412B1 (ko) | 1996-05-07 | 1999-04-15 | 구자홍 | 메모리를 내장한 광 디스크 |
US5896393A (en) | 1996-05-23 | 1999-04-20 | Advanced Micro Devices, Inc. | Simplified file management scheme for flash memory |
US5781723A (en) | 1996-06-03 | 1998-07-14 | Microsoft Corporation | System and method for self-identifying a portable information device to a computing unit |
JP3241266B2 (ja) | 1996-06-03 | 2001-12-25 | 本田技研工業株式会社 | 3次元cadシステム |
US5889868A (en) | 1996-07-02 | 1999-03-30 | The Dice Company | Optimization methods for the insertion, protection, and detection of digital watermarks in digitized data |
CN1183449C (zh) | 1996-10-25 | 2005-01-05 | 施卢默格系统公司 | 用微控制器使用高级程序设计语言 |
US5915027A (en) | 1996-11-05 | 1999-06-22 | Nec Research Institute | Digital watermarking |
US5884316A (en) | 1996-11-19 | 1999-03-16 | Microsoft Corporation | Implicit session context system with object state cache |
EP0849734B1 (de) | 1996-12-20 | 2003-04-16 | Texas Instruments Incorporated | Verbesserungen in Bezug auf Sicherheitssysteme |
FR2757661B1 (fr) | 1996-12-24 | 1999-01-22 | Gemplus Card Int | Procede de transfert securise de donnees par un reseau de communication |
US5790489A (en) | 1997-01-21 | 1998-08-04 | Dell Usa, L.P. | Smart compact disk including a processor and a transmission element |
US6575372B1 (en) | 1997-02-21 | 2003-06-10 | Mondex International Limited | Secure multi-application IC card system having selective loading and deleting capability |
US5862117A (en) | 1997-03-12 | 1999-01-19 | Em Microelectronic-Marin Sa | Device, in particular a compact disc, comprising a data storage medium and an integrated circuit |
EP0864996A3 (de) | 1997-03-13 | 1999-09-15 | Hitachi, Ltd. | Tragbare elektronische Vorrichtung und Personenidentifizierungsverfahren |
US6220510B1 (en) | 1997-05-15 | 2001-04-24 | Mondex International Limited | Multi-application IC card with delegation feature |
US6005940A (en) | 1997-05-16 | 1999-12-21 | Software Security, Inc. | System for securely storing and reading encrypted data on a data medium using a transponder |
JP4246812B2 (ja) | 1997-06-12 | 2009-04-02 | パナソニック株式会社 | 半導体回路及びその制御方法 |
KR19990012099A (ko) | 1997-07-26 | 1999-02-25 | 윤종용 | 전자주민카드를 이용한 사용자 확인 방법 |
US6564995B1 (en) | 1997-09-19 | 2003-05-20 | Schlumberger Malco, Inc. | Smart card application-selection |
TW389900B (en) | 1997-10-09 | 2000-05-11 | Victor Company Of Japan | Optical disces, producing methods and production apparatus of the optical discs |
US6484946B2 (en) | 1997-12-22 | 2002-11-26 | Hitachi, Ltd. | IC card information display device and IC card for use therewith |
US6545981B1 (en) | 1998-01-07 | 2003-04-08 | Compaq Computer Corporation | System and method for implementing error detection and recovery in a system area network |
IL123028A (en) | 1998-01-22 | 2007-09-20 | Nds Ltd | Protection of data on media recording disks |
US6311186B1 (en) * | 1998-02-20 | 2001-10-30 | Priority Call Management, Inc. | Telecommunications switching system utilizing a channelized database access mechanism |
FR2776153B1 (fr) | 1998-03-10 | 2000-07-28 | Ordicam Rech Et Dev | Procede pour l'identification securitaire d'une personne et dispositif portatif pour la mise en oeuvre du procede |
US6241153B1 (en) | 1998-03-17 | 2001-06-05 | Cardxx, Inc. | Method for making tamper-preventing, contact-type, smart cards |
EP0944256A1 (de) | 1998-03-19 | 1999-09-22 | Hitachi Europe Limited | Kopierschutzvorrichtung und -verfahren |
US6212633B1 (en) | 1998-06-26 | 2001-04-03 | Vlsi Technology, Inc. | Secure data communication over a memory-mapped serial communications interface utilizing a distributed firewall |
US6374355B1 (en) | 1998-07-31 | 2002-04-16 | Lucent Technologies Inc. | Method for securing over-the-air communication in a wireless system |
JP2000094874A (ja) | 1998-09-22 | 2000-04-04 | Canon Inc | 電子部品内蔵カードとその製造方法 |
US6257486B1 (en) | 1998-11-23 | 2001-07-10 | Cardis Research & Development Ltd. | Smart card pin system, card, and reader |
US6480831B1 (en) | 1998-12-24 | 2002-11-12 | Pitney Bowes Inc. | Method and apparatus for securely transmitting keys from a postage metering apparatus to a remote data center |
US6480935B1 (en) | 1999-01-15 | 2002-11-12 | Todd Carper | Smart card memory management system and method |
US6349336B1 (en) | 1999-04-26 | 2002-02-19 | Hewlett-Packard Company | Agent/proxy connection control across a firewall |
US6535997B1 (en) | 1999-05-19 | 2003-03-18 | International Business Machines Corporation | Data integrity in smartcard transactions |
US6292874B1 (en) | 1999-10-19 | 2001-09-18 | Advanced Technology Materials, Inc. | Memory management method and apparatus for partitioning homogeneous memory and restricting access of installed applications to predetermined memory ranges |
JP2001126046A (ja) | 1999-10-29 | 2001-05-11 | Kyodo Printing Co Ltd | Icカード、icカード認証システム、及びその認証方法 |
US6572025B1 (en) | 2000-05-10 | 2003-06-03 | Japan Gain The Summit Co., Ltd. | Information code product, manufacturing device and method for manufacturing the same, information code reading device, authentication system, authentication terminal, authentication server, and authentication method |
-
1995
- 1995-08-04 ES ES95202143T patent/ES2153455T3/es not_active Expired - Lifetime
- 1995-08-04 AT AT95202143T patent/ATE197743T1/de not_active IP Right Cessation
- 1995-08-04 PT PT95202143T patent/PT757336E/pt unknown
- 1995-08-04 DK DK95202143T patent/DK0757336T3/da active
- 1995-08-04 EP EP95202143A patent/EP0757336B1/de not_active Expired - Lifetime
- 1995-08-04 DE DE69519473T patent/DE69519473T2/de not_active Expired - Fee Related
-
1996
- 1996-08-02 JP JP50833897A patent/JP3459649B2/ja not_active Expired - Lifetime
- 1996-08-02 AU AU66321/96A patent/AU706393B2/en not_active Ceased
- 1996-08-02 WO PCT/NL1996/000311 patent/WO1997006516A1/en active Application Filing
- 1996-08-02 CN CNB961967854A patent/CN1154071C/zh not_active Expired - Lifetime
- 1996-08-02 CN CNB2004100328703A patent/CN100383777C/zh not_active Expired - Lifetime
- 1996-08-02 US US09/011,513 patent/US6094656A/en not_active Ceased
- 1996-08-02 NZ NZ313777A patent/NZ313777A/en not_active IP Right Cessation
-
2001
- 2001-01-11 GR GR20010400040T patent/GR3035224T3/el not_active IP Right Cessation
-
2002
- 2002-05-13 JP JP2002137580A patent/JP2003067700A/ja active Pending
- 2002-06-10 US US10/164,597 patent/USRE39269E1/en not_active Expired - Lifetime
- 2002-12-09 CN CN02155732A patent/CN100590590C/zh not_active Expired - Lifetime
-
2007
- 2007-05-31 JP JP2007145235A patent/JP2007226839A/ja active Pending
Also Published As
Publication number | Publication date |
---|---|
ES2153455T3 (es) | 2001-03-01 |
GR3035224T3 (en) | 2001-04-30 |
PT757336E (pt) | 2001-04-30 |
EP0757336B1 (de) | 2000-11-22 |
EP0757336A1 (de) | 1997-02-05 |
DK0757336T3 (da) | 2001-03-19 |
JPH11505355A (ja) | 1999-05-18 |
USRE39269E1 (en) | 2006-09-05 |
WO1997006516A1 (en) | 1997-02-20 |
AU706393B2 (en) | 1999-06-17 |
ATE197743T1 (de) | 2000-12-15 |
AU6632196A (en) | 1997-03-05 |
CN1549198A (zh) | 2004-11-24 |
NZ313777A (en) | 1999-09-29 |
CN1445656A (zh) | 2003-10-01 |
JP2007226839A (ja) | 2007-09-06 |
CN100383777C (zh) | 2008-04-23 |
DE69519473D1 (de) | 2000-12-28 |
CN100590590C (zh) | 2010-02-17 |
JP3459649B2 (ja) | 2003-10-20 |
CN1195413A (zh) | 1998-10-07 |
US6094656A (en) | 2000-07-25 |
JP2003067700A (ja) | 2003-03-07 |
CN1154071C (zh) | 2004-06-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE69519473T2 (de) | Datenaustauschlsysteme mit tragbaren Datenverarbeitungseinheiten | |
DE69402955T2 (de) | Datenauswechselsystem mit tragbaren Datenverarbeitungseinheiten | |
DE602004009039T2 (de) | Halbleiterspeicherkarte und programm zu ihrer steuerung | |
DE69332889T2 (de) | Host-benutzer-transaktionssystem | |
DE69823649T2 (de) | Multi-anwendungs ic-kartensystem | |
DE69813208T2 (de) | Chipkarte mit datenumsetzer | |
DE69807210T2 (de) | Gesichertes mehrzweckkartensystem und -verfahren | |
DE60006217T3 (de) | Techniken zum gewähren des zugriffs durch eine kontextsperre in einem gerät mit kleinem platzbedarf unter verwendung von einem eingangspunktobjekt | |
DE69714752T2 (de) | Verwendung einer hohen programmiersprache in einem mikrokontroller | |
DE69814406T2 (de) | Tragbare elektronische vorrichtung für systeme zur gesicherten kommunikation und verfahren zur initialisierung der parameter | |
DE69127560T2 (de) | Gegenseitiges Erkennungssystem | |
DE69529103T2 (de) | Verfahren zum Handhaben der Sicherheit einer Speicherkarte, und Speicherkarte und geeignete Transaktionsvorrichtung | |
DE69826318T2 (de) | Kartenaktivierung an der verteilungsstelle | |
DE3780002T3 (de) | System für einen tragbaren datenträger. | |
DE19839847A1 (de) | Speichern von Datenobjekten im Speicher einer Chipkarte | |
DE3586912T2 (de) | Datenverarbeitungsanlage mit geschuetzten systemdateien. | |
EP1088270B1 (de) | Verfahren zur prüfung von java-bytecode-programmen auf sicherheitseigenschaften | |
US7185110B2 (en) | Data exchange system comprising portable data processing units | |
DE69327181T2 (de) | Massenspeicherkarte für einen Mikrocomputer | |
DE69326264T2 (de) | Massenspeicherkarte für einen Mikrocomputer mit der Möglichkeit, interne Programme auszuführen | |
DE60010433T2 (de) | Verfahren zur durchführung von sicherheitvorgaben in einem kleingerät unter verwendung von einer kontextsperre | |
DE19536548A1 (de) | Vorrichtung und Verfahren zur vereinfachten Erzeugung von Werkzeugen zur Initialisierung und Personalisierung von und zur Kommunikation mit einer Chipkarte | |
EP1196902B1 (de) | Verfahren zum betreiben eines zur ausführung von nachladbaren funktionsprogrammen ausgebildeten datenträgers | |
DE10048939B4 (de) | Bedingte Unterdrückung der Überprüfung eines Karteninhabers | |
DE69801679T2 (de) | Gesichertes speicherverwaltungsverfahren |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
8364 | No opposition during term of opposition | ||
8339 | Ceased/non-payment of the annual fee |