DE102012024250B4 - Process for providing chips with a high level of copy protection, in particular for digital authentication systems such as chip cards or the like, and chips produced therefrom - Google Patents

Process for providing chips with a high level of copy protection, in particular for digital authentication systems such as chip cards or the like, and chips produced therefrom Download PDF

Info

Publication number
DE102012024250B4
DE102012024250B4 DE102012024250.6A DE102012024250A DE102012024250B4 DE 102012024250 B4 DE102012024250 B4 DE 102012024250B4 DE 102012024250 A DE102012024250 A DE 102012024250A DE 102012024250 B4 DE102012024250 B4 DE 102012024250B4
Authority
DE
Germany
Prior art keywords
chip
program modules
chips
operating system
linker
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.)
Active
Application number
DE102012024250.6A
Other languages
German (de)
Other versions
DE102012024250A1 (en
Inventor
Matthias Dünßer
Erfinder auf Antrag nicht genannt. Weitere(r)
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.)
Masktech Int GmbH
MASKTECH INTERNATIONAL GmbH
Original Assignee
Masktech Int GmbH
MASKTECH INTERNATIONAL GmbH
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 Masktech Int GmbH, MASKTECH INTERNATIONAL GmbH filed Critical Masktech Int GmbH
Priority to DE102012024250.6A priority Critical patent/DE102012024250B4/en
Priority to PCT/EP2013/002251 priority patent/WO2014019679A1/en
Publication of DE102012024250A1 publication Critical patent/DE102012024250A1/en
Application granted granted Critical
Publication of DE102012024250B4 publication Critical patent/DE102012024250B4/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/71Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
    • G06F21/76Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information in application-specific integrated circuits [ASIC] or field-programmable devices, e.g. field-programmable gate arrays [FPGA] or programmable logic devices [PLD]

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Mathematical Physics (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Storage Device Security (AREA)

Abstract

Verfahren zur Bereitstellung von Chips (6) mit hoher Kopierschutzfunktion, insbesondere für digitale Authentifizierungselemente wie Chipkarten (4) oder dergleichen, bei demfür die Chips (6) ein Sicherheits-Betriebssystem (OS) vorgesehen ist, das aus einzelnen Programmmodulen (M) aufgebaut ist,dadurch gekennzeichnet,dass die einzelnen Programmmodule (M) des Sicherheits-Betriebssystems (OS) mit Hilfe eines Linkers (14) für verschiedene Chips (6) unterschiedlich miteinander kombiniert werden, so dass für einen jeweiligen Chip (6) ein chipindividuelles Betriebssystem (C-OS) erzeugt und in einen Speicher (10) des Chips (6) eingelesen wird, wobei die chipindividuellen Betriebssysteme (C-OS) die gleiche Funktionalität jedoch einen unterschiedlichen strukturellen Aufbau aufweisen,dass der Linker (14) im Chip (6) integriert ist,dass die Anzahl der Programmmodule (M) >50 ist,dass der Linker (14) die Programmmodule (M) nach dem Zufallsprinzip zusammensetzt unddass die Programmmodule (M) eine einheitliche Modulgröße aufweisen und / oder nachträglich auf eine einheitliche Modulgröße gebracht werden, wobei parallel auf mehrere Chips (6) die Programmmodule (M) übertragen werden und auf diesen mehreren Chips (6) jeweils das chipindividuelle Betriebssystem (C-OS) erzeugt wird.Method for providing chips (6) with a high copy protection function, in particular for digital authentication elements such as chip cards (4) or the like, in which a security operating system (OS) is provided for the chips (6), which is composed of individual program modules (M). , characterized in that the individual program modules (M) of the security operating system (OS) are combined with one another differently with the aid of a linker (14) for different chips (6), so that for a respective chip (6) a chip-specific operating system (C -OS) is generated and read into a memory (10) of the chip (6), the chip-specific operating systems (C-OS) having the same functionality but a different structural design that the linker (14) is integrated in the chip (6). is that the number of program modules (M) is >50, that the linker (14) randomly assembles the program modules (M) and that the program modules (M) have a uniform module size and/or are subsequently brought to a uniform module size, the program modules (M) being transferred in parallel to a plurality of chips (6) and the chip-specific operating system (C-OS) being generated on each of these chips (6).

Description

Die Erfindung betrifft ein Verfahren zur Bereitstellung von Chips mit hoher Kopierschutzfunktion für embedded Systeme, insbesondere beispielsweise für digitale Authentifizierungssysteme wie Chipkarten oder dergleichen sowie für andere Mikroprozessor-gesteuerte Systeme. Die Erfindung betrifft weiterhin nach diesem Verfahren hergestellte Chips.The invention relates to a method for providing chips with a high copy protection function for embedded systems, in particular, for example, for digital authentication systems such as chip cards or the like, and for other microprocessor-controlled systems. The invention further relates to chips manufactured by this method.

Digitale Authentifizierungselemente wie Chipkarten werden in vielen Bereichen eingesetzt, um den Zugriff auf geschützte Daten oder Systeme zu ermöglichen, die nur einem bestimmten Nutzerkreis zugänglich sind. Unter Nutzer sind hierbei sowohl natürliche Personen als auch automatisierte Systeme für Maschinen- Maschinen-Kommunikation zu verstehen. Unter Authentifizierungselemente werden insbesondere auch Elemente zur Erstellung von elektronischen Signaturen verstanden.Digital authentication elements such as chip cards are used in many areas to enable access to protected data or systems that are only accessible to a specific group of users. Users are understood to mean both natural persons and automated systems for machine-to-machine communication. Authentication elements are also understood to mean, in particular, elements for creating electronic signatures.

Unter Chip wird hier allgemein ein integrierter Schaltkreis mit zumindest einem Speicher und einem Mikroprozessor verstanden. Ein derartiger Chip braucht nicht notwendigerweise in einer Karte als Träger integriert zu sein. Es bieten sich als Trägermedien beispielsweise auch Speichersticks (USB-Sticks) sowie andere Medien an. Nachfolgend wird der Einfachheit halber von Chipkarten gesprochen.A chip is generally understood here to mean an integrated circuit with at least one memory and one microprocessor. Such a chip need not necessarily be integrated into a card as a carrier. For example, memory sticks (USB sticks) and other media are also available as carrier media. Chip cards are referred to below for the sake of simplicity.

Derartige Chipkarten werden beispielsweise als Zahlungsmittel (Geldkarten) als Sim-Karten für Mobiltelefone, als elektronische Tickets, als Signaturkarten oder auch als Decoderkarten zum Beispiel bei Bezahlangeboten (Bezahlfernsehen) oder anderen Zugangssystemen eingesetzt. Insbesondere werden derartige Chips auch bei Identifizierungskarten oder Ausweiskarten, wie z.B. bei Pässen, beim Personalausweis, beim Führerschein, bei Gesundheitskarten etc. eingesetzt.Such chip cards are used, for example, as a means of payment (money cards) as SIM cards for mobile phones, as electronic tickets, as signature cards or as decoder cards, for example for pay-for offers (pay-TV) or other access systems. In particular, chips of this type are also used in identification cards or identity cards, such as passports, ID cards, driver's licenses, health cards, etc.

Bei diesen auch als Smart Cards bezeichneten Chipkarten spielt die Datensicherheit eine große Rolle. Üblicherweise sind auf der Karte selbst benutzereigene Authentifizierungs- und Zugangsdaten als sensible Daten hinterlegt, wie beispielsweise benutzerbezogene Schlüssel, über die unter anderem auch elektronische Signaturen erzeugt werden können. Zudem können auch sensible personenbezogene Daten (z.B. biometrisches Daten) hinterlegt sein.With these chip cards, also known as smart cards, data security plays a major role. User-specific authentication and access data are usually stored on the card itself as sensitive data, such as user-related keys, which can also be used to generate electronic signatures, among other things. Sensitive personal data (e.g. biometric data) can also be stored.

Um diese sensiblen Daten auf der Karte zu sichern, werden diese mit Hilfe des Mikroprozessors über ein auf dem Chip hinterlegtes kryptographisches Verfahren vor fremdem Zugriff geschützt. Ziel eines jeden Angriffs ist das Ermitteln und der Zugriff auf die sensiblen Daten.In order to secure this sensitive data on the card, it is protected from unauthorized access by the microprocessor using a cryptographic process stored on the chip. The aim of every attack is to determine and access sensitive data.

Es besteht ein hohes Bedürfnis, einen derartigen nicht autorisierten Zugriff auf die sensiblen Daten zu verhindern. Denn bei Kenntnis dieser Daten wird ein Missbrauch derartiger Systeme ermöglicht und es können durch unbefugte Dritte derartige Chipkarten, beispielsweise für das Bezahlfernsehen, mit den entsprechenden Zugriffsmöglichkeiten auf die geschützten Inhalte erstellt werden.There is a great need to prevent such unauthorized access to sensitive data. Knowing this data enables such systems to be misused and such chip cards, for example for pay-TV, with the corresponding access options to the protected content, can be created by unauthorized third parties.

In der EP 2 249 291 A1 ist ein Verfahren zur Erhöhung der Sicherheit einer bestehenden kontaktlosen Chipkartentechnik beschrieben, welche sich ebenfalls mit der gleichen Problematik auseinandersetzt.In the EP 2 249 291 A1 describes a method for increasing the security of an existing contactless chip card technology, which also deals with the same problem.

Bei heutigen Chipkarten ist das Kryptographieverfahren im Sicherheits-Betriebssystems in einem ROM-Speicherbaustein des Chips hinterlegt. Der Verschlüsselungs-Algorithmus ist daher durch die Verschaltung der einzelnen Elektronik-Bauteile im ROM-Speicher in diesem nach Art einer Firmware „fest eingebrannt“. Anhand des Schaltungsmusters des ROM-Speichers lässt sich daher grundsätzlich auf den Aufbau des Verschlüsselungsalgorithmus sowie des gesamten Betriebssystemaufbaus rückschließen. Im Betriebssystem sind darüber hinaus weitere schützenswerte Informationen, wie beispielsweise ein Datenprotokoll (IP) insbesondere zur Speicherverwaltung.With today's smart cards, the cryptography process is stored in the security operating system in a ROM memory module on the chip. The encryption algorithm is therefore “hard-wired” into the ROM memory in the manner of firmware by interconnecting the individual electronic components. Based on the circuit pattern of the ROM memory, it is therefore possible to draw conclusions about the structure of the encryption algorithm and the entire structure of the operating system. The operating system also contains other information that is worth protecting, such as a data protocol (IP), in particular for memory management.

Das Betriebssystem stellt eine gewisse Sicherheitslücke dar, da durch Re-Engineering-Verfahren die Gefahr der Analyse dessen Aufbaus besteht. Dadurch können z.B. Informationen über den genauen zeitlichen Ablauf von im Betriebssystem hinterlegten Programmteilen erhalten werden, so dass gezielte Angriffe bzw. Beeinflussungen des Ablaufs vorgenommen werden können. So kann beispielsweise ein spezieller Befehl im Ablaufprogramm gezielt beeinflusst werden, beispielsweise ein sicherheitsrelevanter Sprung nach einem (EEPROM-) Schreibvorgang.The operating system represents a certain security gap, since re-engineering processes pose the risk of its structure being analyzed. In this way, for example, information about the exact timing of program parts stored in the operating system can be obtained, so that targeted attacks or influencing of the process can be carried out. For example, a special command in the sequence program can be influenced in a targeted manner, for example a safety-relevant jump after an (EEPROM) write process.

Die genaue Kenntnis des Aufbaus des Betriebssystems, insbesondere die Kenntnis, welche Gegenmaßnahmen gegen Belauschen oder Manipulation der Datenverarbeitung umgesetzt und wie diese umgesetzt wurden, erleichtert es daher einem Angreifer, Schwachstellen des Betriebssystems als auch der zu Grunde liegenden Hardware, in die beispielsweise eine Verschlüsselungsfunktionen integriert ist, zu erkennen und auszunutzen, um auf die geschützten sensiblen Daten zugreifen zu können.Exact knowledge of the structure of the operating system, in particular the knowledge of which countermeasures were implemented against eavesdropping or manipulation of the data processing and how these were implemented, makes it easier for an attacker to identify weak points in the operating system and the underlying hardware, in which, for example, an encryption function is integrated is to be detected and exploited in order to access the protected sensitive data.

Bei diesem Re-Engineering wird üblicherweise derart vorgegangen, dass der ROM-Speicherbaustein sukzessive geschliffen wird und Schicht für Schicht im Hinblick auf das Schaltungsmuster analysiert wird. Aufgrund der geringen Dimension derartiger ROM-Bausteine und der hohen mechanischen Belastung bei diesem Re-Engineering werden dafür in der Regel eine Vielzahl von einzelnen ROM-Speicherbausteinen benötigt.In this re-engineering, the procedure is usually such that the ROM memory chip is ground successively and the circuit pattern is analyzed layer by layer. Due to the small dimensions of such ROM modules and the high mechanical As a rule, a large number of individual ROM memory components are required for this re-engineering.

Neben den Authentifizierungssystemen ist eine Kopierschutzfunktionen von Chips generell von besonderer Bedeutung bei jeglichen sensiblen Anwendungen oder auch grundsätzlich, um einen Nachbau (Reengineering) des Chips zu verhindern, um beispielsweise den Nachbau von Originalbauteilen mit integrierten Chips zu vermeiden. Das ist von Vorteil bei intelligenten Maschinen oder Fahrzeugen, bei denen Funktionen durch integrierte Chips übernommen werden.In addition to the authentication systems, a copy protection function of chips is generally of particular importance for any sensitive applications or also in principle to prevent the chip from being copied (reengineered), for example to avoid the copying of original components with integrated chips. This is an advantage for intelligent machines or vehicles in which functions are taken over by integrated chips.

Ausgehend hiervon liegt der Erfindung die Aufgabe zugrunde, die Sicherheit für derartige Chips zu erhöhen, insbesondere durch Schutz des Betriebssystems gegen ein Re-Engineering.Proceeding from this, the object of the invention is to increase the security for chips of this type, in particular by protecting the operating system against re-engineering.

Die Aufgabe wird gelöst durch ein Verfahren zur Bereitstellung von Chips für derartige digitale Authentifizierungselemente wie Chipkarten oder dergleichen, bei dem für mehrere, vorzugsweise für alle Chips eines gemeinsamen Authentifizierungssystems ein gemeinsames Sicherheits-Betriebssystem vorgesehen ist, welches aus einzelnen Programmmodulen aufgebaut ist. Die einzelnen Programmmodule werden hierbei mit Hilfe eines Linkers für verschiedene Chips unterschiedlich miteinander kombiniert, so dass für einen jeweiligen Chip ein chipindividuelles, ausführbares Betriebssystem erzeugt und in einen vorzugsweise beschreibbaren Speicher dieses Chips eingelesen wird. Die verschiedenen chipindividuellen Betriebssysteme weisen dabei die gleiche Funktionalität untereinander auf, sind daher im Hinblick auf ihre Funktion identisch. Allerdings weisen sie aufgrund der unterschiedlichen Kombination der einzelnen Programmmodule einen unterschiedlichen Aufbau auf. Für die Gesamtzahl aller Chips eines gemeinsamen Authentifizierungssystems werden daher eine Vielzahl von unterschiedlich strukturierten Betriebssystemen bereitgestellt.The object is achieved by a method for providing chips for such digital authentication elements as chip cards or the like, in which a common security operating system is provided for several, preferably for all chips of a common authentication system, which is made up of individual program modules. The individual program modules are combined with one another in different ways using a linker for different chips, so that a chip-specific, executable operating system is generated for a respective chip and read into a preferably writable memory of this chip. The various chip-specific operating systems have the same functionality among themselves and are therefore identical in terms of their function. However, due to the different combination of the individual program modules, they have a different structure. A large number of differently structured operating systems are therefore provided for the total number of all chips in a common authentication system.

Diese Ausgestaltung geht zunächst von der Überlegung aus, dass bei neueren Systemen die nicht beschreibbaren ROM-Speicher durch beschreibbare Speichern, insbesondere Flash-Speichern ersetzt werden. Bei dem beschreibbaren Speicher handelt es sich daher auch vorzugsweise um einen solchen Flash-Speicher oder einen anderen, zumindest einmal beschreibbaren Speicher, beispielsweise ein PROM (Programmable Read-Only Memory), EPROM (Erasable Programmable Read-Only Memory) oder ein EEPROM (Electrically Erasable Programmable Read-Only Memory).This refinement is initially based on the consideration that in newer systems the non-writable ROM memories are replaced by writable memories, in particular flash memories. The writable memory is therefore preferably such a flash memory or another memory that can be written at least once, for example a PROM (programmable read-only memory), EPROM (erasable programmable read-only memory) or an EEPROM (electrically erasable programmable read-only memory).

Alternativ zur Verwendung von beschreibbaren Speichern werden auch ROM-Speicher eingesetzt. Ein ROM-Speicher wird allgemein mit Hilfe von sogenannten Masken strukturiert, so dass die gewünschten Daten abgespeichert werden. Bei der Verwendung von ROM-Speichern werden zur Strukturierung der mehreren ROM-Speicher vorzugsweise eine Vielzahl von unterschiedlichen Masken eingesetzt, die hinsichtlich der Funktion des durch sie erzeugten Betriebssystems identisch, jedoch hinsichtlich des strukturellen Aufbaus des erzeugten Betriebssystems unterschiedlich sind, so dass im Ergebnis wieder für zumindest eine Vielzahl der Chips chipindividuelle Betriebssysteme ausgebildet sind. Es wird daher eine Anzahl der verwendeten unterschiedlichen Masken entsprechende Anzahl von unterschiedlich strukturierten „chipindividuellen“ Betriebssystemen bereitgestellt. Die Anzahl der unterschiedlichen Masken kann grundsätzlich der Anzahl der Chips entsprechen.As an alternative to using writable memories, ROM memories are also used. A ROM memory is generally structured with the help of so-called masks, so that the desired data can be stored. When using ROM memories, a large number of different masks are preferably used to structure the multiple ROM memories, which are identical in terms of the function of the operating system generated by them, but different in terms of the structural design of the operating system generated, so that as a result again chip-specific operating systems are designed for at least a large number of the chips. A number of differently structured “chip-specific” operating systems corresponding to the number of different masks used are therefore provided. In principle, the number of different masks can correspond to the number of chips.

Vorzugsweise wird auf jedem Chip ein unterschiedliches chipindividuelles Betriebssystem ausgebildet. Grundsätzlich ist dies jedoch nicht zwingend erforderlich. Die Anzahl der unterschiedlich strukturierten Betriebssysteme (also der Anzahl der unterschiedlichen Masken im Falle von ROM) liegt dabei zumindest im zweistelligen Bereich).A different chip-specific operating system is preferably formed on each chip. In principle, however, this is not absolutely necessary. The number of differently structured operating systems (i.e. the number of different masks in the case of ROM) is at least in the two-digit range.

