DE102023102691A1 - Method for writing data to an IC and system for carrying out the method - Google Patents

Method for writing data to an IC and system for carrying out the method Download PDF

Info

Publication number
DE102023102691A1
DE102023102691A1 DE102023102691.7A DE102023102691A DE102023102691A1 DE 102023102691 A1 DE102023102691 A1 DE 102023102691A1 DE 102023102691 A DE102023102691 A DE 102023102691A DE 102023102691 A1 DE102023102691 A1 DE 102023102691A1
Authority
DE
Germany
Prior art keywords
machine
data
programming
volatile memory
writing
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.)
Pending
Application number
DE102023102691.7A
Other languages
German (de)
Inventor
Markus Königshaus
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.)
Btv Tech GmbH
Btv Technologies GmbH
Original Assignee
Btv Tech GmbH
Btv Technologies 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 Btv Tech GmbH, Btv Technologies GmbH filed Critical Btv Tech GmbH
Priority to DE102023102691.7A priority Critical patent/DE102023102691A1/en
Priority to TW113102936A priority patent/TW202433322A/en
Priority to PCT/EP2024/052136 priority patent/WO2024160759A1/en
Publication of DE102023102691A1 publication Critical patent/DE102023102691A1/en
Pending legal-status Critical Current

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/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6209Protecting access to data via a platform, e.g. using keys or access control rules to a single file or object, e.g. in a secure envelope, encrypted and accessed using a key, or with access control rules appended to the object itself

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Storage Device Security (AREA)

Abstract

Die Erfindung betrifft ein Verfahren zum Beschreiben von Daten auf einen IC 3 mit den folgenden Schritten:1. Bereitstellen eines in verschlüsselter Form vorliegenden Datenpakets, enthaltend die auf den IC 3 zu schreibenden Daten;2. Laden des verschlüsselten Datenpakets;3. Entschlüsseln des verschlüsselten Datenpaketes und Ablegen des entschlüsselten Datenpaketes ausschließlich in einem flüchtigen Speicher 10;4. Bereitstellen des entschlüsselten Datenpakets in dem flüchtigen Speicher 10 für eine Programmiermaschine 6;5. Beschreiben eines oder mehrerer ICs 3 mit für den IC 3 bestimmten Daten des entschlüsselten Datenpakets mittels der Programmiermaschine 6;6. Nach dem Fertigstellen des Beschreibens des bzw. der mehreren ICs 3: Löschen des flüchtigen Speichers 10.The invention relates to a method for writing data to an IC 3 with the following steps: 1. Providing a data packet in encrypted form containing the data to be written to the IC 3; 2. Loading the encrypted data packet; 3. Decrypting the encrypted data packet and storing the decrypted data packet exclusively in a volatile memory 10; 4. Providing the decrypted data packet in the volatile memory 10 for a programming machine 6; 5. Writing one or more ICs 3 with data of the decrypted data packet intended for the IC 3 using the programming machine 6; 6. After completing the writing of the or more ICs 3: erasing the volatile memory 10.

Description

Die Erfindung betrifft ein Verfahren zum Beschreiben von Daten auf einen IC sowie ein System zur Ausführung dieses Verfahrens.The invention relates to a method for writing data to an IC and a system for carrying out this method.

In Elektronikartikeln sind ICs essenzieller Bestandteil. Sie dienen dem Ausführen unterschiedlichster Aufgaben, sie empfangen und werten Daten etwa aus und/oder führen in Abhängigkeit von Bedingungen bestimmte Aktionen aus, die die Peripherie eines ICs steuern. Auch können sie zum Speichern von Daten dienen.ICs are an essential component in electronic products. They are used to carry out a wide variety of tasks, such as receiving and evaluating data and/or carrying out certain actions depending on conditions that control the peripherals of an IC. They can also be used to store data.

Aufgrund der zunehmenden Digitalisierung übernehmen solche ICs auch sicherheitsrelevante Aufgaben, etwa das Speichern von personenbezogenen, sicherheitsrelevanten Daten, etwa Smartcards, Bankarten etc. oder auch das Ausführen von sicherheitsrelevanten und kritischen Aktionen, etwa im Automobilbereich. Zum Übernehmen dieser Aufgaben wird der IC mit einem sogenannten Image beschrieben. Diejenigen Informationen, die dazu dienen, einen IC mit den persönlichen Daten oder auch zum Ausführen der sicherheitsrelevanten Aktionen zu beschreiben, werden nachstehend allgemein als Daten angesprochen.Due to increasing digitalization, such ICs also take on security-relevant tasks, such as storing personal, security-relevant data, such as smart cards, bank cards, etc., or carrying out security-relevant and critical actions, for example in the automotive sector. To take on these tasks, the IC is described with a so-called image. The information that is used to describe an IC with the personal data or to carry out security-relevant actions is generally referred to as data below.

ICs können etwa als EPROM, EEPROM oder dazu ähnlich ausgeführt sein, wobei die Erfindung hierauf nicht beschränkt ist. Wichtig ist, dass der genutzte IC in einer Programmiermaschine mit den für ihn bestimmten Daten beschreibbar ist.ICs can be designed as EPROM, EEPROM or similar, although the invention is not limited to this. It is important that the IC used can be written to with the data intended for it in a programming machine.

Um dem Potenzial eines möglichen Angriffes entgegenzuwirken, müssen die für den IC bestimmten Daten, die üblicherweise in einer Entwicklungsabteilung entwickelt werden, sicher an eine Programmiermaschine, die den oder die ICs beschreibt, übertragen werden. Auch sollen Daten nicht im Nachhinein - etwa nach dem Abschließen des Beschreibens des ICs - durch einen Dritten abgreifbar sein. Das ist üblicherweise der Fall, wenn die Daten auf einem nicht-flüchtigen Speicher (zwischen)gespeichert werden. To counteract the potential of a possible attack, the data intended for the IC, which is usually developed in a development department, must be securely transferred to a programming machine that describes the IC(s). Data should also not be accessible to a third party afterwards - for example, after the IC has been written to. This is usually the case when the data is (temporarily) stored on a non-volatile memory.

Um die für den IC bestimmten Daten sicher zu übertragen, werden diese üblicherweise verschlüsselt übertragen und sind nur mit einem entsprechenden Schlüssel entschlüsselbar.In order to securely transmit the data intended for the IC, it is usually transmitted encrypted and can only be decrypted with a corresponding key.

Aus US 2007/0038851 A1 ist eine Programmiermaschine bekannt, die dazu geeignet ist, einen IC mit sicherheitsrelevanten Daten zu beschreiben. Die sicherheitsrelevanten Daten werden in einem flüchtigen Speicher der Programmiermaschine gespeichert. Anschließend wird mit diesen Daten ein IC beschrieben.Out of US 2007/0038851 A1 A programming machine is known that is suitable for writing safety-relevant data to an IC. The safety-relevant data is stored in a volatile memory of the programming machine. This data is then used to write to an IC.

Auch wenn an dieser bekannten Programmiermaschine selbst aufgrund des Einsetzens eines flüchtigen Speichers ein Abgreifen der Daten nach dem Beschreiben des ICs nicht möglich ist, so müssen die Daten der Programmiermaschine zum Beschreiben des ICs in entschlüsselter Form vorliegen, respektive in entschlüsselter Form an diese übertragen werden. Dies birgt die Gefahr, dass auf dem Übertragungsweg hin zur Programmiermaschine die Daten in einem nicht-flüchtigen Speicher (zwischen)gespeichert werden und im Nachhinein unbemerkt abgegriffen werden können, insbesondere da solche Programmiermaschinen üblicherweise an ein großes Computernetzwerk (etwa LAN) angeschlossen sind.Even if it is not possible to access the data after writing to the IC on this known programming machine itself due to the use of a volatile memory, the data must be available in decrypted form for the programming machine to write to the IC, or must be transferred to it in decrypted form. This entails the risk that the data is (temporarily) stored in a non-volatile memory during transmission to the programming machine and can be accessed later without being noticed, especially since such programming machines are usually connected to a large computer network (such as a LAN).

Aufgabe der Erfindung ist es vor diesem Hintergrund ein Verfahren vorzuschlagen, mit dem die Sicherheit des Prozesses zum Beschreiben von Daten auf einen IC zu erhöht ist. Zudem ist es Aufgabe der Erfindung, ein nachrüstbares System zur Ausführung des Verfahrens vorzuschlagen.Against this background, the object of the invention is to propose a method with which the security of the process for writing data to an IC is increased. In addition, the object of the invention is to propose a retrofittable system for carrying out the method.

