DE19600081C2 - Sicherung der Datenintegrität bei Datenträgerkarten - Google Patents

Sicherung der Datenintegrität bei Datenträgerkarten

Info

Publication number
DE19600081C2
DE19600081C2 DE19600081A DE19600081A DE19600081C2 DE 19600081 C2 DE19600081 C2 DE 19600081C2 DE 19600081 A DE19600081 A DE 19600081A DE 19600081 A DE19600081 A DE 19600081A DE 19600081 C2 DE19600081 C2 DE 19600081C2
Authority
DE
Germany
Prior art keywords
data
integrity
write
unit
sequence
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.)
Revoked
Application number
DE19600081A
Other languages
English (en)
Other versions
DE19600081A1 (de
Inventor
Herrmann R Bublitz
Walter Haenel
Klaus Rindtorff
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Family has litigation
First worldwide family litigation filed litigation Critical https://patents.darts-ip.com/?family=7782100&utm_source=google_patent&utm_medium=platform_link&utm_campaign=public_patent_search&patent=DE19600081(C2) "Global patent litigation dataset” by Darts-ip is licensed under a Creative Commons Attribution 4.0 International License.
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Priority to DE19600081A priority Critical patent/DE19600081C2/de
Priority to US08/778,801 priority patent/US5869823A/en
Publication of DE19600081A1 publication Critical patent/DE19600081A1/de
Application granted granted Critical
Publication of DE19600081C2 publication Critical patent/DE19600081C2/de
Anticipated expiration legal-status Critical
Revoked legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G07CHECKING-DEVICES
    • G07FCOIN-FREED OR LIKE APPARATUS
    • G07F7/00Mechanisms actuated by objects other than coins to free or to actuate vending, hiring, coin or paper currency dispensing or refunding apparatus
    • G07F7/08Mechanisms 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/10Mechanisms 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/1008Active credit-cards provided with means to personalise their use, e.g. with PIN-introduction/comparison system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/004Error avoidance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1433Saving, restoring, recovering or retrying at system level during software upgrading
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION 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/00Payment architectures, schemes or protocols
    • G06Q20/30Payment architectures, schemes or protocols characterised by the use of specific devices or networks
    • G06Q20/34Payment 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/341Active cards, i.e. cards including their own processing means, e.g. including an IC or chip
    • GPHYSICS
    • G07CHECKING-DEVICES
    • G07FCOIN-FREED OR LIKE APPARATUS
    • G07F7/00Mechanisms actuated by objects other than coins to free or to actuate vending, hiring, coin or paper currency dispensing or refunding apparatus
    • G07F7/08Mechanisms 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/0806Details of the card
    • G07F7/0813Specific details related to card security
    • G07F7/082Features insuring the integrity of the data on or in the card

Description

Die Erfindung betrifft die Datenintegrität bei Anwendungen mit Datenträgerkarten.
Gesicherte Datenträgerkarten oder Chipkarten (Smart Cards) finden heutzutage Anwendung in einer Reihe unterschiedlicher Funktionen und werden mit steigenden Stückzahlen verbreitet. Zum Teil werden auf den Chipkarten Daten von beträchtlichem Wert dargestellt, wie Zahlungsmittel, Zahlungsmittelrahmen oder persönliche (z. B. medizinische) Daten. Das Konzept der gesicherten Chipkarte als verteilter persönlicher Datenspeicher und zum Teil auch datenschutzrechtliche Gründe verhindern und erschweren eine Datensicherung. Aus diesen Gründen muß an die Integrität der Daten auf der Chipkarte höchste Ansprüche gestellt werden. Bei den zu erwartenden hohen Stückzahlen in der Verbreitung von Chipkarten führen selbst niedrige Fehlerraten zu beträchtlichen Mengen an Fehlern.
Unter der Integrität von Daten versteht man die Fehlerfreiheit der Daten in dem Sinne, daß sie die ihnen zugrunde gelegten Informationen als richtiges Abbild der Realität beinhalten und damit für eine sinnvolle Datenverarbeitung verwendet werden können. Entsprechend bedeutet eine Konsistenz der Daten die Übereinstimmung der Daten mit der Realität, die sie repräsentierten. Dazu ist sowohl eine formale (physische Beschaffenheit) als auch eine inhaltliche (semantische, funktionelle) Voraussetzung zu erfüllen.
Die Integrität der Daten auf der Chipkarte ist gefährdet insbesondere durch physikalische Einflüsse sowohl auf die Chipkarte als solches als auch während eines Schreibvorgangs.
Die meisten verwendeten Chipkarten implementieren den ISO- Standard 7816-X oder deren analoge nationalen Standards. Daten auf der Chipkarte sind demgemäß in Dateien organisiert. Teile einer Datei können als Datensatz oder als beliebige Zeichenfolge mit Schreibkommandos geschrieben werden. Fehler, die während des Schreibvorgangs in der Chipkarte auftreten, werden an das Schreib-Lesegerät gemeldet. Wird der Schreibvorgang aus mechanischen, elektrischen oder elektronischen Gründen nicht beendet und das Schreib-Lesegerät und/oder die Chipkarte kann keine Fehlerbehebung einleiten, sind die Daten inkonsistent.
Insbesondere werden Chipkarten immer häufiger zusammen mit nicht motorgetriebenen Chipkartenlesern eingesetzt. Speziell bei diesen Billiglesern, bei denen das Ein- und Ausführen der Chipkarte manuell geschieht, kann der Benutzer der Chipkarte den Vorgang durch vorzeitige Entnahme der Chipkarte unterbrechen. Auch äußere Einflüsse wie Erschütterungen oder Stromausfall können zu solchen Unterbrechungen der laufenden Anwendung fuhren. Dies kann zur Folge haben, daß die unterbrochene Anwendung inkonsistente Datenbestände auf der Chipkarte und im Chipkartenleser zurückläßt, die die Chipkarte für die weitere Anwendung unbrauchbar macht.
Auf einer Chipkarte seien beispielsweise 2 Funktionen untergebracht: eine elektronische Börse und eine Berechtigung zum Besuch eines Fitneßstudios. Jeden Monat wird die Berechtigung durch das Ausbuchen der Gebühr aus der Börse verlängert. Dieser Vorgang kann aus den folgenden Schritten bestehen:
  • - Abbuchen des Betrages aus der Börse
  • - Bestätigung der Abbuchung durch die Chipkarte und
  • - Verlängerung der Berechtigung.
Wird die Chipkarte nun zwischen den ersten beiden Schritten entnommen, erhält man einen inkonsistenten Zustand: Der Betrag ist abgebucht, aber die Berechtigung nicht verlängert. Da der Chipkartenleser auch die Bestätigung der Abbuchung nicht erhalten hat, zeigen seine Daten an, daß er weder abgebucht noch die Berechtigung verlängert hat. Damit ist die Chipkarte unbrauchbar und kann auch nicht mehr in einen konsistenten Zustand gebracht werden.
Patentschrift US 4 922 456 offenbart ein Verfahren zur Sicherung der Integrität von Daten, die in einen nicht flüchtigen Speicher geschrieben werden sollen. Die zu schreibenden Daten werden hierbei zunächst in einen Schattenspeicher geschrieben. Anschließend wird mit einem Zeichen angezeigt, daß der eigentliche Schreibvorgang beginnen kann, wobei die Voraussetzung erfüllt sein muß, daß in dem Schattenspeicher eine ausreichende Datenmenge der zu schreibenden Daten abgelegt wurde, die es ermöglicht, bei einer Unterbrechung des eigentlichen Schreibvorganges die Daten zu rekonstruieren. Im Rahmen des eigentlichen Schreibvorganges werden nun die zu schreibenden Daten aus dem Schattenspeicher in den nicht flüchtigen Speicher übertragen. Tritt bei diesem Schreibvorgang eine unvorhergesehene Unterbrechung auf, so können die zu schreibenden Daten mit Hilfe der in den Schattenspeicher geschriebenen Datenmenge rekonstruiert werden. Das Verfahren sieht keine Maßnahmen vor, uni die Daten zusichern, die bei einer Unterbrechung des eigentlichen Schreibvorganges teilweise überschrieben und hierdurch unnutzbar gemacht worden sind.
Patentschrift EP 0 402 683 A2 beschreibt eine Methode und eine Vorrichtung zum Aktualisieren von Firmware. Hierbei wird während eines Aktualisierungsprozesses die neue Version des Unterprogrammes in einem freien Speicherbereich im EEPROM abgespeichert bevor der Transfer Vector, der auf die alte Version des Unterprogramms verweist, aktualisiert ist. Dies setzt voraus, daß der TRANSFER Vector im ESPROM geändert werden muß. Eine Änderung des Transfer Vectors im EEPROM bedeutet, daß der alte Transfer Vector gelöscht werden muß. Wird der Transfer Vector gelöscht und stürzt dann das System ab, sind die Transfer Vector Daten ungültig und das entsprechende Unterprogramm kann nicht mehr gefunden werden.
Die im Stand der Technik bekannten Verfahren zum Schreiben von Daten auf Chipkarten liefern keine Möglichkeit die Integrität der Daten zu gewährleisten, insbesondere wenn der Schreibvorgang während des Schreibens abgebrochen wird.
Es ist Aufgabe der vorliegenden Erfindung, ein Verfahren und ein System bereitzustellen, das die Integrität der Daten beim Schreiben auf die Chipkarte und die Darstellung der Daten auf der Chipkarte erhält.
Diese Aufgabe wird durch das Verfahren nach dem PA1 bzw. durch das System nach dem PA22 gelöst. Weiterbildungen der Erfindung sind in den Unteransprüchen gekenn­ zeichnet.
Bei der Erfindung wird eine "Sequenz von Schreibvorgängen" auf einer Chipkarte als Einheit definiert, für die die Integrität der zu schreibenden Daten sichergestellt wird. Bei dem Schreibvorgang kann es sich um das Schreiben von Daten in eine oder mehrere Dateien handeln.
Eine Integritätseinheit, d. h. eine Einheit von Daten, für die die Integrität sichergestellt werden soll, wird vorzugsweise durch eine Kennung identifiziert. Der Start einer Integritätseinheit wird vorzugsweise mit einem definierten Startkommando an die Chipkarte implementiert, oder alternativ dazu durch eine Kennung in jedem Schreibkommando festgelegt. Das Ende der Integritätseinheit wird vorzugsweise mit einer Sequenz von Kommandos angezeigt, die bei einem erfolgreich durchgeführten Übertragungsvorgang zu einem festen Schreiben der Daten in einem Speicher der Chipkarte führen oder bei einem nicht erfolgreichen Übertragungsvorgang den Schreibvorgang abbrechen.
Vorzugsweise werden die Daten einer Integritätseinheit in einen Schattenspeicher geschrieben. Schattenspeicher können beispielsweise implementiert werden durch komplette Kopien der Dateien, in die die Daten geschrieben werden sollen oder durch Kopieren des Datenteils einer Datei, der beschrieben werden soll, wobei der Dateikopf einen Verweis auf die Originaldaten erhält. Weiterhin können Schattenspeicher durch Kopien von Dateisätzen, in die die Daten gespeichert werden sollen, in satzorientierten Dateien, wobei der Dateikopf Verweise auf aufeinanderfolgende Sätze enthält, implementiert werden.
Vorzugsweise wird das Ende einer Integritätseinheit mit einer Sequenz von zwei Kommandos wie z. B. "Schreiben vorbereiten" und "Schreiben", bzw. durch ein Kommando, das ein Abbrechen des Schreibvorgangs der Integritätseinheit bewirkt, wie z. B. "Schreiben abbrechen", angezeigt. Mit dem Kommando "Schreiben vorbereiten" werden die Verweise auf die neuen Daten so vorbereitet, daß mit einem Minimum an benötigten Schreibaufwand die Gültigkeit der neuen Daten festgelegt werden kann. Dies kann z. B. durch ein Anlegen eines Datenverzeichnisses erfolgen, welches die Verweise auf die jeweils gültigen Daten enthält. Mit dem Kommando "Schreiben" wird die Gültigkeit der neuen Daten festgelegt, eine Rückmeldung an das Schreib-Lesegerät gegeben und die neuen Daten als gültige Daten festlegt. Der Speicher für die bisher gültigen Daten kann freigegeben und beispielsweise als ein weiterer Schattenspeicher verwendet werden. Es ist zu verstehen, daß die Zuordnung eines Speicherbereiches zum Schattenspeicher nicht permanent sein muß, sondern daß die Zuordnung nach Bedarf, als ein dynamischer Prozeß, definiert werden kann.
Durch das erfindungsgemäße Verfahren wird die Wahrscheinlichkeit, daß Fehler die Integrität der Daten stören können wesentlich reduziert.
Mit dem entsprechenden Kommando, das ein Abbrechen des Schreibvorgangs der Integritätseinheit bewirkt, wie z. B. "Schreiben abbrechen", wird der Schattenspeicher zu einer erneuten Benutzung freigeben. Die originalen Daten bleiben nach wie vor zur Verfügung.
Ein weiteres Kommando, wie beispielsweise "Integritätsstatus", dient vorzugsweise dazu, den Status der Integritätseinheit zu erfragen, d. h. beispielsweise ob und welche Integritätseinheit noch nicht beendet ist. Aufgrund dieser Information kann die Integritätseinheit, z. B. nach einem Fehler in dem Schreib- Lesegerät abgebrochen oder in einem anderen Schreib-Lesegerät geordnet beendet werden.
Das erfindungsgemäße Verfahren verringert die Wahrscheinlichkeit erheblich, daß durch einen Fehler beim Schreiben von Daten auf die Chipkarte die Integrität der Daten gestört wird. Daten können über die Grenzen von Schreib-Lesegeräten wiederhergestellt oder komplettiert werden. Das erfindungsgemäße Verfahren kann als Basis dazu dienen, Datenbestände außerhalb der Chipkarte konsistent mit den Daten auf der Chipkarte zu halten.
Als Integritätseinheiten können vorzugsweise sogenannte Transaktionen, wie sie aus dem Bereich von Datenbankensystemen bekannt sind, definiert werden.
Detaillierte Beschreibung der Erfindung
Die Datenbestände der einzelnen Chipkartenfunktionen und die Daten des Lesegerätes, bzw. des treibenden Rechners, bilden - abstrakt gesehen - eine verteilte Datenbank. Eine Methode um verteilte Datenbanken konsistent zu halten, sind Transaktionen. Als eine Integrationseinheit, d. h. als eine Einheit von Daten, für die die Integrität sichergestellt werden soll, wird eine Transaktion festgelegt. Transaktionen sind insbesondere gekennzeichnet durch 4 Eigenschaften. Transaktionen sind:
  • - unteilbar, d. h. sie werden entweder vollständig oder gar nicht ausgeführt, was durch ein "two phase commit" (Zwei- Phasen-Festschreiben) Verfahren erreicht werden kann;
  • - konsistenzerhaltend, d. h. die Daten eines transaktionsgeschützten Datensatzes sind in sich stimmig, was unter Zuhilfenahme des "two phase commit" Verfahrens erreicht wird;
  • - isoliert, d. h. parallel ablaufende Transaktionen beeinflussen sich gegenseitig nicht, was durch ein Blockieren der von einer Applikation benötigten Daten für andere Applikationen bewerkstelligt werden kann;
  • - dauerhaft, d. h. die Dauerhaftigkeit der Änderungen an einem Datenbestand ist bei der Chipkarte direkt gekoppelt mit der Dauerhaftigkeit der in einem beschreibbaren, nicht flüchtigen Speicher (z. B. einem EEPROM) der Chipkarte gespeicherten Daten, wodurch die Dauerhaftigkeit für die Daten auf der Chipkarte i. a. ausreichend ist.
Die Problematik der isoliert bzw. parallel ablaufenden Transaktionen kann auf der Chipkarte auch dadurch umgangen werden, daß immer nur eine Transaktion gleichzeitig zugelassen wird.
Das erfindungsgemäße "two phase commit" Verfahren für Chipkartendaten garantiert, daß entweder alle Aktionen auf der Chipkarte innerhalb einer Transaktion oder keine ausgeführt werden. Um dieses "two phase commit" Verfahren zu implementieren, wird definiert:
  • - ein Anfang der Transaktion, entweder implizit durch
    • 1. ein Anlegen einer Versorgungsspannung ("Power on") an die Chipkarte,
    • 2. einen Schreibzugriff auf transaktionsgeschützte Daten,
    oder explizit
    • 1. durch einen vorgegebenen Transaktionsbefehl wie beispielsweise: "Transaktion beginnen" oder "start transaction";
  • - eine Reihe von Transaktionssteuerungsbefehlen, wie z. B.:
    • 1. "Schreiben vorbereiten" oder "prepare to commit" (Vorbereiten auf das Ende der Transaktion)
    • 2. "Schreiben" oder "commit" (Ende der Transaktion)
    • 3. "Schreiben abbrechen" oder "unroll" (Abbruch der Transaktion).
Die Chipkarte muß weiterhin in der Lage sein, Änderungen an einem Datenbestand seit dem Zeitpunkt des Beginns der Transaktion wieder rückgängig zu machen. Dies kann dadurch erreicht werden, indem ein Datenbestand, der verändert werden soll, in einen Schattenspeicher dupliziert wird und die Änderungen nur an einer Hälfte der Daten, also entweder der Kopie oder dem Original, ausgeführt werden. Vorzugsweise werden Änderungen nur an der im Schattenspeicher abgelegten Kopie durchgeführt. Wurde die Transaktion erfolgreich durchgeführt, wird die veränderte Hälfte der Daten zum gültigen Teil erklärt. Wurde die Transaktion nicht erfolgreich durchgeführt, also z. B. abgebrochen, bleibt die unveränderte Hälfte gültig.
Zur permanenten Speicherung veränderbarer Daten werden in Chipkarten vorzugsweise EEPROM Speicher (Electrical Erasable Programmable Read Only Memory) als beschreibbare, nicht flüchtige Speicher eingesetzt, die sich insbesondere durch folgende Eigenschaften auszeichnen:
  • - ein Löschen von Daten, d. h. ein Zurücksetzen der einzelnen Speicherzellen des EEPROM in einen inaktiven Zustand, ist nur in größeren Einheiten, sogenannten "Pages" (z. B. 32 Bytes) möglich (die Größe dieser Einheit wird meist durch den Hersteller vorgegeben);
  • - ein Setzen von Daten ist bitweise möglich, d. h. ein Aktivieren der einzelnen Speicherzellen ist unabhängig von den anderen Speicherzellen innerhalb der gewählten "Page" durchführbar;
  • - die Anzahl der Lösch-Schreibzyklen ist jedoch durch die Lebensdauer des EEPROM limitiert (Größenordnung 10**4 Lösch-Schreibzyklen), ein überproportional häufiges Schreiben auf eine Speicheradresse muß daher vermieden werden.
In anderen Worten ist ein Löschen nur kollektiv für eine gesamte "Page" möglich, während Daten innerhalb der "Page" individuell gesetzt werden können. Ein Verändern von Daten erfolgt im allgemeinen durch ein Löschen der "Pages" auf denen sich die Daten zusammen mit anderen Datensätzen befinden und ein anschließendes Schreiben der veränderten Daten und der Datensätze die nicht verändert werden sollten. Wird dieser Vorgang z. B. durch Stromausfall unterbrochen, sind alle Datensätze auf der "Page" ungültig. Dies zeigt, daß Datensätze, die auf einer gemeinsamen "Page" liegen, sich gegenseitig beeinflussen können.
Die Eigenschaft des EEPROM, daß ein Löschen von Daten nur in größeren Einheiten, den sogenannten "Pages" möglich ist, muß bei einem Duplizieren von Daten im EEPROM Speicher berücksichtigt werden. Es ist darauf zu achten, daß die beiden Hälften (Original und Kopie im Schattenspeicher) des Datenbestandes nicht auf der selben "Page" liegen, damit eine gegenseitige Beeinflussung ausgeschlossen werden kann.
Bei größeren Datenbeständen können die Daten in Transaktionseinheiten unterteilt werden. Dies hat den Vorteil, daß nur die Transaktionseinheiten kopiert werden müssen, die auch verändert werden. Ist gewährleistet, daß von einem größerem Datenbestand, der in Einheiten aufgeteilt ist, pro Transaktion nur eine Einheit verändert wird, genügt es für diese Einheit nur einen Schattenspeicher anzulegen. Es muß daher weniger Speicherplatz für den Schattenspeicher zur Verfügung gestellt werden.
Damit Kopie und Original auseinander gehalten werden können, stattet man sie vorzugsweise mit je einem Zähler aus. Beim Erstellen der Kopie wird der Zähler beispielsweise um 1 erhöht. Damit wird die Aktualität der Daten durch den Zählerstand repräsentiert (höherer Zählerstand = neuere Daten). Die Verwendung der Zähler hat den Vorteil, daß keine Daten des Originals verändert werden müssen.
Da es nur zwei Versionen des Datensatzes (Original und Kopie) für die durchzuführende Transaktion gibt und die Zähler dieser Kopien sich nur um 1 unterscheiden, kann ein Modulo-Zähler verwendet werden. Dies vermeidet auch das Problem eines Zählerüberlaufes. Bei Verwendung z. B. eines Modulo-4 Zählers kann die ältere Kopie wie folgt bestimmt werden: wenn der Zählerstand der selektierten Version + 1, modulo 4 den Zählerstand der anderen Kopie ergibt, handelt es sich um die ältere Version des Datensatzes. Anhand der unten aufgeführten Tabellen 2 und 3 läßt sich beispielsweise bestimmen, welche Daten zu einem bestimmten Zeitpunkt gültig sind.
Zur Verwaltung der Zustände und Koordination der Transaktion wird vorzugsweise jeder Transaktionseinheit einer der folgende Zustände zugeordnet:
  • - "Data_Opened", d. h. diese Version der Transaktionseinheit wurde neu erstellt und ist für Veränderungen zugänglich;
  • - "Data_Prepared", d. h. an dieser Version der Transaktionseinheit sind alle Änderungen beendet, und es dürfen auch keine mehr vorgenommen werden;
  • - "Data_Committed", d. h. diese Version der Transaktionseinheit im Schattenspeicher wird zur neuen gültigen Version des Datensatzes erklärt;
  • - "Data_Unrolled", d. h. die Änderungen im Schattenspeicher werden für ungültig erklärt und der Schattenspeicher kann anderweitig verwendet werden.
Diese Zustände müssen durch Bitkombinationen im EEPROM Speicher repräsentiert werden. Bedingt durch das Löschen von "Pages" können unerwünschte Zwischenzustände entstehen, d. h. Bitkombinationen, die weder den Ausgangs- noch den Endzustand beschreiben. Um dies zu vermeiden, werden die Zwischenzustände im EEPROM vorzugsweise so repräsentiert, daß die Zustandsfolgen:
  • - Data_Opened, Data_Prepared, Data_Committed
  • - Data_Opened, Data_Prepared, Data_Unrolled
  • - Data_Opened, Data_Unrolled
nur ein Aktivieren von Datenelementen im EEPROM erfordern und somit kein Löschen erforderlich ist. Dies kann z. B. durch die folgende Repräsentation der Zustände, wie in Tabelle 1 dargestellt, erfolgen, wobei eine 1 für ein aktives Bit im EEPROM steht.
Tabelle 1
Beispiel einer Zustandstabelle einer Transaktion, wobei x "Zustand beliebig" bedeutet
Beim Start einer neuen Transaktion muß von dem Zustand "data_unrolled" in den Zustand "data_opened" übergegangen werden. Hier ist nun ein Löschen der Repräsentation des Zustands im Speicher (vgl. Tabelle 1) nötig. Dabei können durch Unterbrechen des Löschvorgangs die unerwünschten Zwischenzustände "011" und "001" entstehen. Damit diese Zwischenzustände nicht zu einem ungewünschten Ergebnis führen, werden die gültigen Daten vor dem Löschvorgang in den Schattenspeicher kopiert. Somit entsprechen beide Datensätze (Originaldaten und Daten im Schattenspeicher) der gültigen Version und bei einem Auftreten von Zwischenzuständen kann eine beliebige der gültigen Versionen ausgewählt werden.
Zusätzlich kann noch ein globaler Merker verwendet werden, wie z. B. "Transaction_in_Process", der anzeigt, ob gerade eine Transaktion aktiv ist. Der globale Merker erlaubt somit ein Erkennen von Zwischenzuständen. Zwischenzustände können nur auftreten, wenn der globale Merker "transaction_in_process" anzeigt, daß keine Transaktion aktiv ist. Daher darf der globale Merker erst aktiv gesetzt werden, wenn die Kopie den Zustand "data_opened" hat.
Zähler und Zustandsanzeiger werden vorzugsweise auf von den Daten getrennten "Pages" untergebracht damit das Schreiben von Daten die Zustände nicht beeinflussen kann. Dies gilt auch für die Zähler und Zustandsanzeiger unterschiedlicher Versionen des Datensatzes.
Aus Zustand und Zählerstand beider Versionen des Datensatzes und dem globalen Merker "Transaktion in Bearbeitung" oder "transaction_in_process" kann zu jedem Zeitpunkt geklärt werden, welche Daten beim Start einer neuen Transaktion gültig sind. Die folgenden Tabellen 2 und 3 zeigen die möglichen Zuordnungen. Dabei bedeutet "alt", daß diese Version des Datensatzes den kleineren Zählerstand hat.
Tabelle 2
Gültigkeitstabelle für den globalen Merker "transaction_in_process" aktiv
Tabelle 3
Gültigkeitstabelle für den globalen Merker "transaction_in_process" nicht aktiv
Da die Gültigkeit der Daten in besonderen Fällen nur mit Hilfe der Applikation geklärt werden kann, wird der Transaktion vorzugsweise ein eindeutiger Name zugeordnet, damit die Applikation das Protokoll des entsprechenden Transaktionsablaufes identifizieren kann. Dieser Transaktionsname kann z. B. aus einer Chip-Seriennummer und einer laufenden Transaktionsnummer bestehen.
Für eine Implementierung auf einer Chipkarte kann der Anfang einer Transaktion durch einen Transaktionsbefehl, wie z. B. den Befehl "start_transaction" bestimmt werden. Wird der Anfang einer Transaktion erkannt und ist noch keine Transaktion einer anderen Applikation in Bearbeitung, werden die gültigen Daten ermittelt und in den Schattenspeicher kopiert. Erst dann wird die Kopie in den Zustand "data_opened" gebracht. Ist dies erfolgreich durchgeführt worden, kann der globale Merker "transaction_in_process" gesetzt und der Applikation die laufende Transaktionsnummer mitgeteilt werden. Konnte die gültige Kopie nicht ermittelt werden, da die vorhergehende Transaktion Daten im Zustand "data_prepared" zurückgelassen hat, wird dies der Applikation mitgeteilt, damit diese klären kann, welche Daten gültig sind.
Ein geeignetes Chipkarten-Kommando zur Vorbereitung des Schreibvorgangs, z. B. "Schreiben vorbereiten" oder "Prepare to commit", bewirkt, daß aus dem Zustand "data_opened" in den Zustand "data_prepared" übergegangen wird. In allen anderen Zuständen ist dieser Befehl nicht erlaubt. Dies wird dies der Applikation mitgeteilt und es findet keine Zustandsänderung statt.
Ein weiteres geeignetes Chipkarten-Kommando zur Durchführung des Schreibvorgangs, z. B. "Schreiben" oder "commit", bewirkt, daß aus dem Zustand "data_prepared" der Kopie in den Zustand "data_committed" übergegangen wird. In allen anderen Zuständen ist dieser Befehl ungültig und es findet keine Zustandsänderung statt.
Schließlich bewirkt ein anderes Chipkarten-Kommando zum Abbrechen des Schreibvorgangs, z. B. "Schreiben abbrechen" oder "unroll", daß aus dem Zustand "data_opened" oder "data_prepared" in den Zustand "data_unrolled" übergegangen wird. In allen anderen Zuständen ist das Kommando ungültig und es findet keine Zustandsänderung statt.
Tabelle 4 zeigt Beispiele für den Transaktionsablauf einer vollständigen Transaktion:
Tabelle 5 zeigt Beispiele für den Transaktionsablauf einer abgebrochenen Transaktion:

Claims (22)

1. Verfahren zur Sicherung der Integrität von Daten bei einer Kommunikation unter Beteiligung einer Datenträgerkarte,
bei dem eine Sequenz von Schreibvorgängen, für die die Integrität der zu schreibenden Daten sichergestellt werden soll, auf der Chipkarte als eine Integritätseinheit definiert wird,
dadurch gekennzeichnet, daß
von einem Datenbestand, der mittels der zur Integritätseinheit gehörenden Sequenz von Schreibvorgängen verändert werden soll, eine Kopie des Datenbestandes in einem Schattenspeicher erzeugt wird, und daß
die Veränderungen mittels der zur Integritätseinheit gehörenden Sequenz von Schreibvorgängen nur an dem Datenbestand oder nur an der Kopie des Datenbestandes ausgeführt werden, wobei die zur Integritätseinheit gehörende Sequenz von Schreibvorgängen zumindest unteilbar und konsistenzerhaltend ist.
2. Verfahren nach Anspruch 1, dadurch gekennzeichnet, daß
die Veränderungen an dem Datenbestand oder an der Kopie des Datenbestandes für gültig erklärt werden, wenn die Sequenz von Schreibvorgängen erfolgreich ausgeführt wurde, und
der nicht veränderte Datenbestand oder die nicht veränderte Kopie des Datenbestandes gültig bleiben, wenn die Sequenz von Schreibvorgängen nicht erfolgreich ausgeführt wurde.
3. Verfahren nach einem der Ansprüche 1 oder 2, dadurch gekennzeichnet, daß ein Modulo-Zähler zur Unterscheidung von Datenbestand und Kopie des Datenbestandes verwendet wird.
4. Verfahren nach einem der vorstehenden Ansprüche, dadurch gekennzeichnet, daß die Integritätseinheit mittels einer Kennung identifiziert wird.
5. Verfahren nach einem der vorstehenden Ansprüche, dadurch gekennzeichnet, daß der Start der Integritätseinheit mit einem definierten Startkommando angezeigt wird.
6. Verfahren nach einem der vorstehenden Ansprüche, dadurch gekennzeichnet, daß der Start der Integritätseinheit mittels einer Startkennung für ein jedes Schreibkommando zum Schreiben der Integritätseinheit festgelegt wird.
7. Verfahren nach einem der vorstehenden Ansprüche, dadurch gekennzeichnet, daß das Ende der Integritätseinheit mittels einer Sequenz von Kommandos angezeigt wird, die bei einem erfolgreich durchgeführten Übertragungsvorgang zu einem festen Schreiben der Daten in einem Speicher der Chipkarte führen oder bei einem nicht erfolgreichen Übertragungsvorgang den Schreibvorgang abbrechen.
8. Verfahren nach einem der vorstehenden Ansprüche, dadurch gekennzeichnet, daß in den Schattenspeicher Daten der Integritätseinheit geschrieben werden können.
9. Verfahren nach Anspruch 8, dadurch gekennzeichnet, daß der Schattenspeicher durch komplette Kopien der Dateien, in die die Daten geschrieben werden sollen oder durch Kopieren des Datenteils einer Datei, der beschrieben werden soll, wobei der Dateikopf einen Verweis auf die Originaldaten erhält, implementiert wird.
10. Verfahren nach Anspruch 8, dadurch gekennzeichnet, daß der Schattenspeicher durch Kopien von Dateisätzen, in die die Daten gespeichert werden sollen, in satzorientierten Dateien, implementiert wird, wobei der Dateikopf Verweise auf aufeinanderfolgende Sätze enthält.
11. Verfahren nach einem der vorstehenden Ansprüche, dadurch gekennzeichnet, daß
das Ende der Integritätseinheit im Falle einer erfolgreichen Übertragung mit einer Sequenz bestehend aus einem ersten und einem zweiten Kommando angezeigt wird, wobei das erste Kommando die Verweise auf neue gültige Daten so vorbereitet, daß mit einem Minimum an benötigten Schreibaufwand die Gültigkeit der neuen Daten festgelegt werden kann, und das zweite Kommando die Gültigkeit der neuen Daten festlegt, eine Rückmeldung an das Schreib- Lesegerät gibt und die neuen Daten als gültige Daten festlegt; und
das Ende der Integritätseinheit im Falle einer nicht- erfolgreichen Übertragung durch ein Kommando, das ein Abbrechen des Schreibvorgangs der Integritätseinheit bewirkt, angezeigt wird.
12. Verfahren nach Anspruch 11, dadurch gekennzeichnet, daß das Festlegen der Gültigkeit der neuen Daten durch ein Anlegen eines Datenverzeichnisses erfolgt, welches Verweise auf die jeweils gültigen Daten enthält.
13. Verfahren nach Anspruch 11 oder 12, dadurch gekennzeichnet, daß der Speicher nach Durchführung der entsprechenden Kommandos für die bisher gültigen Daten freigegeben wird und als ein weiterer Schattenspeicher verwendet werden kann.
14. Verfahren nach einem der vorstehenden Ansprüche, dadurch gekennzeichnet, daß die Zuordnung des Speicherbereiches zum Schattenspeicher nach Bedarf, als ein dynamischer Prozeß, erfolgt.
15. Verfahren nach einem der vorstehenden Ansprüche, dadurch gekennzeichnet, daß Änderungen nur an den in dem Schattenspeicher geschriebenen Daten ausgeführt werden.
16. Verfahren nach einem der vorstehenden Ansprüche, dadurch gekennzeichnet, daß ein Status-Kommando durchgeführt wird, um den Status der Integritätseinheit zu erfragen, d. h. beispielsweise ob und welche Integritätseinheit noch nicht beendet ist.
17. Verfahren nach Anspruch 16, dadurch gekennzeichnet, daß aufgrund der aus dem Status-Kommando gewonnenen Information die Integritätseinheit bei einem Fehler abgebrochen wird.
18. Verfahren nach Anspruch 17, dadurch gekennzeichnet, daß die Integritätseinheit nach einem Fehler in dem Schreib- Lesegerät, in dem Schreibvorgang erfolgen sollte, abgebrochen und in einem anderen Schreib-Lesegerät geordnet beendet wird.
19. Verfahren entsprechend einem der vorstehenden Ansprüche, dadurch gekennzeichnet, daß die Integritätseinheit eine Transaktion ist, die isoliert und dauerhaft ist.
20. Verfahren nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, daß eine Repräsentation einer Zustandsfolge benutzt wird, die es erlaubt nur durch Aktivieren von Speicherzellen die Zustandsfolgen zu durchlaufen.
21. Verwendung des Verfahrens entsprechend einem der vorstehenden Ansprüche, um Datenbestände außerhalb einer Chipkarte konsistent mit den Daten auf der Chipkarte zu halten.
22. System mit mindestens einer Datenträgerkarte, die geeignet ist Daten zu speichern, dadurch gekennzeichnet, daß bei einer Kommunikation unter Beteiligung der Datenträgerkarte zur Sicherung der Integrität von Daten eine Sequenz von Schreibvorgängen, für die die Integrität der zu schreibenden Daten sichergestellt werden soll, auf der Chipkarte als eine Integrationseinheit definiert wird.
DE19600081A 1996-01-03 1996-01-03 Sicherung der Datenintegrität bei Datenträgerkarten Revoked DE19600081C2 (de)

Priority Applications (2)

Application Number Priority Date Filing Date Title
DE19600081A DE19600081C2 (de) 1996-01-03 1996-01-03 Sicherung der Datenintegrität bei Datenträgerkarten
US08/778,801 US5869823A (en) 1996-01-03 1997-01-03 Method and system for improving the integrity of data on a smartcard

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE19600081A DE19600081C2 (de) 1996-01-03 1996-01-03 Sicherung der Datenintegrität bei Datenträgerkarten

Publications (2)

Publication Number Publication Date
DE19600081A1 DE19600081A1 (de) 1997-07-17
DE19600081C2 true DE19600081C2 (de) 1999-11-18

Family

ID=7782100

Family Applications (1)

Application Number Title Priority Date Filing Date
DE19600081A Revoked DE19600081C2 (de) 1996-01-03 1996-01-03 Sicherung der Datenintegrität bei Datenträgerkarten

Country Status (2)

Country Link
US (1) US5869823A (de)
DE (1) DE19600081C2 (de)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE10129417A1 (de) * 2001-06-19 2003-01-09 Infineon Technologies Ag Verfahren zum Bearbeiten eines Speicherplatzes in einem Speicher einer Chipkarte

Families Citing this family (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6938825B1 (en) * 1989-04-24 2005-09-06 Ultracard, Inc. Data system
PT757336E (pt) 1995-08-04 2001-04-30 Belle Gate Invest B V Sistema de intercambio de dados que inclui unidades portateis de processamento de dados
US6385645B1 (en) 1995-08-04 2002-05-07 Belle Gate Investments B.V. Data exchange system comprising portable data processing units
DE69610297T2 (de) * 1996-07-05 2001-01-18 Hewlett Packard Co Steuerung eines Gerätverhaltens bei Entfernung eines physischen Mittels
US6856966B1 (en) * 1997-08-08 2005-02-15 Seta Corporation Product delivery methods
CN1322430A (zh) 1998-09-29 2001-11-14 太阳微系统公司 在话音上的数据叠加
DE19858840A1 (de) 1998-12-19 2000-06-21 Orga Kartensysteme Gmbh Verfahren zum bidirektionalen Datentransfer zwischen einem Terminal und einer Chipkarte sowie Chipkarte
US6535997B1 (en) * 1999-05-19 2003-03-18 International Business Machines Corporation Data integrity in smartcard transactions
ATE475139T1 (de) 1999-06-10 2010-08-15 Belle Gate Invest B V Vorrichtung zum speichern unterschiedlicher versionen von datensätzen in getrennten datenbereichen und verfahren zur aktualisierung eines datensatzes in einem speicher
US7036739B1 (en) * 1999-10-23 2006-05-02 Ultracard, Inc. Data storage device apparatus and method for using same
US8397998B1 (en) 1999-10-23 2013-03-19 Ultracard, Inc. Data storage device, apparatus and method for using same
US7487908B1 (en) 1999-10-23 2009-02-10 Ultracard, Inc. Article having an embedded accessible storage member, apparatus and method for using same
AU1586500A (en) 1999-12-06 2001-06-12 Sun Microsystems, Inc. Computer arrangement using non-refreshed dram
BR9917574A (pt) 1999-12-07 2002-08-06 Sun Microsystems Inc Meio legìvel por computador com microprocessador para controlar a leitura e computador disposto para se comunicar com tal meio
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
FR2805073B1 (fr) * 2000-02-11 2002-05-03 Gemplus Card Int Ecriture en temps reel securisee pour memoire non volatile
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
FR2830667A1 (fr) * 2001-10-05 2003-04-11 Gemplus Card Int Procede de determination d'une zone stable dans une memoire et dispositif de gestion d'une memoire associe
FR2833093A1 (fr) * 2001-12-03 2003-06-06 Schlumberger Systems & Service Procede d'echange de blocs de donnees, procede d'echange et de traitement de blocs de donnees, objet portatif, et automate pour la mise en oeuvre de procede
US7207067B2 (en) * 2002-11-12 2007-04-17 Aol Llc Enforcing data protection legislation in Web data services
US7290278B2 (en) 2003-10-02 2007-10-30 Aol Llc, A Delaware Limited Liability Company Identity based service system
EP1603043A2 (de) * 2004-06-02 2005-12-07 Proton World International N.V. Verfahren und Vorrichtung zum Testen der Unteilbarkeit von Befehlen in einem Mikroprozessor
SG133613A1 (en) * 2004-06-14 2007-07-30 Sony Corp Information management device and information management method
US9171187B2 (en) 2005-05-13 2015-10-27 Nokia Technologies Oy Implementation of an integrity-protected secure storage
US20060259789A1 (en) * 2005-05-13 2006-11-16 Nokia Corporation State maintenance
US8200952B2 (en) * 2006-10-25 2012-06-12 Microsoft Corporation Platform authentication via a transparent second factor
EP2102748B1 (de) * 2006-12-22 2012-02-01 International Business Machines Corporation System und verfahren zur wiederherstellung von speichertransaktionen
CN100535935C (zh) * 2006-12-26 2009-09-02 北京握奇数据系统有限公司 Cpu与逻辑加密双用智能卡及其数据同步方法
CN103309768B (zh) * 2012-03-16 2015-03-11 腾讯科技(深圳)有限公司 系统文件修复方法和装置

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4922456A (en) * 1988-04-29 1990-05-01 Scientific-Atlanta, Inc. Method of reducing wearout in a non-volatile memory with double buffer
EP0402683A2 (de) * 1989-06-14 1990-12-19 Digital Equipment Corporation Verfahren und Vorrichtung zur Aktualisierung in einem EEPROM-Speicher residenter "Firmware"

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5012407A (en) * 1984-12-11 1991-04-30 Finn Charles A Computer system which accesses operating system information and command handlers from optical storage via an auxiliary processor and cache memory
JPH01259483A (ja) * 1988-04-08 1989-10-17 Minolta Camera Co Ltd Icカード
ES2101124T3 (es) * 1991-11-05 1997-07-01 Thomson Multimedia Sa Metodo, aparatos emisor y receptor para explotacion por modulo.
US5361228A (en) * 1992-04-30 1994-11-01 Fuji Photo Film Co., Ltd. IC memory card system having a common data and address bus
FR2704081B1 (fr) * 1993-04-16 1995-05-19 France Telecom Procédé de mise à jour d'une carte à mémoire et carte à mémoire pour la mise en Óoeuvre de ce procédé.
FR2705820B1 (fr) * 1993-05-26 1995-08-11 Solaic Sa Procédé pour sécuriser les écritures de données sensibles dans la mémoire de stockage de données EEPROM d'une carte à mémoire, et carte à mémoire pour la mise en Óoeuvre de ce procédé.
US5489014A (en) * 1994-08-03 1996-02-06 Journomat Ag Apparatus for checking coins and reading cards in an article vending machine
NL9401406A (nl) * 1994-08-31 1996-04-01 Nederland Ptt Betaalsysteem met verbeterde integriteit.
US5689100A (en) * 1995-03-21 1997-11-18 Martiz, Inc. Debit card system and method for implementing incentive award program

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4922456A (en) * 1988-04-29 1990-05-01 Scientific-Atlanta, Inc. Method of reducing wearout in a non-volatile memory with double buffer
EP0402683A2 (de) * 1989-06-14 1990-12-19 Digital Equipment Corporation Verfahren und Vorrichtung zur Aktualisierung in einem EEPROM-Speicher residenter "Firmware"

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE10129417A1 (de) * 2001-06-19 2003-01-09 Infineon Technologies Ag Verfahren zum Bearbeiten eines Speicherplatzes in einem Speicher einer Chipkarte

Also Published As

Publication number Publication date
DE19600081A1 (de) 1997-07-17
US5869823A (en) 1999-02-09

Similar Documents

Publication Publication Date Title
DE19600081C2 (de) Sicherung der Datenintegrität bei Datenträgerkarten
DE60030872T2 (de) Verfahren und anordnung um atomische aktualisierungen durchzuführen durch verwendung eines logischen flaschspeichergerätes
DE19615948C2 (de) Flash-Festkörper-Plattenspeicher-Karte
DE602005000819T2 (de) Aufrechterhaltung der konsistenz einer fernkopie unter verwendung von virtualisierung
DE60217883T2 (de) Verfahren zum schreiben von daten in einen nicht-flüchtigen speicher
DE3805291A1 (de) Tragbare elektronische vorrichtung
DE10308545A1 (de) Verfahren und Vorrichtung zum Aktualisieren eines verteilten Programms
DE102006029690A1 (de) Beibehaltung einer Identifikation einer elektronischen Steuereinheit bei Umprogrammierungsereignissen
DE69820164T2 (de) Speichervorrichtung sowie Datenlese- und Schreibverfahren
EP0128362A1 (de) Schaltungsanordnung mit einem Speicher und einer Zugriffskontrolleinheit
DE19839680B4 (de) Verfahren und Vorrichtung zur Veränderung des Speicherinhalts von Steuergeräten
DE102004014227A1 (de) Steuervorrichtung für einen nicht flüchtigen Speicher
EP1883906A1 (de) Tragbarer datenträger mit sicherer datenverarbeitung
DE3911721C2 (de)
EP0489091B1 (de) Verfahren zur kodierung und verfügbarkeit einer chipkarte
EP1514171B1 (de) Verfahren zur wiederherstellung von verwaltungsdatensätzen eines blockweise löschbaren speichers
DE10059006B4 (de) Verfahren und System zur sicheren Verwaltung von Dateien in nichtflüchtigen Speichern
DE60210118T2 (de) Sicherheitseinrichtung für eine massenspeicherung
DE60317405T2 (de) Verfahren zur Steuerung der Ausbreitung von Metadatenelementen
EP1308842B1 (de) Verfahren und Vorrichtung zur Verwaltung eines Datenspeichers
DE10035955A1 (de) Verfahren zum Identifizieren eines reservierten Datenbereichs sowie entsprechendes Gerät
DE102004006308B4 (de) Verfahren zum Verändern von Programmcode eines tragbaren Datenträgers mittels Patchdaten
DE102007044199A1 (de) Steuergerät für einen Massenspeicher und Verfahren zum Bereitstellen von Daten für einen Startvorgang eines Computers
EP1276116B1 (de) Verfahren zur Speicherung zusammengehöriger Datensätze
WO2002099650A2 (de) Verfahren zur verwaltung eines speichers einer chipkarte

Legal Events

Date Code Title Description
OP8 Request for examination as to paragraph 44 patent law
D2 Grant after examination
8363 Opposition against the patent
8331 Complete revocation