Weiterhin baut die Erfindung auf der Überlegung auf, dass das Betriebssystem sich aus einer Vielzahl von einzelnen Programmteilen, den sogenannten Programmmodulen zusammensetzt, wobei jedes einzelne Programmmodul üblicherweise eine in sich abgeschlossene Teilfunktion des Betriebssystems festlegt. Schließlich wird hierbei auch berücksichtigt, dass es für eine identische gemeinsame Gesamtfunktionalität, also für ein für alle Chipkarten funktional identisches Betriebssystem, die Zusammensetzung der einzelnen Programmmodule variieren kann. Entsprechend ist vorgesehen, dass die einzelnen Programmmodule über den sogenannten Linker verschieden zusammengesetzt werden. Dadurch ist ein Re-Engineering deutlich erschwert, da für ein jeweiliges Re-Engineering-Verfahren üblicherweise eine Vielzahl von einzelnen Speicherbausteinen erforderlich ist. Das Re-Engineering setzt jedoch voraus, dass alle Speicherbausteine im Hinblick auf ihren strukturellen Aufbau, welcher definiert ist durch den eingebrannten Algorithmus, identisch sind, d.h. der im Speicher hinterlegte Algorithmus (Programmcode) muss für ein sinnvolles Re-Engineering bei einer Vielzahl von einzelnen Chips nicht nur im Hinblick auf seine Funktion sondern auch im Hinblick auf seinen strukturellen Aufbau identisch sein.Furthermore, the invention is based on the consideration that the operating system is made up of a large number of individual program parts, the so-called program modules, with each individual program module usually defining a self-contained subfunction of the operating system. Finally, it is also taken into account here that the composition of the individual program modules can vary for an identical common overall functionality, ie for an operating system that is functionally identical for all chip cards. Accordingly, it is provided that the individual program modules are put together differently via the so-called linker. This makes re-engineering significantly more difficult, since a large number of individual memory modules is usually required for a respective re-engineering method. However, re-engineering requires that all memory modules are identical in terms of their structural design, which is defined by the burned-in algorithm, i.e. the algorithm stored in the memory (program code) must be used for a meaningful re-engineering with a large number of individual Chips must be identical not only in terms of their function but also in terms of their structural design.