Die verfahrensbezogene Aufgabe wird gelöst durch ein Verfahren zum Beschreiben von Daten auf einen IC mit den folgenden Schritten:

  1. 1. Bereitstellen eines in verschlüsselter Form vorliegenden Datenpakets, enthaltend die auf den IC zu schreibenden Daten;
  2. 2. Laden des verschlüsselten Datenpakets;
  3. 3. Entschlüsseln des verschlüsselten Datenpaketes und Ablegen des entschlüsselten Datenpaketes ausschließlich in einem flüchtigen Speicher;
  4. 4. Bereitstellen des entschlüsselten Datenpakets in dem flüchtigen Speicher für eine Programmiermaschine;
  5. 5. Beschreiben eines oder mehrerer ICs mit für den IC bestimmten Daten des entschlüsselten Datenpakets mittels der Programmiermaschine;
  6. 6. Nach dem Fertigstellen des Beschreibens des bzw. der mehreren ICs: Löschen des flüchtigen Speichers.
The method-related task is solved by a method for writing data to an IC with the following steps:
  1. 1. Providing a data packet in encrypted form containing the data to be written to the IC;
  2. 2. Loading the encrypted data packet;
  3. 3. Decrypting the encrypted data packet and storing the decrypted data packet exclusively in a volatile memory;
  4. 4. Providing the decrypted data packet in the volatile memory to a programming machine;
  5. 5. Writing to one or more ICs data from the decrypted data packet intended for the IC using the programming machine;
  6. 6. After completing the writing of the IC(s): Erase the volatile memory.

Die systembezogene Aufgabe wird gelöst durch ein System zur Ausführung des erfindungsgemäßen Verfahrens, umfassend eine Programmiermaschine zum Beschreiben eines ICs und eine Computermaschine mit einem flüchtigen Speicher.The system-related object is achieved by a system for carrying out the method according to the invention, comprising a programming machine for writing to an IC and a computer machine with a volatile memory.

Vorteilhafte Ausgestaltungen ergeben sich aus den abhängigen Ansprüchen und der Beschreibung.Advantageous embodiments emerge from the dependent claims and the description.

Kern der Erfindung ist es, das Datenpaket in Vorbereitung des Beschreibens des ICs zu entschlüsseln, das entschlüsselte Datenpaket jedoch ausschließlich in einem flüchtigen Speicher abzulegen und der Programmiermaschine aus diesem flüchtigen Speicher heraus bereitzustellen. Hierunter versteht sich auch das Ablegen in mehreren flüchtigen Speichern, sofern dies notwendig ist.The core of the invention is to decrypt the data packet in preparation for writing to the IC, but the decrypted data packet to be stored exclusively in a volatile memory and made available to the programming machine from this volatile memory. This also includes storing in several volatile memories if necessary.

Um das Verständnis der Ausführung des Verfahrens zu erleichtern, wird nachstehend zunächst das System, in dem das erfindungsgemäße Verfahren durchgeführt wird, erläutert. Es versteht sich, dass die Ausführung des Verfahrens gemäß der Erfindung nicht auf ein Ausführen auf dem nachstehend beschriebenen System beschränkt ist, wenngleich dies bevorzugt ist.In order to facilitate understanding of the implementation of the method, the system in which the method according to the invention is implemented is first explained below. It is understood that the implementation of the method according to the invention is not restricted to implementation on the system described below, although this is preferred.

Eine Programmiermaschine ist mit einer Computermaschine gekoppelt. Bevorzugt ist diese Koppelung so eingerichtet, dass die Computermaschine nur mit einer speziellen Programmiermaschine interagieren kann. Zum Sicherstellen, dass die Computermaschine nur mit einer bestimmten Programmiermaschine interagieren kann, sind dem Fachmann Verfahren und Methoden hinlänglich bekannt. Die Kopplung zwischen Computermaschine und Programmiermaschine erhöht die Sicherheit. Der Einsatz der Computermaschine als separate Maschine zu der Programmiermaschine vereinfacht die Kontrolle über den Datenfluss zwischen Programmiermaschine und externem Netzwerk, da die Computermaschine üblicherweise kontrollierter einstellbar ist als die Programmiermaschine, etwa da auf den ausgeführten Code in der Computermaschine einfacher zugegriffen werden kann als in der Programmiermaschine. So können auch bereits bestehende Programmiermaschinen dergestalt nachgerüstet werden, dass das erfindungsgemäße Verfahren mit diesen ausgeführt werden kann. Die Computermaschine kann etwa als PC ausgeführt sein.A programming machine is coupled to a computer machine. Preferably, this coupling is set up in such a way that the computer machine can only interact with a specific programming machine. Procedures and methods for ensuring that the computer machine can only interact with a specific programming machine are well known to those skilled in the art. The coupling between the computer machine and the programming machine increases security. Using the computer machine as a separate machine to the programming machine simplifies control over the data flow between the programming machine and the external network, since the computer machine can usually be set in a more controlled manner than the programming machine, for example because the code executed in the computer machine can be accessed more easily than in the programming machine. Existing programming machines can also be retrofitted in such a way that the method according to the invention can be carried out with them. The computer machine can be designed as a PC, for example.

Die Computermaschine verfügt über eine Recheneinheit zur Ausführung von Code sowie über einen flüchtigen Speicher, etwa einen RAM.The computer machine has a computing unit for executing code as well as a volatile memory, such as RAM.

Die Computermaschine und die Programmiermaschine sind bevorzugt in einem gemeinsamen Gehäuse untergebracht, um zu vermeiden, dass auf die Kommunikation zwischen Computermaschine und Programmiermaschine eingewirkt, bzw. diese abgegriffen werden kann. Ein physischer Zugriff auf die Computermaschine und die physischen Kommunikationsleitungen zu der Programmiermaschine ist so von außen ohne das Öffnen der Programmiermaschine nicht möglich. Das so gebildete System aus Computermaschine und Programmiermaschine wird nachstehend als Programmiermaschinensystem angesprochen.The computer machine and the programming machine are preferably housed in a common housing to prevent the communication between the computer machine and the programming machine from being influenced or intercepted. Physical access to the computer machine and the physical communication lines to the programming machine is therefore not possible from the outside without opening the programming machine. The system formed in this way, consisting of the computer machine and the programming machine, is referred to below as the programming machine system.

So ist ferner bevorzugt vorgesehen, dass an dem Programmiermaschinensystem alle externen Schnittstellen, etwa USB-Anschlüsse, Laufwerke für CD's und/oder DVDs, serielle Schnittstellen, etc. deaktiviert bzw. verplombt sind.It is also preferably provided that all external interfaces on the programming machine system, such as USB ports, drives for CDs and/or DVDs, serial interfaces, etc. are deactivated or sealed.

Das Programmiermaschinensystem ist in ein Netzwerk eingebettet und hat Zugriff auf externe Netzwerkteilnehmer, etwa einen Server zum Abrufen und Speichern von Daten bzw. Datenpaketen. Bevorzugt ist vorgesehen, dass nur die Computermaschine an dieses Netzwerk angeschlossen ist; die Programmiermaschine ist lediglich an die Computermaschine angeschlossen. Die Computermaschine kann so den Zugriff der Programmiermaschine auf das Netzwerk kontrollieren, da keine physikalische Verbindung zwischen Programmiermaschine und Netzwerk besteht; die Computermaschine ist dazwischengeschaltet. Die Kontrolle seitens der Computermaschine erfolgt mittels eines Zugriffscontrollers. Dieser Zugriffscontroller kann eine Kommunikation zwischen Programmiermaschine und Netzwerk bidirektional (dann hat die Programmiermaschine Read/Write-Zugriff auf das Netzwerk, respektive auf deren Teilnehmer) oder unidirektional (dann hat die Programmiermaschine nur Read-Zugriff auf das Netzwerk, respektive die Netzwerkteilnehmer) zulassen.The programming machine system is embedded in a network and has access to external network participants, such as a server for retrieving and storing data or data packets. Preferably, only the computer machine is connected to this network; the programming machine is only connected to the computer machine. The computer machine can thus control the programming machine's access to the network, since there is no physical connection between the programming machine and the network; the computer machine is connected in between. The computer machine controls this by means of an access controller. This access controller can allow communication between the programming machine and the network bidirectionally (then the programming machine has read/write access to the network or to its participants) or unidirectionally (then the programming machine only has read access to the network or to the network participants).

Die Computermaschine verfügt ferner über einen Zustandsautomaten, der von der Recheneinheit angesteuert wird. Der Zustandsautomat wechselt auf Befehl zwischen einem Normal-Mode und einen Secure-Mode. Der Zustandsautomat schaltet den Zugriffscontroller entsprechend des Modus um: im Normal-Mode ist die bidirektionale Kommunikation, jedenfalls auf relevante Dienste und andere Netzwerkteilnehmer möglich, in dem Secure-Mode ist nur die genannte unidirektionale Kommunikation möglich. Durch die Computermaschine wird der Zugang der Programmiermaschine zu dem Netzwerk maskiert. Des Weiteren wird beim Zurückschalten vom Secure-Mode in den Normal-Mode seitens des Zustandsautomaten der der Computermaschine zugehörige flüchtige Speicher gelöscht.The computer machine also has a state machine that is controlled by the processing unit. The state machine switches between a normal mode and a secure mode on command. The state machine switches the access controller according to the mode: in normal mode, bidirectional communication is possible, at least to relevant services and other network participants; in secure mode, only the aforementioned unidirectional communication is possible. The computer machine masks the programming machine's access to the network. Furthermore, when the state machine switches back from secure mode to normal mode, the volatile memory belonging to the computer machine is erased.

