DE10218796A1 - Verfahren zum Herstellen eines elektronischen Sicherheitsmoduls - Google Patents

Verfahren zum Herstellen eines elektronischen Sicherheitsmoduls

Info

Publication number
DE10218796A1
DE10218796A1 DE2002118796 DE10218796A DE10218796A1 DE 10218796 A1 DE10218796 A1 DE 10218796A1 DE 2002118796 DE2002118796 DE 2002118796 DE 10218796 A DE10218796 A DE 10218796A DE 10218796 A1 DE10218796 A1 DE 10218796A1
Authority
DE
Germany
Prior art keywords
chip
area
data
code
test
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.)
Ceased
Application number
DE2002118796
Other languages
English (en)
Inventor
Thomas Wolter
Hermann Puettmann
Regina Tix
Guido Borneis
Hans Georg Richter
Hans Peter Kraus
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.)
BANK VERLAG GmbH
DEUTSCHER GENOSSENSCHAFTS VERL
DEUTSCHER SPARKASSEN VERLAG GM
VOEB ZVD BANK fur ZAHLUNGSVER
Original Assignee
BANK VERLAG GmbH
DEUTSCHER GENOSSENSCHAFTS VERL
DEUTSCHER SPARKASSEN VERLAG GM
VOEB ZVD BANK fur ZAHLUNGSVER
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
Application filed by BANK VERLAG GmbH, DEUTSCHER GENOSSENSCHAFTS VERL, DEUTSCHER SPARKASSEN VERLAG GM, VOEB ZVD BANK fur ZAHLUNGSVER filed Critical BANK VERLAG GmbH
Priority to DE2002118796 priority Critical patent/DE10218796A1/de
Publication of DE10218796A1 publication Critical patent/DE10218796A1/de
Ceased legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06KGRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
    • G06K19/00Record carriers for use with machines and with at least a part designed to carry digital markings
    • G06K19/06Record 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/067Record 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/07Record 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
    • G06K19/0719Record 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 at least one of the integrated circuit chips comprising an arrangement for application selection, e.g. an acceleration sensor or a set of radio buttons
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06KGRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
    • G06K19/00Record carriers for use with machines and with at least a part designed to carry digital markings
    • G06K19/06Record 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/067Record 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/07Record 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06KGRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
    • G06K7/00Methods or arrangements for sensing record carriers, e.g. for reading patterns
    • G06K7/0095Testing the sensing arrangement, e.g. testing if a magnetic card reader, bar code reader, RFID interrogator or smart card reader functions properly

Abstract

Es wird vorgesehen, bei der Produktion von Chipkarten den Speicher der Chipkarte so aufzuteilen, dass dieser drei getrennte Speicherbereiche aufweist, denen jeweils eigene Funktionen zugeordnet werden. Es handelt sich um einen Startbereich, einen Bereich für Prüfdaten und einen Bereich, in dem die Daten und der Code für den Betrieb der Chipkarte untergebracht werden.