Durch das hier vorgestellte Verfahren wird gerade dies verhindert, so dass das Re-Engineering erschwert wenn nicht unmöglich gemacht wird.This is precisely what is prevented by the method presented here, so that re-engineering is made more difficult, if not impossible.

Dies beruht insbesondere auch darauf, dass durch die Bereitstellung von chipindividuellen Betriebssystemen im beschreibbaren Speicher chipindividuelle, voneinander verschiedene (Hardware-) Strukturen erzeugt werden. Unter „unterschiedlicher struktureller Aufbau“ wird daher verstanden, dass im Speicher verschiedene Hardware-Strukturen erzeugt werden, dass also beim Beschreiben des nicht-flüchtigen Flash-Speichers der Programmcode quasi „eingebrannt“ ist, so dass chipindividuelle, voneinander verschiedene Hardware-Strukturen bei gleichzeitig identischer Funktion erzeugt sind.This is based in particular on the fact that through the provision of chip-specific Operating systems in writable memory chip-specific, different (hardware) structures are generated. "Different structural design" means that different hardware structures are generated in the memory, i.e. that the program code is "burned in" when writing to the non-volatile flash memory, so that chip-specific, different hardware structures can be used at the same time identical function are generated.

Selbst falls ein Re-Engineering eines chipindividuellen Betriebssystems gelingt, hat ein Angreifer noch keinen Zugriff auf das chipindividuelle Betriebssystem eines anderen Chips. Denn der Code dieses weiteren chipindividuellen Betriebssystems kann eben nicht vorhergesagt werden.Even if re-engineering of a chip-specific operating system is successful, an attacker still has no access to the chip-specific operating system of another chip. Because the code of this additional chip-specific operating system cannot be predicted.