Es versteht sich, dass der hier angesprochene Zugriffscontroller und/oder der Zustandsautomat in der Recheneinheit physikalisch integriert und/oder softwaretechnisch implementiert sein kann bzw. die Aufgaben des Zugriffscontrollers und/oder des Zustandsautomaten durch die Recheneinheit mit ausgeführt werden können.It is understood that the access controller and/or the state machine referred to here can be physically integrated into the computing unit and/or implemented in software, or the tasks of the access controller and/or the state machine can also be carried out by the computing unit.

Im Detail lässt sich der erfindungsgemäße Prozess - teilweise unter Bezugnahme auf das vorstehend beschriebene System - wie folgt beschreiben:

  • In einem ersten Schritt (Schritt 1) wird ein Datenpaket bereitgestellt. Das Datenpaket liegt in verschlüsselter Form vor, etwa verschlüsselt mittels einer asymmetrischen Verschlüsselung. So kann eine Entwicklungsabteilung oder ein Kunde diejenigen Daten, die auf den IC geschrieben werden sollen, von seiner Seite aus verschlüsseln. Der Betreiber der Programmiermaschine, respektive das Programmiermaschinensystem, verfügt grundsätzlich über die notwendigen Schlüssel, damit er dieses Datenpaket entschlüsseln kann.
In detail, the process according to the invention can be described - partly with reference to the system described above - as follows:
  • In a first step (step 1), a data packet is provided. The data packet is in encrypted form, for example encrypted using asymmetric encryption. A development department or a customer can encrypt the data that is to be written to the IC from their side. The operator of the programming machine, or rather the programming machine system, generally has the necessary keys to be able to decrypt this data packet.

Das Datenpaket enthält jedenfalls diejenigen Daten, die zum Beschreiben des ICs bestimmt sind. Dieses sind üblicherweise ein Image, das als Grundstruktur zum Beschreiben des bzw. der ICs bestimmt ist und ggf. prozessabhängige Individualisierungsdaten, mit denen das Image ergänzt werden kann. In diesem Fall können auch Teil des Datenpaketes Informationen sein, auf welche Art und Weise die prozessabhängigen Individualisierungsdaten in das Image eingesetzt werden sollen.The data packet always contains the data that is intended for describing the IC. This is usually an image that is intended as a basic structure for describing the IC(s) and, if necessary, process-dependent customization data that can be used to supplement the image. In this case, the data packet can also contain information about how the process-dependent customization data should be inserted into the image.

Die Individualisierungsdaten können spezifisch bereitgestellt werden; sie können jedoch auch lokal mittels einer Kundenapplikation generiert werden. Auch ist denkbar, dass diese Daten von einem externen Server abgegriffen werden, bevorzugt über eine gesicherte Verbindung.The customization data can be provided specifically; however, it can also be generated locally using a customer application. It is also conceivable that this data is retrieved from an external server, preferably via a secure connection.

Zum Betreiben einer Programmiermaschine sind üblicherweise zusätzliche Konfigurationsdaten notwendig, die maschinenspezifisch und ggf. auf die für den IC bestimmten Daten abgestimmt sind. Auch diese maschinenspezifischen Konfigurationsdaten können Teil des Datenpaketes sein.To operate a programming machine, additional configuration data is usually required that is machine-specific and may be tailored to the data intended for the IC. This machine-specific configuration data can also be part of the data package.

Teil des Datenpaketes können auch weitere Daten sein. Das Datenpaket kann etwa in Form eines Archives vorliegen.Other data can also be part of the data package. The data package can be in the form of an archive, for example.

In einem zweiten Schritt (Schritt 2) wird das bereitgestellte Datenpaket in den Prozess geladen. Dies erfolgt mittels einer Recheneinheit, sei es einer der Programmiermaschine physikalisch zugeordneten Recheneinheit oder - bevorzugt - mittels der Recheneinheit der in dem vorstehend beschriebenen Programmiermaschinensystem genannten Computermaschine.In a second step (step 2), the data packet provided is loaded into the process. This is done by means of a computing unit, be it a computing unit physically assigned to the programming machine or - preferably - by means of the computing unit of the computer machine mentioned in the programming machine system described above.

Das verschlüsselte Datenpaket kann etwa auf einem Server in einer Netzwerkumgebung liegen. Zum Laden des Datenpaketes wird dieses von dem Server abgerufen.The encrypted data packet can be located on a server in a network environment. To load the data packet, it is retrieved from the server.

Im dritten Schritt (Schritt 3) wird das geladene, verschlüsselte Datenpaket entschlüsselt. Das entschlüsselte Datenpaket wird ausschließlich in einem flüchtigen Speicher abgelegt. Ein Schreiben auf einen nicht-flüchtigen Speicher ist ausgeschlossen, etwa das Schreiben auf eine Festplatte. Denn: Auch wenn auf einem nicht-flüchtigen Speicher Speicherplatz freigegeben/gelöscht wird, so ist es für einen Angreifer möglich bzw. besteht die Gefahr, dass die vormals gespeicherten Daten rekonstruiert werden können, insbesondere dann, wenn nicht der gesamte Speicher überschrieben wird, sondern nur ein Teil desselben. Dies ist bei nicht-flüchtigen Speichersystemen üblich.In the third step (step 3), the loaded, encrypted data packet is decrypted. The decrypted data packet is only stored in volatile memory. Writing to non-volatile memory, such as writing to a hard disk, is not possible. This is because even if storage space is released/deleted on non-volatile memory, it is still possible for an attacker to reconstruct the previously stored data, particularly if only part of the memory is overwritten, rather than the entire memory. This is common with non-volatile memory systems.

Bevorzugt ist der flüchtige Speicher als RAM ausgebildet, etwa als Teil der vorstehend genannten Computermaschine. So kann die Entschlüsselung lokal auf der Computermaschine erfolgen; das Ergebnis wird dann ausschließlich im RAM gehalten.Preferably, the volatile memory is designed as RAM, for example as part of the computer machine mentioned above. This allows decryption to be carried out locally on the computer machine; the result is then stored exclusively in the RAM.

Vor dem Schritt 3 oder nach dem Schritt 3 ist bevorzugt vorgesehen, das Programmiermaschinensystem in den oben bereits erläuterten Secure-Mode zu schalten, um zu verhindern, dass entschlüsselte Daten über die Programmiermaschine an das Netzwerk gesendet werden.Before step 3 or after step 3, it is preferably provided to switch the programming machine system to the secure mode already explained above in order to prevent decrypted data from being sent to the network via the programming machine.

Im vierten Schritt (Schritt 4) wird das entschlüsselte Datenpaket in dem flüchtigen Speicher für die Programmiermaschine bereitgestellt. Der Programmiermaschine wird somit Zugriff auf den flüchtigen Speicher gewährt.In the fourth step (step 4), the decrypted data packet in the volatile memory is made available to the programming machine. The programming machine is thus granted access to the volatile memory.

Dies kann etwa dadurch umgesetzt werden, dass in dem flüchtigen Speicher ein Laufwerk emuliert wird, welches für die Programmiermaschine freigegeben wird. Durch das Emulieren eines Laufwerkes in dem flüchtigen Speicher, auf das der Programmiermaschine Zugriff gewährt wird, ist eine einfache Einbindung des erfindungsgemäßen Verfahrens auch in bestehende Produktionslinien ermöglicht. Programmiermaschinen greifen üblicherweise auf externe Laufwerke zu, um die erforderlichen Datenpakete, respektive Daten abzurufen, um einen oder mehrere ICs zu beschreiben. This can be implemented, for example, by emulating a drive in the volatile memory, which is made available to the programming machine. By emulating a drive in the volatile memory, to which the programming machine is granted access, the method according to the invention can also be easily integrated into existing production lines. Programming machines usually access external drives in order to retrieve the required data packets or data in order to write to one or more ICs.

Bevorzugt ist vorgesehen, dass das emulierte Laufwerk nur an der computermaschinenseitigen Schnittstelle zu der Programmiermaschine freigegeben ist und nicht an der computermaschinenseitigen Schnittstelle zu einem externen Netzwerk.Preferably, the emulated drive is only enabled at the computer machine-side interface to the programming machine and not at the computer machine-side interface to an external network.

