DE69402955T2 - Datenauswechselsystem mit tragbaren Datenverarbeitungseinheiten - Google Patents
Datenauswechselsystem mit tragbaren DatenverarbeitungseinheitenInfo
- Publication number
- DE69402955T2 DE69402955T2 DE69402955T DE69402955T DE69402955T2 DE 69402955 T2 DE69402955 T2 DE 69402955T2 DE 69402955 T DE69402955 T DE 69402955T DE 69402955 T DE69402955 T DE 69402955T DE 69402955 T2 DE69402955 T2 DE 69402955T2
- Authority
- DE
- Germany
- Prior art keywords
- data
- application
- procedure
- exchange system
- interaction
- 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 - Lifetime
Links
- 238000012545 processing Methods 0.000 title claims abstract description 83
- 230000003993 interaction Effects 0.000 claims abstract description 119
- 238000000034 method Methods 0.000 claims abstract description 119
- 238000004891 communication Methods 0.000 claims abstract description 88
- 230000009471 action Effects 0.000 claims description 45
- 238000004364 calculation method Methods 0.000 claims description 24
- 230000004044 response Effects 0.000 claims description 22
- 230000004913 activation Effects 0.000 claims description 16
- 230000009849 deactivation Effects 0.000 claims description 6
- 230000008569 process Effects 0.000 claims description 6
- 230000001427 coherent effect Effects 0.000 claims description 3
- 238000001514 detection method Methods 0.000 claims description 3
- 238000013475 authorization Methods 0.000 claims description 2
- 238000004590 computer program Methods 0.000 claims description 2
- 238000012546 transfer Methods 0.000 claims description 2
- 230000006870 function Effects 0.000 description 11
- 238000012795 verification Methods 0.000 description 8
- 230000018109 developmental process Effects 0.000 description 7
- 238000011161 development Methods 0.000 description 6
- 230000007246 mechanism Effects 0.000 description 5
- 239000003607 modifier Substances 0.000 description 5
- 238000013459 approach Methods 0.000 description 4
- 238000013461 design Methods 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 4
- 238000000926 separation method Methods 0.000 description 4
- 230000008901 benefit Effects 0.000 description 3
- 230000008859 change Effects 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000008520 organization Effects 0.000 description 2
- 101100222017 Candida albicans (strain SC5314 / ATCC MYA-2876) CSA2 gene Proteins 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 101150042828 csa1 gene Proteins 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000000977 initiatory effect Effects 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 229910052710 silicon Inorganic materials 0.000 description 1
- 239000010703 silicon Substances 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
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
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/10—Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
- G06F21/12—Protecting executable software
- G06F21/121—Restricting unauthorised execution of programs
- G06F21/123—Restricting unauthorised execution of programs by using dedicated hardware, e.g. dongles, smart cards, cryptographic processors, global positioning systems [GPS] devices
-
- 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/356—Aspects of software for card payments
- G06Q20/3563—Software being resident on card
-
- 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/3574—Multiple applications on card
-
- 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
- G06Q20/35765—Access rights to memory zones
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2211/00—Indexing scheme relating to details of data-processing equipment not covered by groups G06F3/00 - G06F13/00
- G06F2211/007—Encryption, En-/decode, En-/decipher, En-/decypher, Scramble, (De-)compress
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/99931—Database or file accessing
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/99931—Database or file accessing
- Y10S707/99939—Privileged access
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/99941—Database schema or data structure
- Y10S707/99942—Manipulating data structure, e.g. compression, compaction, compilation
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/99941—Database schema or data structure
- Y10S707/99943—Generating database or data structure, e.g. via user interface
Landscapes
- Engineering & Computer Science (AREA)
- Business, Economics & Management (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Computer Networks & Wireless Communication (AREA)
- Accounting & Taxation (AREA)
- Strategic Management (AREA)
- General Business, Economics & Management (AREA)
- Software Systems (AREA)
- Computer Hardware Design (AREA)
- Computer Security & Cryptography (AREA)
- Remote Sensing (AREA)
- Radar, Positioning & Navigation (AREA)
- Multimedia (AREA)
- Technology Law (AREA)
- General Engineering & Computer Science (AREA)
- Storage Device Security (AREA)
- Telephonic Communication Services (AREA)
- Mobile Radio Communication Systems (AREA)
- Computer And Data Communications (AREA)
- Exchange Systems With Centralized Control (AREA)
- Stored Programmes (AREA)
Description
- Die Erfindung betrifft ein Datenaustauschsystem mit wenigstens einer tragbaren Datenverarbeitungseinheit, welche eine Datenkommunikationseinrichtung, eine Verarbeitungseinrichtung und eine Speichereinrichtung umfaßt, wobei die letztere ein Ausführungsprogramm umfaßt.
- Die europäische Patentanmeldung EP-A1-0 466 969 offenbart ein Datenaustauschsystem mit einer mehrfache Anwendungen unterstützenden IC-Karte und einem Endgerät Die IC-Karte umfaßt ein ROM zur Speicherung von Basisfunktionen, z.B. Verschlüsselungsalgorithmen, einem anwendungsunabhängigen gemeinsamen Datenfeld ("Gemeinschaftsdatenfeld") und einem Feld von Anwendungsdaten ("Anwendungsdatenfeld") mit einer Steuerliste ("Steuerliste"). Jedes Protokoll bildet eine Kombination eines Satzes von Basisfunktionen und möglichen Zwischenzuständen, und zwar bestimmt durch die Steuerliste der gewählten Anwendung.
- Die internationale Patentanmeldung WO-A-87/07063 offenbart ein System für einen tragbaren Datenträger mit mehreren Anwendungsdateien. Eine der wichtigsten Anwendungen eines solchen tragbaren Datenträgers ist eine für Mehrfachanwendungen geeignete Chipkarte. 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 Ausführung 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 unterschiedliche Operationen verschieden und werden in Abhängigkeit einer Paßwortverifikation erteilt. Es wird ein Paßwortverifikationsversuchszä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 nur sehr einfache Funktionen durchgeführt werden, wie etwa eine binäre logische Operation. Es ist nicht möglich, auf Anforderung eines mit dem Datenträger kommunizierenden Endgeräts hin die Durchführung eines unspezifizierten Satzes von Operationen zu erlauben. Die einzige Sicherheitsoption ist die Einführung der Paßwortverifikation. Andere Zugriffsbedingungsverifikationen sind innerhalb des bekannten Systems nicht möglich. Daneben besitzt jede Anwendung des Datenträgers ihre eigene Datei in der Speichereinrichtung des Datenträgers. Es sind keine speziellen Maßnahmen getroffen, um die Nutzung des verfügbaren Speicherraums zu verbessern, der insbesondere bei Chipkarten sehr eingeschränkt ist und daher der Zahl möglicher Anwendungen Grenzen setzt.
- Die EP-A-0 479 655 betrifft die Ausbildung von Zugriffsbedingungsprüfungen bei Chipkarten. Hierfür ist eine Spezifizierungstechnik offenbart; es ist jedoch wünschenswert, Maßnahmen vorzusehen, um die Möglichkeit weiterer Verifikationen von Zugriffsbedingungen einzuschließen.
- Die EP-A-0 361 491 betrifft ein Chipkartenprogrammierungssystem, um die geschützte (Um)Programmierung von Karten zu ermöglichen. Sie beschreibt die Verwendung von Einmal- Schreib-Zugriffsbedingungen zur Steuerung des Zugriffs auf zu programmierende Teile des programmierbaren Speichers. Die Zahl der Anwendungen auf einer einzelnen Karte kann auf diese Weise erweitert werden. Es wird die Verifikation der Zugriffsbedingungen mit einer Vielzahl von Techniken einschließlich kryptographischer Protokolle beschrieben.
- Die EP-A-0 292 248 betrifft das Laden von Anwendungen auf eine Chipkarte unter Verwendung eines unveränderbaren Betriebssystemprogramms. Sie beinhaltet die Ausbildung eines Verfahrens zur Verbesserung der Bedingungen für den Datenzugriff, das Speicherzonen mit zugeordneten Zugriffsattributen verwendet. Spezielle Zugriffsbedingungen sind "Einmal- Schreiben" (was nur implizit beschrieben ist) und "Nur-Ausführen".
- Die US-A-4 874 935 betrifft die Kartenprogrammierung unter Verwendung eines Datenwörterbuchs, wobei das Datenwörterbuch die Anordnung von in dem Kartenspeicher gespeicherten Datenelementen beschreibt. Man versteht Datenwörterbücher gemeinhin so, daß sie sich insoweit von Verzeichnissen unterscheiden, als sie nicht nur Daten beschreiben, die tatsächlich gespeichert sind, sondern auch Daten, die später gespeichert werden. Außerdem beinhalten Datenwörterbücher üblicherweise eine Beschreibung des Datenformats. In kompiliertem Format werden Datenwörterbücher 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 Chipkarten geeignete Darstellung von Datenwörterbüchern.
- Das Hauptziel der vorliegenden Erfindung ist, Mittel bereitzustellen, um optimal mit den Beschränkungen umzugehen, die durch begrenzte physikalische Dimensionen des verfügbaren Speicherraums auf tragbaren Datenverarbeitungseinheiten, insbesondere auf Chipkarten, auferlegt werden.
- Ein weiteres Ziel der vorliegenden Erfindung ist, einen allgemeineren Mechanismus zum geschützten Laden von Programmcodes anzubieten und ein derartiges Laden für vielfache Programme zu erlauben, nämlich jeweils für eine Anwendung jeder tragbaren Datenverarbeitungseinheit.
- Darüber hinaus ist die vorliegende Erfindung auf die Maßnahme gerichtet, Zugriffsbedingungsverifikationen zu verwenden, die nicht durch den Hersteller der tragbaren Verarbeitungseinheit vorgeschrieben sind, sondern seitens des Anwendungsentwicklers so gewählt werden, daß sie seinen speziellen Anforderungen gerecht werden.
- Das erfindungsgemäße System ist daher dadurch gekennzeichnet, daß die Speichereinrichtung ferner wenigstens einen Interaktionskontext umfaßt, welcher die folgende kohärente Datenstruktur beinhaltet:
- a. einen Satz von Basis-Kommunikationsgrundelementen, die immer dann akzeptiert werden, wenn die Datenverarbeitungseinheit mit einer entsprechenden Einheit kommuniziert, wobei die Grundelemente zumindest ein Grundelement umfassen, das dazu verwendet wird, selektiv in einen der Interaktionskontexte einzusteigen;
- b. einen Satz von Prozedurbeschreibungen, die die in Antwort auf jedes der akzeptierten Kommunikationsgrundelemente durchzuführenden Aktionen definieren und zumindest eine erste Prozedurbeschreibung umfassen, die bei Aktivierung des Interaktionskontextes durchzuführen ist, sowie eine letzte Prozedurbeschreibung, die unmittelbar vor Deaktivierung des Kontextes durchzuführen ist;
- c. einen möglicherweise leeren Satz von entweder permanent gespeicherten oder berechneten Datenelementen, die zur Verwendung verfügbar sind, wenn Prozeduren, wie sie in den Prozedurbeschreibungen definiert sind, durchgeführt werden;
- d. einen möglicherweise leeren Satz von Verweisen auf Datenelemente, welche Verweise den Prozedurbeschreibungen 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 definiert sind, durchgeführt werden;
- e. eine möglicherweise leere Datenliste mit einer Liste von Verweisen 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 in der Datenliste zugeordnet sind.
- Indem die Daten in der Speichereinrichtung der tragbaren Verarbeitungseinheit in dieser Weise definiert werden, ist die Verarbeitungseinheit in der Tat als Prozessor organisiert, d.h. sie erlaubt nicht nur logische Operationen, sondern führt auch Prozesse durch, die in die Verarbeitungseinheit durch hierzu authorisierte Personen geladen werden können, z.B. einen Angestellten einer Bank. Dadurch, daß Prozeduren bereitgestellt werden, die beliebige komplexe Operationen in Antwort auf erhaltene Befehle vorsehen können, und eine explizite Liste von gespeicherten Datenelementen bereitgestellt wird, welche als Teil solcher Befehle adressierbar sind, kann die Kommunikationsbandbreite optimal genutzt werden, was in einer reduzierten Anzahl ausgetauschter Befehle resultiert. Bei einem erfindungsgemäßen System werden viele tatsächliche Verwendungen des Systems immerhin den Austausch von zwei Befehlen erfordern. Was einzig und allein festgelegt ist, ist die Struktur innerhalb der Speichereinrichtung, die in solcher Weise definiert ist, daß verschiedene Anwendungen der Einheit in sehr effizienter Weise hinzugefügt werden konnen, d.h. unter Verwendung so wenig zusätzlichen Speicherraums wie möglich. Dies ist insbesondere von vorrangiger Bedeutung, wenn die Einheit eine Chipkarte ist, die streng begrenzt ist, was den verfügbaren Speicherraum anbelangt. Daneben bietet die erfindungsgemäße Struktur alle Möglichkeiten, Sicherheitsmaßnahmen einzuschließen, um den Zugriff auf Prozesse oder Daten durch unauthorisierte Personen, die zu deren Nutzung nicht befugt sind, zu unterbinden.
- Bei einer ersten bevorzugten Ausführungsform ist das oben definierte Datenaustauschsystem dadurch gekennzeichnet, daß die Speichereinrichtung ferner mindestens zwei Interaktionskontexte, mindestens eine Anwendungsbeschreibung sowie ein Speicherelement umfaßt, das 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 sind 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 festlegen.
- 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. Außerdem sind gemeinsame Zugriffsbedingungen für die Datenverweise vorbestimmten Interaktionskontexten 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 ausführbaren Codeeinheiten umfassen, welche durch Prozedurbeschreibungen jedes Interaktionskontextes verwendet werden können, der jeder der Anwendungsbeschreibungen zugeordnet ist.
- Vorzugsweise ist die Verarbeitungseinheit für mindestens zwei Anwendungen geeignet unter Verwendung geringfügigen zusätzlichen Speicherplatzes. Um dieses Ziel zu erreichen, ist das erfindungsgemäße Datenaustauschsystem dadurch gekennzeichnet, daß die Speichereinrichtung mindestens zwei Anwendungsbeschreibungen und ausführbare Codeeinheiten umfaßt, welche durch Prozedurbeschreibungen jedes Interaktionskontextes innerhalb jeder Anwendungsbeschreibung oder durch jede ausführbare Codeeinheit jeder Prozedurbibliothek innerhalb jeder Anwendungsbeschreibung verwendet werden können.
- Vorzugsweise sind die ausführbaren Codeeinheiten in der Prozedurbibliothek dadurch erweitert, daß eine Spezifikation der Verwendung ihrer Operationsparameter in Klassen eingefügt ist, welche sich auf Attribute beziehen, die Datenelemente betreffen, welche als tatsächlicher Wert in einer Berechnung genommen werden können, welche Berechnung nur dann fortschreitet, 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 umfaßt, 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 Wiederaufnahme eines normalen Operationszustands durchzuführen oder wann immer das Ausführungsprogramm aktiv ist und kein expliziter Interaktionskontext durch ein von einer gegenüberliegenden Datenverarbeitungseinheit erhaltenes Kommunikationsgrundelement spezifiziert worden ist.
- Um die Sicherheit der Daten und Funktionen in der Verarbeitungseinheit zu verbessern, kann das erfindungsgemäße Datenaustauschsystem dadurch gekennzeichnet sein, daß die Speichereinrichtung einen Interaktionskontext umfaßt, 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 Identifizierungsnummer 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 Chipkarten-Terminal zu modifizieren, das eine geeignete Benutzerschnittstelle bereitstellt.
- Jede Anwendungsbeschreibung kann eine Liste von numerischen Werten umfassen, die so aufgebaut ist, daß sie Bezeichner für alle Interaktionskontexte bereitstellt, und zumindest einen ersten numerischen Wert umfaßt, welcher einen Anwendungstyp angibt, einen zweiten numerischen Wert, welcher eine ausschließliche Bezeichnung des Bereitstellers der Anwendung angibt, einen dritten numerischen Wert, welcher die Art der Anwendungsbeschreibung angibt, und weitere Zahlen, die sich jeweils ausschließlich auf einen der Anwendungsbeschreibung zugeordneten Interaktionskontext beziehen.
- Die Reihe numerischer Werte, die sich ausschließlich auf einen Interaktionskontext beziehen, sieht ein Mittel vor, die Funktionsfähigkeit zwischen zwei Kommunikationseinrichtungen untereinander sicherzustellen, das effizienter ist, als man sich gegenwartig etwa für Chipkarten vorstellt, wobei dem Anwendungsbereitsteller die Verantwortung übertragen wird, jedem Interaktionskontext eigene Werte zuzuweisen, während es betroffenen Gruppen sektoraler bzw. internationaler Zusammenarbeit überlassen bleibt, Personen und Anwendung eigene Nummern zuzuordnen. Vorteilhafterweise kann der Anwendungsbereitsteller diese ausschließlichen Kontextnummern zuweisen, um Informationen über die Version der Ausführung und die Geheimschlüsselerzeugung einzubauen.
- Die Datenkommunikationseinrichtung kann so ausgeführt sein, daß sie den Datenaustausch in Datenblöcke strukturiert, welche wenigstens zwei Teile umfassen, wobei ein erster Teil Daten sind, die insofern als operationsrelevant qualifiziert sind, als sie dazu verwendet werden, die Art der Operationen zu beeinflussen, die durch einen Befehl durchgeführt werden, wie er durch ein Kommunikationsgrundelement angegeben ist, oder die Art von Daten zu beeinflussen, welche aus durchgeführten Operationen resultieren, wobei ein zweiter Teil insofern als sicherheitsrelevant qualifiziert ist, als er dazu verwendet wird, die Eignung zur Durchführung einer Operation oder der Akzeptierbarkeit von Daten in dem operationsrelevanten Teil zu bestimmen, um in der Operation verwendet zu werden, oder die Beendigung der Operation oder die Korrektheit der resultierenden Daten nachzuweisen.
- Solche Eignung, Akzeptierbarkeit, Nachweis und Korrektheit werden erhalten, indem relevante kryptographische Operationen an den Daten durchgeführt werden. 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, etwa 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 Folge von Aktionen durchführt, die jeweils gesondert als Teil einer dem akzeptierten Kommunikationsgrundelement zugeordneten Prozedurbeschreibung spezifiziert sind, welche Aktionen zumindest die folgenden Aktionen umfassen:
- a. Authorisierung der Verwendung des Kommunikationsgrundelements;
- b. Entschlüsselung der Operationsdaten oder eines Teils derselben;
- c. Durchführen 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 zufällige Transaktionsnummer erzeugt, die als Basis für kryptographische Berechnungen dient.
- Um für die Möglichkeit zu sorgen, erforderlichenfalls in einen neuen Interaktionskontext einzusteigen, kann einem Kommunikationsgrundelement ein spezifizierter 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ß eine weitere Datenverarbeitungseinheit mit den gleichen Elementen wie die Datenverarbeitungseinheit sowie eine Anwendungsprogrammiererschnittstelle umfaßt, welche aus einem Programmcode besteht, der so ausgeführt ist, daß er die Implementierung zusätzlicher Computerprogramme erlaubt, um Benutzern die Kontrolle über die Abfolge ausgetauschter Kommunikationsgrundelemente zu geben oder um die darin transferierten Daten zu beeinflussen oder die beim Austausch erhaltenen Daten zu lernen oder weiterzuverarbeiten. Die Entwicklung von Software für erfindungsgemäße Systeme wird sich die Verfügbarkeit einer Anwendungsprogrammiererschnittstelle zunutze machen.
- Bei einer solchen bevorzugten Ausführungsform der Erfindung kann das zum Einstieg in einen spezifizierten Interaktionskontext verwendete Grundelement numerische Werte umfassen, die bei Sicherheitsberechnungen in nachfolgenden Kommunikationen zu verwenden sind, einen ersten, durch eine der Verarbeitungseinheiten zufällig erzeugten Wert sowie einen zweiten, der Identifizierung dieser einen Verarbeitungseinheit dienenden Wert.
- Um die vorliegende Erfindung weiter zu nutzen, 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 erhöht.
- Als erste Alternative kann jedes Kommunikationsgrundelement 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 von Binärwerten zusammengesetzt ist, die durch das Ausführungsprogramm jeweils als Verweis auf ein einzelnes Datenelement interpretiert werden.
- Als zweite Alternative kann jedes Kommunikationsgrundelement 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 dazu verwendet wird zu bestimmen, welche der zum externen Verweis in einem aktiven Interaktionskontext verfügbaren Datenelemente verwendet werden, 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.
- Als dritte Alternative kann jedes Kommunikationsgrundelement 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 Anzahl von Binärwerten zusammengesetzt ist, denen durch das Ausführungsprogramm spezielle Bedeutungen zugewiesen sind, um bei der Interpretation von Datenformaten in dem Kommunikationsgrundelement und bei der Durchführung von Antwortaktionen verwendet zu werden.
- Der oben definierte Kontextmechanismus und die Techniken, die er verfügbar macht, führen zu einem breiteren Einsatzbereich für Chipkarten und zu einem Ansatz zur Entwicklung von Chipkartenanwendungen, wobei sich zahlreiche Vorteile gegenüber den herkömmlichen Wegen ergeben.
- Zunächst 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ßerhalb 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 erfüllt 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äftsü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 einer abstrakten Anmerkung von "Vertrauen" und "hoher 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 die Funktionsfähigkeit zwischen Karte und Endgerät untereinander sicherzustellen, z.B. unterstützen sie dieselbe(n) Anwendung(en). Zu diesem Zweck 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 die minimale Zahl von Datenaustauschen wie theoretisch hergeleitet tatsächlich verwendet werden, weil die Transaktion als private Berechnung beendet wird 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, welcher Entwicklungsprozeß mit Computersoftwarewerkzeugen, wie Compilern und Emulatoren, unterstützt werden kann. Gestaltung und Implementierung der Karten- und Endgerätesoftware können so über die langweilige und fehleranfällige Codierung in Assemblersprache, die gegenwärtig erforderlich ist, hinausgehoben werden;
- - sie erlaubt die Standardisierung der Ausrüstung, und zwar sowohl der Karten als auch der Endgeräte, unter Verwendung 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. Die standardisierte Endgerätekapazität könnte ein API umfassen. Dagegen konzentrieren sich die gegenwärtigen Standardisierungsbemühungen bei Chipkarten darauf, feststehende Dateninhalte von Nachrichten vorzuschreiben, um Identifizierungswerte bereitzustellen, die in einer Weise zu interpretieren sind, wie sie durch den Standard festgelegt ist, was wenig Raum für neue Entwicklungen läßt.
- Schließlich ist den Herstellern von Chipkartenbetriebssystemen mit der neuen Technik eine große Freiheit bei der Gestaltung optimaler Implementierungen des Betriebssystemkerns der Karte und des Entgerätebetriebssystems gegeben. Hardwarekonstrukteuren von Chipkarten sind verschiedene Optionen gegeben, um die Ausnutzung des Chip-Siliziums mit Hardwareunterstützung für Basisoperationen, die im Systemkern enthalten sind, zu optimieren. Die erhaltene Reduzierung der Hardwarekosten, beginnend mit dem oben definierten spezialisierten Design, kann größer sein, als wenn man Verbesserungen bei universellen Ein-Chip-Computern zugrundelegt.
- Die Erfindung wird nun im einzelnen mit Bezug auf einige Zeichnungen beschrieben, die ein Ausführungsbeispiel der Grundprinzipien der vorliegenden Erfindung zeigen.
- Figur 1 zeigt ein auf einer hierarchisch organisierten Sammlung von Datenelementen basierendes, bekanntes Anwendungsdesign bei Chipkarten;
- Figur 2 stellt ein Schaubild des Kommunikationsstroms zwischen einer tragbaren Verarbeitungseinheit und einer entsprechend aufgebauten Verarbeitungseinheit in einem gegenwärtig als Standard akzeptierten Format dar;
- Figur 3 stellt eine Grundausführung der vorliegenden Erfindung unter Verwendung des Konzepts der Interaktionskontexte in tragbaren Verarbeitungseinheiten, wie etwa Chipkarten, und in Kartenendgeräten dar;
- Figur 4 stellt ein Beispiel einer zweckmäßigen Organisation eines Ausführungskontexts dar, das verschiedene Beziehungen zwischen in dem Interaktionskontext enthaltenen Prozedurbeschreibungen und Datenelementen sowie Bibliotheksfunktionen herausstellt, welche bei der Durchführung der Prozeduren benutzt werden;
- Figur 5 zeigt ein Beispiel eines Flußdiagramms für eine Programmausführungssteuerung und Sicherheitskontextwechsel, die mit der Durchführung der durch ein Kommunikationsgrundelement aufgerufenen Prozedurbeschreibung verknüpft sind.
- Die Struktur der Daten und Dateien in bekannten Systemen ist in Figur 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 und mit einer oder mehreren Elementardateien 3 verbunden sein. Der Stand der Technik benutzt eine baumartige Hierarchie der Verzeichnisse und Dateien. Die Zahl der untergeordneten Ebenen ist bei der bekannten Struktur prinzipiell unbeschränkt. Die in Figur 1 benutzte Terminologie ist dem vorgeschlagenen internationalen ISO-Standard 7816-4 entnommen. Gemäß dem Standardformat für den Kommunikationsstrom zwischen einer tragbaren Datenverarbeitungseinheit 5 und einer entsprechend aufgebauten Datenverarbeitungseinheit 4, wie in Figur 2 gezeigt, umfaßt die Kommunikation eine Menge von Blockpaaren. Die Kommunikation beginnt mit einem Rücksetzsignal m0 von der Datenverarbeitungseinheit 4. Ein derartiges Rücksetzsignal kann außerhalb der Kommunikationsbandbreite liegen, wie etwa durch die Betriebslogik in der Datenverarbeitungseinheit 5 erzeugt. Die tragbare Datenverarbeitungseinheit 5 antwortet mit einem Rücksetzantwortsignal (ATR) m1, auf das möglicherweise Inhalte folgen. Alle nachfolgenden Paare von Blöcken m2, m3, ... m(n-1), mn bestehen aus Blöcken, die von einem Kommunikationsgrundelement (z.B. einem Befehl) angeführt werden, auf das Inhalte folgen.
- Figur 3 zeigt die interne Struktur zweiter erfindungsgemäßer Datenverarbeitungseinheiten, die durch Senden und Empfangen von Daten miteinander kommunizieren. Die linke Datenverarbeitungseinheit 4 kann unter anderem ein Endgerät sein, die rechte Datenverarbeitungseinheit kann unter anderem eine tragbare Datenverarbeitungseinheit, z.B. eine Chipkarte, sein. Die Erfindung ist jedoch auch auf zwei tragbare Datenverarbeitungseinheiten anwendbar, die durch geeignete Kommunikationsmittel miteinander kommunizieren können.
- Jede der Datenverarbeitungseinheiten 4, 5 umfaßt eine Datenkommunikationseinrichtung 7, 14, über die strukturierte Blöcke von Daten ausgetauscht werden können. Jede der Datenverarbeitungseinheiten 4, 5 umfaßt eine Verarbeitungseinrichtung 8, 15 sowie eine Speichereinrichtung 9, 16. Die Speichereinrichtung 9, 16 kann jede beliebige Ausbildung eines Festspeichers (ROM), eines Direktzugriffsspeichers (RAM) und eines programmierbaren Festspeichers, wie etwa eines elektrisch löschbaren programmierbaren Festspeichers (EEPROM), sein.
- Die Speichereinrichtung 9, 16 umfaßt 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 zwei oder mehr 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 Figur in vergrößertem Maßstab gezeigt, um die Darstellung der Inhalte jeder Anwendungsbeschreibung zu erlauben. 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 die Darstellung seiner Inhalte zu erlauben. 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 durchgeführt werden können;
- - einen Satz von Zugriffsbedingungen für die Datenelemente;
- - einen Satz von externen Verweisen, welche auf Datenelemente verweisen, die bei Befehlen zu verwenden sind, welche von der anderen Datenverarbeitungseinheit ausgegeben werden;
- - optional entwicklerspezifizierte weitere Listen.
- Schließlich umfaßt die Speichereinrichtung 9, 16 ein Speicherelement 21, 20, das einen Verweis auf den "momentanen CTA" enthält, d.h. den Interaktionskontext, der momentan in Kraft ist.
- Der Sinn mehrerer Interaktionskontexte innerhalb einer Anwendungsbeschreibung ist, eine funktionale Trennung in mögliche Interaktionen zwischen den Datenverarbeitungeinheiten 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 zum Öffnen etwa 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.
- Figur 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 Figur 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 Figur 4 sind die Bezugsziffern der Datenverarbeitungseinheit 5 dargestellt. Die Struktur der Figur 4 ist jedoch in gleicher Weise auf die Speichereinrichtung 9 der Datenverarbeitungseinheit 4 anwendbar. In Figur 4 sind Datenelementbeschreibungen und Prozedurbeschreibungen optimal organisiert, um die Aufteilung des Programmcodes und die Aufteilung der Daten zwischen verschiedenen Interaktionskontexten (CTA's) widerzuspiegeln, die eine Anwendung (CSA) bilden.
- Die Speichereinrichtung 16 umfaßt Datenelemente H(1) ... H(7), ausführbare Codeelemente G(1) ... G(5), welche Teil des Betriebssystems sind, sowie Anwendungsbeschreibungen 18(1), 18(2) (CSA1, CSA2). In Figur 4 sind betriebssysteminterne Daten und Codes weggelassen. Die Zahl der Datenelemente, der ausführbaren Codeelemente und der Anwendungsbeschreibungen, wie sie in Figur 4 dargestellt sind, ist lediglich beispielhaft: In der Realität können sich die Zahlen nach Bedarf ändern.
- Jede Anwendungsbeschreibung 18(1), 18(2) ist physikalisch in der Speichereinrichtung vorhanden. Sie sehen eine erste, untere Schicht der Abstraktion vor, 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 Codeeinheiten 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 gegenwärtigen 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 Zahl der Elemente in der Prozedurbibliothek, in der Liste der Datenelemente und in der Interaktionskontextliste in der Anwendungsbeschreibung 18(1), wie sie in Figur 4 gezeigt ist, ist lediglich zum Zwecke der Darstellung. Selbstverständlich kann die Zahl der Elemente abhängig von der gewünschten Anwendung variieren.
- Die Interaktionskontexte 19(1), 19(2) sind physikalisch in der die Anwendungsbeschreibung 18(1) speichernden Speichereinrichtung vorhanden. In logischer Hinsicht sehen die Interaktionskontexte eine zweite Schicht der Speichernutzungssteuerung vor. Die durch diese zweite Schicht und die Anwendungsbeschreibungsschicht vorgesehene 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 innerhalb der Anwendungsbeschreibung 18 verweisen, wie durch Beispielspfeile s(1), s(2) angedeutet. Alternativ können diese Prozedurbeschreibungen auf durch das Betriebssystem bereitgestellte ausführbare Codeelemente G(1) ... G(5) verweisen, wie durch einen Beispielspfeil 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, welche Datenelemente B(1) ... B(5) enthält, die 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 Zugriffsbedingnngen dargestellt, an die man sich beim Zugriff auf die eigentlichen Daten halten muß, wie durch Pfeile u(1) ... u(5) angedeutet;
- - eine Außenschnittstellenliste mit Kommunikationsgrundelementen A(1) ... A(4), die von den betreffenden Interaktionskontexten 19(1), 19(2) als Befehle akzeptiert werden. Jeder Befehl innerhalb eines Kommunikationsgrundelements verweist auf ein Element der Prozedurbeschreibungen C(1) ... C(5) der Prozedurenliste innerhalb des betreffenden Interaktionskontexts, wie durch Pfeile v(1) ... v(4) angedeutet. Die Befehle können, wenn sie durch die Kommunikationseinrichtung 4 ausgegeben werden, durch eine oder mehrere dem 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 Zahl der hier angegebenen Adressen 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 derartige 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 Bezugspfeil w(2) haben, während der Befehl des Kommunikationsgrundelements A(2) über den Bezugspfeil 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 keine anderen verweisen. Wiederum erfolgt der Zugriff nur, wenn die Zugriffsbedingung erfüllt ist. Diese Zugriffsbedingungen spezifizieren ebenfalls die Art des Zugriffs, 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 Bezugspfeil r(1) eine Nur-Lese-Zugriffsbedingung darstellen, wogegen der Bezugspfeil 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 der Ebene des Interaktionskontexts, und zwar nur einmal. Ein Element B(1) ... B(5) der Datenliste innerhalb eines Interaktionskontexts 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 Zugriffsbedingnngen in dem Datenlistenelement E(1) ... E(7) der Anwendungsbeschreibung 18(1) bereits erfüllt sind. Die Prozedurbeschreibungen C(1) ... C(5) innerhalb eines Interaktionskontexts 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) innerhalb der Anwendungsbeschreibung 18(1) zugeordnete Zugriffsbedingung erfüllen. Auf Datenelemente oder Prozedurbeschreibungselemente innerhalb der Datenlisten der Anwendungsbeschreibung 18(1) und ihrer zugehörigen Interaktionskontexte 19(1), 19(2) kann nicht von einer anderen Anwendungsbeschreibung in der Speichereinrichtung 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. Unter Verwendung der durch B(1) ... B(5) beschriebenen Datenelemente wird die Liste von Verweisen durch das Ausführungsprogramm zeitweilig um Verweise auf Datenelemente erweitert, wie sie durch Auswertung von Adressen erhalten werden, die in der Kommunikationsnachricht, die als der mit der Prozedurbeschreibung verbundene Befehl akzeptiert wird, tatsächlich spezifiziert sind. Auf diese Weise kann auf keine anderen Daten als explizit spezifiziert zugegriffen werden, wobei nur bestimmte Bedingungen der Verwendung beachtet werden. Mit anderen Worten sieht das bevorzugte Speicherreferenzmodell der Figur 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) sind für alle Anwendungen gemeinsam in der Speichereinrichtung 16 gespeichert, enthalten jedoch Daten zur exklusiven Verwendung innerhalb des Kontextes 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 Codeelemente G(1) ... G(5) kann durch jede der in der Speichereinrichtung 16 gespeicherten Anwendungsbeschreibungen 18(1) ... verwiesen werden. Diese letzten Verweise einer anderen Anwendungsbeschreibung als der Anwendungsbeschreibung 18(1) auf die gemeinsamen Codes G(1) ... G(5) sind in Figur 4 nicht explizit angegeben. Es kann jedoch jeder Fachmann die Struktur der Figur 4 ohne weiteres auf zwei oder mehr Anwendungsbeschreibungen 18(1), 18(2), ... ausdehnen.
- 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 Figur 4 gezeigte Speicherreferenzmodell sieht eine Trennung der Code- und Datenelemente in der Speichereinrichtung 16 vor, auf die durch Zeiger q(1) ... q(7), p(1) ... p(5) von der Datenliste bzw. der Prozedurbibliothek in der betreffenden Anwendungsbeschreibung 18 aus 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 der Speichereinrichtung 16. Die Datenliste der betreffenden Anwendungsbeschreibung 18 sieht den durch das Betriebssystem benötigten Grad der Indirektheit vor, um die Speicherverwaltung zu erfüllen.
- Eine Codeverdopplung 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 aufzuteilen. Der Rumpf der Prozedurbeschreibung C(3) verweist jedoch auch direkt auf einen Code G(3), der in der Speichereinrichtung 16 gespeichert ist und durch das Betriebssystem bereitgestellt ist. Alle durch das Betriebssystem bereitgestellten ausführbaren Codeeinheiten G(1) ... G(5) sind zur effizienten Ausführung ausgebildet.
- Grundsätzlich ist die Speicherstruktur nach Figur 4 auch in Situationen anwendbar, in denen nur eine Anwendung der Datenverarbeitungseinheit 5 vorgesehen ist. In diesem Fall kann die einzige Anwendungsbeschreibung 18(1) sogar mit einem Interaktionskontext 19(1) zusammenfallen, welcher Interaktionskontext dann zumindest die folgende kohärente Datenstruktur 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, selektiv in einen der Interaktionskontexte 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 Interaktionskontextes durchzuführen ist, sowie eine letzte Prozedurbeschreibung, die unmittelbar vor Deaktivierung des Kontextes 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 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ängfich 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 festlegen.
- 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.
- Figur 5 stellt den Ablauf der Steuerung in dem oben durch "MAXOS" (12, 17) definierten Ausführungsprogramm dar.
- Nach Einschalten des Systems beginnt die Software mit der Verarbeitung eines Rücksetzcodes in Schritt 30. In Schritt 31 erfolgt der Einstieg 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 einer Hardware-Logik. In Schritt 32 wird der nicht flüchtige Speicher auf Übereinstimmung geprüft; jegliche Modifikationen, die durch ein plötzliches Abschalten, etwa durch Herausziehen einer Chipkarte, unbeendigt geblieben sein können, werden anulliert. Die Übereinstimmungsprüfung des nicht flüchtigen Speichers beinhaltet nur die 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 Übereinstimmungsprüfung ist daher ein sicherer Vorgang. Die genaue Art der Möglichkeiten zur Konsistenzprüfung hängt von den Einzelheiten der Hardware in der Datenverarbeitungseinheit und von Modifikationsroutinen für den nicht flüchtigen Speicher ab, die für die spezielle Sicherheitsarchitektur in hohem Maße irrelevant sind. Nach der allgemeinen Speicherübereinstimmungsprü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. In dieser Ebene wird jeder Zugriff auf Speicherbereiche, welche die Kernoperationen betreffen, blockiert. Der Zugriff auf Anwendungsdaten und -beschreibungen von dieser Ebene erfolgt exklusiv über Routinen im Kern, die Zustandsinformationen über ablaufende Speicheroperationen führen.
- Beim ersten Einstieg nach dem Rücksetzen werden in Schritt 34 Anwendungsdatenelementdeskriptoren verwendet, um die Übereinstimmung gespeicherter Daten mit dem Deskriptor zu prüfen; der Speicher wird geändert, falls er sich in einem mit dem so beschriebenen Attribut inkonsistenten Zustand befindet. Eine Rücksetzantwortnachricht (ATR) wird aus Anwendungsbezeichnern zusammengesetzt, die in den Anwendungsdeskriptoren gespeichert sind, und mit einer Transaktionsnummer vervollständigt, die so berechnet wird, daß sie durch die empfangende andere 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 Kontextaktivierungsbefehl ausgeführt, um einen Interaktionskontext für nachfolgende Befehle bereitzustellen. Die ATR-Nachricht signalisiert klarerweise die Bereitschaft der Datenverarbeitungseinheit 5, weitere Befehle anzunehmen. Der Standardinteraktionskontext kann als Teil einer "Chipkartenbesitzeranwendung" ausgeführt sein, die als eine Normalanwendung in allen Multianwendungs-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 Einstieg in die Interaktionskontext- (CTA) Sicherheitsebene für den normalen Chipkartenbesitzer CTA.
- Nachdem eine Anwendung vollständig aktiviert worden ist, ist sie bereit, Befehle von der anderen Datenverarbeitungseinheit 4 zu empfangen. Die weitere Verarbeitung hängt von dem erhaltenen 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 wird und in Schritt 37 als akzeptierbar nachgewiesen wird, getestet, ob eine neue Anwendung aktiviert werden soll. Falls nicht, wird in Schritt 39 eingetreten, in dem der Befehl geprüft wird, um zu bestimmen, ob er zugelassen wird und die Eingangsdaten akzeptiert werden können. Diese Prüfungen werden für einen Befehl nur durchgeführt, falls sie in dem Anwendungsdeskriptor spezifiziert sind. 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 Anwendungsherstellern 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 verlassen, Schritt 42.
- In Schritt 43 werden Ausgabedaten und ein (kryptographischer) Nachweis der Befehlsbeendigung erzeugt. 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 nicht in die Datenzugriffsschutzebene (Schritt 40) eingestiegen; der Befehl wird unmittelbar auf der Interaktionskontext- Sicherheitsebene durchgeführt, da die Betriebssystemroutinen so ausgelegt sind, daß sie keinen Datenschutz verletzen.
- Wenn in Schritt 38 festgestellt wird, daß keine neue Anwendung aktiviert werden soll, fährt das Programm mit Schritt 44 fort, 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 Authentisierung, wie sie für die verlangte Anwendung spezifiziert ist, zugelassen wird, erfolgt der Einstieg in eine neue anwendungsspezifische CTA- Sicherheitsebene, Schritt 47. Diese Ebene beschränkt den Zugriff auf Daten, welche die neu geöffnete Anwendung betreffen.
- Die Datenverarbeitungeinheit 5 erzeugt Daten in Antwort auf einen Kontextaktivierungsbefehl, indem sie eine Initialisierungsanweisung ausführt, wie sie in der Prozedurenliste festgelegt ist, Schritt 48. Wenn eine solche vom Anwendungshersteller codierte Routine vorhanden ist, wird in die Datenzugriffsschutzebene in Schritt 49 eingestiegen. Die Kontextaktivierungsprozedur wird in Schritt 50 durchgeführt. In Schritt 51 wird die Datenzugriffsschutzebene verlassen und die Antwort der anderen Datenverarbeitungeinheit 4 mitgeteilt; die Datenverarbeitungseinheit 4 selbst ist bereit, nach dem oben angegebenen Schritt 43 einen neuen Befehl zu erhalten.
- Nach der Beschreibung der Figuren 1 bis 5 werden nun einige allgemeine Bemerkungen über das erfindungsgemäße Datenaustauschsystem gemacht.
- Die Codes in der Prozedurbibliothek innerhalb 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 genommen 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 Bitkarten (engl. : "bitmaps") von Datenattributen bzw. Parameterklassen kann eine effiziente Realisierung dieser zusätzlichen Technik vorsehen.
- Das Ausführungsprogramm 12, 17 kann einen Verweis auf einen Interaktionskontext umfassen, der dazu verwendet wird, den momentanten Interaktionkontext in dem Speicherelement 20 zu initialisieren, das einen Verweis auf den Interaktionskontext speichert, der gerade in Kraft ist. Durch diese Maßnahme ist es möglich, eine Endaktion nach einer Erfassung einer internen Inkonsistenz bei einer Wiederaufnahme eines normalen Operationszustands 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 spezifiziert worden ist. Dieser Standardinteraktionskontext kann sehr gut ein solcher Kontext sein, der in der Kartenbesitzeranwendung enthalten ist, wie sie oben beschrieben wurde.
- Zusätzlich kann die Speichereinrichtung 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, von einem Benutzer des Datenaustauschsystems gelieferte persönliche Identifizierungsnummern zu verifizieren. Es können mehrere solcher persönlichen Identifizierungsnummern - Paßwörter - verwendet werden. Ein solches Paßwort kann dazu verwendet werden, den Gebrauch der Einrichtung bei Transaktionen zu schützen, bei denen geheimhaltungsempfindliche Daten offenbart werden können. Ein zweites Paßwort kann dazu verwendet werden, Transaktionen zu schützen, bei denen Daten mitgeteilt werden, die einen von dem Paßwortbesitzer zahlbaren Wert darstellen. Ein drittes Paßwort 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 Schutzbetriebsarten, die in Anspruch genommen werden, so wie in jedem der Interaktionskontexte 11, 19 spezifiziert, die dies benötigen können. Es können weitere Paßwörter vorgesehen sein. Dieser PIN-Verwaltungsinteraktionskontext kann sehr gut ein solcher Kontext sein, der in der Kartenbesitzeranwendung enthalten ist, wie sie oben beschrieben wurde.
- Jede Anwendungsbeschreibung 13, 18 kann eine Liste von numerischen Werten umfassen, die so aufgebaut ist, daß sie Bezeichner für alle Interaktionskontexte 11, 19 bereitstellt, und jede Anwendungsbeschreibung 13, 18 kann wenigstens einen ersten numerischen Wert umfassen, der einen Anwendungstyp angibt, einen zweiten numerischen Wert, der eine ausschließliche Bezeichnung des Bereitstellers der Anwendung angibt, einen dritten numerischen Wert, der die Art der Anwendungsbeschreibung 13, 18 angibt, und weitere Zahlen bzw. Nummern, die sich jeweils ausschließlich auf einen Interaktionskontext 11, 19 beziehen. Die ersten beiden Zahlen können nach im Markt wohl etablierten Regeln zugewiesen werden, wogegen die übrigen Zahlen seitens des Anwendungsherstellers so gewählt werden können, wie es geeignet erscheint. Speziell kann er numerische Werte zuweisen, um zwischen verschiedenen Versionen der Implementierung zu unterscheiden oder die Erzeugung des Satzes von kryptographischen Schlüsseln zu identifizieren, die seitens der Anwendung bei deren kryptographischen Berechnungen benutzt werden. Zusätzlich kann die Einrichtung in der Rücksetzantwortnachricht eine Liste einer Identifizierungsnummer für jeden der in ihrer Speichereinrichtung enthaltenen Interaktionskontexte 11, 19 umfassen, welche Identifizierungsnummer aus den mit dem Interaktionskontext gespeicherten eigenen Identifizierungswerten aufgebaut ist. Das erste Element in der Liste von Interaktionskontext-Identifizierungsnummern kann eine Bezeichnung für den Standardkontext sein.
- Die Datenkommunikationseinrichtungen 7, 14 sind vorzugsweise so ausgeführt, daß sie den Datenaustausch in Datenblöcke strukturieren. Diese Blöcke von Daten umfassen wenigstens zwei Teile, wobei ein erster Teil Daten sind, die insofern als operationsrelevant qualifiziert sind, als sie dazu verwendet werden, die Art der Operationen zu beeinflussen, die durch einen Befehl durchgeführt werden, wie er durch ein Kommunikationsgrundelement angegeben ist, oder von Daten, welche aus durchgeführten Operationen resultieren. Ein zweiter Teil wird insofern als sicherheitsrelevant qualifiziert, als er dazu verwendet wird, die Eignung zur Durchführung einer Operation oder der Akzeptierbarkeit von Daten in dem operationsrelevanten Teil zu bestimmen, um in der Operation verwendet zu werden, oder die Beendigung der Operation oder die Korrektheit der offenbarten Daten nachzuweisen.
- Wenn die Daten in dieser Weise strukturiert sind, kann das Ausführungsprogramm 17 so ausgelegt sein, daß es bei Akzeptierung eines Kommunikationsgrundelements zur Durchführung von in dem momentanen Interaktionskontext 20, 21 spezifizierten Operationen jede Operation als Teil einer vorbestimmten und festen Folge von Aktionen durchführt, die jeweils gesondert als Teil einer dem akzeptierten Kommunikationsgrundelement zugeordneten Prozedurbeschreibung spezifiziert sind. Eine erste Aktion kann als Funktion zur Authorisierung der Verwendung des Kommunikationsgrundelements an diesem Punkt in der Folge von Kommunikationen spezifiziert sein. Eine zweite Aktion kann als Funktion zur Entschlüsselung der Operationsdaten oder eines Teils derselben spezifiziert sein, wogegen eine dritte Aktion als die eigentliche Operationsprozedur spezifiziert sein kann. Ein vierter Teil kann zur Verschlüsselung von Operationsdaten, die aus den durchgeführten Operationen resultieren, spezifiziert sein, 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 in Sicherheitsbereichnungen in der empfangenden Datenverarbeitungseinheit verwendet zu werden. Diese Aktionen werden durch das Flußdiagramm der Figur 5 wiedergegeben.
- Darüber hinaus kann die Datenverarbeitungseinheit in ihrer Rücksetzantwortnachricht eine Zahl enthalten, die derart gewählt ist, daß ihr Wert durch die empfangende Datenverarbeitungseinheit 4 unvorhersagbar ist, und die als Basis für kryptographische Berechnungen dienen kann. Eine derartige Zahl kann als "Kartentransaktionszahl" bezeichnet werden.
- Für ein Kommunikationsgrundelement wird ein spezifizierter, zugewiesener Wert vorgesehen 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 in ausreichender Weise den zu aktivierenden Kontext, indem sie möglicherweise auf die Identifizierungsnummern verweisen, welche als Teil der Rücksetzantwortnachricht mitgeteilt wurden. Die in Antwort auf den Aktivierungsbefehl durchgeführten Aktionen werden erstens durch die Prozedurbeschreibung beschrieben, die in dem Kontext enthalten ist, der das als zur Deaktivierung bezeichnete Grundelement akzeptiert, und zweitens in der Prozedurbeschreibung, die zur Aktivierung bezeichnet ist und in dem Kontext enthalten ist, dessen Einstieg spezifiziert ist.
- Vorzugsweise umfaßt das zum Einstieg in einen spezifizierten Interaktionskontext 11, 19 verwendete Kommunikationsgrundelement numerische Werte, die in Sicherheitsberechnungen in nachfolgenden Kommunikationen zu verwenden sind. Ein erster Zufallswert kann durch eine der Verarbeitungseinheiten 4, 5 erzeugt werden, und ein zweiter Wert kann zur Identifizierung dieser einen Verarbeitungseinheit dienen. Diese Identifizierung kann das Ergebnis von Berechnungen sein, die derart sind, daß der resultierende Wert die Vorrichtung und den Zustand ihres Speichers ausreichend identifiziert, wie für Berechnungen oder andere Aktionen erforderlich ist, die in nachfolgenden 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, welcher dazu dient, die spezielle antwortende Datenverarbeitungseinheit ausreichend zu identifizieren, wie für Berechnungen oder andere Aktionen erforderlich, die in nachfolgenden Datenaustauschvorgängen im soeben aktivierten Kontext erfolgen können, welche Zahl als "Chipkartenidentifizierung" bezeichnet werden kann.
- Daneben kann die Chipkartenidentifizierungsnummer unter Verwendung kryptographischer Funktionen aus in der Datenverarbeitungseinheit 5 gespeicherten Daten 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 berechnet Chipkartenidentifizierung kann als "Chipkartenpseudonym" bezeichnet werden. Bevor die in der Prozedurbeschreibung der Aktivierungsprozedur eines einzusteigenden Kontexts beschriebenen Aktionen durchgeführt werden, kann darüber hinaus das Ausführungsprogramm eine kryptographische Berechnung durchführen, welche als Teil der 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 anderer Werte, die in der Speichereinrichtung gespeichert sind, miteinbeziehen.
- Als Alternative zu derartigen speziellen Berechnungen, die mit speziellen Daten unterstützt werden, bei der Durchführung von Befehlen können Befehle mit einer Bitfeldspezifikation von Datenelementen verwendet werden, auf die verwiesen wird. Jedes Kommunikationsgrundelement ist dann aus zwei oder mehr numerischen Werten zusammengesetzt, 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 von Binärwerten zusammengesetzt ist, die durch das Ausführungsprogramm 12, 17 jeweils als Verweis auf ein einzelnes Datenelement interpretiert werden. 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ärwerte spezifiziert ist. Dieser zweite Wert kann als "Operandenadressen" bezeichnet werden. Jedes der Datenelemente, das so spezifiziert ist, wird durch das ablaufende Ausführungsprogramm 12, 17 verfügbar gemacht, um in der Antwortaktion in einer Weise verwendet zu werden, wie sie in der Prozedurbeschreibung dieser Aktion beschrieben sein kann.
- Als Alternative zu speziellen Berechnungen mit speziellen Daten und Befehlen mit einer Bitfeldspezifikation von Datenelementen, auf die verwiesen wird, kann ein Befehlsformat mit einer Datenübereinstimmungsspezifikation von Datenelementen zur Anwendung kommen. In diesem Fall ist jedes Kommunikationsgrundelement aus zwei oder mehr numerischen Werten zusammengesetzt, 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, welche der zum externen Verweis in einem aktiven Interaktionskontext 12, 19 verfügbaren Datenelemente verwendet werden, 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, welche angibt, in welcher Weise ein als Teil eines Befehls gegebener Operandenkennzeichnungsspezifizierer mit Daten zu vergleichen ist, die in einem der zum externen Verweis in diesem Kontext verfügbaren Datenelemente enthalten sind, welche Prozedurbeschreibung durchgeführt wird, um die vorgesehenen 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 ist dann aus zwei oder mehr numerischen Werten zusammengesetzt, wobei ein erster Wert dazu verwendet wird, auf eine Prozedurbeschreibung einer dem Kommunikationsgrundelement zugeordneten Aktion zu verweisen, wobei ein zweiter Wert aus einer Anzahl von Binärwerten zusammengesetzt ist, denen durch das Ausführungsprogramm 12, 17 spezielle Bedeutungen zugewiesen sind, 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 Alternativ zur Anwendung kommt, kann der Befehlsmodifizierer einen Binärwert 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ärwert umfassen, welcher bestimmt, ob die als Antwort auf den Befehl durchgeführte Operation Daten als ein Datenelement verwendet oder aus einer Verkettung von Datenelementen aufgebaut ist, wobei eines in Verbindung mit jedem Datenelement zu verarbeiten ist, das als Teil des Befehlswerts spezifiziert ist, und zwar unter Verwendung der Operandenadressen oder des Operandenkennzeichnungsspezifizierers. Alternativ kann der Befehlsmodifzierer einen Binärwert umfassen, welcher bestimmt, ob mit dem Befehl bereitgestellte Daten unter Verwendung der Kennzeichnungslängenwert-Methode (englisch: "tag-length-value method") codiert werden, um aufeinanderfolgende verkettete Datenelemente zu unterscheiden.
- Eine weitere Option ist, daß der Befehlsmodifizierer einen Binärwert umfassen kann, welcher bestimmt, ob die Durchführung der durch den Befehl vorgegebenen Aktion tatsächlich zu einer effektiven Änderung von in der Datenverarbeitungseinheit 5 (Chipkarte) gespeicherten Daten führt oder in von der Datenverarbeitungseinheit 5 berechneten Daten resultiert oder daß das Befehlsresultat Daten sind, welche den Zustand der Einheit im Hinblick auf die Akzeptierbarkeit des Befehls, die diesen begleitenden Daten, die Größe der Daten, welche aus Berechnungen resultieren können, oder andere diverse Attribute wiedergeben.
- In Kürze ist die oben eingeführte, insbesondere zur Implementierung bei Chipkarten geeignete neue Technik das Konzept einer gesonderten Ausführungsumgebung. Bei diesem Ansatz werden die Verarbeitungseinrichtung und andere Resourcen in einem Computer zwischen verschiedenen Anwendungen geteilt, so als wenn die Anwendung der einzige Nutzer des Computers wäre. Aufbauend auf dieser neuen Technik bei Chipkartenimplementierungen wird zusätzlich ein Mechanismus bereitgestellt, um Mehrfachzugriffsbedingungen für Daten zu definieren, die sich eine Anzahl verwandter Anwendungen teilen. Eine zweite, durch die 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 innerhalb eines Datenaustauschsystems eine minimale Zahl von Befehlen erhalten wird. Schließlich ist es mit der neuen Technik möglich, daß Bezeichnungen, die auf gespeicherte Datenelemente verweisen, innerhalb jedes Kontexts gesondert zugewiesen werden. Der Verweis 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 Anweisungsraum zu codieren. In ähnlicher Weise werden Zugriffsbedingungen, Methoden zu deren Verifikation und zu diesem Zweck verfügbare kryptographische Operationen bei wirklichen Chipkarten zahlenmäßig sehr beschränkt sein, und sie können sehr effizient in der Zweischicht-Hierarchie der in der Anwendungsbeschreibung 18 enthaltenen Interaktionskontextbeschreibungen 19(1) ... ausgedrückt werden.
Claims (17)
1. 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 Interaktionskontextes durchzuführen ist, sowie
eine letzte Prozedurbeschreibung, die unmittelbar
vor Deaktivierung des Kontextes 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 Prozeäurbeschreibung (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.
2. Datenaustauschsystem nach Anspruch 1,
dadurch gekennzeichnet, daß die Speichereinrichtung (16)
ferner mindestens zwei Interaktionskontexte (19(1) ...
19(m)), mindestens eine Anwendungsbeschreibung (18(1)
...) sowie ein Speicherelement (20) umfaßt, das 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, 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 festlegen.
3. Datenaustauschsystem nach Anspruch 2,
dadurch gekennzeichnet, daß jede Anwendungsbeschreibung
(18(1) ...) außerdem eine Prozedurbibliothek mit
ausführbaren Codeeinheiten (F(1) ...) umfaßt, welche durch
Prozedurbeschreibungen (C(1) ...) jedes
Interaktionskontextes verwendet werden können, der jeder der
Anwendungsbeschreibungen (18(1) ...) zugeordnet ist.
4. Datenaustauschsystem nach Anspruch 2 oder 3,
dadurch gekennzeichnet, daß die Speichereinrichtung
mindestens zwei Anwendungsbeschreibungen (18(1) ...) und
ausführbare Codeeinheiten (G(1) ...) umfaßt, welche
durch Prozedurbeschreibungen (C(1) ...) jedes
Interaktionskontextes (19(1) ...) innerhalb jeder
Anwendungsbeschreibung (18(1) ...) oder durch jede ausführbare
Codeeinheit (F(1) ...) jeder Prozedurbibliothek
innerhalb jeder Anwendungsbeschreibung (18(1) ...) verwendet
werden können.
5. Datenaustauschsystem nach einem der Ansprüche 3 oder 4,
dadurch gekennzeichnet, daß die ausführbaren
Codeeinheiten in der Prozedurbibliothek dadurch vergrößert sind,
daß eine Spezifikation der Verwendung ihrer
Operationsparameter in Klassen eingefügt ist, welche sich auf
Attribute beziehen, die Datenelemente betreffen, welche
als tatsächlicher Wert in einer Berechnung genommen
werden können, welche Berechnung nur dann fortschreitet,
wenn die Datenattribute und die Parameterklassen
zueinander passen.
6. Datenaustauschsystem nach einem der Ansprüche 2 bis 5,
dadurch gekennzeichnet, daß das Ausführungsprogramm (17)
einen Verweis auf einen Standardinteraktionskontext
umfaßt, 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 Wiederaufnahme eines normalen
Operationszustands durchzuführen oder wann immer das
Ausführungsprogramm (17) aktiv ist und kein expliziter
Interaktionskontext durch ein von einer
gegenüberliegenden Datenverarbeitungseinheit (4) erhaltenes
Kommunikationsgrundelement spezifiziert worden ist.
7. Datenaustauschsystem nach einem der vorhergehenden
Ansprüche,
dadurch gekennzeichnet, daß die Speichereinrichtung (16)
einen Interaktionskontext umfaßt, dessen Zweck es ist,
persönliche Identifizierungsnummern zu umfassen, und daß
das Ausführungsprogramm (17) dazu ausgelegt ist, von
einem Benutzer des Datenaustauschsystems gelieferte
persönliche Identifizierungsnummern zu verifizieren.
8. Datenaustauschsystem nach einem der Ansprüche 2 bis 7,
dadurch gekennzeichnet, daß jede Anwendungsbeschreibung
(18(1) ...) eine Liste von numerischen Werten umfaßt,
die so aufgebaut ist, daß sie Bezeichner für alle
Interaktionskontexte (19(1) ...) bereitstellt, und zumindest
einen ersten numerischen Wert umfaßt, welcher einen
Anwendungstyp angibt, einen zweiten numerischen Wert,
welcher eine ausschließliche Bezeichnung des
Bereitstellers der Anwendung angibt, einen dritten numerischen
Wert, welcher die Art der Anwendungsbeschreibung (18(1)
...) angibt, und weitere Nummern, die sich jeweils
ausschließlich auf einen der Anwendungsbeschreibung
zugeordneten Interaktionskontext (19(1) ...) beziehen.
9. Datenaustauschsystem nach einem der vorhergehenden
Ansprüche,
dadurch gekennzeichnet, daß die
Kommunikationseinrichtung (14) so ausgeführt ist, daß sie den Datenaustausch
in Datenblöcke strukturiert, welche wenigstens zwei
Teile umfassen, wobei ein erster Teil Daten sind, die
insofern als operationsrelevant qualifiziert sind, als sie
dazu verwendet werden, die Art der Operationen zu
beeinflussen, die durch einen Befehl durchgeführt werden, wie
er durch ein Kommunikationsgrundelement angegeben ist,
oder von Daten, welche aus durchgeführten Operationen
resultieren, wobei ein zweiter Teil insofern als
sicherheitsrelevant qualifiziert ist, als er dazu verwendet
wird, die Eignung zur Durchführung einer Operation oder
der Akzeptierbarkeit von Daten in dem
operationsrelevanten Teil zu bestimmen, um in der Operation verwendet zu
werden, oder die Beendigung der Operation oder die
Korrektheit der resultierenden Daten nachzuweisen.
10. Datenaustauschsystem nach Anspruch 9,
dadurch gekennzeichnet, daß das Ausführungsprogramm (17)
so ausgelegt ist, daß es bei Akzeptierung eines
Kommunikationsgrundelements zur Durchführung von in dem
momentanen Interaktionskontext (19(1) ...) spezifizierten
Operationen jede Operation als Teil einer vorbestimmten
und festen Folge von Aktionen durchführt, die jeweils
gesondert als Teil einer dem akzeptierten
Kommunikationsgrundelement zugeordneten Prozedurbeschreibung
spezifiziert sind, welche Aktionen zumindest die
folgenden Aktionen umfassen:
a. Authorisierung der Verwendung des
Kommunikationsgrundelements;
b. Entschlüsselung der Operationsdaten oder eines
Teils derselben;
c. Durchführen 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.
11. Datenaustauschsystem nach einem der vorhergehenden
Ansprüche,
dadurch gekennzeichnet, daß die
Datenverarbeitungseinheit (5) bei Initialisierung des Datentransfers eine
zufällige Transaktionsnummer erzeugt, die als Basis für
kryptographische Berechnungen dient.
12. Datenaustauschsystem nach einem der vorhergehenden
Ansprüche,
dadurch gekennzeichnet, daß einem
Kommunikationsgrundelement ein spezifizierter Wert zugewiesen ist, der
stets als Anforderung interpretiert wird, in einen neuen
Interaktionskontext (19(1) ...) einzusteigen.
13. Datenaustauschsystem nach einem der vorhergehenden
Ansprüche,
dadurch gekennzeichnet, daß es eine weitere
Datenverarbeitungseinheit (4) umfaßt, welche die gleichen Elemente
wie die Datenverarbeitungseinheit (4) umfaßt, die
optional in ihrem Speicher eine
Anwendungsprogrammiererschnittstelle (10) enthalten kann, welche aus einem
Programmcode besteht, der so ausgeführt ist, daß er die
Implementierung zusätzlicher Computerprogramme erlaubt,
um Benutzern die Kontrolle über die Abfolge
ausgetauschter Kommunikationsgrundelemente zu geben oder um
die darin transferierten Daten zu beeinflussen oder die
beim Austausch erhaltenen Daten zu lernen oder
weiterzuverarbeiten.
14. Datenaustauschsystem nach Anspruch 13,
dadurch gekennzeichnet, daß das zum Einstieg in einen
spezifizierten Interaktionskontext (19(1) ...)
verwendete Grundelement numerische Werte umfaßt, die bei
Sicherheitsberechnungen in nachfolgenden Kommunikationen
zu verwenden sind, einen ersten, durch eine der
Verarbeitungseinheiten erzeugten Zufallswert sowie einen
zweiten, der Identifizierung dieser einen
Verarbeitungseinheit dienenden Wert.
15. Datenaustauschsystem nach Anspruch 13,
dadurch gekennzeichnet, daß jedes
Kommunikationsgrundelement aus zwei oder mehr numerischen Werten
zusammengesetzt 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 Zahl von Binärwerten
zusammengesetzt ist, die durch das Ausführungsprogramm
(12; 17) jeweils als Verweis auf ein einzelnes
Datenelement interpretiert werden.
16. Datenaustauschsystem nach Anspruch 13,
dadurch gekennzeichnet, daß jedes
Kommunikationsgrundelement aus zwei oder mehr numerischen Werten
zusammengesetzt 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, welche
der zum externen Verweis in einem aktiven
Interaktionskontext (19(1) ...) verfügbaren Datenelemente verwendet
werden, 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.
17. Datenaustauschsystem nach Anspruch 13,
dadurch gekennzeichnet, daß jedes
Kommunikationsgrundelement aus zwei oder mehr numerischen Werten
zusammengesetzt 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 von Binärwerten
zusammengesetzt
ist, denen durch das Ausführungsprogramm (12,
17) spezielle Bedeutungen zugewiesen sind, um bei der
Interpretation von Datenformaten in dem
Kommunikationsgrundelement und bei der Durchführung von
Antwortaktionen verwendet zu werden.
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
EP94200236A EP0666550B1 (de) | 1994-02-08 | 1994-02-08 | Datenauswechselsystem mit tragbaren Datenverarbeitungseinheiten |
Publications (2)
Publication Number | Publication Date |
---|---|
DE69402955D1 DE69402955D1 (de) | 1997-06-05 |
DE69402955T2 true DE69402955T2 (de) | 1997-08-14 |
Family
ID=8216620
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE69402955T Expired - Lifetime DE69402955T2 (de) | 1994-02-08 | 1994-02-08 | Datenauswechselsystem mit tragbaren Datenverarbeitungseinheiten |
Country Status (13)
Country | Link |
---|---|
US (2) | US5802519A (de) |
EP (1) | EP0666550B1 (de) |
JP (1) | JPH09508733A (de) |
KR (2) | KR100386154B1 (de) |
CN (1) | CN1079968C (de) |
AT (1) | ATE152539T1 (de) |
AU (1) | AU681754B2 (de) |
CA (2) | CA2466650A1 (de) |
DE (1) | DE69402955T2 (de) |
FI (1) | FI117990B (de) |
NZ (1) | NZ278967A (de) |
RU (1) | RU2148856C1 (de) |
WO (1) | WO1995022126A1 (de) |
Families Citing this family (127)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0666550B1 (de) * | 1994-02-08 | 1997-05-02 | Belle Gate Investment B.V. | Datenauswechselsystem mit tragbaren Datenverarbeitungseinheiten |
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. |
EP0790551A1 (de) * | 1996-02-16 | 1997-08-20 | Koninklijke KPN N.V. | Verfahren zur Änderung des Befehlssatzes einer Chipkarte |
FR2748834B1 (fr) * | 1996-05-17 | 1999-02-12 | Gemplus Card Int | Systeme de communication permettant une gestion securisee et independante d'une pluralite d'applications par chaque carte utilisateur, carte utilisateur et procede de gestion correspondants |
FR2752071B1 (fr) * | 1996-07-30 | 1998-12-18 | Thomson Csf | Lecteur pour cartes a puce a interface homme-machine amelioree |
US5923884A (en) * | 1996-08-30 | 1999-07-13 | Gemplus S.C.A. | System and method for loading applications onto a smart card |
TW357298B (en) * | 1996-09-12 | 1999-05-01 | Toshiba Corp | IC card portable terminal |
US6317832B1 (en) | 1997-02-21 | 2001-11-13 | Mondex International Limited | Secure multiple application card system and process |
US6575372B1 (en) | 1997-02-21 | 2003-06-10 | Mondex International Limited | Secure multi-application IC card system having selective loading and deleting capability |
US6220510B1 (en) | 1997-05-15 | 2001-04-24 | Mondex International Limited | Multi-application IC card with delegation feature |
US6328217B1 (en) | 1997-05-15 | 2001-12-11 | Mondex International Limited | Integrated circuit card with application history list |
US6488211B1 (en) | 1997-05-15 | 2002-12-03 | Mondex International Limited | System and method for flexibly loading in IC card |
US6164549A (en) | 1997-05-15 | 2000-12-26 | Mondex International Limited | IC card with shell feature |
US6385723B1 (en) | 1997-05-15 | 2002-05-07 | Mondex International Limited | Key transformation unit for an IC card |
US6230267B1 (en) | 1997-05-15 | 2001-05-08 | Mondex International Limited | IC card transportation key set |
JPH117296A (ja) | 1997-06-18 | 1999-01-12 | Oputoromu:Kk | 電子回路を有する記憶媒体と該記憶媒体を有する音声合成装置 |
JP3895830B2 (ja) * | 1997-06-18 | 2007-03-22 | インテリジェントディスク株式会社 | 電子回路を有する記憶媒体 |
US20010044864A1 (en) * | 1997-06-18 | 2001-11-22 | Kabushiki Kaisha Optrom | Disk storage system having an electronic circuit mounted on the surface of the disk and control method thereof |
TW389894B (en) | 1997-06-19 | 2000-05-11 | Optrom Kk | Device for exchanging information with storage medium having electronic circuit and the electronic circuit, and system including the same |
US6085976A (en) * | 1998-05-22 | 2000-07-11 | Sehr; Richard P. | Travel system and methods utilizing multi-application passenger cards |
FR2765362B1 (fr) * | 1997-06-26 | 2001-08-17 | Bull Cp8 | Module de securite comportant des moyens de creation de liens entre des fichiers principaux et des fichiers auxiliaires |
US6736325B1 (en) | 1998-01-22 | 2004-05-18 | Mondex International Limited | Codelets |
US6357665B1 (en) | 1998-01-22 | 2002-03-19 | Mondex International Limited | Configuration of IC card |
US6101477A (en) * | 1998-01-23 | 2000-08-08 | American Express Travel Related Services Company, Inc. | Methods and apparatus for a travel-related multi-function smartcard |
US6981149B1 (en) | 1998-01-27 | 2005-12-27 | Spyrus, Inc. | Secure, easy and/or irreversible customization of cryptographic device |
US6742120B1 (en) | 1998-02-03 | 2004-05-25 | Mondex International Limited | System and method for controlling access to computer code in an IC card |
JPH11272825A (ja) | 1998-03-24 | 1999-10-08 | Toshiba Corp | アクセス管理方法及びその装置 |
FI108197B (fi) * | 1998-09-11 | 2001-11-30 | Nokia Mobile Phones Ltd | Menetelmä ja järjestely tilaajatietojen käsittelemiseksi matkaviestimessä |
EP1118203A1 (de) | 1998-09-29 | 2001-07-25 | Sun Microsystems, Inc. | Überlagerung von daten über sprache |
FR2784479B1 (fr) * | 1998-10-09 | 2000-11-17 | Bull Cp8 | Protocole d'echange interne de donnees entre applications d'un objet portatif multi-applications et objet portatif multi-applications correspondant |
TW463107B (en) * | 1998-12-22 | 2001-11-11 | Ibm | Extended card file system |
US6256690B1 (en) * | 1999-01-15 | 2001-07-03 | Todd Carper | System and method for facilitating multiple applications on a smart card |
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 |
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 |
US6848111B1 (en) * | 1999-02-02 | 2005-01-25 | Sun Microsystems, Inc. | Zero overhead exception handling |
US6880155B2 (en) | 1999-02-02 | 2005-04-12 | Sun Microsystems, Inc. | Token-based linking |
US6845498B1 (en) * | 1999-05-11 | 2005-01-18 | Microsoft Corporation | Method and apparatus for sharing data files among run time environment applets in an integrated circuit card |
WO2000068902A1 (en) * | 1999-05-11 | 2000-11-16 | Microsoft Corporation | Method and apparatus for sharing data files among runtime environment applets in an integrated circuit card |
WO2000077640A1 (en) | 1999-06-10 | 2000-12-21 | Belle Gate Investment B.V. | Arrangements storing different versions of a set of data in separate memory areas and method for updating a set of data in a memory |
DE19929164A1 (de) * | 1999-06-25 | 2001-01-11 | Giesecke & Devrient Gmbh | Verfahren zum Betreiben eines zur Ausführung von nachladbaren Funktionsprogrammen ausgebildeten Datenträgers |
US6654762B2 (en) | 1999-08-16 | 2003-11-25 | International Business Machines Corporation | Generating small footprint applications for mobile devices |
FR2797968B1 (fr) * | 1999-08-24 | 2001-10-12 | Schlumberger Systems & Service | Dispositif et procede de chargement de commandes dans une carte a circuit integre |
DE19951087A1 (de) * | 1999-10-23 | 2001-04-26 | Roland Setzer | Verfahren und Vorrichtung zur Verwaltung und Bearbeitung einer Vielzahl von Karteneinheiten |
AU1586500A (en) | 1999-12-06 | 2001-06-12 | Sun Microsystems, Inc. | Computer arrangement using non-refreshed dram |
AU777437B2 (en) | 1999-12-07 | 2004-10-14 | Sun Microsystems, Inc. | Secure photo carrying identification device, as well as means and method for authenticating such an identification device |
EP1236201B1 (de) | 1999-12-07 | 2007-11-14 | Sun Microsystems Inc. | Computerlesbares medium mit mikroprozessor zur lesesteuerung und computeranordnung zur kommunikation mit einem derartigen medium |
US6802007B1 (en) | 2000-04-24 | 2004-10-05 | International Business Machines Corporation | Privacy and security for smartcards in a method, system and program |
ATE380376T1 (de) | 2000-07-20 | 2007-12-15 | Belle Gate Invest B V | Verfahren und system für kommunizierende geräte, und vorrichtungen dafür, mit geschützter datenübertragung |
US20020044655A1 (en) * | 2000-10-18 | 2002-04-18 | Applebaum David C. | Information appliance and use of same in distributed productivity environments |
US6824064B2 (en) * | 2000-12-06 | 2004-11-30 | Mobile-Mind, Inc. | Concurrent communication with multiple applications on a smart card |
GB0106082D0 (en) * | 2001-03-13 | 2001-05-02 | Mat & Separations Tech Int Ltd | Method and equipment for removing volatile compounds from air |
WO2003005203A2 (en) * | 2001-07-03 | 2003-01-16 | Research In Motion Limited | System and method of object-oriented persistence |
US6588674B2 (en) | 2001-07-27 | 2003-07-08 | Motorola, Inc. | Memory management method and smartcard employing same |
WO2003032122A2 (en) * | 2001-10-09 | 2003-04-17 | Steven Schiff | System and method for conducting a financial transaction using a communication device |
WO2003034281A1 (en) * | 2001-10-19 | 2003-04-24 | Intel Zao | Method and apparatus to provide a hierarchical index for a language model data structure |
US7085840B2 (en) * | 2001-10-29 | 2006-08-01 | Sun Microsystems, Inc. | Enhanced quality of identification in 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 |
US7275260B2 (en) * | 2001-10-29 | 2007-09-25 | Sun Microsystems, Inc. | Enhanced privacy protection in identification in a data communications network |
US20030084172A1 (en) * | 2001-10-29 | 2003-05-01 | Sun Microsystem, Inc., A Delaware Corporation | Identification and privacy in the World Wide Web |
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 |
US7243853B1 (en) | 2001-12-04 | 2007-07-17 | Visa U.S.A. Inc. | Method and system for facilitating memory and application management on a secured token |
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 |
US6912633B2 (en) * | 2002-03-18 | 2005-06-28 | Sun Microsystems, Inc. | Enhanced memory management for portable devices |
US20030177366A1 (en) * | 2002-03-18 | 2003-09-18 | Sun Microsystem, Inc., A Delaware Corporation | Method and apparatus for dynamic personal identification number management |
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 |
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 |
US7162456B2 (en) * | 2002-06-05 | 2007-01-09 | Sun Microsystems, Inc. | Method for private personal identification number management |
US7596531B2 (en) * | 2002-06-05 | 2009-09-29 | Sun Microsystems, Inc. | Method and apparatus for protecting against side channel attacks against personal identification numbers |
US7167843B2 (en) * | 2002-06-05 | 2007-01-23 | Sun Microsystems, Inc. | Apparatus for private personal identification number management |
JP4185715B2 (ja) * | 2002-06-28 | 2008-11-26 | 大日本印刷株式会社 | Icカード及びicカードプログラム |
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 |
US20040122774A1 (en) * | 2002-08-02 | 2004-06-24 | Martin Studd | Method and system for executing applications on a mobile device |
US8626577B2 (en) | 2002-09-13 | 2014-01-07 | Visa U.S.A | Network centric loyalty system |
US20040148224A1 (en) * | 2002-09-13 | 2004-07-29 | Visa U.S.A. | Method and apparatus for electronic support and delivery of multiple lottery and sweepstake programs, in substantially off-line environments |
US8015060B2 (en) | 2002-09-13 | 2011-09-06 | Visa Usa, Inc. | Method and system for managing limited use coupon and coupon prioritization |
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 |
US20040139021A1 (en) | 2002-10-07 | 2004-07-15 | Visa International Service Association | Method and system for facilitating data access and management on a secure token |
US6920611B1 (en) | 2002-11-25 | 2005-07-19 | Visa U.S.A., Inc. | Method and system for implementing a loyalty merchant component |
US8737981B2 (en) | 2002-12-19 | 2014-05-27 | Qualcomm Incorporated | Downloadable configuring application for a wireless device |
US7222331B2 (en) * | 2003-01-16 | 2007-05-22 | Sun Microsystems, Inc. | Linking of virtual methods |
US20040143739A1 (en) * | 2003-01-16 | 2004-07-22 | Sun Mircosystems, Inc., A Delaware Corporation | Run time code integrity checks |
US7281244B2 (en) * | 2003-01-16 | 2007-10-09 | Sun Microsystems, Inc. | Using a digital fingerprint to commit loaded data in a device |
US7165246B2 (en) * | 2003-01-16 | 2007-01-16 | Sun Microsystems, Inc. | Optimized representation of data type information in program verification |
US7272830B2 (en) * | 2003-01-16 | 2007-09-18 | Sun Microsystems, Inc. | Ordering program data for loading on a device |
US8121955B2 (en) | 2003-01-16 | 2012-02-21 | Oracle America, Inc. | Signing program data payload sequence in program loading |
US7484095B2 (en) * | 2003-01-16 | 2009-01-27 | Sun Microsystems, Inc. | System for communicating program data between a first device and a second device |
US7703128B2 (en) | 2003-02-13 | 2010-04-20 | Microsoft Corporation | Digital identity management |
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 |
US7373522B2 (en) * | 2003-05-09 | 2008-05-13 | Stmicroelectronics, Inc. | Smart card with enhanced security features and related system, integrated circuit, and methods |
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 |
US20050071226A1 (en) * | 2003-09-30 | 2005-03-31 | Visa U.S.A. Inc. | Method and system for managing dynamic terms and conditions and user interaction |
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 |
US7661123B2 (en) | 2003-12-05 | 2010-02-09 | Microsoft Corporation | Security policy update supporting at least one security service provider |
US7191288B2 (en) | 2004-02-24 | 2007-03-13 | Sun Microsystems, Inc. | Method and apparatus for providing an 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 |
US7140549B2 (en) * | 2004-02-24 | 2006-11-28 | Sun Microsystems, Inc. | Method and apparatus for selecting a desired application on 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 |
US7984488B2 (en) | 2004-04-09 | 2011-07-19 | Microsoft Corporation | Credential roaming in electronic computing systems |
WO2006005773A1 (es) * | 2004-06-09 | 2006-01-19 | Microelectronica Española, S.A.U | Método y dispositivo para la compartición de información entre parcelas de memoria de entornos de recursos limitados |
US20060047954A1 (en) * | 2004-08-30 | 2006-03-02 | Axalto Inc. | Data access security implementation using the public key mechanism |
US20060253497A1 (en) * | 2005-05-03 | 2006-11-09 | Bulent Abali | System and method for associating computational procedures with stored data objects |
CN101411134B (zh) * | 2006-03-31 | 2013-08-21 | 高通股份有限公司 | 用于高速媒体接入控制的存储器管理 |
US20080040615A1 (en) * | 2006-06-30 | 2008-02-14 | Electronic Plastics, Llc | Biometric embedded device |
JP4702628B2 (ja) * | 2006-07-27 | 2011-06-15 | ソニー株式会社 | 電子機器、情報処理方法、およびプログラム |
WO2008079491A2 (en) * | 2006-10-20 | 2008-07-03 | Electronic Plastics, Llc | Decentralized secure transaction system |
US9137212B2 (en) | 2006-12-04 | 2015-09-15 | Oracle America, Inc. | Communication method and apparatus using changing destination and return destination ID's |
DE102007048976A1 (de) * | 2007-06-29 | 2009-01-02 | Voice.Trust Ag | Virtuelle Prepaid- oder Kreditkarte und Verfahren und System zur Bereitstellung einer solchen und zum elektronischen Zahlungsverkehr |
DE102007036589A1 (de) * | 2007-08-02 | 2009-02-05 | Continental Automotive Gmbh | Verfahren zum Betreiben eines Tachographen und Tachograph |
FR2921175A1 (fr) * | 2007-09-14 | 2009-03-20 | Sagem Securite Sa | Carte a circuit integre a tampon d'entree/sortie securise |
US7979685B1 (en) | 2007-11-27 | 2011-07-12 | Oracle America, Inc. | Multiple instruction execution mode resource-constrained device |
US8225386B1 (en) | 2008-03-28 | 2012-07-17 | Oracle America, Inc. | Personalizing an anonymous multi-application smart card by an end-user |
US8789753B1 (en) | 2008-03-28 | 2014-07-29 | Oracle International Corporation | Method for using and maintaining user data stored on a smart card |
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 |
RU2512139C2 (ru) * | 2008-10-14 | 2014-04-10 | Конинклейке Филипс Электроникс Н.В. | Способ и устройство для генерации и аутентификации псевдонима |
US20110145082A1 (en) * | 2009-12-16 | 2011-06-16 | Ayman Hammad | 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 |
RU2741742C1 (ru) * | 2020-02-14 | 2021-01-28 | Публичное Акционерное Общество "Сбербанк России" (Пао Сбербанк) | Способ получения низкоразмерных числовых представлений последовательностей событий |
Family Cites Families (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CA1238427A (en) * | 1984-12-18 | 1988-06-21 | Jonathan Oseas | Code protection using cryptography |
JPS61177585A (ja) * | 1985-02-04 | 1986-08-09 | Toshiba Corp | 携帯用電子装置密封体 |
US4816654A (en) * | 1986-05-16 | 1989-03-28 | American Telephone And Telegraph Company | Improved security system for a portable data carrier |
FR2653914A1 (fr) * | 1989-10-27 | 1991-05-03 | Trt Telecom Radio Electr | Systeme d'authentification d'une carte a microcircuit par un micro-ordinateur personnel, et procede pour sa mise en óoeuvre. |
US5204663A (en) * | 1990-05-21 | 1993-04-20 | Applied Systems Institute, Inc. | Smart card access control system |
ATE100229T1 (de) * | 1990-07-20 | 1994-01-15 | Siemens Nixdorf Inf Syst | Verfahren zur verhinderung unzulaessiger abweichungen vom ablaufprotokoll einer anwendung bei einem datenaustauschsystem. |
DE4126213C2 (de) * | 1991-08-08 | 2000-06-15 | Deutsche Telekom Ag | Chipkarte für mehrere Diensteanbieter |
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 |
EP0666550B1 (de) * | 1994-02-08 | 1997-05-02 | Belle Gate Investment B.V. | Datenauswechselsystem mit tragbaren Datenverarbeitungseinheiten |
FR2720532B1 (fr) * | 1994-05-25 | 1997-09-12 | Vincent Lorphelin | Système de location sécurisée de logiciels par carte à mémoire. |
US5857079A (en) * | 1994-12-23 | 1999-01-05 | Lucent Technologies Inc. | Smart card for automatic financial records |
US5930363A (en) * | 1995-03-17 | 1999-07-27 | Transmo Limited | Card charging systems |
IL119444A (en) * | 1995-10-20 | 2001-10-31 | Yeda Res & Dev | Method and system for private retrieval of information |
US5903882A (en) * | 1996-12-13 | 1999-05-11 | Certco, Llc | Reliance server for electronic transaction system |
US5901303A (en) * | 1996-12-27 | 1999-05-04 | Gemplus Card International | Smart cards, systems using smart cards and methods of operating said cards in systems |
US5920861A (en) * | 1997-02-25 | 1999-07-06 | Intertrust Technologies Corp. | Techniques for defining using and manipulating rights management data structures |
-
1994
- 1994-02-08 EP EP94200236A patent/EP0666550B1/de not_active Expired - Lifetime
- 1994-02-08 DE DE69402955T patent/DE69402955T2/de not_active Expired - Lifetime
- 1994-02-08 AT AT94200236T patent/ATE152539T1/de not_active IP Right Cessation
-
1995
- 1995-02-08 CA CA002466650A patent/CA2466650A1/en not_active Abandoned
- 1995-02-08 JP JP7521126A patent/JPH09508733A/ja not_active Ceased
- 1995-02-08 CA CA002182783A patent/CA2182783C/en not_active Expired - Fee Related
- 1995-02-08 WO PCT/NL1995/000055 patent/WO1995022126A1/en active IP Right Grant
- 1995-02-08 KR KR1019960704253A patent/KR100386154B1/ko not_active IP Right Cessation
- 1995-02-08 US US08/676,347 patent/US5802519A/en not_active Expired - Lifetime
- 1995-02-08 KR KR10-2002-7010584A patent/KR100417502B1/ko not_active IP Right Cessation
- 1995-02-08 AU AU15460/95A patent/AU681754B2/en not_active Expired
- 1995-02-08 CN CN95191544A patent/CN1079968C/zh not_active Expired - Lifetime
- 1995-02-08 RU RU96118111A patent/RU2148856C1/ru not_active IP Right Cessation
- 1995-02-08 NZ NZ278967A patent/NZ278967A/en not_active IP Right Cessation
-
1996
- 1996-08-07 FI FI963111A patent/FI117990B/fi not_active IP Right Cessation
-
1998
- 1998-08-27 US US09/141,255 patent/US6052690A/en not_active Expired - Lifetime
Also Published As
Publication number | Publication date |
---|---|
EP0666550A1 (de) | 1995-08-09 |
US5802519A (en) | 1998-09-01 |
CA2466650A1 (en) | 1995-08-17 |
NZ278967A (en) | 1997-04-24 |
JPH09508733A (ja) | 1997-09-02 |
AU1546095A (en) | 1995-08-29 |
KR100386154B1 (ko) | 2003-10-23 |
ATE152539T1 (de) | 1997-05-15 |
AU681754B2 (en) | 1997-09-04 |
EP0666550B1 (de) | 1997-05-02 |
WO1995022126A1 (en) | 1995-08-17 |
DE69402955D1 (de) | 1997-06-05 |
FI963111A0 (fi) | 1996-08-07 |
KR100417502B1 (ko) | 2004-02-05 |
FI963111A (fi) | 1996-08-07 |
FI117990B (fi) | 2007-05-15 |
CN1079968C (zh) | 2002-02-27 |
CA2182783A1 (en) | 1995-08-17 |
CA2182783C (en) | 2005-04-19 |
CN1150850A (zh) | 1997-05-28 |
US6052690A (en) | 2000-04-18 |
RU2148856C1 (ru) | 2000-05-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE69402955T2 (de) | Datenauswechselsystem mit tragbaren Datenverarbeitungseinheiten | |
DE69823649T2 (de) | Multi-anwendungs ic-kartensystem | |
DE69332889T2 (de) | Host-benutzer-transaktionssystem | |
DE60006217T3 (de) | Techniken zum gewähren des zugriffs durch eine kontextsperre in einem gerät mit kleinem platzbedarf unter verwendung von einem eingangspunktobjekt | |
DE69813208T2 (de) | Chipkarte mit datenumsetzer | |
DE69127560T2 (de) | Gegenseitiges Erkennungssystem | |
US6094656A (en) | Data exchange system comprising portable data processing units | |
US7185110B2 (en) | Data exchange system comprising portable data processing units | |
DE69814406T2 (de) | Tragbare elektronische vorrichtung für systeme zur gesicherten kommunikation und verfahren zur initialisierung der parameter | |
DE602004009039T2 (de) | Halbleiterspeicherkarte und programm zu ihrer steuerung | |
DE60011615T3 (de) | Techniken zum erlauben von zugang durch eine kontextsperre in einem kleinen gerät unter verwendung von globalen datenstrukturen | |
DE19839847A1 (de) | Speichern von Datenobjekten im Speicher einer Chipkarte | |
DE3700663C2 (de) | ||
DE60010433T2 (de) | Verfahren zur durchführung von sicherheitvorgaben in einem kleingerät unter verwendung von einer kontextsperre | |
DE10297521T5 (de) | Verbraucher-zentrisches kontext-bewußtes Vermittlungsmodell | |
EP0805607B1 (de) | Verfahren zum Zugriff auf zumindest einen Teil der Daten einer Mikroprozessorkarte | |
DE10324337B4 (de) | Rechnersystem und zugehöriges Verfahren zum Durchführen eines Sicherheitsprogramms | |
DE10048939B4 (de) | Bedingte Unterdrückung der Überprüfung eines Karteninhabers | |
DE602004011965T2 (de) | Verfahren und schaltung zum identifizieren und/oder verifizieren von hardware und/oder software eines geräts und eines mit dem gerät arbeitenden datenträgers | |
DE69932630T2 (de) | Verfahren und vorrichtung zur initialisierung eines anwendungsprogrammes einer chipkarte | |
EP1912184A2 (de) | Vorrichtung und Verfahren zur Erzeugung von Daten | |
DE19508288A1 (de) | Verfahren und Anordnung zur Verhinderung der unberechtigten Nutzung eines Rechners | |
DE19705620C2 (de) | Anordnung und Verfahren zur dezentralen Chipkartenidentifikation | |
EP3215957B1 (de) | Chipkarte, chipkartensystem und verfahren zum zugriff auf eine chipkarte | |
EP1638058A2 (de) | Verifizierung eines Datenträgers vor der Installation eines Anwendungsprogramms |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
8364 | No opposition during term of opposition |