Ein weiterer Vorteil ist darin zu sehen, dass auch das zeitliche (Ablauf-) Verhalten des chipindividuellen Betriebssystem von Chip zu Chip verschieden ist. Denn wenn der gesamte Programmcode (also die Summe der einzelnen Programmmodule) unterschiedlich zusammengesetzt ist, werden beispielsweise Zwischenspeicher (Cache) unterschiedlich eingesetzt, was zu zeitlich anderen Abläufen führen kann. Das Cache-Verhalten und damit das zeitliche Verhalten des chipindividuellen Betriebssystems ändert sich daher von Chip zu Chip und kann nicht vorhergesagt werden.A further advantage can be seen in the fact that the temporal (sequence) behavior of the chip-specific operating system also differs from chip to chip. Because if the entire program code (i.e. the sum of the individual program modules) is composed differently, temporary storage (cache), for example, is used differently, which can lead to different processes in terms of time. The cache behavior and thus the temporal behavior of the chip-specific operating system therefore changes from chip to chip and cannot be predicted.

Üblicherweise werden die einzelnen Programmmodule zunächst von einem Programmierer in einer geeigneten Programmiersprache erzeugt und anschließend mittels eines sogenannten Compilers aus dieser Programm- oder Quellsprache in den Maschinencode oder die Zielsprache übersetzt. Diese compilierten Programmmodule stehen anschließend also dem Linker zur Verfügung.The individual program modules are usually first generated by a programmer in a suitable programming language and then translated from this program or source language into machine code or the target language by means of a so-called compiler. These compiled program modules are then available to the linker.

Unter Linker wird allgemein ein Computerprogramm verstanden, welches derartige einzelne Programmmodule zu einem ausführbaren Programm zusammenstellt. Bei den einzelnen Programmmodulen handelt es sich wie bereits erwähnt um abgeschlossene Funktionseinheiten, auch als sogenannte Objektdateien bezeichnet. Ergänzend können auch sogenannte Bibliotheken vorgesehen sein. Diese werden über den Linker zu einer statischen, ausführbaren Programm-Datei zusammengestellt. Es handelt sich hier also um ein statisches Linken zur Erstellung eines ausführbaren Programms. Die einzelnen Programmodule werden hierbei derart miteinander verknüpft, dass die Funktion und der Programmablauf zuverlässig gewährleistet ist.A linker is generally understood to mean a computer program which compiles such individual program modules into an executable program. As already mentioned, the individual program modules are self-contained functional units, also referred to as so-called object files. In addition, so-called libraries can also be provided. These are compiled into a static, executable program file via the linker. So this is static linking to create an executable program. The individual program modules are linked to one another in such a way that the function and the program sequence are reliably guaranteed.

Zweckdienlicherweise erfolgt das Verlinken der einzelnen Programmmodule auf dem Chip. Der Linker ist also als „on board Linker“ auf dem Chip integriert. Dies erhöht die Sicherheit zusätzlich, da auf den Chip kein fertiges Programm sondern lediglich einzelne Programmmodule überspielt werden. Ein Abhören der Datenübertragung von einem Rechner, auf dem die Compilierung vorgenommen wurde, zu einem entfernten Rechner, über den letztendlich das Einlesen in den Flash-Speicher vorgenommen wird, führt daher ebenfalls nicht zu einem erfolgreichen Angriff, um die Sicherheits-Betriebssoftware in Besitz zu bringen.The individual program modules are expediently linked on the chip. The linker is therefore integrated on the chip as an "on board linker". This also increases security, since no finished program but only individual program modules are transferred to the chip. Eavesdropping on the data transfer from a computer on which the compilation was carried out to a remote computer, which is ultimately used to read the data into the flash memory, also does not result in a successful attack in order to gain possession of the security operating software bring.

Vorzugsweise ist der on board-Linker auch zum nachträglichen Ändern, beispielsweise Erweitern oder teilweises Ersetzen der Sicherheits-Betriebssoftware ausgebildet, beispielsweise im Rahmen von updates.The on-board linker is preferably also designed for subsequent changes, for example expansion or partial replacement of the security operating software, for example as part of updates.

Weiterhin werden zur Erhöhung der Sicherheit in bevorzugter Weiterbildung die auf dem Compiler-Rechner erzeugten Programmmodule verschlüsselt. Anschließend werden diese in bevorzugter Ausgestaltung als verschlüsselter Datensatz zum Linker übertragen, bei dem der Datensatz entschlüsselt und anschließend die Programmmodule zum ausführbaren Betriebssystem zusammengesetzt werden.Furthermore, to increase security, the program modules generated on the compiler computer are encrypted in a preferred development. In a preferred embodiment, these are then transmitted as an encrypted data set to the linker, in which the data set is decrypted and then the program modules are assembled to form the executable operating system.