Sollte der flüchtige Speicher dennoch in ein Netzwerk eingebunden sein, der auch Netzwerkteilnehmer außerhalb des Programmiermaschinensystems umfasst, kann vorgesehen sein, das emulierte Laufwerk mit einem nur der Programmiermaschine bekannten Schlüssel, etwa in Form eines Passwortes, zu sichern bzw. zu verschlüsseln.If the volatile memory is nevertheless integrated into a network that also includes network participants outside the programming machine system, it can be provided to secure or encrypt the emulated drive with a key known only to the programming machine, for example in the form of a password.

In einem fünften Schritt (Schritt 5) werden mittels der Programmiermaschine ein oder mehrere ICs mit den für den bzw. die ICs bestimmten Daten des entschlüsselten Datenpaketes beschrieben. Das Beschreiben erfolgt auf übliche Weise seitens der Programmiermaschine und ist dem Fachmann hinlänglich bekannt.In a fifth step (step 5), the programming machine is used to write the data of the decrypted data packet intended for the IC(s) to one or more ICs. The writing is carried out in the usual way by the programming machine and is well known to the expert.

So ist bevorzugt vorgesehen, dass das entschlüsselte Datenpaket bzw. hieraus extrahierte, entschlüsselte Daten nur in flüchtigen Speichern der Programmiermaschine abgelegt werden. Andere Maßnahmen zum Sicherstellen, dass die entschlüsselten Daten nicht aus der Programmiermaschine durch einen Dritten abgegriffen werden können, sind möglich.It is therefore preferably provided that the decrypted data packet or decrypted data extracted from it are only stored in the programming machine's volatile memory. Other measures to ensure that the decrypted data cannot be accessed from the programming machine by a third party are possible.

Je nach Programmiermaschine besteht zudem die Möglichkeit, dass das Datenpaket ausschließlich aus denjenigen Daten besteht, mit denen der IC beschrieben wird; etwaige zusätzliche Konfigurationsdaten können auch auf separatem Wege der Programmiermaschine zur Verfügung gestellt werden. Bevorzugt ist vorgesehen, dass, sollten die Konfigurationsdaten der Programmiermaschine auf separatem Wege zur Verfügung gestellt werden, dieses analog zu dem hier beschriebenen Prozess erfolgt, nämlich, dass auch die Konfigurationsdaten grundsätzlich verschlüsselt gespeichert sind und nach dem hier vorgeschlagenen Verfahren in einen flüchtigen Speicher entschlüsselt werden und nur aus dem flüchtigen Speicher heraus der Programmiermaschine zur Verfügung gestellt werden.Depending on the programming machine, it is also possible for the data packet to consist exclusively of the data used to describe the IC; any additional configuration data can also be made available to the programming machine separately. Preferably, if the configuration data is made available to the programming machine separately, this is done in a similar way to the process described here, namely that the configuration data is also stored in encrypted form and is decrypted in a volatile memory using the method proposed here and is only made available to the programming machine from the volatile memory.

In einem sechsten Schritt (Schritt 6) ist vorgesehen, dass nach dem Fertigstellen des Beschreibens des bzw. der mehreren ICs der flüchtige Speicher, in dem entschlüsselte Daten vorliegen, gelöscht wird. Mit Löschen der Daten ist gemeint, dass die Daten durch einen Angreifer nicht mehr aus dem Speicher abrufbar bzw. rekonstruierbar sind. Dies erfolgt etwa durch ein Überschreiben des vollständigen flüchtigen Speichers mit anderem Inhalt. Auch kann ein Erden des flüchtigen Speichers vorgesehen sein, sodass dieser stromlos geschaltet wird. Dies ist insbesondere automatisch der Fall, sollte ein Angreifer physisch auf den flüchtigen Speicher zugreifen und diesen ausbauen. Bei einem Ausbau wird die Stromversorgung unterbrochen, sodass der Inhalt des flüchtigen Speichers verloren geht.In a sixth step (step 6), after the writing of the IC(s) has been completed, the volatile memory containing the decrypted data is deleted. Deleting the data means that the data can no longer be retrieved or reconstructed from the memory by an attacker. This can be done, for example, by overwriting the entire volatile memory with different content. It can also be planned to ground the volatile memory so that it is de-energized. This is automatically the case if an attacker physically accesses the volatile memory and removes it. If the memory is removed, the power supply is interrupted, so that the contents of the volatile memory are lost.

Nach dem Löschen des Speichers wird das System wieder in den Normal-Mode geschaltet. Das Schalten in den Normal-Modus kann das Löschen des flüchtigen Speichers auch beinhalten (s. o.).After clearing the memory, the system is switched back to normal mode. Switching to normal mode can also include clearing the volatile memory (see above).

Üblicherweise werden die Daten, mit denen der IC beschrieben werden soll, ggf. ergänzt durch prozessabhängige Individualisierungsdaten, getrennt von dem Schreibvorgang der Programmiermaschine entwickelt, um ein Beschreiben eines ICs auf verschiedenen Programmiermaschinentypen zu ermöglichen. Die zum Betrieb eines Programmiermaschinentyps notwendigen maschinentypspezifischen Konfigurationsdaten werden daher getrennt im Rahmen eines Mustererstellungsprozesses an einem Individuum des jeweiligen Programmiermaschinetyps entwickelt. Hierzu werden die auf den IC zu schreibenden Daten testweise mit der Programmiermaschine auf den IC geschrieben und der IC anschließend validiert, nämlich, ob der Schreibvorgang zu dem gewünschten Ergebnis geführt hat. Ist dies nicht der Fall, werden die Konfigurationsdatenangepasst, ein IC wird abermals testweise beschrieben und validiert etc.Usually, the data with which the IC is to be written, possibly supplemented by process-dependent customization data, is developed separately from the writing process of the programming machine in order to enable an IC to be written on different programming machine types. The machine-type-specific configuration data required to operate a programming machine type are therefore developed separately as part of a sample creation process on an individual of the respective programming machine type. To do this, the data to be written to the IC is written to the IC using the programming machine as a test and the IC is then validated to see whether the writing process has led to the desired result. If this is not the case, the configuration data is adjusted, an IC is written and validated again as a test, etc.

An diesen Mustererstellungsprozess schließt sich ein Serienfertigungsprozess, in dem eine Vielzahl gleicher bzw. sehr ähnlicher ICs beschrieben werden (letzteres ist der Fall, wenn Teil der auf den IC zu beschreibenden Daten prozessabhängige Individualisierungsdaten sind), an. Bevorzugt ist vorgesehen, dass auch während dieses Mustererstellungsprozesses die entschlüsselten Daten zum Beschreiben des ICs als auch die angepassten Konfigurationsdaten nur in einem flüchtigen Speicher abgelegt werden und nicht auf einen nicht-flüchtigen Speicher gespeichert werden.This pattern creation process is followed by a series production process in which a large number of identical or very similar ICs are described (the latter is the case if part of the data to be written to the IC is process-dependent customization data). It is preferably provided that during this pattern creation process, the decrypted data for writing to the IC as well as the adapted configuration data are only stored in a volatile memory and not saved in a non-volatile memory.

Im Detail ist in dem Mustererstellungsprozess zunächst vorgesehen (Schritt A), die vorstehend beschriebenen Schritte 1 bis 4 durchzuführen, mit der Maßgabe, dass es sich bei dem angesprochenen Datenpaket um die auf den oder die ICs zu schreibenden Daten handelt, mithin das Image, ggf. ergänzt um prozessabhängige Individualisierungsdaten.In detail, the pattern creation process initially provides (step A) for carrying out steps 1 to 4 described above, with the proviso that the data packet in question is the data to be written to the IC(s), i.e. the image, possibly supplemented by process-dependent customization data.

In einem nächsten Schritt (Schritt B) werden die Konfigurationsdaten, etwa maschinentypspezifische Konfigurationsdaten, bereitgestellt, mithin ggf. erstellt. Auch diese Konfigurationsdaten werden nur in dem flüchtigen Speicher abgelegt, und zwar dergestalt, dass sie der Programmiermaschine bereitgestellt werden. Das Bereitstellen kann analog zum Schritt 4 erfolgen.In the next step (step B), the configuration data, such as machine type-specific configuration data, are provided and, if necessary, created. This configuration data is also only stored in the volatile memory in such a way that it is made available to the programming machine. The provision can be carried out in a similar way to step 4.

In einem weiteren Schritt (Schritt C) schließt sich üblicherweise ein Funktionstest an, nach dem in Abhängigkeit des Ausganges die im Schritt B bereitgestellten Konfigurationsdaten angepasst werden. Sind die Konfigurationsdaten final bereitgestellt, werden die Konfigurationsdaten und die für das Beschreiben des ICs bestimmten Daten zusammengeführt. Diese zusammengeführten Daten werden auch als Job angesprochen. Die Zusammenführung kann etwa in einem Archiv erfolgen.A further step (step C) usually involves a functional test, after which the configuration data provided in step B is adjusted depending on the outcome. Once the configuration data has been finally provided, the configuration data and the data intended for writing to the IC are merged. This merged data is also referred to as a job. The merging can take place in an archive, for example.