Description

  • Die Erfindung betrifft ein Verfahren zum Herstellen elektronischer Sicherheitsmodule und die nach diesem Verfahren hergestellten Sicherheitsmodule. Chipkarten, die beispielsweise als Zahlungsmittel oder als Signaturkarte verwendet werden können, müssen nach bestimmten vorgeschriebenen Verfahren so gestaltet werden, dass ein Missbrauch ausgeschlossen wird.
  • An der Fertigung einer solchen Chipkarte sind verschiedene Instanzen beteiligt. Zunächst gibt es den Chiphersteller, der also das Kernstück der Chipkarte produziert. Auf den Chip wird während der Produktion eine ROM-Maske aufgebracht, die von einem anderen Hersteller geliefert wird. Die ROM-Maske enthält unter anderem den Betriebssystemkern, der für den Betrieb der Chipkarte erforderlich ist.
  • Beim letzten Vorgang der Herstellung der Chipkarte muss diese zunächst initialisiert und anschließend personalisiert werden. Bei der Initialisierung werden die Voraussetzungen geschaffen, alle Personalisierungsdaten in den Speicherbereich des Chips zu laden. Dabei werden alle global nötigen Daten übertragen und die nötigen Dateistrukturen angelegt.
  • Bei der anschließenden Personalisierung werden die individuellen Daten in die Chipkarte eingebracht. Die Karten werden dann von den Abnehmern, beispielsweise kreditwirtschaftlichen Verlagen, an Banken oder direkt an Endkunden geliefert.
  • Es muss bei der Personalisierung sichergestellt werden, dass die hierzu gehörenden Daten nicht abgehört werden können. Daher werden die Initialisierung und Personalisierung als getrennte Prozessschritte behandelt und auch an unterschiedlichen Stellen durchgeführt.
  • Der Erfindung liegt die Aufgabe zu Grunde, ein Sicherheitsmodul, insbesondere eine Chipkarte in sicherheitstechnischer Hinsicht weiter zu verbessern.
  • Zur Lösung dieser Aufgabe schlägt die Erfindung ein Verfahren mit den im Anspruch 1 genannten Merkmalen vor. Die Erfindung schlägt ebenfalls eine nach diesem Verfahren herstellbares Sicherheitsmodul vor. Weiterbildungen der Erfindung sind Gegenstand von Unteransprüchen.
  • Durch die Aufteilung des Speichers der Chipkarte in die erwähnten drei Bereiche, nämlich den Startbereich, den Prüfbereich und einen Bereich für Daten und Code, kann dafür gesorgt werden, dass ein Zugriff auf die einzelnen Speicherbereiche nur unter ganz bestimmten Voraussetzungen möglich ist.
  • Während der Startbereich und der Bereich für die Daten und Code in dem nicht- flüchtigem Speicher angeordnet werden, ist es möglich und liegt im Rahmen der Erfindung, den Prüfbereich sowohl in diesem als auch im flüchtigen Speicher anzuordnen, gegebenenfalls auch aufgeteilt in beiden diesen Bereichen.
  • In Weiterbildung der Erfindung kann vorgesehen sein, dass beim ROM- Maskenhersteller der Bereich für die Daten und den Code beispielsweise durch Angabe der Grenzen dieses Speicherbereichs festgelegt wird. Später kann noch eine Verkleinerung dieses Bereichs erfolgen, jedoch keine Vergrößerung mehr. Dadurch ist auch sichergestellt, dass nicht bewusst oder unabsichtlich auf die anderen Bereiche zugegriffen wird. Die nachträgliche Einschränkung des Speicherbereichs, bei dem es sich nicht um einen zusammenhängenden Speicherbereich zu handeln braucht, hat den Vorteil, dass ein kleinerer Speicher schneller beschrieben werden kann.
  • Bei der Produktion der Chipkarte wird zu Beginn der Initialisierung zunächst das Initialisierungsimage in den Bereich für die Daten und den Code des nichtflüchtigen Speichers eingebracht.
  • Anschließend ist vorgesehen, dass in den Prüfbereich Prüfdaten der unterschiedlichsten Art eingespeichert werden. Diese Prüfdaten sollen dazu dienen, in einem weiteren Verfahrensschritt bei der Herstellung der Chipkarte den Inhalt des Daten/Code-Bereichs auf Richtigkeit zu überprüfen. Erst dann, wenn diese Überprüfung ein positives Ergebnis ergibt, kann die Chipkarte so weit fertig gestellt werden, dass ein Zugriff auf die im Daten/Code bereits enthaltenen Programme möglich wird. Falls dagegen die Prüfung negativ verläuft, wird die Chipkarte für die weitere Benutzung gesperrt. Es ist dann nur noch möglich, das Initialisierungsimage wieder von neuem einzubringen und dann nach erneutem Einschreiben der Prüfdaten wieder mit der Prüfung fortzufahren.
  • Ein mögliches Beispiel ist folgendes:
    Bei der Prüfung wird in einem Schritt die Echtheit der eingebrachten Daten in den Daten/Code-Bereich überprüft, wobei sich die dafür erforderlichen Prüfdaten, z. B. kryptographische Schlüssel, innerhalb des Prüfdatenbereichs befinden. Anschließend wird die Authentizität des Prüfbereichs durch eine weitere Prüfung sichergestellt, wobei hierfür Prüfdaten innerhalb des ROMs angewendet werden. Insbesondere kann letztere Prüfung sicherstellen, dass der Prüfdatenbereich selbst mit authentischen Daten gefüllt wurde.
  • Vorzugsweise wird das zweite Authentizitätsmerkmal durch den Abnehmer angebracht. Somit wird verhindert, dass andere als durch den Abnehmer zugelassene Daten geladen werden. Der Abnehmer kann so z. B. sicherstellen, dass auf dem elektronischen Sicherheitselement (z. B. Chipkarte) ausschließlich nach den jeweiligen Sicherheitsanforderungen (z. B. ITSEC, Common Criteria) evaluierte Speicherinhalte geladen sind. Insbesondere können so die Anforderungen an Signaturerstellungseinheiten nach dem Signaturgesetz garantiert werden.
  • Weitere Merkmale, Einzelheiten und Vorzüge der Erfindung ergeben sich aus der folgenden Beschreibung einer bevorzugten Ausführungsform der Erfindung sowie anhand der Zeichnung. Hierbei zeigen:
  • Fig. 1 schematisch den Aufbau des Chips einer Chipkarte;
  • Fig. 2 schematisch den Aufbau des Chips nach Einbringung des Initialisierungsimages;
  • Fig. 3 die Einbringung des abnehmerspezifischen geheimen Schlüssels;
  • Fig. 4 das Einbringen der Prüfdaten beim Chipkartenhersteller;
  • Fig. 5 den Zustand des Chips nach erfolgter Überprüfung.
  • Der Chip enthält eine ROM-Maske 1, die von dem ROM-Maskenhersteller produziert und von dem Chiphersteller in den Chip eingebracht wird. Die ROM- Maske enthält unter anderem das Betriebssystem, das für die weiteren Herstellungsschritte und den Betrieb des Chips erforderlich ist.
  • Weiterhin enthält der Chip ein EEPROM 2, das zur Aufnahme von Daten und Programmcode bestimmt ist. Das EEPROM 2 ist in drei Bereiche aufgeteilt, nämlich einen Startbereich 3, einen Prüfbereich 4 und einen Bereich 5 für Daten und Programmcode.
  • Fig. 1 zeigt den Zustand beim Chiphersteller, in dessen sicherer Umgebung 6 sein Schlüssel aus einem Speicherbereich 7 auf gesichertem Weg in einen Speicherbereich 8 des Startbereichs 3 des EEPROMs eingeschrieben wird.
  • Im Einzelnen gilt dabei folgendes:
    Key-Management des Chipherstellers und der Abnehmer des Chipherstellers, z. B. Verlage:
    Der Chiphersteller bringt bei der Chipproduktion die ROM-Maske in die evaluierte Chip-Hardware ein. Die Produktionsumgebung des Chipherstellers kann nach den jeweiligen Sicherheitsanforderungen eingereichtet und/oder evaluiert sein, insbesondere entsprechend der jeweils anzuwendenden Vorgaben von Signaturgesetz und Signaturverordnung. Der Chiphersteller bestätigt dem Abnehmer, dass ausschließlich Chips verwendet werden, die die jeweiligen Sicherheitsanforderungen erfüllen.
  • ROM-Maske des Chips
  • Der ROM-Maskenhersteller realisiert die grundlegenden Funktionen des Betriebssystems und evtl. von Anwendungsteilen in Form einer ROM-Maske.
  • Die ROM-Maske enthält für jeden Abnehmer, beispielsweise einen Verlag, zwei 20 Byte lange Hash-Werte über einen verlagsspezifischen öffentlichen Schlüssel PK-Verlag-Chip sowie die 2 Byte lange Byte-Längen des Modulus und die 3 Byte lange Schlüsselkennung Info-PK-Verlag zu dem jeweiligen PK-Verlag- Chip.
  • Jeder Verlag stellt dazu im Vorfeld dem ROM-Maskenhersteller diese Werte für Hash-Wert, Byte-Länge und Info-PK-Verlag zur Verfügung. Zusätzlich erhält der ROM-Maskenhersteller den Modulus zum Nachrechnen des Hash-Wertes.
  • Die Fig. 1 zeigt die Anordnung der Hashwerte in den Feldern 9 bis 12 der ROM-Maske des Chips, jeder Hash-Wert wird wie oben beschrieben in der ROM-Maske durch die jeweiligen Zusatzinformationen ergänzt.
  • Die ROM-Maske wird anschließend vom Evaluator nach den gemäß Signaturgesetz vorgesehenen Sicherheitsanforderungen für die technische Komponente zur Erzeugung und Speicherung des Signaturschlüssels evaluiert und dem Chiphersteller zur Aufbringung auf dem evaluierten Chip übergeben.
  • Im Rahmen der Chipherstellung bringt der Chiphersteller den Triple-DES- Schlüssel K-Chip zusammen mit Nebeninformationen zum Schlüssel, das Chippasswort und weitere Daten gesichert in den Startbereich 3 des EEPROMs (Größe in der Regel 64 Bytes) der Chipkarte ein.
  • Das Betriebssystem des Chips muss durch geeignete Maßnahmen dafür Sorge tragen, dass der eingebrachte Schlüssel K-Chip und das Chippasswort nicht aus dem EEPROM auslesbar sind und der Startbereich nicht manipulierbar ist. Des Weiteren darf die Einbringung des Chippassworts und des Schlüssels K- Chip nur in den Startbereich des EEPROMS möglich sein.
  • Das Betriebssystem des Chips ist so zu gestalten, dass Unterprogrammaufrufe, die vom ROM-Code initiiert werden, um Code im EEPROM-Bereich ansprechen zu können, z. B. immer auf eine oder mehrere entsprechende Sprungadresse(n) 13 im Startbereich des EEPROMs weisen. Diese Sprungadressen 13 enthalten vom Zeitpunkt der Chip-Produktion beim Chiphersteller bis zu der erfolgreichen Ausführung des VERIFY_EEPROM-Kommandos immer eine "RETURN"- Anweisung, d. h. die übrigen EEPROM-Bereiche werden weder direkt noch indirekt zur Ausführung von Code adressiert.
  • Die Herstellung des Chips der Chipkarte beim Chiphersteller ist damit abgeschlossen. Die produzierten Chips werden nach der Modularisierung an den Chipkartenhersteller ausgeliefert. Der Chipkartenhersteller erhält Chips für die Chipkarte, die noch nicht abnehmerspezifisch sind, sondern erst bei der Initialisierung einem der beispielsweise vier Abnehmer zugeordnet werden. Dies vereinfacht ggf. die Disposition der vorhandenen Chipmengen beim Chipkartenhersteller und reduziert durch die anfallenden größeren Einkaufsmengen beim Chiphersteller den Stückpreis des Chips.
  • Schlüsselaustausch mit den Verlagen für K-Chip
  • Jeder Chiphersteller bringt seinen K-Chip in das Sicherheitsmodul (S-Box) des Initialisierungstools ein, das dafür beim jeweiligen Abnehmer/Verlag aufgestellt wird. Diese S-Box besitzt u. a. folgende Funktionalität:
    Einbringung des chipherstellerspezifischen Schlüssels K-Chip;
    Einbringung des verlagsspezifischen Schlüssels K-Chip-Verlag;
    Verschlüsselung des eingebrachten K-Chip-Verlag mit dem Schlüssel K-Chip;
    Verschlüsselung der Schlüssel für den Prüfbereich des Chips mit K-Chip- Verlag;
    Berechnung der Signatur über die Prüfwerte und
    Erstellung der entsprechenden Chiffren für die Testkarten.
  • Das Kryptogramm über K-Chip-Verlag wird später in die Initialisierungstabelle des Chips der Chipkarte übergeben. Durch den verlagsspezifischen K-Chip- Verlag wird eine klare Abgrenzung der Sicherheitskonzepte der einzelnen Verlage erreicht.
  • Den Verlagen darf es nicht möglich sein, durch etwaige Kenntnis eines mit K- Chip verschlüsselten Schlüssels K-Chip-Verlag eines anderen Verlags den Schlüssel K-Chip-Verlag eines anderen Verlags zu benutzen. Da K-Chip chipherstellerspezifisch ist, muss in der S-Box des Initialisierungstools die Funktion "Export des K-Chip" und "Entschlüsseln mit K-Chip" gesperrt sein. Es darf nur möglich sein, mit dieser S-Box den K-Chip-Verlag zu verschlüsseln. Die Funktionen der S-Box dürfen nur nach vorheriger Authentikation (z. B. PIN-Eingabe) des Benutzers gegen die S-Box ausführbar sein.
  • Initialisierung und Aufbau der Initialisierungstabelle:
    Die Initialisierungstabelle ist ein wesentliches Produktionsmittel für die Chipkarte. Sie kann bei der Herstellung der Chipkarte für die Einbringung identischer Speicherinhalte in alle Chipkarten einer ROM-Maske verwendet werden.
  • Der ROM-Maskenhersteller erstellt nach Fertigstellung der Programmierung von Code und Datenstrukturen ein Abbild eines speziellen Zustands des persistenten Speichers des Chips, das sogenannte Initialisierungsimage. Dieses soll in den persistenten Speicher der Chipkartenchips geladen werden, um diese zur Aufnahme von Personalisierungsdaten vorzubereiten. Zum Zweck einer geeigneten und sicheren Einbringung muss das Image für den Chip durch Hinzufügen von Kontroll-, Protokoll- und Prüfinformationen in das Format einer produktiven Initialisierungstabelle für die Initialisierungsanlage transformiert werden.
  • Die Initialisierungstabelle enthält nach dem Tabellenkopf Untertabellen mit Kommandofolgen, die der Initialisierer an die Chipkarte übergeben muss, sowie Kommandos und Informationen zur Kontrolle und Protokollierung des Initialisierungsprozesses.
  • Die Teile der Initialisierungstabelle, die die Kommandos und die dazugehörigen Kommandodaten enthalten, werden durch den Initialisierer satzweise in die Chipkarte geladen, indem der entsprechende Datensatz, bestehend aus einem Basis-Kommando und den zugehörigen Daten, an den Chip geschickt wird. Der Chip antwortet mit einem Returncode, der mit dem entsprechenden Returncode in der Kommandotabelle verglichen werden muss. Stimmen beide nicht miteinander überein, so ist der abweichende Returncode zu protokollieren und das Laden der Initialisierungstabelle abzubrechen.
  • Die Fig. 2 zeigt schematisch den Aufbau des EEPROMS der Chipkarte nach Einbringung des Initialisierungsimages. Der für den Programmcode und die Daten vorgesehene Bereich 5 des EPROMs enthält jetzt eine Sprungtabelle 15, von der aus eine Verzweigung auf mehrere Speicherbereiche 16 mit Programmcode erfolgen kann. Weiterhin enthält der Bereich 5 einen Bereich 17 für ein Filesystem mit konstanten Dateninhalten.
  • Einbringung des verlagsspezifischen K-Chip-Verlag beim Chipkartenhersteller:
    Als erste Aktion des Initialisierungsvorgangs beim Chipkartenhersteller wird der verlagsspezifische Schlüssel K-Chip-Verlag eingebracht. Das Kryptogramm des Schlüssels wurde dem Chipkartenhersteller zuvor vom Verlag als Teil der Initialisierungstabelle sicher zur Verfügung gestellt.
  • Die Initialisierungsanlage sendet ein Kommando VERIFY_CHIPPWD mit dem verschlüsselten K-Chip-Verlag an den Chip der Signaturkarte. Nach Empfang der Daten vergleicht der Chip die übergebenen Schlüssel-Informationen (VID, KID und KV) mit den im Startbereich gespeicherten Werten. Erkennt der Chip so, dass ihm ein neuer Schlüssel übergeben wurde, entschlüsselt der Chip mit Hilfe des Schlüssels K-Chip das Kryptogramm von K-Chip-Verlag. Im Startbereich des EEPROMS wird der Schlüssel K-Chip durch K-Chip-Verlag ersetzt. Die erfolgreiche Ausführung des Kommandos wird durch Änderung des Chipzustands protokolliert. In Fig. 3 ist die Einbringung des Schlüssels K-Chip- Verlag dargestellt. Ähnlich wie bei der Darstellung der Fig. 1 erfolgt ein Überspielen des geheimen Schlüssels des Abnehmers aus einem Speicherplatz 18 des Chipkartenherstellers in den Speicherbereich 8, in dem bislang der geheime Schlüssel des Chipherstellers untergebracht war.
  • Beschreibung des Kommandos "VERIFY_CHIPPWD":
    Das Kommando VERIFY_CHIPPWD ermöglicht es, entweder den Schlüssel KChip durch den verlagsspezifischen Schlüssel KChip_Verlag zu ersetzen (falls Lc = '1E' ist) oder das in den Kommandodaten übergebene Passwort anhand eines Vergleichs mit dem im persistenten Speicher gespeicherten Chippasswort zu verifizieren (falls Lc = '08' oder Lc = '1E' ist). In jedem Fall autorisiert eine erfolgreiche Kommandoausführung die externe Welt zur Ausführung weiterer Kommandos.
  • Der Fehlbedienungszähler (FBZ) für das Chippasswort und der Fehlbedienungszähler für den KChip_Verlag Verlag müssen persistent im Startbereich des EEPROM gespeichert werden, damit sie bei einer Stromunterbrechung nicht gelöscht werden. Hat bei der Verwendung des Chippassworts oder des KChip_Verlag durch das Kommando der jeweilige FBZ den Wert '00', so bricht das Kommando mit Fehlermeldung ab.
  • Beim Aufruf des Kommandos wird zunächst die Integrität des Startbereichs mit einer proprietär zu realisierenden Routine geprüft.
  • Für den Modus "Chippasswort vergleichen" (Lc = '08') wird folgendermaßen verfahren:
    Ist der Wert des Fehlbedienungszählers für das Chippasswort '00', so wird das Kommando mit dem Returncode '69 83' abgebrochen. Ist dieser FBZ nicht '00', dann verifiziert der Chip das in den Kommandodaten übergebene 8 Byte lange Chippasswort CHIPPWD anhand eines Vergleichs mit dem im Startbereich des EEPROM stehenden Chippasswort. Bei einem falschen Wert des Chippasswortes wird der FBZ des Chippasswortes um eins dekrementiert und das Kommando wird mit dem Returncode '63 Cx' abgebrochen. Dabei gibt 'x' den Wert dieses FBZ und somit die Anzahl der weiteren Versuche an, also 'x' = '2', '1' oder '0'.
  • Ist der Vergleich erfolgreich, so wird der Fehlbedienungszähler des Chippasswortes auf den Initialwert '03' zurückgesetzt, im flüchtigen Speicher wird ein Flag gesetzt, das die erfolgreiche Verifikation des Chippasswortes signalisiert und das Kommando wird mit der Ausgabe des Returncodes '90 00' beendet.
  • Der Kommandoaufruf im Modus Lc = '08' wird z. B. verwendet als Authentikation beim Einbringen der Protokolldaten der Modulherstellung, bei der Personalisierung und - im Fall einer zweigeteilten Initialisierungstabelle - zu Beginn des zweiten Teils der Initialisierungstabelle. Am Anfang der Initialisierungstabelle wird es im Modus Lc = '1E' abgesetzt, da dort ein Schlüsselwechsel vorgesehen ist.
  • Im Folgenden werden diese Bezeichnungen verwendet:
    VDaten: VID2 || KID2 || KV2 || KChip_Verlag || '00 00 00 00 00'
    MAC(VDaten): Retail-CFB-MAC über VDaten berechnet mit KChip_Verlag und ICV = '00 . . . 00'
    CHIPPWD: ein vom ROM-Maskenhersteller vergebenes und vom Chiphersteller eingebrachtes 8 Byte langes Passwort oder MAC(VDaten), falls bereits ein Schlüsselwechsel zu KChip_Verlag stattgefunden hat
    [KChip_Verlag]: KChip_Verlag mit dem KChip im CBC-Mode mit ICV = '00 . . . 00' Triple- DES verschlüsselt
    VID1: ZKA-Herstellerkennung des Chipherstellers für den im Chip enthaltenen KChip
    VID2: ZKA-Herstellerkennung des Verlags für den in den Chip einzubringenden KChip_Verlag
    KID1, KID2: Schlüsselnummer/-ID des entsprechenden Schlüssels
    KV1, KV2: Schlüsselversion des entsprechenden Schlüssels
  • Für den Modus "eventuell Schlüssel wechseln" (Lc = '1E') wird folgendermaßen verfahren:
    Der Chip prüft, ob das Tripel (VID1, KID1, KV1) verschieden ist vom Tripel (VID2, KID2, KV2) und ob das im Startbereich befindliche und zu KChip gehörige Tripel (VID, KID, KV) entweder gleich (VID1, KID1, KV1) oder gleich (VID2, KID2, KV2) ist. Ist dies nicht der Fall, wird das Kommando mit dem Returncode '64 00' abgebrochen.
  • Lc = '1E' mit Schlüsselwechsel:
    Falls das Tripel (VID, KID, KV) identisch ist mit (VID1, KID1, KV1), wird der Wert des Fehlbedienungszählers für den Schlüssel KChip geprüft. Ist er '00', so wird das Kommando mit dem Returncode '69 83' abgebrochen. Ist dieser FBZ nicht '00', dann prüft der Chip die Kommandodaten. Das Kryptogramm [KChip_Verlag] wird mit KChip entschlüsselt. Mit dem so erhaltenen KChip_Verlag wird anschließend der Wert MAC(VDaten) berechnet und mit dem entsprechenden Wert aus den Kommandodaten verglichen. Stimmen die beiden MAC-Werte nicht überein, wird der FBZ des KChip um eins dekrementiert und das Kommando mit dem Returncode '63 Cx' abgebrochen. Dabei gibt 'x' den Wert dieses Fehlbedienungszählers und somit die Anzahl der weiteren Versuche an, also 'x' = 'F' . . . '0'.
  • Stimmt der MAC aus den Kommandodaten mit dem berechneten MAC(VDaten) überein, ersetzt der Chip im Startbereich VID, KID und KV des Schlüssels KChip durch VID2, KID2 und KV2 und KChip durch KChip_Verlag und setzt den zugehörigen FBZ auf '10'. Anschließend wird das 8 Byte lange Chippasswort im Startbereich durch den Wert MAC(VDaten) (=CHIPPWD) ersetzt und der FBZ des Chippasswortes auf '03' gesetzt. Der Chipzustand wird auf 2 gesetzt. Dann wird ein Flag im flüchtigen Speicher gesetzt, das die erfolgreiche Verifikation des Chippassworts signalisiert und das Kommando mit Returncode '90 00' beendet.
  • Lc = '1E' ohne Schlüsselwechsel:
    Falls das Tripel (VID, KID, KV) identisch ist mit (VID2, KID2, KV2), wird CHIPPWD im Startbereich mit dem in den Kommandodaten übergebenen Wert MAC(VDaten) verglichen. Diese Prüfung verläuft mit Ausnahme der Änderung des Chipzustands wie im Modus Lc = '08':
    Ist der Wert des Fehlbedienungszählers des Chippasswortes '00', so wird das Kommando mit dem Returncode '69 83' abgebrochen. Stimmen die beiden Werte für CHIPPWD nicht überein, wird der FBZ des Chippasswortes um eins dekrementiert und das Kommando wird mit dem Returncode '63 Cx' abgebrochen. Dabei gibt 'x' den Wert dieses FBZ und somit die Anzahl der weiteren Versuche an, also 'x' = '2', '1' oder '0'. Ist der Vergleich erfolgreich, so wird der FBZ des Chippasswortes auf den Initialwert '03' zurückgesetzt und im flüchtigen Speicher wird ein Flag gesetzt, das die erfolgreiche Verifikation des Chippasswortes signalisiert. Der Chipzustand wird auf 2 gesetzt und das Kommando wird mit der Ausgabe des Returncodes '90 00' beendet.
  • Außer dem Wechsel von KChip zu KChip_Verlag ist es mit diesem Kommando im Modus Lc = '1E' ebenfalls möglich, von einem Verlagsschlüssel KChip_Verlag auf einen anderen Verlagsschlüssel KChip_Verlag zu wechseln. Dabei wird im Chip der alte KChip_Verlag behandelt wie oben beschrieben der KChip. Hierzu bedarf es der entsprechenden Kommandodaten mit der Chiffre des neuen unter dem alten KChip_Verlag und dem neuen Chippasswort.
  • Funktion des Kommandos:
    Überprüfung und Verarbeitung des Chippasswortes, ggf. Schlüsseltausch
    Eingabelänge: Lc '1E' oder '08'
    Kommandodaten:
    falls Lc = '1E': VID1 || KID1 || KV1 || VID2 || KID2 || KV2 || [KChip_Verlag] || MAC(VDaten)
    falls Lc = '08': 8 Byte langes Chippasswort CHIPPWD
    Returncodes:
    '90 00': erfolgreich ausgeführt
    '6E 00': ungültiger CLA-Wert
    '6D 00': ungültiger INS-Wert
    '6A 86': ungültiger Wert in P1 oder P2
    '67 00': falsche Länge
    '6F 00': allgemeiner Fehler - technisches Problem
    '63 Cx': Authentikation gescheitert, 'x' weitere Versuche möglich
    '69 83': Authentikation blockiert (Fehlbedienungszähler = '00')
    '64 00': Execution Error, State of non-volatile memory unchanged (wird ausgegeben, wenn beim Lesen von Daten inhaltliche Fehler oder Inkonsistenzen festgestellt werden)
  • Der weitere Initialisierungsvorgang für den Chip der Signaturkarte erfolgt durch Laden der Initialisierungstabelle in den Chip. Um den höheren Sicherheitsanforderungen einer Signaturkarte zu genügen, ist das Initialisierungsimage gegen Manipulation geschützt.
  • Laden des Initialisierungsimages in den Chip:
    In der Initialisierungsumgebung des Chipkartenherstellers werden nach Einbringung des verlagsspezifischen Schlüssels K-Chip-Verlag in den Speicherplatz 21 zunächst die Bereichsgrenzen BTAB für das Initialisierungsimage übergeben. Dazu enthält der Teil CTRL_TAB der Initialisierungstabelle das INITIALIZE-Kommando mit dem Parameter BTAB. Der Chip akzeptiert die in BTAB vorgegebenen Werte für die Bereichsgrenzen nur, wenn so der Bereich gegenüber den Vorgaben von BChip im Startbereich des Chips eingeschränkt wird oder gleich bleibt. Der Chipzustand ändert sich anschließend auf "Image laden". Ein späteres Überschreiben von BTAB wird durch den Chip bis zum erfolgreichen Abschluss des VERIFY_EEPROM-Kommandos oder bis zu einer Reinitialisierung ausgeschlossen. Keinesfalls darf es möglich sein, als zu initialisierenden Adressbereich Teile des Start-Bereichs des EEPROMs oder andere Speicherbereiche außerhalb des Code-Daten-Bereichs anzugeben und zu manipulieren.
  • Im nächsten Schritt wird der Code-/Daten-Bereich des EEPROMs von der Initialisierungsanlage des Chipkartenherstellers anhand der Initialisierungstabelle wie in Fig. 2 dargestellt initialisiert, wobei hier die zu initialisierenden Adressbereiche des EEPROMs vom Betriebssystem auf ihre Lage innerhalb der durch BTAB vorgegebenen Bereichsgrenzen überprüft werden:
    Anschließend werden die Daten in den Prüfbereich eingebracht, siehe Fig. 4. Neben dem erwähnten Speicherplatz 21 für den verlagsspezifischen Schlüssels K-Chip-Verlag gibt es weitere Speicherplätze 20 und 22 bis 24, die bei der Initialisierung mit Prüfdaten besetzt werden.
  • Die Prüfdaten enthalten (auf der Schnittstelle zwischen Initialisierungsmaschine und Chipkarte):
    den mit K-Chip-Verlag verschlüsselten Triple-DES-Schlüssel KINITAB_MAC, den mit K-Chip-Verlag verschlüsselten Triple-DES-Personalisierungs-Schlüssel KPers,
    den mit K-Chip-Verlag verschlüsselten Triple-DES-Personalisierungs-Schlüssel KTransfer,
    die Zuordnung Z mit der Halbleiter/ROM-Masken-Kombination, die bei VERIFY_EEPROM gegen eine vorhandene Eintragung im Startbereich des Chip-EEPROMs geprüft wird,
    den MAC über den Code-/Daten-Bereich,
    die Zusatzinformation Info-PK-Verlag zum PK-Verlag-Chip,
    den öffentlichen Schlüssel PK-Verlag-Chip,
    die verlagsspezifische Kennzeichnung der Initialisierung und
    die Signatur über den Hash-Wert von KINITAB_MAC || KPers || KTransfer || Z || BTAB || MAC (Image) || Info_PK_Verlag || verlagsspezifische Kennzeichnung der Initialisierung.
  • Danach erfolgt eine Überprüfung, ob die Inhalte des Code/Datenbereichs 5 des EEPROMS 2 der Chipkarte authentisch sind. Dazu wird ein entsprechendes Kommando an den Chip geschickt. Dies führt zu folgenden Vorgängen:
    Das Betriebssystem des Chips bildet zunächst den Hash-Wert über den im Prüf-Bereich des Speichers gespeicherten öffentlichen Schlüssels PK-Verlag- Chip und vergleicht diesen mit dem über Info-PK-Verlag referenzierten, in der ROM-Maske hinterlegten Hash-Wert. Stimmt der berechnete Hash-Wert mit dem zugehörigen, in der ROM-Maske vorhandenen Hash-Wert überein, ist der im Prüf-Bereich gespeicherte PK-Verlag-Chip authentisch.
  • Dann prüft der Chip mit dem Schlüssel PK-Verlag-Chip die Signatur über die Prüfdaten P = (KINITAB_MAC || KPers || KTransfer || Z || BTAB || MAC über das Initialisierungsimage || Info_PK_Verlag || verlagsspezifische Kennzeichnung der Initialisierung). Dazu wird zunächst der Hash-Wert (SHA-1) über P gebildet und anschließend mit dem Hash-Wert, der sich durch RSA-Public-Key- Verschlüsselung der Signatur über P mit Hilfe des PK-Verlag-Chip ergibt, verglichen. Stimmen die beiden Hash-Werte überein, sind insbesondere der eingebrachte KINITAB_MAC und der MAC über den EEPROM-Inhalt des Code- /Daten-Bereichs authentisch. Die Prüfdaten werden nur akzeptiert, wenn Z mit dem entsprechenden Kennzeichen der Chipherstellerdaten im Startbereich übereinstimmt.
  • Anschließend berechnet der Chip mit dem Schlüssel KINITAB_MAC unter Verwendung der Bereichsgrenzen BTAB den MAC über den Code-/Daten-Bereich des EEPROMs (inkl, der Protokolldaten für die Chipherstellung (Byte 1-3, 8-9 und 14), für die Initialisierung (ohne die ersten 16 Byte) und für die Personalisierung) und vergleicht diesen mit dem im Prüfbereich gespeicherten MAC. Stimmen beide MACs überein, ist nachgewiesen, dass das EEPROM korrekt initialisiert wurde und das eingebrachte Initialisierungsimage authentisch ist.
  • Nach erfolgreicher Überprüfung ändert der Chip seinen Zustand in OK. Nun kann von dem Betriebssystem die in der Sprungadresse 13 gespeicherte RETURN - Anweisung durch die Adresse der Sprungtabelle 15 im CodelDatenbereich 5 des EEPROMS 2 ersetzt werden. Damit werden die Unterprogrammaufrufe des ROM Codes nicht mehr gesperrt, sondern über die Sprungtabelle oder einen anderen Mechanismus an den entsprechenden Programmcode im entsprechenden Bereich 5 des EEPROMs 2 adressiert. Der Programmcode in diesem Bereich ist damit für das Betriebssystem verfügbar und ausführbar. Dies ist schematisch in Fig. 5 dargestellt.
  • Anschließend kann dann die Personalisierung durchgeführt werden. Die bisherige strikte organisatorische Trennung von Initialisierungs- und Personalisierungsumgebung muss für die Produktion der Chipkarte nicht beibehalten werden, da die Schlüssel verschlüsselt in die Chipkarte eingebracht werden.