In zweckdienlicher Weiterbildung ist ein weiterer, erster Linker, im Folgenden als Compilerlinker bezeichnet, vorgesehen, welcher die Programmmodule zu einem ersten Betriebssystem verlinkt. Dieses erste Betriebssystem - welches beispielsweise ein Mastertemplate-Betriebssystem ist - wird anschließend durch den eigentlichen Linker ggf. unter Berücksichtigung von weiteren Zusatzinformationen, wie beispielsweise der Beziehungen der einzelnen Programmmodule im ersten Betriebssystem zueinander, zu dem eigentlichen, in den Speicher des Chips einzulesenden Betriebssystems verändert. Der Compilerlinker ist - im Unterschied zu dem on-Board Linker - vorzugsweise auf dem Compiler-Rechner, zumindest nicht auf dem Chip integriert. Das vom Compilerlinker erzeugte Betriebssystem, also die miteinander verlinkten Programmmodule, wird bevorzugt als der verschlüsselte Datensatz auf den Chip übertragen.In an expedient development, a further, first linker, referred to below as a compiler linker, is provided, which links the program modules to a first operating system. This first operating system - which is, for example, a master template operating system - is then changed to the actual operating system to be read into the memory of the chip by the actual linker, possibly taking into account further additional information, such as the relationships between the individual program modules in the first operating system . In contrast to the on-board linker, the compiler linker is preferably integrated on the compiler computer, at least not on the chip. The operating system generated by the compiler linker, ie the program modules linked to one another, is preferably transferred to the chip as the encrypted data record.

Beim Zusammensetzen der einzelnen Programmmodule wird seitens des Linkers vorzugsweise das Zufallsprinzip angewandt, d.h. der Linker enthält einen Zufallsgenerator, welcher bestimmt, welche Programmmodule in welcher Reihenfolge wie aneinander gereiht werden. Dies erfolgt unter der Prämisse, dass die gewünschte Gesamt-Funktionalität und Funktionsfähigkeit erhalten wird, so dass auf allen Chips funktional die identische Sicherheits-Betriebssoftware enthalten ist.When assembling the individual program modules, the linker preferably uses the random principle, i.e. the linker contains a random number generator which determines which program modules are lined up in which order and how. This is done on the premise that the desired overall functionality and functionality is maintained, so that functionally identical security operating software is contained on all chips.

Zweckdienlicherweise liegt die Anzahl der einzelnen Programmmodule für das Sicherheits-Betriebssystem bei > 50 und insbesondere bei > 100. Üblicherweise ist eine höhere Anzahl sinnvoll, um die Größe der einzelnen Module geeignet zu begrenzen. In Kombination mit dem Zufallsprinzip ergeben sich daher eine sehr große Anzahl an verschiedenen Kombinationen, so dass ein Re-Engineering quasi unmöglich ist.The number of individual program modules for the security operating system is expediently >50 and in particular >100. Usually, a higher number makes sense in order to appropriately limit the size of the individual modules. In combination with the random principle, there is a very large number of different combinations, so that re-engineering is virtually impossible.

In zweckdienlicher Weiterbildung ist darüber hinaus auf dem Chip ein sogenannter Boot-Loader integriert, der für die Kommunikation nach außen zuständig ist und der insbesondere auch die Programmmodule vom Compiler-Rechner erhält. Der Linker erhält die Programmmodule vom Boot-Loader und verlinkt sie anschließend zum chipindividuellen Betriebssystem, welches anschließend vom Linker in den nicht-flüchtigen Speicher (insbesondere Flash-Speicher) eingelesen wird. In an expedient further development, a so-called boot loader is also integrated on the chip, which is responsible for external communication and which, in particular, also receives the program modules from the compiler computer. The linker receives the program modules from the boot loader and then links them to the chip-specific operating system, which is then read into the non-volatile memory (especially flash memory) by the linker.

Alternativ ist es grundsätzlich auch möglich, dass die Programmmodule zunächst direkt in den Flash-Speicher eingelesen und erst anschließend vom Linker zum chipindividuellen Betriebssystem zusammengesetzt werden.Alternatively, it is fundamentally also possible for the program modules to first be read directly into the flash memory and only then assembled by the linker to form the chip-specific operating system.

Sowohl beim Boot-Loader als auch beim Linker handelt es sich daher selbst wiederum um ausführbare Programme, denen gewisse Funktionalitäten zugewiesen sind. Der Boot-Loader und/oder der Linker sind vorzugsweise ebenfalls im Flash-Speicher enthalten. Alternativ können diese jedoch auch in einem ROM-Speicher abgelegt sein.Both the boot loader and the linker are therefore themselves executable programs that are assigned certain functionalities. The boot loader and/or the linker are preferably also contained in the flash memory. Alternatively, however, these can also be stored in a ROM memory.

Vorzugsweise wird das chipindividuelle Betriebssystem parallel auf mehreren Chips erzeugt. Hierzu ist insbesondere eine gemeinsame Kontaktierungs- und Datenübertragungseinheit vorgesehen, über die insbesondere ein Energie- und Kommunikationskanal bereitgestellt wird, so dass parallel und gleichzeitig die Übertragung der Programmmodule oder des Template -Betriebssystems auf die einzelnen Chips erfolgt. Auf den einzelnen Chips wird dann von dem jeweiligen Linker das chipindividuelle Betriebssystem erzeugt.The chip-specific operating system is preferably generated in parallel on a plurality of chips. For this purpose, in particular, a common contacting and data transmission unit is provided, via which in particular a power and communication channel is provided, so that the program modules or the template operating system are transmitted in parallel and simultaneously to the individual chips. The chip-specific operating system is then generated on the individual chips by the respective linker.

Mehrere einzelne Chips werden üblicherweise gemeinsam auf einem Wafer erzeugt. Zweckdienlicherweise sind die einzelnen Chips auf dem Wafer zur Ausbildung einer vereinfachten Kontaktierungs- und Übertragungseinheit miteinander verschaltet. Der Kommunikationskanal - oder Pfad ist daher bereits auf Seiten des Wafers ausgebildet. Bevorzugt in solchen Bereichen des Wafers, an denen bei der weiteren Bearbeitung die einzelnen Chips mechanisch voneinander getrennt werden. Die Übertragung der Programmmodule erfolgt daher vor dem Auseinandertrennen der Waferscheibe.Several individual chips are usually produced together on a wafer. The individual chips on the wafer are expediently interconnected to form a simplified contacting and transmission unit. The communication channel - or path - is therefore already formed on the wafer side. Preferably in those areas of the wafer where the individual chips are mechanically separated from one another during further processing. The program modules are therefore transferred before the wafer is separated.