In einem nächsten Schritt (Schritt D) wird der Job verschlüsselt. Dieser verschlüsselte Job wird in einem nicht-flüchtigen Speicher abgelegt. Dies kann etwa in einer Netzwerkumgebung auf einem Server sein. Auf diese Weise ist der verschlüsselte Job von allen Netzwerkteilnehmern, etwa auch von anderen Programmiermaschinensystemen, abrufbar. Sollte der Job auch von anderen Programmiersystemen abrufbar sein sollen, ist es notwendig, den Job auf eine Art und Weise zu verschlüsseln, dass auch andere Programmiersysteme diesen entschlüsseln können.In the next step (step D), the job is encrypted. This encrypted job is stored in a non-volatile memory. This can be on a server in a network environment, for example. In this way, the encrypted job can be accessed by all network participants, including other programming machine systems. If If the job is also to be accessible from other programming systems, it is necessary to encrypt the job in such a way that other programming systems can also decrypt it.

Anschließend (Schritt E) wird der flüchtige Speicher, in dem die entschlüsselten Daten zuvor abgelegt waren, gelöscht. Dies kann analog zu Schritt 6 erfolgen.Then (step E), the volatile memory in which the decrypted data was previously stored is deleted. This can be done analogously to step 6.

Es kann vorgesehen sein, dass im Schritt D der verschlüsselte Job nicht sofort auf einen externen Netzwerkteilnehmer gespeichert wird, sondern zunächst nur lokal. Anschließend wird der Schritt E ausgeführt (Löschen des flüchtigen Speichers). Erst nachdem der flüchtige Speicher gelöscht worden ist, wird eine Verbindung zu einem Netzwerkteilnehmer, etwa einem Server, aufgebaut, um den verschlüsselten Job zu speichern.It can be planned that in step D the encrypted job is not immediately saved on an external network participant, but initially only locally. Then step E is carried out (deleting the volatile memory). Only after the volatile memory has been deleted is a connection established to a network participant, such as a server, in order to save the encrypted job.

Zum Durchführen des Serienfertigungsprozesses werden dann die vorstehend beschriebenen Schritte 1 bis 6 durchgeführt, wobei es sich bei dem dort angesprochenen Datenpaket um den im Schritt C des Mustererstellungsprozesses erstellten Job handelt.To carry out the series production process, steps 1 to 6 described above are then carried out, whereby the data package referred to therein is the job created in step C of the pattern creation process.

Auch in dem Mustererstellungsprozess kann vorgesehen sein, dass bevor die verschlüsselten Daten entschlüsselt werden, das Programmiermaschinensystem in den Secure-Mode geschaltet wird und nach dem Schritt E wieder in den Normal-Mode geschaltet wird.The pattern creation process may also provide that before the encrypted data is decrypted, the programming machine system is switched to secure mode and after step E is switched back to normal mode.

Die Erfindung wird anhand der beiliegenden Figur näher erläutert. Sie zeigt:

  • 1: Ein schematisches Schaubild des Programmiermaschinensystems, eingebettet in ein Netzwerk.
The invention is explained in more detail using the attached figure. It shows:
  • 1 : A schematic diagram of the programming machine system embedded in a network.

1 zeigt ein Programmiermaschinensystem 1, eingebettet in einen Produktionsprozess. In einer Entwicklungsabteilung 2, etwa bei einem Kunden, werden Daten, mit denen ein IC 3 beschrieben werden soll, entwickelt. Diese Daten werden auch als Image angesprochen. Zusätzlich können prozessabhängige Individualisierungsdaten vorgesehen sein, die das Image, mit dem ein spezieller IC 3 beschrieben werden soll, in Details abgewandelt wird, etwa wenn es sich bei den Daten um personenindividuelle Daten handelt. So können prozessabhängige Individualisierungsdaten etwa auf die Vielzahl des ICs zu schreibende, verschiedene Pin-Codes sein. Diese Daten werden an ein Produktionssystem 4 übergeben, und zwar in verschlüsselter Form. Als Verschlüsselungsmethode ist eine asymmetrische Verschlüsselung vorgesehen. Verschlüsselt werden die Daten mit dem seitens der Produktion 4 herausgegebenen Public Key. 1 shows a programming machine system 1 embedded in a production process. In a development department 2, for example at a customer's, data is developed with which an IC 3 is to be described. This data is also referred to as an image. In addition, process-dependent customization data can be provided which modifies the image with which a specific IC 3 is to be described in detail, for example if the data is personal data. For example, process-dependent customization data can be different PIN codes to be written to the multitude of ICs. This data is transferred to a production system 4 in encrypted form. Asymmetric encryption is provided as the encryption method. The data is encrypted with the public key issued by production 4.

Die verschlüsselten Daten werden an das Produktionssystem 4 übertragen und in dem Produktionssystem 4 auf einem Server 5 gespeichert. Hierfür verfügt der Server 5 über nicht-flüchtige Speicher zum sicheren Speichern der verschlüsselten Daten.The encrypted data is transferred to the production system 4 and stored in the production system 4 on a server 5. For this purpose, the server 5 has non-volatile memory for securely storing the encrypted data.

In dem Produktionssystem 4 sollen eine Vielzahl von ICs 3 mit den seitens der Entwicklungsabteilung 2 entwickelten Daten in einem Serienfertigungsprozess beschrieben werden. Hierfür muss zunächst in einem Mustererstellungsprozess eine Programmiermaschine 6 entsprechend eingerichtet werden. Die Einrichtung erfolgt über Konfigurationsdaten, die durch einen Einrichter vorgegeben werden. Zum Konfigurieren der Programmiermaschine 6 ist es notwendig, testweise ein oder mehrere ICs 3 mit den für den IC 3 bestimmten Daten zu beschreiben, und zwar unter Verwendung von bestimmten Konfigurationsdaten, um zu prüfen, ob die eingestellten Konfigurationsdaten in Kombination mit den für den IC 3 bestimmten Daten zu dem gewünschten Ergebnis führen. Mit den Konfigurationsdaten werden etwa der Programmiermaschine 6 zugehörige Peripherie 7 angesteuert, etwa Steuergeräte zum Beschreiben des ICs 3, zum Durchführen von Validierungen, etc.In the production system 4, a large number of ICs 3 are to be written with the data developed by the development department 2 in a series production process. For this, a programming machine 6 must first be set up accordingly in a sample creation process. The setup is carried out using configuration data that is specified by a setter. To configure the programming machine 6, it is necessary to write one or more ICs 3 with the data intended for the IC 3 for test purposes, using specific configuration data to check whether the set configuration data in combination with the data intended for the IC 3 lead to the desired result. The configuration data is used to control peripherals 7 belonging to the programming machine 6, such as control devices for writing to the IC 3, for carrying out validations, etc.

Um die auf dem Server 5 gespeicherten, von der Entwicklungsabteilung 2 übermittelten Daten, die auf dem Server 5 in verschlüsselter Form vorliegen, entschlüsselt der Programmiermaschine 6 zum Beschreiben des ICs 3 zur Verfügung zu stellen, ist eine Computermaschine 8 Teil des Programmiermaschinensystems 1. Die Computermaschine 8 ist mit der Programmiermaschine 6 gekoppelt. Die Computermaschine 8 ist dergestalt eingerichtet, dass sie nur mit einer ganz speziellen Programmiermaschine 6 arbeiten kann; das Anschließen einer anderen Programmiermaschine 6 führt zu einer Nicht-Funktion der Computermaschine 8, jedenfalls in dem Funktionsumfang, wie er in dem hier beschriebenen Verfahren vorgesehen ist. Für die Kopplung notwendige Parameter und Verfahren sind dem Fachmann hinreichend bekannt.In order to make the data stored on the server 5, transmitted by the development department 2, which are available on the server 5 in encrypted form, available in decrypted form to the programming machine 6 for writing to the IC 3, a computer machine 8 is part of the programming machine system 1. The computer machine 8 is coupled to the programming machine 6. The computer machine 8 is set up in such a way that it can only work with a very specific programming machine 6; connecting another programming machine 6 leads to the computer machine 8 not functioning, at least in the range of functions provided for in the method described here. The parameters and methods required for the coupling are sufficiently known to the person skilled in the art.