Claims (11)

1. Verfahren zum Produzieren einer Chipkarte, bei dem der Speicher der Chipkarte in drei Bereiche aufgeteilt wird, nämlich einen Startbereich, einen Prüfbereich und einen Bereich für Daten und Code, wobei jedem Bereich eine spezielle Funktion zugewiesen wird.
2. Verfahren nach Anspruch 1, bei dem der Prüfbereich ggf. teilweise in dem RAM der Chipkarte angeordnet wird.
3. Verfahren nach Anspruch 1 oder 2, bei dem beim ROM Maskenhersteller der Daten/Code Bereich des EEPROMs festgelegt wird, beispielsweise durch Angabe seiner Grenzen.
4. Verfahren nach einem der vorhergehenden Ansprüche, bei dem zu Beginn der Initialisierung das Initialisierungsimage in den Daten/Code Bereich des EEPROMs eingebracht wird.
5. Verfahren nach einem der vorhergehenden Ansprüche, bei dem nach dem Initialisieren des Daten/Code Bereichs Prüfdaten in den Prüfbereich geschrieben werden.
6. Verfahren nach einem der vorhergehenden Ansprüche, bei dem Prüfdaten in der Signaturkarte selbst überprüft werden, beispielsweise mit Hilfe von Signaturen.
7. Verfahren nach einem der vorhergehenden Ansprüche, bei dem nach dem Speichern der Prüfdaten der Inhalt des Daten/Code Bereichs mit Hilfe der Prüfdaten überprüft wird, beispielsweise mit Hilfe einer MAC- Prüfung.
8. Verfahren nach einem der vorhergehenden Ansprüche, bei dem der Bereich für Daten und Code nachträglich eingeschränkt wird.
9. Chipkarte, bei der der Speicher in drei Bereiche aufgeteilt ist, nämlich einen Startbereich, einen Prüfbereich und einen Bereich für Daten und Code, wobei jeder Bereich eine spezielle Funktion aufweist.
10. Chipkarte nach Anspruch 9, bei der der Prüfbereich ggf. teilweise in dem RAM der Chipkarte angeordnet ist.
11. Chipkarte nach Anspruch 9 oder 10, bei der der Prüfbereich zur Aufnahme von Prüfeinrichtungen zur Überprüfung des Inhalts des Daten/Code- Bereichs bestimmt ist.
DE2002118796 2002-04-22 2002-04-22 Verfahren zum Herstellen eines elektronischen Sicherheitsmoduls Ceased DE10218796A1 (de)