Dieser Aspekt der parallelen Übertragung der Programmmodule, insbesondere auch mit der Integration des Kommunikationskanals in den Wafer, wird als eigenständige Erfindung angesehen. Die Einreichung einer Teilanmeldung auf diesen Aspekt - unabhängig von der Erzeugung des chipindividuellen Betriebssystems bleibt vorbehalten.This aspect of the parallel transmission of the program modules, in particular also with the integration of the communication channel in the wafer, is regarded as an independent invention. The filing of a divisional application on this aspect - regardless of the generation of the chip-specific operating system remains reserved.

In zweckdienlicher Weiterbildung weisen die Programmmodule (M) eine einheitliche Modulgröße auf, bzw. werden auf eine einheitliche Modulgröße gebracht, bevor sie über den Verlinker chipindividuell verlinkt werden. Hierdurch wird die Anzahl der möglichen Permutationen erhöht. Denn bei unterschiedlichen Modulgrö-ßen sind die Programmmodule üblicherweise nicht beliebig miteinander permutierbar, da z.B. Positionen durch ein Template in Abhängigkeit der Größe vorgegeben sind. Unter Modulgröße wird hierbei insbesondere der Speicherbedarf des jeweiligen Moduls, also die Byte-Größe verstanden.In an expedient development, the program modules (M) have a uniform module size or are brought to a uniform module size before they are linked individually via the linker. This increases the number of possible permutations. Because with different module sizes, the program modules usually cannot be interchanged arbitrarily, since, for example, positions are specified by a template depending on the size. In this context, module size is understood to mean, in particular, the memory requirement of the respective module, ie the byte size.

In der Regel weisen nämlich die einzelnen Programmmodule aufgrund ihres üblicherweise unterschiedlichen Funktionsumfangs unterschiedliche Modulgrößen auf. Um die Modulgröße zu vereinheitlichen werden insbesondere kleine Module vergrößert, indem beispielsweise Leerinformationen hinzugefügt werden. Große Module können geteilt und wenn erforderlich anschließend wieder auf die gewünschte einheitliche Modulgröße vergrößert werden.As a rule, the individual program modules have different module sizes because of their usually different range of functions. In order to standardize the module size, small modules in particular are enlarged, for example by adding empty information. Large modules can be divided and then, if necessary, enlarged again to the desired uniform module size.

Ein Ausführungsbeispiel der Erfindung wird nachfolgend anhand der Figuren näher erläutert. Die einzige Figur zeigt in einer vereinfachten Darstellung anhand eines Blockbildes den grundsätzlichen Verfahrensablauf.An embodiment of the invention is explained in more detail below with reference to the figures. The only figure shows the basic process sequence in a simplified representation using a block diagram.

Zunächst werden von einem ersten Dienstleister D1 die einzelnen Programmmodule M einer Betriebssoftware OS programmiert und anschließend einem Compiler-Rechner 2 zugeführt, in dem die einzelnen Programmmodule M zu den Programmmodulen M' in einen maschinenlesbaren Code compiliert werden. Diese compilierten Programmmodule M' werden gemäß einer ersten in der Figur dargestellten Variante anschließend verschlüsselt und in einer Datendatei F (M') als verschlüsselter Datensatz bereitgestellt.First, the individual program modules M of an operating software OS are programmed by a first service provider D1 and then fed to a compiler computer 2 in which the individual program modules M are compiled into the program modules M' into a machine-readable code. According to a first variant shown in the figure, these compiled program modules M′ are then encrypted and made available in a data file F(M′) as an encrypted data set.

Dieser verschlüsselte Datensatz F (M') wird einem zweiten Dienstleister D2, üblicherweise ein mit der Herstellung der einzelnen Chipkarten beauftragter Dienstleister übermittelt. Dieser stellt eine Chipkarte 4 mit einem integrierten Chip 6 zur Verfügung, welcher einen Mikroprozessor 8 sowie einen nicht flüchtigen, beschreibbaren Speicher 10 (Flash-Speicher) aufweist. Der Speicher 10 weist bei der hier beschriebenen Ausführungsvariante einen Boot Loader 12 sowie einen Linker 14 auf, die als ausführbare Programme ausgebildet sind und beispielsweise bereits vorinstalliert sind. Das Programm des Boot Loaders 12 und/oder des Linkers 14 wird vorzugsweise ebenfalls in einer separaten, verschlüsselten Datei (einmalig) vom Software-Dienstleister D1 übermittelt. Alternativ hierzu ist der Linker 14 als ein erster Schritt in der verschlüsselten Datei F(M') enthalten.This encrypted data set F(M') is transmitted to a second service provider D2, usually a service provider commissioned with the production of the individual chip cards. This provides a chip card 4 with an integrated chip 6 which has a microprocessor 8 and a non-volatile, writable memory 10 (flash memory). In the embodiment variant described here, the memory 10 has a boot loader 12 and a linker 14 which are designed as executable programs and are, for example, already preinstalled. The program of the boot loader 12 and/or the linker 14 is preferably also transmitted in a separate, encrypted file (once) by the software service provider D1. Alternatively, the linker 14 is included in the encrypted file F(M') as a first step.

Die verschlüsselte Datei F (M') wird von einem Lade-Rechner 16 des Dienstleisters D2 empfangen. Dieser ist mit einem hier nicht näher dargestellten Kartengerät verbunden, um die Daten in den Speicher 10 zu übertragen. Die Kommunikation wird hierbei vorzugsweise über den Boot Loader 12 vorgenommen, der also vom Laderechner 16 die verschlüsselte Datei F (M') erhält, die verschlüsselten Programmmodule M' wieder entschlüsselt und dem Linker 14 zur Verfügung stellt. Mit Hilfe eines Zufallsgenerators setzt der Linker 14 dann die einzelnen Programmmodule M zu einem chipindividuellen Betriebssystem C-OS zusammen und legt dies in einem entsprechenden Speicherbereich des Speichers 10 ab. Alle Tätigkeiten des Boot Loaders 12 und des Linkers 14 werden hierbei über den Mikroprozessor 8 gesteuert.The encrypted file F(M') is received by a loading computer 16 of the service provider D2. This is connected to a card device, not shown here, in order to transfer the data to memory 10 . In this case, the communication is preferably carried out via the boot loader 12 , which therefore receives the encrypted file F(M′) from the loading computer 16 , decrypts the encrypted program modules M′ again and makes them available to the linker 14 . With the help of a random number generator, the linker 14 then assembles the individual program modules M into a chip-specific operating system C-OS and stores this in a corresponding memory area of the memory 10 . All activities of the boot loader 12 and the linker 14 are controlled by the microprocessor 8 in this case.

