(19)
(11) EP 0 224 639 A1

(12) EUROPÄISCHE PATENTANMELDUNG

(43) Veröffentlichungstag:
10.06.1987  Patentblatt  1987/24

(21) Anmeldenummer: 86108602.3

(22) Anmeldetag:  24.06.1986
(51) Internationale Patentklassifikation (IPC)4G07F 7/10, G06F 12/14
(84) Benannte Vertragsstaaten:
AT CH DE FR GB IT LI NL SE

(30) Priorität: 08.07.1985 DE 3524371

(71) Anmelder: SIEMENS AKTIENGESELLSCHAFT
D-80333 München (DE)

(72) Erfinder:
  • Schrenk, Hartmut, Dr., Phys.
    D-8013 Haar (DE)


(56) Entgegenhaltungen: : 
   
       


    (54) Verfahren zum Kontrollieren eines Speicherzugriffs auf einer Chipkarte und Anordnung zur Durchführung des Verfahrens


    (57) Zur Identifikation von Chipkarten einem Terminal ver­wendet man einen Geheimcode, der im Terminal und auf der Karte abgespeichert ist, und der vor jeder Verwendung der Karte überprüft wird. Erfindungsgemäß sind auf der Karte mehrere derartiger Codes abgespeichert, die einen Wechsel der zur Identifikation oder Authentifikation verwendeten Geheimdaten ermöglichen. Diese Codedaten sind über den Inhalt eines Kontrollspeichers (13) aktivierbar bzw. deakti­vierbar. Die Aktivierung ist durch einen zweiten Geheim­code geschützt, der nur in einer gur gegen Mißbrauch ge­sicherten Umgebung angewendet wird.




    Beschreibung


    [0001] Die Erfindung betrifft ain Verfahren zum Kontrollieren eines Speicherzugriffs auf einer Chipkarte und einer An­ordnung zur Durchführung des Verfahrens, wie sie in den Oberbegriffen der Ansprüche 1 und 7 beschrieben sind.

    [0002] Zum bargeldlosen Bezahlen von Waren oder zum Abrechnen von Dienstleistungen oder ähnlichem sind datengesteuerte Zahlungssysteme bekannt, die beispielsweise in der Zeitschrift "Betriebspraxis", B. Bl. 2/1982, Seite 48, von Dr. R. Nowak und W. Röder unter dem Titel "Die Chipkarte - nächste Generation der Automatenkarte" beschrieben sind. Die dabei verwendeten Karten tragen als ein wesent­liches Element einen nichtflüchtigen elektrischen Daten­speicher, auf den über elektrische Knotakte an der Kar­tenoberfläche zugegriffen werden kann. Über ein Karten­lesegerät wird von einer Recheneinheit bei jeden Gebrauch auf den Speicherinhalt zugegriffen, der dabei gegebenen­falls geändert wird.

    [0003] Zur Anwendung kommen derartige Karten in Sicherheits- und Zugriffssystemen, in Abrechnungs- oder Registriersystemen und in Debit- oder Kreditsystemen. Um eine weite Verbrei­tung und häufigen Gebrauch der Karten zu gewährleisten, gibt es Betreiber solcher Systeme, die eine Vielzahl von Karten ausgeben und die ein weitverzweigtes Netz von Le­segeräten und Rechenanlagen anbieten. Um Mißbräuche der Daten auszuschließen, müssen dabei jedoch hohe Sicher­ heitsanforderungen an die Kartensysteme gestellt werden. Besonders die Trägerkarten, deren Verbreitung nicht immer kontrollierbar ist, müssen vor einer Benutzung durch Un­berechtigte geschützt werden.

    [0004] Dies kann durch eine Freigabeoperation erreicht werden, bei welcher ein Datenvergleich zwischen einem von einer Bedienperson eingegebenen oder von einer Rechenanlage verschlüsselten, personenbezogenen PIN- Codewort mit ei­nem abgespeicherten Referenzwort durchgeführt wird. In einer weiteren Prüfung wird innerhalb eines Terminals an­hand eines kartenbezogenen Codes, der auf der Karte und im Terminal abgespeichert ist, die Karte identifiziert. Auf diese Weise wird die Benutzung einer bestimmten Karte in einem oder mehreren bestimmten Terminals auf ihre Be­rechtigung hin überprüft. Abhängig vom Vergleichsergebnis wird der Zugriff freigegeben beziehungsweise unterbunden. Wenn ein kartenbezogener Geheimcode gleichlautend in einer größeren Anzahl von Karten und Terminals abgespeichert ist, besteht ein Risiko, daß dieser Geheimcode auch einem Unberechtigten bakannt wird, der damit selbst gültige Kar­ten oder Terminals unerlaubt installieren könnte.

    [0005] Der Schutz durch einen kartenbezogenen Code versagt also dann, wenn die Daten beispielsweie durch Verrat bekannt werden. Eine Sicherung dagegen besteht darin, die Gültig­keitsdauer umlaufender Karten einzuschränken. Diese Ein­schränkung erfordert jedoch eine regelmäßige Ausgabe neu­er Karten und ist daher nur aufwendig und umständlich zu handhaben.

    [0006] Der Erfindung lag daher die Aufgabe zugrunde, ein Verfah­ren und eine Anordnung der oben ganannten Art anzugeben, welche vor Mißbrauch mit den zur Identifikation oder Authentifikation verwendeten kartenbezogenen Geheimdaten schützen und die Gültigkeitsdauer des Geheimcodes be­grenzbar machen, ohne den Kartenumlauf einzuschränken.

    [0007] Diese Aufgabe wird gemäß den kennzeichnenden Teilen der Ansprüche 1 beziehungsweise 7 gelöst.

    [0008] Die Erfindung beruht darauf, daß der Kartenchip eine Lo­gik und einen Kontrollspeicher besitzt, die einen Wechsel der zur Identifikation oder Authentifikation verwendeten kartenbezogenen Geheimdaten im Chip ermöglicht, die im folgenden als erster Code bezeichnet sind. Dazu werden in einem Hauptspeicher auf dem Chip mehrere dieser ersten Codes programmiert. Die Aktivierung einer Adresse des Hauptspeichers, um einen ersten Code zu programmieren ist durch einen zweiten Code geschützt. Wird dieser zweite Geheimcode aktiviert, so muß die betreffende Adresse des Hauptspeichers automatisch gegen Auslesen gesperrt werden und stattdessen die Einwirkung auf eine Komparatorlogik freigegeben werden. Der zweite Code ist als Systemgeheim­nis weder auf der Karte noch auf einem Terminal noch vom Karteninhaber, sondern nur in einer gut gegen Betrug ge­sicherter Umgebung einer Zentrale anzuwenden.

    [0009] Zur Anwendung in einem Chipkartensystem werden bei der Ausgabe der Chipkarten also vorsorglich mehrere erste Codes unter Benutzung des zweiten Codes vorprogrammiert. Davon wird - wahlweise im Terminal festgelegt - nur je­weils auf einen einzigen ersten Code bei einer Kartenbe­nutzung zugegriffen. Die übrigen vorsorglich vorbereiteten ersten Codes unterliegen keinem Betrugsrisiko, solange sie im Terminal nicht angewendet werden. Ist die Gültig­keitsdauer eines Codes abgelaufen, so läßt sich in den Terminals selbst der aktuelle erste Code leicht ersetzen. Die Anzahl dieser Terminals ist in der Praxis vergleichs­weise gering. Nach dem Umstellen auf einen geänderten er­sten Code läßt sich auch in allen umlaufenden Chipkarten und bei ihrer Wiederbenutzung in einem beliebigen Terminal ein ungültig gewordener erster Code allein durch Schreiben im Kontrollspeicher oder durch Löschen sperren. Damit verringert sich das Risiko, daß mit unberechtigt manipu­lierten Terminals über abgelaufene und damit nicht mehr geheime erste Codeworte die Besitzer von Chipkarten ge­schädigt werden können.

    [0010] Weiterbildungen der Erfindung ergeben sich aus den Unter­ansprüchen.

    [0011] Im folgenden wird die Erfindung anhand eines Ausführungs­beipieles weiter beschrieben.

    [0012] Die Figur zeigt eine Speicheranordnung mit einer Logikein­heit zur Zugriffssicherung.

    [0013] Die Anordnung der Figur weist eine Speicheranordnung 1, einen Zeilendecoder 2, einen Komparator 4, ein Datenregi­ster 3 und eine Logikeinheit 5 auf. Die Speicheranordnung 1 setzt sich aus einem Hauptspeicher 11 mit einer Viel­zahl n von wortweise adressierbaren Speicherplätzen, aus einem Kontrollspeicher 13, dessen Speicherplätze den Speicherplätzen des Hauptspeichers 13 adreßmäßig zugeord­net und gemeinsam über n Adressleitungen A mit diesen adressierbar sind sowie einem weiteren unabhängigen Be­reich (zweiter Codebereich 14) zusammen. Der Hauptspei­cher 11 ist in Abhängigkeit vom Programmierzustand des Kontrollspeichers 11 in einen Anwenderbereich 15 und einen ersten Codebereich 16 aufgeteilt. Dieser weist in dem wiedergegebenen Beispiel Speicherplätze mit Adressen A1, A2 bis AK auf. Die Adressen des Anwenderspeichers 15 lauten A(K+1) bis An. Das Datenregister 3 zur Ein- und Ausgabe von Daten in die Speicheranordnung ist für die Wortlänge des Haupt- und ersten Kontrollspeichers 11, 14 und zusätzlich für die Breite des Kontrollspeichers 13 ausgelegt. Bei einer Wortlänge von m Bits für den Haupt­speicher 11 und 2 Bits für den Kontrollspeicher 13 muß es also m + 2 Bits aufnehmen. Zwischen dem Datenregister 3 und dem gemeinsamen Ein- Ausgang des Hauptspeichers 11 und ersten Kontrollspeichers 14 liegt der m Bit breite Daten­komparator 4 zum Vergleich eines Speicherinhalts mit einem Registerinhalt.

    [0014] Die Kontrollogik 5 besteht - im hier wiedergegebenen Bei­spiel - aus zwei Flip-Flops 6 sowie Und- und NOR-Gattern. Sie erzeugt ein Freigabesignal F1, welches den Schreib-­Lese- und Löschzugriff auf den Hauptspeicher 11 kontrol­liert. Ein weiteres Freigabesignal F2 kontrolliert das Schreiben eines Kontrollbits B2 im Kontrollspeicher 13.

    [0015] Im folgenden wird anhand von Beispielen die Funktion der gesamten Anordnung beschrieben. Dazu wird angenommen, daß in der ersten Speicherstelle (Adresse A1) des ersten Co­debereichs ein erster Code abgespeichert ist, der bereits deaktiviert ist. Die zweite Speicherstelle (Adresse A2) enthält einen ersten Code, der aktuell für die Anwender­speicherzugriffe benutzt ist. In den übrigen Speicherstel­len (Adresse AK) sind vorsorglich weitere erste Codes ab­gelegt, die zwar während der aktuellen Speicherzugriffe noch nicht benötigt werden, die jedoch für den Fall der Deaktivierung des Codes im zweiten Speicherplatz zur Ver­fügung stehen. Die Anzahl derartiger vorsorglicher abge­legter erster Codes hängt davon ab, wie oft mit einer Codeänderung zu rechnen ist.

    [0016] Der Kontrollspeicher 13 weist pro Speicheradresse A1 bis An vorzugsweise zwei Bitstellen mit jeweils einem Kon­trollbit B1 beziehungsweise B2 auf. Sie legen fest, ob die zugehörigen Speicherplätze im Hauptspeicher 1 als An­wenderspeicher 15 (B1 = 1 und B2 = 1) oder als erster Codespeicher (B2 = 0) dienen, und ob es sich um einen gültigen ersten Code (B1 = 1) oder um einen deaktivierten ersten Code (B1 = 0) handelt.

    [0017] Unter der Annahme, ein vom Terminal übernommenes und im Datenregister 3 abgelegtes m-Bit breites Datenwort berech­tigt zu einem Zugriff auf den Anwenderspeicher 15, wird nach einem Vergleich mit dem unter der Adresse A2 abge­speicherten aktuellen ersten Code das Komparatorsignal K logisch 1 sein. Als weitere Voraussetzung für den Zugang zum Anwenderspeicher 15 muß sichergestellt sein, daß tat­sächlich ein aktueller erster Code sowie der Hauptspei­cher 11 und nicht der unabhängige Bereich 14 zum Vergleich herangezogen wurde. Diese Überprüfung erfolgt einerseits anhand der Kontrollbits B1, B2 über ein NOR-Gatter 17 und andererseits über die Adreßleitungen A an einem NOR-Gatter 20 und dann ebenfalls über das NOR-Gatter 17. Sind alle diese Bedingungen gegeben, so liegt das Steuersignal T1 ebenfalls auf logisch 1 und das Freigabe Flip-Flop 6 wird über ein Und-Gatter 22 gesetzt. Über ein NOR-Gatter 18 wird der Q-Ausgang des Freigabe Flip-Flops mit dem Ausgang des NOR-Gatters verknüpft und das Freigabesignal F1 nimmt einen log.1 Pegel an.

    [0018] Wenn also das Freigabe Flip-Flop 6 gesetzt ist, dann ist ein Lesen oder eine andere Anwendung des Anwenderspei­chers 15 möglich.

    [0019] Falls jedoch bei der Überprüfung des vom Benutzer angege­benen Datenwortes mindestens eines der oben beschriebenen Bedinungen nicht erfüllt ist, wird das Freigabesignal F1 nicht erzeugt und der Zugriff auf den Anwenderspeicher 15 nicht freigegeben.

    [0020] Die Aktivierung eines Speicherbereichs als Speicherplatz für einen ersten Code erfolgt unter Anwendung des zweiten Codes durch Schreiben eines oder mehrerer Bits im Kon­trollspeicher 13. Im vorliegenden Beispiel handelt es sich um das Kontrollbit B2. Mit der Aktivierung als Code­wort ist eine Sperrung des Auslesens, der Freigabe für Vergleichsoperationen und ein Schutz gegen Veränderung durch Schreiben oder Löschen verknüpt. Das Sperren eines gültigen ersten Codes ist ohne Anwendung des zweiten Codes möglich. Im Beispiel nimmt das Kontrollbit B1 dazu den log.0 Zustand an.

    [0021] Im Falle eines Speichers 1 vom E²PROM-Typ kann die Deak­tivierung auch unmittelbar durch Löschen des Kontrollbits B2 im Kontrollspeicher 13, gemeinsam mit dem ungültig ge­wordenen ersten Codewort erfolgen. In diesem Fall muß das Löschen ohne Anwenden des zweiten Codes möglich sein, wäh­rend bei einer Sperrung durch das Kontrollbit B1 auch das Löschen von der Anwendung des zweiten Codes abhängig ge­macht werden kann.

    [0022] Ein mit einem ersten Code beschriebener Kontrollspeicher 13 wird nur gemeinsam mit dem dazugehörenden, ungültig ge­wordenen ersten Code gelöscht. Auf diese Weise wird ver­hindert, daß durch eine unberechtigte Deaktivierung vor­programmierter erster Codeworte diese lesbar gemacht wer­den könnten.

    [0023] Das Schreiben des Kontrollspeichers 13, insbesondere des Kontrollbits B2 zur Umwandlung eines Anwenderspeichers 11 in einen ersten Codespeicher 16 setzt die Aktivierung ei­nes zweiten Freigabesignals F2 voraus. Nach einem positi­ven Vergleich eines extern eingegebenen Datenwortes mit dem zweiten Codewort aus dem zweiten Codespeicher 14 im Komparator 4 wird ein zweites Freigabe Flip-Flop 7 ge­setzt, wenn der zweite Codebereich 14 über seine Adresse T2 aktiviert ist.

    [0024] Die beiden Freigabe Flip-Flops 6, 7 werden beim Einschal­ten der Anordnung über ein Rücksetzsignal POR zurückge­setzt.

    [0025] Abschließend seien die wesentlichen Merkmale des Ausfüh­rungsbeispiels noch einmal aufgeführt. Abhängig vom Pro­grammierzustand des Kontrollspeichers 13 ist der Haupt­speicher 11 entweder ein Anwenderspeicher 15 oder ein erster Codebereich 16. Im ersten Fall ist das Kontrollbit B2 = 1. Im zweiten Fall ist das Kontrollbit B2 = 0 durch Schreiben mit Hilfe des Codes im zweiten Codebereich 14. Es gibt deaktivierte erste Codes, die durch das Kontroll­bit B1 = 0 gekennzeichnet sind, und die erst durch Löschen wieder in einen Anwenderbereich zurückgewandelt werden. Eine durch den ersten Code erlangte Speicherfreigabe be­zieht sich stets auf den Teil des Hauptspeichers, der auf­grund des Kontrollbits B1 = 1 noch als Anwenderbereich wirkt. Für den ersten Codebereich 16 (Kontrollbit B2 = 0) gilt, daß ein Auslesen oder Ändern - mit Ausnahme eines vollständigen Löschens gemeinsam mit dem Kontrollbit B2 - ohne den zweiten Code nicht möglich ist.


    Ansprüche

    1. Verfahren zum Kontrollieren eines Speicherzugriffs auf einen Anwender- und einen ersten Codebereich (15, 16) eines Hauptspeichers (11) einer Chipkarte, wobei eine in­terne Freigabeprodezur mit einem Datenvergleich eines er­sten Codes aus dem ersten Codebereich (16) und eines Da­tenwortes aus einem Terminal durchgeführt wird,
    dadurch gekennzeichnet,
    daß die Adressen (A) des Hauptspeichers (11) und eines Kontrollspeichers (13) fest miteinander gekoppelt wer­den,
    daß mit jeweils einem Kontrollbit (B2) im Kontrollspei­cher (13) mehrere Speicherplätze des Hauptspeichers (11) als erster Codebereich (16) markiert werden,
    daß jeweils mit einem weiteren Kontrollbit (B1) im Kon­trollspeicher (13) ein im zugeordneten Speicherplatz des ersten Codebereichs (16) abgelegter erster Code als akti­viert oder deaktiviert markiert wird,
    daß bei einer Freigabeprozedur nur dann ein Freigabesignal (F1) erzeugt wird, wenn ein Speicherplatz mit einem akti­vierten, ersten Code adressiert wird und wenn Übereinstim­mung mit dem vom Terminal eingegebenen Datenwort herrscht,
    und daß das erste Freigabesignal (F1) nicht erzeugt wird, wenn ein deaktiviertes Codewort adressiert wird und/oder wenn der betreffende erste Code nicht mit dem Datenwort übereinstimmt.
     
    2. Verfahren nach Anspruch 1, dadurch ge­kennzeichnet, daß ein zweites Freigabesi­gnal (F2) nur dann erzeugt wird, wenn ein in einem zweiten Codebereich (14) abgelegter zweiter Code adressiert ist, und wenn Übereinstimmung des zweiten Codes mit einem ex­tern eingegebenen Datenwort gegeben ist, und daß erst nach Erzeugung des zweiten Freigabesingals (F2) eine Program­mierung des Kontrollspeichers (13) für eine - zumindest teilweise - Umwandlung des Anwenderbereichs (15) in einen ersten Codebereich (16) durchgeführt werden kann.
     
    3. Verfahren nach Anspruch 2, dadurch ge­kennzeichnet, daß aktivierte erste Codeda­ten ohne Anwendung der zweiten Codedaten deaktiviert, ge­sperrt oder gelöscht werden.
     
    4. Verfahren nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, daß zur Deaktivierung von ersten Codedaten wenigstens ein zweites Bit (B1) in den Kontrollspeicher (13) geschrieben wird.
     
    5. Verfahren nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, daß eine adressenmäßig gekoppelte Speicherstelle im ersten Codebe­reich (16) und im Kontrollspeicher (13) zusammen gelöscht werden.
     
    6. Verfahren nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, daß zur Reaktivierung einer Speicherstelle des ersten Codebereichs (16) als Anwenderbereich (15) die im Kontrollspeicher (13) geschriebenen Bits gemeinsam mit den ungültig gewordenen ersten Codedaten gelöscht werden.
     
    7. Anordnung zur Durchführung des Verfahrens nach An­spruch 1, gekennzeichnet durch einen er­sten Codebereich (16) in der Speicheranordnung (1) mit mehreren Speicherplätzen zur Aufnahme mehrerer erster Co­dedaten, durch einen Kontrollspeicher (13), dessen Spei­cherplätze adreßmäßig mit den Speicherplätzen des ersten Codebereichs (16) gekoppelt sind, und durch eine Freiga­belogik (5), an der ausgangsseitig ein Freigabesignal (F1) zumindest nur dann abgreifbar ist, wenn durch den Inhalt des Kontrollspeichers (13) die im zugehörigen Codebereich (16) enthaltenen Codedaten als "aktiviert" gekennzeichnet sind, und wenn der Vergleich zwischen den ersten Codedaten und einem extern angegebenen Datenwort erfolgreich ist.
     
    8. Anordnung nach Anspruch 7, gekennzeich­net durch einen adreßmäßig von den übrigen Speicher­bereichen unabhängigen zweiten Codebereich (14) zur Auf­nahme von zweiten Codedaten, und durch eine Freigabelogik (5), an der ausgangsseitig ein weiteres Freigabesignal (F2) zum Programmierzugriff auf den Kontrollspeicher (13) nur nach einem erfolgreichen Datenvergleich zwischen den zweiten Codedaten und einem extern eingegebenen Datenwort abgreifbar ist.
     




    Zeichnung







    Recherchenbericht