Eine Kommunikation zwischen der Computermaschine 8 und der Programmiermaschine 6 erfolgt kabel basiert, etwa über LAN. Um einen Abgriff der ausgetauschten Daten zwischen Programmiermaschine 6 und Computermaschine 8 zu unterbinden, ist die Computermaschine 8 physikalisch Teil des Programmiermaschinensystems 1. Das bedeutet, dass die Computermaschinen 8 in ein und demselben Gehäuse untergebracht sind und gegen einen Zugriff von außen geschützt sind.Communication between the computer machine 8 and the programming machine 6 is cable-based, for example via LAN. In order to prevent the exchanged data between the programming machine 6 and the computer machine 8 from being intercepted, the computer machine 8 is physically part of the programming machine system 1. This means that the computer machines 8 are housed in one and the same housing and are protected against external access.

Die Programmiermaschine 6 hat über die Computermaschine 8 ebenfalls Zugriff auf das Netzwerk außerhalb des Programmiermaschinensystems 1, etwa auf den Server 5. Der Zugriff von Seiten der Programmiermaschine 6 auf das Netzwerk außerhalb des Programmiermaschinensystems 1 wird jedoch durch die Computermaschine 8 mittels eines Zugriffcontrollers 11 kontrolliert. Der Zugriffcontroller 11 ist angeschlossen an einen Zustandsautomaten 12. Es versteht sich, dass der Zugriffscontroller 11 und der Zustandsautomat 12 physikalisch auch Teil der Recheneinheit 9 sein können; zu Erklärungszwecken sind diese getrennt in der 1 gezeichnet.The programming machine 6 also has access to the network outside the programming machine system 1, such as the server 5, via the computer machine 8. Access from sites of the programming machine 6 to the network outside the programming machine system 1 is, however, controlled by the computer machine 8 by means of an access controller 11. The access controller 11 is connected to a state machine 12. It is understood that the access controller 11 and the state machine 12 can also be physically part of the computing unit 9; for explanatory purposes, these are shown separately in the 1 drawn.

Der Zustandsautomat 12 schaltet das Programmiermaschinensystem 1 zwischen zwei Zuständen: dem Normal-Mode und dem Secure-Mode.The state machine 12 switches the programming machine system 1 between two states: the normal mode and the secure mode.

Im Normal-Mode ist der Zugriffscontroller 11 dergestalt eingestellt, dass die Programmiermaschine 6 bidirektional mit dem Netzwerk außerhalb des Programmiermaschinensystems 1, etwa mit dem Server 5, kommunizieren kann; es besteht somit ein Read/Write-Zugriff.In normal mode, the access controller 11 is set in such a way that the programming machine 6 can communicate bidirectionally with the network outside the programming machine system 1, for example with the server 5; there is thus read/write access.

Erhält der Zustandsautomat 12 von der Recheneinheit 9 die Information, dass in den Secure-Mode umgeschaltet werden soll, übermittelt der Zustandsautomat 12 dem Zugriffscontroller 11, dass die Zugriffsrechte der Programmiermaschine 6 dahingehend einzuschränken sind, sodass die Programmiermaschine 6 nicht mehr außerhalb des Programmiermaschinensystems 1 schreiben darf; für die Programmiermaschine 6 wird nur ein Read-Zugriff auf das Netzwerk außerhalb des Programmiermaschinensystems 1 gewährt.If the state machine 12 receives the information from the computing unit 9 that it should switch to secure mode, the state machine 12 informs the access controller 11 that the access rights of the programming machine 6 are to be restricted so that the programming machine 6 is no longer allowed to write outside the programming machine system 1; the programming machine 6 is only granted read access to the network outside the programming machine system 1.

Zum Abrufen der Daten von dem Server 5 werden diese von Seiten der Computermaschine 8 mittels einer Recheneinheit 9 abgerufen und in einen flüchtigen Speicher 10, hier einem RAM der Computermaschine 8, abgelegt.To retrieve the data from the server 5, they are retrieved by the computer machine 8 by means of a computing unit 9 and stored in a volatile memory 10, here a RAM of the computer machine 8.

Dann wird der Secure-Mode des Programmiermaschinensystems 1 eingeschaltet. Anschließend werden die in dem flüchtigen Speicher 10 abgelegten verschlüsselten Daten durch die Recheneinheit 9 entschlüsselt.Then the secure mode of the programming machine system 1 is switched on. The encrypted data stored in the volatile memory 10 are then decrypted by the computing unit 9.

Die entschlüsselten Daten werden ebenfalls ausschließlich in dem flüchtigen Speicher 10 abgelegt. Durch das Vermeiden des Speicherns der entschlüsselten Daten auf einem nicht-flüchtigen Speicher wird der Gefahr begegnet, dass ein Angreifer die entschlüsselten Daten rekonstruieren kann, auch wenn die Daten in dem nicht-flüchtigen Speicher als gelöscht gelten.The decrypted data is also stored exclusively in the volatile memory 10. By avoiding storing the decrypted data in a non-volatile memory, the risk is countered that an attacker can reconstruct the decrypted data, even if the data in the non-volatile memory is considered to be deleted.

Die in dem flüchtigen Speicher 10 entschlüsselten Daten werden alsdann der Programmiermaschine 6 bereitgestellt. Hierfür wird ein Laufwerk in dem flüchtigen Speicher 10 emuliert, auf das die Programmiermaschine 6 mit ihrer Recheneinheit 13 zugreifen kann. Zuvor an die Computermaschine 8 ebenfalls übergebene und in dem flüchtigen Speicher 10, respektive in dem emulierten Laufwerk abgelegte Konfigurationsdaten werden ebenfalls durch die Recheneinheit 13 der Programmiermaschine 6 abgerufen.The data decrypted in the volatile memory 10 are then made available to the programming machine 6. For this purpose, a drive is emulated in the volatile memory 10, which the programming machine 6 can access with its computing unit 13. Configuration data that was also previously transferred to the computer machine 8 and stored in the volatile memory 10 or in the emulated drive are also retrieved by the computing unit 13 of the programming machine 6.

Ausgestattet mit diesen Daten beschreibt die Programmiermaschine 6 den IC 3 mit den für den IC 3 bestimmten Daten; für die Steuerung 7 der Programmiermaschine 6 werden die Konfigurationsdaten genutzt.Equipped with these data, the programming machine 6 writes the data intended for the IC 3 to the IC 3; the configuration data are used for the control 7 of the programming machine 6.

Haben die Konfigurationsdaten zu dem gewünschten Ergebnis (der IC 3 ist ordnungsgemäß beschrieben worden) geführt, werden die für das Beschreiben des ICs 3 bestimmten Daten und die Konfigurationsdaten, die beide in dem flüchtigen Speicher 10 der Computermaschine 8 abgelegt sind, zu einem Job zusammengefasst, und zwar in einem Archiv.If the configuration data have led to the desired result (the IC 3 has been properly written), the data intended for writing the IC 3 and the configuration data, both of which are stored in the volatile memory 10 of the computer machine 8, are combined into a job, namely in an archive.

Anschließend wird der Job respektive das Archiv verschlüsselt und seitens der Computermaschine 8 auf dem Server 5 abgelegt.The job or archive is then encrypted and stored on the server 5 by the computer machine 8.

Anschließend sendet die Recheneinheit 9 an den Zustandsautomaten 12 den Befehl, in den Normal-Mode zurückzuschalten. Daraufhin löscht der Zustandsautomat 12 den flüchtigen Speicher 10, etwa indem er diesen erdet, und sendet an den Zugriffscontroller 11 einen Befehl, dass ein Schreibzugriff für die Programmiermaschine 6 für das Netzwerk außerhalb des Programmiermaschinensystems 1 zuzulassen ist. Auf diese Weise sind die entschlüsselten Daten nicht abgreifbar durch einen Dritten.The computing unit 9 then sends the state machine 12 a command to switch back to normal mode. The state machine 12 then erases the volatile memory 10, for example by grounding it, and sends a command to the access controller 11 that write access for the programming machine 6 is to be permitted for the network outside the programming machine system 1. In this way, the decrypted data cannot be accessed by a third party.