Gemäß einer bevorzugten hier nicht näher dargestellten Altemative ist neben dem eigentlichen Linker 14 ein erster Linker, als Compilerlinker bezeichnet, vorgesehen, der vor dem Übertragen der Programmmodule M' auf den Chip 6 diese zu einem ersten Betriebssystem OS verlinkt. Die derart miteinander verlinkten Programmmodule M' werden vorzugsweise verschlüsselt als der verschlüsselte Datensatz F(M') übertragen. Die Entschlüsselung erfolgt wiederum beispielsweise durch den Laderechner 16, bevor anschließend der Linker 14 das chipindividuelle Betriebssystem C-OS erzeugt.According to a preferred alternative not shown here, in addition to the actual linker 14, a first linker, referred to as a compiler linker, is provided which, before the program modules M' are transferred to the chip 6, links them to a first operating system OS. The program modules M′ linked to one another in this way are preferably transmitted in encrypted form as the encrypted data record F(M′). The decryption is again performed, for example, by the loading computer 16 before the linker 14 then generates the chip-specific operating system C-OS.

Der Compilerlinker erstellt also in diesem Fall aus den Programmmodulen, also aus den Objektdateien und den Programmbibliotheken das Betriebssystem OS als eine Art Template, aus dem dann das eigentliche chipindividuelle Betriebssystem C-OS erzeugt wird. Das Template enthält dabei neben den einzelnen Programmmodulen auch die Beziehungen / Referenzen zwischen den Modulen. Der Linker 14 weist bei der Erzeugung des chipindividuellen Betriebssystems C-OS unter Verwendung der bekannten Beziehungen den einzelnen Programmmodule konkrete Adressen, also Verlinkungen zwischen den Programmmodulen, zu.In this case, the compiler linker creates the operating system OS as a kind of template from the program modules, ie from the object files and the program libraries, from which the actual chip-specific operating system C-OS is then generated. In addition to the individual program modules, the template also contains the relationships/references between the modules. When generating the chip-specific operating system C-OS, the linker 14 assigns specific addresses, ie links between the program modules, to the individual program modules using the known relationships.

Die Vorgang der Erzeugung des chipindividuellen Betriebssystems C-OS wird für jede einzelne Chipkarte eines Chipkarten-Systems mit einer Vielzahl (mehrere tausend) von Chipkarten eines System-Anbieters wiederholt, d.h. die verschlüsselte Datei F (M') braucht nur einmal zum Chipkartenhersteller D2 übertragen werden. Der Laderechner 16 übermittelt diese geschützte Datei F (M') an jeden einzelnen Speicher 10 der Chipkarten 4. Alle Chipkarten des Chipkarten-Systems weisen die im Hinblick auf die Funktionalität identische Betriebssoftware OS auf, die sich jedoch durch die chipindividuelle Ausgestaltung im Hinblick auf ihren strukturellen Aufbau, also der Abfolge der Programmmodule M unterscheiden.The process of generating the chip-specific operating system C-OS is repeated for each individual chip card in a chip card system with a large number (several thousand) of chip cards from a system provider, i.e. the encrypted file F (M') only needs to be sent once to the chip card manufacturer D2 become. The charging computer 16 transmits this protected file F (M') to each individual memory 10 of the smart cards 4. All smart cards of the smart card system have the operating software OS, which is identical in terms of functionality, but which differs through the individual chip design in terms of their structural design, so the sequence of the program modules M differ.

Durch den Zufallsgenerator ist dadurch sichergestellt, dass so gut wie keine Chipkarte ein identisches chipindividuelles Betriebssystem C-OS aufweist. Ein Re-Engineering ist dadurch quasi ausgeschlossen.The random number generator ensures that virtually no chip card has an identical chip-specific operating system C-OS. This means that re-engineering is virtually impossible.

Bezugszeichenlistereference list

22
Compiler-Rechnercompiler calculator
44
Chipkartechip card
66
Chipchip
88th
Mikroprozessormicroprocessor
1010
Flash-SpeicherFlash memory
1212
Boot Loaderbootloader
1414
Linkerleftist
1616
Laderechnercharging calculator
MM
Programmmoduleprogram modules
M'M'
compalierte Programmmodulecompiled program modules
F (M')F (M')
verschlüsselte Dateiencrypted file
OSOS
Betriebssystemoperating system
C-OSC OS
chipindividuelles Betriebssystemchip-specific operating system
D1D1
Dienstleister 1 (Softwareentwickler)Service provider 1 (software developer)
D2D2
Dienstleister 2 (Chipkartenhersteller)Service provider 2 (chip card manufacturer)

Claims (8)

Verfahren zur Bereitstellung von Chips (6) mit hoher Kopierschutzfunktion, insbesondere für digitale Authentifizierungselemente wie Chipkarten (4) oder dergleichen, bei dem für die Chips (6) ein Sicherheits-Betriebssystem (OS) vorgesehen ist, das aus einzelnen Programmmodulen (M) aufgebaut ist, dadurch gekennzeichnet, dass die einzelnen Programmmodule (M) des Sicherheits-Betriebssystems (OS) mit Hilfe eines Linkers (14) für verschiedene Chips (6) unterschiedlich miteinander kombiniert werden, so dass für einen jeweiligen Chip (6) ein chipindividuelles Betriebssystem (C-OS) erzeugt und in einen Speicher (10) des Chips (6) eingelesen wird, wobei die chipindividuellen Betriebssysteme (C-OS) die gleiche Funktionalität jedoch einen unterschiedlichen strukturellen Aufbau aufweisen, dass der Linker (14) im Chip (6) integriert ist, dass die Anzahl der Programmmodule (M) >50 ist, dass der Linker (14) die Programmmodule (M) nach dem Zufallsprinzip zusammensetzt und dass die Programmmodule (M) eine einheitliche Modulgröße aufweisen und / oder nachträglich auf eine einheitliche Modulgröße gebracht werden, wobei parallel auf mehrere Chips (6) die Programmmodule (M) übertragen werden und auf diesen mehreren Chips (6) jeweils das chipindividuelle Betriebssystem (C-OS) erzeugt wird.Method for providing chips (6) with a high copy protection function, in particular for digital authentication elements such as chip cards (4) or the like, in which a security operating system (OS) is provided for the chips (6), which is composed of individual program modules (M). is characterized in that the individual program modules (M) of the security operating system (OS) are combined with one another differently with the aid of a linker (14) for different chips (6), so that a chip-specific operating system ( C-OS) is generated and read into a memory (10) of the chip (6), the chip-specific operating systems (C-OS) having the same che functionality, however, have a different structural design, that the linker (14) is integrated in the chip (6), that the number of program modules (M) is >50, that the linker (14) assembles the program modules (M) randomly and that the program modules (M) have a uniform module size and/or are subsequently brought to a uniform module size, the program modules (M) being transferred in parallel to a number of chips (6) and the chip-specific operating system ( C-OS) is generated. Verfahren nach Anspruch 1, dadurch gekennzeichnet, dass das chipindividuelle Betriebssystem (C-OS) in einen Flash-Speicher (10) eingelesen wird.procedure after claim 1 , characterized in that the chip-specific operating system (C-OS) is read into a flash memory (10). Verfahren nach einem der Ansprüche 1 bis 2, dadurch gekennzeichnet, dass die Programmmodule (M) als verschlüsselter Datensatz auf den Chip (6) übertragen werden.Procedure according to one of Claims 1 until 2 , characterized in that the program modules (M) are transmitted as an encrypted data set on the chip (6). Verfahren nach einem der Ansprüche 1 bis 3, dadurch gekennzeichnet, dass ein Compilerlinker vorgesehen ist, der die Programmmodule (M) zu einem ersten Betriebssystem (OS) verlinkt, aus dem dann der Linker (14) das chipindividuelle Betriebssystem (C-OS) erzeugt.Procedure according to one of Claims 1 until 3 , characterized in that a compiler linker is provided, which links the program modules (M) to a first operating system (OS), from which the linker (14) then generates the chip-specific operating system (C-OS). Verfahren nach einem der Ansprüche 1 bis 4, dadurch gekennzeichnet, dass die Anzahl >100 ist.Procedure according to one of Claims 1 until 4 , characterized in that the number is >100. Verfahren nach einem der Ansprüche 1 bis 6, dadurch gekennzeichnet, dass auf dem Chip (6) ein Boot Loader (12) integriert ist, der die Programmmodule (M) empfängtProcedure according to one of Claims 1 until 6 , characterized in that on the chip (6) a boot loader (12) is integrated, which receives the program modules (M). Verfahren nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, dass mit Hilfe einer gemeinsamen Kontaktier- und Übertragungseinheit die Programmmodule (M') parallel auf mehrere Chips (6) übertragen werden.Method according to one of the preceding claims, characterized in that the program modules (M') are transmitted in parallel to a plurality of chips (6) with the aid of a common contacting and transmission unit. Chips (6), hergestellt mit einem Verfahren nach einem der vorhergehenden Ansprüche.Chips (6) produced using a method according to one of the preceding claims.
DE102012024250.6A 2012-08-02 2012-12-12 Process for providing chips with a high level of copy protection, in particular for digital authentication systems such as chip cards or the like, and chips produced therefrom Active DE102012024250B4 (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
DE102012024250.6A DE102012024250B4 (en) 2012-08-02 2012-12-12 Process for providing chips with a high level of copy protection, in particular for digital authentication systems such as chip cards or the like, and chips produced therefrom
PCT/EP2013/002251 WO2014019679A1 (en) 2012-08-02 2013-07-30 Method for providing chips with high re-engineering protection, particularly for digital authentication systems, such as smart cards or the like, and chips produced using said method

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
DE102012213745 2012-08-02
DE102012213745.9 2012-08-02
DE102012024250.6A DE102012024250B4 (en) 2012-08-02 2012-12-12 Process for providing chips with a high level of copy protection, in particular for digital authentication systems such as chip cards or the like, and chips produced therefrom

Publications (2)

Publication Number Publication Date
DE102012024250A1 DE102012024250A1 (en) 2014-02-06
DE102012024250B4 true DE102012024250B4 (en) 2023-04-13

Family

ID=49943859

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102012024250.6A Active DE102012024250B4 (en) 2012-08-02 2012-12-12 Process for providing chips with a high level of copy protection, in particular for digital authentication systems such as chip cards or the like, and chips produced therefrom

Country Status (2)

Country Link
DE (1) DE102012024250B4 (en)
WO (1) WO2014019679A1 (en)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0929040A2 (en) 1997-12-25 1999-07-14 Nippon Telegraph and Telephone Corporation Microprocessor with data randomizing
DE102004058882A1 (en) 2004-12-06 2006-06-08 Giesecke & Devrient Gmbh Generating program code in a load format and providing executable program code
EP2249291A1 (en) 2009-05-07 2010-11-10 Masktech GmbH Method for increasing the security of existing contactless chip card technology

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE10108487A1 (en) * 2001-02-22 2002-09-12 Giesecke & Devrient Gmbh Method and system for the distributed creation of a program for a programmable, portable data carrier
CA2792304C (en) * 2010-03-31 2018-07-31 Irdeto Canada Corporation Method for linking and loading to protect applications

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0929040A2 (en) 1997-12-25 1999-07-14 Nippon Telegraph and Telephone Corporation Microprocessor with data randomizing
DE102004058882A1 (en) 2004-12-06 2006-06-08 Giesecke & Devrient Gmbh Generating program code in a load format and providing executable program code
EP2249291A1 (en) 2009-05-07 2010-11-10 Masktech GmbH Method for increasing the security of existing contactless chip card technology

Also Published As

Publication number Publication date
WO2014019679A1 (en) 2014-02-06
DE102012024250A1 (en) 2014-02-06

Similar Documents

Publication Publication Date Title
DE102007003580A1 (en) Install a patch in a smart card module
DE102009013384A1 (en) System and method for providing a secure application fragmentation environment
DE10238095B4 (en) Method for protection against manipulation of a control unit for at least one motor vehicle component and control unit
DE102014220616A1 (en) Method for loading executable program instructions into a chip card in active operation
DE102012012509B4 (en) Method and device for replacing the operating system of a resource-limited portable data carrier
DE10023820B4 (en) Software protection mechanism
EP3754529B1 (en) Method for reloading software on a smart card by means of a post-loader
EP2434424B1 (en) Method for increasing the security of security-relevant online services
DE10218795B4 (en) Method for producing an electronic security module
DE102012024250B4 (en) Process for providing chips with a high level of copy protection, in particular for digital authentication systems such as chip cards or the like, and chips produced therefrom
DE19939280A1 (en) Secure personalization of chip cards
DE10340411A1 (en) Device and method for the safe execution of a program
DE102005046696B4 (en) A method for generating protected program code and method for executing program code of a protected computer program and computer program product
DE19716015A1 (en) Introducing information on a chip card
DE102020206039A1 (en) Create a container instance
DE60216106T2 (en) PROTECTED READING OF COMPUTER COMMANDS IN A DATA PROCESSING SYSTEM
WO2020104198A1 (en) Method for processing application programs in a distributed automation system
DE102005056357A1 (en) Application`s implementation paths implementing method for e.g. chip card, involves implementing two of paths by one of virtual machines, and assigning different operational resource contingents to virtual machines
DE102020002055A1 (en) Data processing device for provisioning a hardware processor system
DE102015207004A1 (en) Method for protected access to security functions of a security module of a host system
EP4141722A1 (en) Safe operation of an industrial controller together with an ai module
EP1987466B1 (en) Method for securing authority over activation of applications within a security module
DE102014112304A1 (en) Method for installing an additional application in a non-volatile memory of a chip card
WO2019166398A1 (en) Computer program, particularly for a control unit of a motor vehicle
AT524619A1 (en) Computer-implemented method for authorized execution of software, data processing system, computer program product and computer-readable storage medium

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R016 Response to examination communication
R016 Response to examination communication
R018 Grant decision by examination section/examining division
R020 Patent grant now final