Priority Applications (1)

Application Number Priority Date Filing Date Title
DE2002118796 DE10218796A1 (de) 2002-04-22 2002-04-22 Verfahren zum Herstellen eines elektronischen Sicherheitsmoduls

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE2002118796 DE10218796A1 (de) 2002-04-22 2002-04-22 Verfahren zum Herstellen eines elektronischen Sicherheitsmoduls

Publications (1)

Publication Number Publication Date
DE10218796A1 true DE10218796A1 (de) 2003-11-06

Family

ID=28798833

Family Applications (1)

Application Number Title Priority Date Filing Date
DE2002118796 Ceased DE10218796A1 (de) 2002-04-22 2002-04-22 Verfahren zum Herstellen eines elektronischen Sicherheitsmoduls

Country Status (1)

Country Link
DE (1) DE10218796A1 (de)

Similar Documents

Publication Publication Date Title
DE3700663C2 (de)
DE69823649T2 (de) Multi-anwendungs ic-kartensystem
DE10164415A1 (de) Verfahren und Anordnung zur Programmierung und Verifizierung von EEPROM-Pages sowie ein entsprechendes Computerprogrammprodukt und ein entsprechendes computerlesbares Speichermedium
EP3204850A1 (de) Verfahren zum laden von ausführbaren programminstruktionen in eine chipkarte im wirkbetrieb
EP1532510B1 (de) VERFAHREN ZUM SCHUTZ VOR MANIPULATIONEN AN EINEM STEUERGERÄT FÜR MINDESTENS EINE Kfz-KOMPONENTE
DE10218795B4 (de) Verfahren zum Herstellen eines elektronischen Sicherheitsmoduls
EP3811260B1 (de) Kryptografiemodul und betriebsverfahren hierfür
DE3705736C2 (de)
DE10218835B4 (de) Verfahren zum Herstellen einer Chipkarte und Chipkarte
DE102007041370B4 (de) Chipkarte, elektronisches Gerät, Verfahren zur Herstellung einer Chipkarte und Verfahren zur Inbenutzungnahme einer Chipkarte
EP2394232A2 (de) Vorrichtung und verfahren zum verhindern von unautorisierter verwendung und/oder manipulation von software
DE10218796A1 (de) Verfahren zum Herstellen eines elektronischen Sicherheitsmoduls
EP2850553B1 (de) Elektronisches zugangsschutzsystem, verfahren zum betrieb eines computersystems, chipkarte und firmwarekomponente
EP0847031B1 (de) Verfahren zum gesicherten nachträglichen Programmieren einer Mikroprozessorkarte für eine zusätzliche Anwendung
EP1634252B1 (de) Verfahren zum laden von tragbaren datenträgern mit daten
EP2524333A1 (de) Verfahren zum bereitstellen eines sicheren zählers auf einem endgerät
EP0977160B1 (de) Verfahren und Datenverarbeitungsanordnung zum gesicherten Ausführen von Befehlen
DE102021000603A1 (de) Chip-Initialisierung mit Betriebssystemladen
EP1591864A2 (de) Verfahren zum Schützen von Daten eines Datenträgers gegen DFA-Angriffe
DE102007007481A1 (de) Verfahren zur Analyse einer Softwarekonfiguration eines tragbaren Datenträgers
EP1460510B1 (de) Verfahren zur sicheren Kommunikation zwischen einer Datenverarbeitungsanlage und einer Sicherheitseinrichtung
EP1638058A2 (de) Verifizierung eines Datenträgers vor der Installation eines Anwendungsprogramms
EP2531983A1 (de) Komplettierung portabler datenträger
DE102006048796A1 (de) Verfahren zur Schlüsselermittlung für Challenge-Response-Verfahren

Legal Events

Date Code Title Description
8110 Request for examination paragraph 44
R016 Response to examination communication
R016 Response to examination communication
R016 Response to examination communication
R016 Response to examination communication
R016 Response to examination communication
R002 Refusal decision in examination/registration proceedings
R003 Refusal decision now final
R003 Refusal decision now final

Effective date: 20150120