Angedeutet ist auch eine Verbindung des Zustandsautomaten 12 zu dem schematischen Gehäuse des Programmiermaschinensystems 1: Wird das Gehäuse geöffnet oder tritt ein anderer unerwarteter Fehler auf, erkennt dies der Zustandsautomat 12 und schaltet automatisch in den Normal-Mode um (Löschen des flüchtigen Speichers 10 und Umschalten des Zugriffscontrollers 11 in den bidirektionalen Modus.Also indicated is a connection of the state machine 12 to the schematic housing of the programming machine system 1: If the housing is opened or another unexpected error occurs, the state machine 12 detects this and automatically switches to normal mode (deleting the volatile memory 10 and switching the access controller 11 to bidirectional mode.

Der Serienfertigungsprozess erfolgt auf die gleiche Art und Weise mit dem einzigen Unterschied, dass seitens der Computermaschine 8 nicht nur die für den IC 3 bestimmten Daten seitens des Servers 5 abgerufen werden, sondern insgesamt den in dem Mustererstellungsprozess erstellten Job. Der Job umfasst die für das Beschreiben des ICs 3 bestimmten Daten sowie die Konfigurationsdaten für die Steuerung 7 der Peripherie der Programmiermaschine 6.The series production process is carried out in the same way, with the only difference being that the computer machine 8 not only retrieves the data intended for the IC 3 from the server 5, but also the entire job created in the pattern creation process. The job includes the data intended for writing the IC 3 as well as the configuration data for the controller 7 of the peripherals of the programming machine 6.

Dieser Job wird - nachdem der Secure-Mode durch den Zustandsautomaten 12 aktiviert wurde - in dem flüchtigen Speicher 10 entschlüsselt abgelegt und der Programmiermaschine 6 zur Verfügung gestellt, sodass diese unter Verwendung der bereitgestellten Konfigurationsdaten den IC 3 mit den für ihn bestimmten Daten beschreiben kann.This job is - after the secure mode has been activated by the state machine 12 - stored in the volatile memory 10 in decrypted form and made available to the programming machine 6 so that the latter can write the data intended for the IC 3 using the configuration data provided.

Die Erfindung ist anhand eines Ausführungsbeispiels beschrieben worden. Ohne den Schutzbereich, beschrieben durch die Ansprüche, zu verlassen, ergeben sich für den Fachmann zahlreiche weitere Ausgestaltungen, den Erfindungsgedanken zu verwirklichen, ohne dass diese im Rahmen dieser Ausführungen näher erläutert werden müssten.The invention has been described using an exemplary embodiment. Without departing from the scope of protection described by the claims, numerous further embodiments for implementing the inventive concept will become apparent to those skilled in the art without these having to be explained in more detail in the context of these statements.

BezugszeichenlisteList of reference symbols

11
ProgrammiermaschinensystemProgramming machine system
22
EntwicklungsabteilungDevelopment department
33
ICIC
44
ProduktionssystemProduction system
55
Serverserver
66
ProgrammiermaschineProgramming machine
77
Steuerung, der ProgrammiermaschineControl of the programming machine
88th
Computermaschinecomputer machine
99
Recheneinheit, der ComputermaschineComputing unit of the computer machine
1010
Flüchtiger, Speicher für ComputermaschineVolatile, memory for computer machine
1111
ZugriffscontrollerAccess controller
1212
ZustandsautomatState machine
1313
Recheneinheit der ProgrammiermaschineComputing unit of the programming machine

ZITATE ENTHALTEN IN DER BESCHREIBUNGQUOTES INCLUDED IN THE DESCRIPTION

Diese Liste der vom Anmelder aufgeführten Dokumente wurde automatisiert erzeugt und ist ausschließlich zur besseren Information des Lesers aufgenommen. Die Liste ist nicht Bestandteil der deutschen Patent- bzw. Gebrauchsmusteranmeldung. Das DPMA übernimmt keinerlei Haftung für etwaige Fehler oder Auslassungen.This list of documents listed by the applicant was generated automatically and is included solely for the better information of the reader. The list is not part of the German patent or utility model application. The DPMA accepts no liability for any errors or omissions.

Zitierte PatentliteraturCited patent literature

  • US 20070038851 A1 [0007]US 20070038851 A1 [0007]

Claims (9)

Verfahren zum Beschreiben von Daten auf einen IC (3) mit den folgenden Schritten: 1. Bereitstellen eines in verschlüsselter Form vorliegenden Datenpakets, enthaltend die auf den IC (3) zu schreibenden Daten; 2. Laden des verschlüsselten Datenpakets; 3. Entschlüsseln des verschlüsselten Datenpaketes und Ablegen des entschlüsselten Datenpaketes ausschließlich in einem flüchtigen Speicher (10); 4. Bereitstellen des entschlüsselten Datenpakets in dem flüchtigen Speicher (10) für eine Programmiermaschine (6); 5. Beschreiben eines oder mehrerer ICs (3) mit für den IC (3) bestimmten Daten des entschlüsselten Datenpakets mittels der Programmiermaschine (6); 6. Nach dem Fertigstellen des Beschreibens des bzw. der mehreren ICs (3): Löschen des flüchtigen Speichers (10).Method for writing data to an IC (3) with the following steps: 1. Providing a data packet in encrypted form containing the data to be written to the IC (3); 2. Loading the encrypted data packet; 3. Decrypting the encrypted data packet and storing the decrypted data packet exclusively in a volatile memory (10); 4. Providing the decrypted data packet in the volatile memory (10) for a programming machine (6); 5. Writing one or more ICs (3) with data from the decrypted data packet intended for the IC (3) using the programming machine (6); 6. After completing the writing of the one or more ICs (3): erasing the volatile memory (10). Verfahren nach Anspruch 1, dadurch gekennzeichnet, dass das bereitgestellte verschlüsselte Datenpaket einerseits ein Image, das zum Beschreiben des bzw. der ICs (3) bestimmt ist, ggf. ergänzt um prozessabhängige Individualisierungsdaten, und andererseits Konfigurationsdaten zum Betrieb der Programmiermaschine (6) während des Beschreibens umfasst.Procedure according to Claim 1 , characterized in that the encrypted data packet provided comprises, on the one hand, an image intended for writing to the IC(s) (3), optionally supplemented by process-dependent individualization data, and, on the other hand, configuration data for operating the programming machine (6) during writing. Verfahren nach Anspruch 1, dadurch gekennzeichnet, dass es sich bei dem flüchtigen Speicher (10) um einen RAM einer Computermaschine (8) handelt, die mit der Programmiermaschine (6) gekoppelt ist.Procedure according to Claim 1 , characterized in that the volatile memory (10) is a RAM of a computer machine (8) which is coupled to the programming machine (6). Verfahren nach Anspruch 1, dadurch gekennzeichnet, dass das Bereitstellen der Daten in Schritt 4 durch das Emulieren eines Laufwerkes in dem flüchtigen Speicher (10) erfolgt.Procedure according to Claim 1 , characterized in that the provision of the data in step 4 is carried out by emulating a drive in the volatile memory (10). Verfahren nach Anspruch 1, dadurch gekennzeichnet, dass die Programmiermaschine (6) in eine Netzwerkumgebung eingebunden ist und wobei in einem Normal-Mode die Programmiermaschine (6) Daten auf einen Netzwerkteilnehmer schreiben kann (Read/Write-Zugriff) und in einem Secure-Mode ein Schreiben nicht möglich ist (Read-Only-Zugriff) und wobei zu Beginn des Verfahrens nach Anspruch 1 der Normal-Mode aktiviert ist, vor Schritt 3 in den Secure-Mode gewechselt wird und nach Schritt 6 in den Normal-Mode zurückgeschaltet wird.Procedure according to Claim 1 , characterized in that the programming machine (6) is integrated into a network environment and wherein in a normal mode the programming machine (6) can write data to a network participant (read/write access) and in a secure mode writing is not possible (read-only access) and wherein at the beginning of the method according to Claim 1 Normal mode is activated, you switch to Secure mode before step 3 and switch back to Normal mode after step 6. Verfahren nach Anspruch 1, dadurch gekennzeichnet, dass zum Einrichten eines Serienfertigungsprozesses in einem vorbereitenden Schritt ein Mustererstellungsprozess durchgeführt wird, aufweisend die folgenden Schritte: A) Durchführen der Schritte 1 bis 4 des Anspruchs 1, wobei es sich bei dem genannten Datenpaket um die Daten handelt, die zum Beschreiben des oder der ICs (3) bestimmt sind; B) Bereitstellen von Konfigurationsdaten zum Betrieb der Programmiermaschine (6) im flüchtigen Speicher (10) für die Programmiermaschine (6); C) Zusammenführen der Konfigurationsdaten und der Daten, die zum Beschreiben des oder der ICs (3) bestimmt sind, in einen Job; D) Verschlüsseln des Jobs und Ablegen des verschlüsselten Jobs in einen nicht-flüchtigen Speicher; E) Löschen des flüchtigen Speichers (10); und wobei anschließend zum Durchführen des Serienfertigungsprozesses die Schritte des Anspruchs 1 durchgeführt werden, wobei es sich bei dem genannten Datenpaket um den im Schritt C) erstellten Job handelt.Procedure according to Claim 1 , characterized in that for setting up a series production process, a pattern creation process is carried out in a preparatory step, comprising the following steps: A) carrying out steps 1 to 4 of the Claim 1 , wherein said data packet is the data intended for writing to the IC(s) (3); B) providing configuration data for operating the programming machine (6) in the volatile memory (10) for the programming machine (6); C) merging the configuration data and the data intended for writing to the IC(s) (3) into a job; D) encrypting the job and storing the encrypted job in a non-volatile memory; E) erasing the volatile memory (10); and wherein subsequently, to carry out the series production process, the steps of Claim 1 be carried out, whereby the data package mentioned is the job created in step C). System zur Ausführung des Verfahrens nach einem der Ansprüche 1 bis 6, umfassend eine Programmiermaschine (6) zum Beschreiben eines ICs (3) und eine Computermaschine (8) mit einem flüchtigen Speicher (10).System for carrying out the method according to one of the Claims 1 until 6 , comprising a programming machine (6) for writing to an IC (3) and a computer machine (8) with a volatile memory (10). System nach Anspruch 7, dadurch gekennzeichnet, dass die Computermaschine (8) in dem Gehäuse der Programmiermaschine (6) angeordnet ist und die Computermaschine (8) dazu eingerichtet ist, wenn unerwartet in das Gehäuse eingedrungen wird oder ein anderes unerwartetes Verhalten detektiert wird, den flüchtigen Speicher (10) zu löschen.System according to Claim 7 , characterized in that the computer machine (8) is arranged in the housing of the programming machine (6) and the computer machine (8) is arranged to erase the volatile memory (10) if the housing is unexpectedly penetrated or another unexpected behavior is detected. System nach Anspruch 7 oder 8, dadurch gekennzeichnet, dass die Computermaschine (8) über eine erste Schnittstelle und eine weitere, zweite Schnittstelle zum Datenaustausch verfügt und wobei die Computermaschine (8) und die Programmiermaschine (6) über die erste Schnittstelle miteinander gekoppelt sind und die Computermaschine (8) dazu eingerichtet ist, dass externe Daten, die der Programmiermaschine (6) zur Verfügung gestellt werden sollen, über die zweite Schnittstelle durch die Computermaschine (8) abgerufen werden und über die erste Schnittstelle an die Programmiermaschine (6) weitergegeben werden und Daten, die die Programmiermaschine (6) externen Maschinen zur Verfügung stellen soll, über die erste Schnittstelle an die Computermaschine (8) gegeben werden und über die zweite Schnittstelle an die externe Maschine weitergegeben werden und wobei die Computermaschine (8) ferner dazu eingerichtet ist, in einem Secure-Mode zu unterbinden, dass Daten, die die Programmiermaschine (6) externen Maschinen zur Verfügung stellen möchte, an die externe Maschine weitergegeben werden.System according to Claim 7 or 8th , characterized in that the computer machine (8) has a first interface and a further, second interface for data exchange and wherein the computer machine (8) and the programming machine (6) are coupled to one another via the first interface and the computer machine (8) is set up so that external data which are to be made available to the programming machine (6) are retrieved by the computer machine (8) via the second interface and passed on to the programming machine (6) via the first interface and data which the programming machine (6) is to make available to external machines are passed to the computer machine (8) via the first interface and passed on to the external machine via the second interface and wherein the computer machine (8) is further set up to prevent, in a secure mode, data which the programming machine (6) wishes to make available to external machines from being passed on to the external machine.
DE102023102691.7A 2023-02-03 2023-02-03 Method for writing data to an IC and system for carrying out the method Pending DE102023102691A1 (en)

Priority Applications (3)

Application Number Priority Date Filing Date Title
DE102023102691.7A DE102023102691A1 (en) 2023-02-03 2023-02-03 Method for writing data to an IC and system for carrying out the method
TW113102936A TW202433322A (en) 2023-02-03 2024-01-25 Method for writing data onto an IC and system for carrying out the method
PCT/EP2024/052136 WO2024160759A1 (en) 2023-02-03 2024-01-30 Method for writing data onto an ic and system for carrying out the method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE102023102691.7A DE102023102691A1 (en) 2023-02-03 2023-02-03 Method for writing data to an IC and system for carrying out the method

Publications (1)

Publication Number Publication Date
DE102023102691A1 true DE102023102691A1 (en) 2024-08-08

Family

ID=91951395

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102023102691.7A Pending DE102023102691A1 (en) 2023-02-03 2023-02-03 Method for writing data to an IC and system for carrying out the method

Country Status (1)

Country Link
DE (1) DE102023102691A1 (en)

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08185361A (en) 1994-12-28 1996-07-16 Hitachi Ltd Semiconductor integrated circuit device
EP0768601A1 (en) 1995-04-27 1997-04-16 Casio Computer Company Limited Device for executing enciphered program
US20010033012A1 (en) 1999-12-30 2001-10-25 Koemmerling Oliver Anti tamper encapsulation for an integrated circuit
US20040088554A1 (en) 2002-10-31 2004-05-06 Matsushita Electric Industrial Co., Ltd. Semiconductor integrated circuit device,program delivery method, and program delivery system
US20070038851A1 (en) 2005-08-12 2007-02-15 Babaria Amit G Method for programming secure data into integrated circuits
US20100223453A1 (en) 2002-12-02 2010-09-02 Silverbrook Research Pty Ltd Integrated circuit for validating and decrypting software data
US20130046981A1 (en) 2011-08-17 2013-02-21 Vixs Systems, Inc. Secure provisioning of integrated circuits at various states of deployment, methods thereof
US20160293274A1 (en) 2011-11-14 2016-10-06 Seagate Technology Llc Storage Device Firmware and Manufacturing Software

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08185361A (en) 1994-12-28 1996-07-16 Hitachi Ltd Semiconductor integrated circuit device
EP0768601A1 (en) 1995-04-27 1997-04-16 Casio Computer Company Limited Device for executing enciphered program
US20010033012A1 (en) 1999-12-30 2001-10-25 Koemmerling Oliver Anti tamper encapsulation for an integrated circuit
US20040088554A1 (en) 2002-10-31 2004-05-06 Matsushita Electric Industrial Co., Ltd. Semiconductor integrated circuit device,program delivery method, and program delivery system
US20100223453A1 (en) 2002-12-02 2010-09-02 Silverbrook Research Pty Ltd Integrated circuit for validating and decrypting software data
US20070038851A1 (en) 2005-08-12 2007-02-15 Babaria Amit G Method for programming secure data into integrated circuits
US20130046981A1 (en) 2011-08-17 2013-02-21 Vixs Systems, Inc. Secure provisioning of integrated circuits at various states of deployment, methods thereof
US20160293274A1 (en) 2011-11-14 2016-10-06 Seagate Technology Llc Storage Device Firmware and Manufacturing Software

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
btv vault. Secure Automated Programming. btv Gruppe, 2022. URL: https://www.btv-gruppe.com/wp-content/uploads/2022/05/Factsheet_btv-vault_DE.pdf [abgerufen am 04.08.2023]

Similar Documents

Publication Publication Date Title
DE69731338T2 (en) Method and system for secure transmission and storage of protected information
DE69522998T2 (en) SECURE APPLICATION CARD FOR SHARING APPLICATION DATA AND PROCEDURES BETWEEN SEVERAL MICROPROCESSORS
DE69524482T2 (en) SECURE MEMORY CARD WITH PROGRAMMED, CONTROLLED SECURITY ACCESS CONTROL
DE69729557T2 (en) METHOD AND APPARATUS FOR SOFTWARE ACCESS TO A MICROPROCESSOR SERIAL NUMBER
DE68927755T2 (en) SYSTEM FOR SECURE Cipher Key Processing
DE112007003231B4 (en) Programmable display device and control system
EP1616232A1 (en) Method for guaranteeing the integrity and authenticity of flashware for control devices
EP1883906A1 (en) Portable data carrier featuring secure data processing
EP0280035B1 (en) Method for the programme securing and for integrity checking of a secured programme
EP0224639A1 (en) Method to control the memory access of an IC card and implementing device
DE19508724C1 (en) Smart card with protected operating system
EP0127809B1 (en) Circuit arrangement comprising a memory and an access control unit
WO2004114131A1 (en) Method for booting up a software in the boot sector of a programmable read-only memory
EP1032871B1 (en) Process and device for loading data for basic system routines of a data processing system
DE10218795A1 (en) Chip card or security module production method in which the chip producer writes an authentication code, such as a cryptographic key, into the chip's non-volatile memory so that the memory can only be accessed using the key
DE102018213615A1 (en) Cryptography module and operating method therefor
DE102023102691A1 (en) Method for writing data to an IC and system for carrying out the method
AT526879A1 (en) Method for writing data to an IC and system for carrying out the method
WO2024160759A1 (en) Method for writing data onto an ic and system for carrying out the method
EP1912184A2 (en) Data generating device and method
DE102021131424A1 (en) METHODS AND SYSTEMS FOR SESSION-BASED AND SECURE ACCESS CONTROL TO A DATA STORAGE SYSTEM
DE10218835A1 (en) Method of producing electronic security module e.g. for payment card, involves using test value stored in smart card for testing data authentication
EP1634252A1 (en) Method for loading portable data carriers with data
DE102015119140A1 (en) Method for controlling access to encrypted files and computer system
EP0813722B1 (en) Licence-card-controlled chip card system

Legal Events

Date Code Title Description
R012 Request for examination validly filed