EP1278164B1 - System and method for changing the functionality of a security module - Google Patents
System and method for changing the functionality of a security module Download PDFInfo
- Publication number
- EP1278164B1 EP1278164B1 EP02090220A EP02090220A EP1278164B1 EP 1278164 B1 EP1278164 B1 EP 1278164B1 EP 02090220 A EP02090220 A EP 02090220A EP 02090220 A EP02090220 A EP 02090220A EP 1278164 B1 EP1278164 B1 EP 1278164B1
- Authority
- EP
- European Patent Office
- Prior art keywords
- program
- application program
- memory
- data
- loaded
- 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.)
- Expired - Lifetime
Links
Images
Classifications
-
- G—PHYSICS
- G07—CHECKING-DEVICES
- G07B—TICKET-ISSUING APPARATUS; FARE-REGISTERING APPARATUS; FRANKING APPARATUS
- G07B17/00—Franking apparatus
- G07B17/00733—Cryptography or similar special procedures in a franking system
-
- G—PHYSICS
- G07—CHECKING-DEVICES
- G07B—TICKET-ISSUING APPARATUS; FARE-REGISTERING APPARATUS; FRANKING APPARATUS
- G07B17/00—Franking apparatus
- G07B17/00185—Details internally of apparatus in a franking system, e.g. franking machine at customer or apparatus at post office
- G07B17/00193—Constructional details of apparatus in a franking system
-
- G—PHYSICS
- G07—CHECKING-DEVICES
- G07B—TICKET-ISSUING APPARATUS; FARE-REGISTERING APPARATUS; FRANKING APPARATUS
- G07B17/00—Franking apparatus
- G07B17/00185—Details internally of apparatus in a franking system, e.g. franking machine at customer or apparatus at post office
- G07B17/00193—Constructional details of apparatus in a franking system
- G07B2017/00258—Electronic hardware aspects, e.g. type of circuits used
-
- G—PHYSICS
- G07—CHECKING-DEVICES
- G07B—TICKET-ISSUING APPARATUS; FARE-REGISTERING APPARATUS; FRANKING APPARATUS
- G07B17/00—Franking apparatus
- G07B17/00733—Cryptography or similar special procedures in a franking system
- G07B2017/00959—Cryptographic modules, e.g. a PC encryption board
- G07B2017/00967—PSD [Postal Security Device] as defined by the USPS [US Postal Service]
Definitions
- EP 417 447 B1 It is known to use special modules in electronic data processing systems and equip them with means for protection against a break-in in their electronics. Such modules are among the security modules.
- Modern franking machines, or other devices for franking mail are provided with a printer for printing the postage stamp on the mail, with a controller for controlling the printing and peripheral components of the postage meter, with a bill unit for settling postage paid in nonvolatile memories and a unit for cryptographically securing postage data.
- a security module ( EP 789 333 A2 ) may include a hardware canceling unit and / or the unit for securing the printing of postal fee data.
- the former can be realized as a user circuit ASIC and the latter as an OTP processor (One Time Programmable).
- An internal OTP memory stores read-only sensitive data (cryptographic keys), which are required, for example, to reload a credit.
- An encapsulation by a safety housing provides further protection.
- the scale also provides programmable security means to prevent unauthorized erasure of data blocks in the flash EEPROM memory areas.
- partial image files and a control file are determined, which are downloaded simultaneously with the data intended for the balance from a data center into the memory of the franking machine.
- the processing status is also saved in order to non-volatile preserve the program state achieved when the program is aborted.
- neither in the postage meter nor in the scale are scherheitsrelevante program data installed.
- the first method has the disadvantage over the second method that a faulty program can no longer be exchanged.
- the second method adversely requires a device that has at least two different memory banks, which makes it more expensive in the above-mentioned severe restrictions on the use of memory space.
- the postal security modules are subject to special requirements with regard to the exchange or extensibility of functions.
- the programming of the above-mentioned program blocks may not be carried out at any time and in particular not by every operator.
- FLASH type having only one partition, such as the Spansion TM 16Mbit MBM29LV160TE offered by Advanced Micro Devices (AMD) or by Fujitsu, which is reprogrammable and has free space.
- AMD Advanced Micro Devices
- Fujitsu Fujitsu
- the developed security module uses a microprocessor, which enables the execution of its program in a main memory.
- a FLASH program memory is also used for the application-specific program. Both memories are connected to the processor via the bus.
- the communication interface 150 is designed to provide data for at least part of an application program, an associated certificate code and identification data, and that the microprocessor 120 is programmed by the start-up program partially copied into the main memory 121, the data of the part of the application program being on one to store free memory space of the FLASH program memory when the identifier data mark a successor to the stored preceding identifier, and to verify the authenticity of the loaded at least a part of the application program by means of the certificate code and to store the authenticity of the loaded part of the application program the latter as valid.
- the microprocessor 120 determines whether the tag data identifies a successor to the stored header tag by comparing the tag data with corresponding comparison data stored in another memory area of the FLASH program memory 128 in which information data about an already loaded program is listed.
- Tag data includes program type, version and revision data.
- a microprocessor type is provided which allows the execution of its program in a working memory 121 to re-program the FLASH. This eliminates the need for an expensive FLASH program memory device with separate memory banks.
- the power management unit (Power Manager) 11 has a plurality of functional units, which ensure the operability of the security module with a low power consumption even when the device is switched off.
- the power management unit 11 includes a DC / DC converter (not shown) and a voltage regulator (not shown) for the respective operating voltages (3V, 5V and 8V), a temperature and voltage monitoring circuit (not shown). The latter two can generate a reset signal. The supplied system voltage is monitored for exceeding or falling below of limit values. Within the latter, a DC / DC converter provides for a predetermined operating voltage U B. Voltage generation ensures the generation of all necessary voltages required by the functional units of the safety module.
- the device When the device is turned off, only one real-time clock RTC and the main memory are supplied with battery voltage in addition to the monitoring circuits and the destruction detection unit.
- An uninterrupted supply of battery operated units is also available DE 200 20 635 U1 communicated.
- the latter includes at least one of the post memories, some of the detectors and the SRDI memory.
- Two independent batteries can be connected to the safety module.
- the first battery voltage comes from the internal battery 134, which may optionally be supported by a second separate battery.
- the special circuit FPGA 160 is connected to two nonvolatile memories 114 (NVRAM I) & 116 (NVRAM II) which contain, among other things, the postal relevant data.
- NVRAM I nonvolatile memories 114
- NVRAM II nonvolatile memories 114
- the two nonvolatile memories NVRAM I and II are physically separated and implemented in different technologies. They can be addressed by the processor in writing and reading, can be modified by the FPGA and can be read from outside the security module.
- One of the nonvolatile memories is implemented in a mixed EEPROM SRAM technology, the other is a conventional technology SRAM.
- Thin black arrows indicate the supply of components with a corresponding operating voltage from the power management and monitoring unit 11 or from the monitoring unit 12.
- Thin white arrows indicate interrogation and control lines.
- the erase hardware includes power management & monitoring unit means, a control line CL, and a bus driver unit 127 in part.
- the control lines from the destruction detection unit 15 and the voltage monitoring unit 12 are connected to a common control line CL, shown in phantom.
- the units 12 or 15 control via the common control line CL to an electronic switch S, which selectively applies operating voltage U B or erase voltage U C or ground potential U M to the VCC pin of the SRDI memory 122.
- This SRDI RAM is not directly connected to the processor bus. All digital signals are routed via driver circuits of the bus driver unit 127, which have outputs that can be switched to high impedance. Thus, the BUS can be decoupled from the SRDI memory 122.
- the bus driver unit 127 is also driven by the common control line CL.
- the first two cause the data in the SRDI memory to be cleared when triggered (or linked).
- the temperature sensor monitors the operating temperature of the module and triggers a reset if the temperature drops below or above a predetermined value. This also prevents improper use and protects the user data. A reset will also be triggered if the input voltage of the module becomes too low or too high, or if the internal operating voltage drops below a certain level. The status of all other voltages can be queried by the system software.
- the security module contains - not shown - LED for status output and is potted with a hard, opaque potting compound 105, in which a sensor diaphragm 153 is embedded. One of the event detectors, the destruction detection unit 15, is connected to conductor loops of the sensor diaphragm 153.
- the bottom layer contains a boot loader with an integrated code checker.
- the boot loader first loads the pre-initialization program which once loaded and executed, can not be replaced by another pre-initialization program, but at most by a part of the application program. Before the bootstrap program stores the state of a loaded part of the application program as valid, the latter is checked by means of a certificate code.
- the certificate code is provided with each part of the application program. For verification, a code verification key is needed, which is loaded during production as part of a pre-initialization.
- a hash value is formed, which is encrypted, for example, with a key according to the known DES method (Data Encryption Standard) to a Message Authorization Code (MAC).
- the MAC is attached as a certificate code to the application program.
- the code verification key must be stored in the security module in a read-only manner if the code verification key is a key of a symmetric encryption method (DES).
- DES symmetric encryption method
- FIG. 3 A flow chart for changing the functionality of the security module is shown.
- step 200 After switching on a - not shown - manufacturer device energy is provided and in step 200, it is checked whether the power had the intended success, so that applied to the security module, a system voltage. If not, then a waiting loop is branched and the query is repeated continuously. If the system voltage is applied to the safety module, a startup program is started in step 201 and at least a first part of the boot loader program with the programming functionality is copied into the main memory SRAM 121.
- the microprocessor 120 is programmed by the boot loader program that the memory area of the FLASH program memory in which the boot loader is located can only be copied but not overwritten. Information about an already loaded application program may be stored nonvolatile in another memory area of the FLASH program memory 128 or elsewhere. The information includes a state variable. In the subsequent program execution, the microprocessor determines in step 202 on the basis of the aforementioned information whether a valid state of an application program is present.
- the boot loader will be active again and can save new application program data.
- the microprocessor determines in step 202 that the existing application program has been marked as 'invalid' or that there is no valid state of the application program, then branching from step 202 to step 203, in which a second part of the boot loader with a communication interface call and Checking functionality is started.
- step 204 it is checked whether application program data and identification data are present in the communication interface. If this is not the case, then the system branches to a waiting loop and repeats the query. If the latter is the case, however, then a query step 205 is branched in which it is checked whether the identification data identifies a successor to the stored predecessor. The microprocessor compares the supplied identification data with stored identification data.
- a waiting loop is branched back to step 204. If the in the Communication interface present identifier data mark a successor to the stored predecessor, then a branch is made to a step 206.
- the microprocessor is controlled according to the above-mentioned first part program of the boot loader with the programming functionality.
- the copied application program data is stored in a memory space of the program memory intended for the application program.
- New valid program data whose associated identifier data characterize a successor are only written to a memory location if the already existing program was previously marked in step 211 with the status variable 'invalid'.
- the latter implies that there are data for deleting the application program in the communication interface (step 210).
- the security module is adaptable to different devices and can be used to solve a variety of tasks.
- the security module which is intended for use in postal devices, in particular for use in a franking machine, is referred to as a postal security module (Postal Security Device) or as a secure accounting device (Security Accounting Device).
- a PSD is based on the same hardware as an SAD.
- the PSD uses an asymmetric encryption algorithm (RSA, ECDSA), but the SAD uses a symmetric encryption algorithm (DES, triple-DES).
- DES symmetric encryption algorithm
- the security module may also have another design that allows it to operate in different devices. Thus, it is possible that it can be plugged, for example, on the motherboard of a personal computer, which drives a commercial printer as a PC meter.
Description
Die Erfindung betrifft eine Anordnung zum Ändern der Funktionalität eines Sicherheitsmoduls, gemäß des Anspruchs 1 angegebenen Art und ein entsprechendes Verfahren, gemäß des Anspruchs 3 angegebenen Art. Sicherheitsmodule arbeitet in einer potentiell unfreundlichen Umgebung in Geldautomaten, Fahrkartenautomaten, Registrierkassen, elektronischen Geldbörsen, Computern für den persönlichen Gebrauch (Palmtops, Notebooks, Organizers), Handys und Geräten, die mehrere dieser Funktionalitäten kombinieren. Die Baugruppen sind mit einer Vergussmasse vergossen. In Form eines postalischen Sicherheitsmoduls ist ein Einsatz in einer Frankiermaschine bzw. Postbearbeitungsmaschine oder Computer mit Postbearbeitungs-funktion (PC-Frankierer) möglich.The invention relates to an arrangement for changing the functionality of a security module, specified according to claim 1 type and a corresponding method, according to claim 3 specified type. Security modules operates in a potentially unfriendly environment in ATMs, ticket vending machines, cash registers, electronic purses, computers for the personal use (palmtops, notebooks, organizers), cell phones and devices that combine several of these features. The modules are encapsulated with a potting compound. In the form of a postal security module is an insert in a postage meter or mail processing machine or computer with post-processing function (PC meter) possible.
Es ist bereits aus
Moderne Frankiermaschinen, oder andere Einrichtungen zum Frankieren von Postgut, sind mit einem Drucker zum Drucken des Postwertstempels auf das Postgut, mit einer Steuerung zum Steuern des Druckens und der peripheren Komponenten der Frankiermaschine, mit einer Abrecheneinheit zum Abrechnen von Postgebühren, die in nichtflüchtigen Speichern gehalten werden, und einer Einheit zum kryptografischen Absichern der Postgebührendaten ausgestattet. Ein Sicherheitsmodul (
Zum Schutz eines Sicherheitsmoduls vor einem Angriff, auf die in ihm gespeicherten Daten, wurden weitere Maßnahmen vorgeschlagen, in der
Die bisher zum Einsatz kommenden verschiedene Techniken, wie die Umhüllung mit einem sicheren Gehäuse und der Einsatz von verschiedenen Ereignis-Detektoren, die ggf. das Sicherheitsmodul zum Löschen von sicherheitsrelevanten Daten veranlassen (
Aus dem
In modernen Postgeräten werden heute bereits als Programmspeicher sogenannte Flash-EEPROM's eingesetzt. Letztere gestatten ein sektorweises Löschen und Speichern von Daten sowie ein byteweises Einfügen von einzelnen Daten in einen Speicherbereich (Sektor). So wurde bereits im
Ein elektronisches Gerät mit Flash-Speicher und ein Verfahren zur Reprogrammierung des Flash-Programmspeichers wurde in der
Auch bei den postalischen Sicherheitsmodulen kommen für die funktionsspezifische Programmspeicherung reprogrammierbare Speicherbausteine (FLASH oder EEPROM) zum Einsatz. Die Programmierung dieser Bausteine kann in bekannter Art nach unterschiedliche Verfahren beim Hersteller vorgenommen werden:
- Programmierung eines Programm-Bausteins durch einen Programmieradapter vor dem Einbau in das Sicherheitsmodul,
- Programmierung des Programm-Bausteins durch die Abarbeitung eines für diesen Zweck in einer Speicher-Bank dieses Programm-Bausteins enthaltenen Teil-Programms.
- Programming of a program module by a programming adapter before installation in the security module,
- Programming of the program module by the execution of a part program contained for this purpose in a memory bank of this program block.
Das erste Verfahren hat gegenüber dem zweiten Verfahren den Nachteil, dass ein fehlerhaftes Programm nicht mehr ausgetauscht werden kann. Das zweite Verfahren erfordert in nachteiliger Weise einen Baustein, der mindestens zwei unterschiedliche Speicher-Bänke besitzen, was ihn bei den o.g. starken Einschränkungen der Nutzung des Speicherplatzes teuerer macht. An die postalischen Sicherheitsmodule werden besondere Anforderungen gestellt, was den Austausch bzw. die Erweiterbarkeit von Funktionen angeht. Die Programmierung von o.a. Programmbausteinen darf nicht zu jedem Zeitpunkt und insbesondere nicht von jedem Bediener ausgeführt werden können.The first method has the disadvantage over the second method that a faulty program can no longer be exchanged. The second method adversely requires a device that has at least two different memory banks, which makes it more expensive in the above-mentioned severe restrictions on the use of memory space. The postal security modules are subject to special requirements with regard to the exchange or extensibility of functions. The programming of the above-mentioned program blocks may not be carried out at any time and in particular not by every operator.
Aus der Veröffentlichung
Es ist auch ein FLASH Typ bekannt, der nur eine Partition aufweist, wie der Spansion™-16Mbit-MBM29LV160TE, welcher von der Firma Advanced Micro Devices (AMD) oder von der Firma Fujitsu angeboten wird, der reprogrammierbar ist und einen freien Speicherplatz aufweist.Also known is a FLASH type having only one partition, such as the Spansion ™ 16Mbit MBM29LV160TE offered by Advanced Micro Devices (AMD) or by Fujitsu, which is reprogrammable and has free space.
Der Erfindung liegt die Aufgabe zugrunde, mit geringem Aufwand die oben genannten besondere Anforderungen, unter Vermeidung der Nachteile, zu erfüllen und eine Anordnung und Verfahren für ein Sicherheitsmodul zu schaffen, dass ein Austauschen der Funktionalität zustandsabhängig und autorisiert gewährleistet.The invention has for its object, with little effort to meet the above-mentioned special requirements, while avoiding the disadvantages, and to provide an arrangement and method for a security module that ensures a replacement of the functionality state-dependent and authorized.
Die Aufgabe wird mit den Merkmalen der Anordnung nach Anspruch 1 bzw. mit den Merkmalen des Verfahrens nach Anspruch 3 gelöst.The object is achieved with the features of the arrangement according to claim 1 and with the features of the method according to claim 3.
Bei dem entwickelten Sicherheitsmodul kommt ein Mikroprozessor zum Einsatz, der die Ausführung seines Programms in einem Arbeitsspeicher ermöglicht. Neben diesem Arbeitsspeicher kommt ebenfalls ein FLASH-Programm-Speicher für das anwendungsspezifische Programm zum Einsatz. Beide Speicher sind über den Bus an den Prozessor angeschlossen.The developed security module uses a microprocessor, which enables the execution of its program in a main memory. In addition to this main memory, a FLASH program memory is also used for the application-specific program. Both memories are connected to the processor via the bus.
Zum Zeitpunkt der Fertigung des Sicherheitsmoduls wird nach der oben genannten ersten bekannten Methode ein sog. "Bootloader" als Startladeprogramm in den Programmspeicher eingebracht. Eine spezielle Funktionalität zur Änderung der Funktionalität des übrigen freien Programm-Speichers ermöglicht:
- a) Das Kopieren eines Programmteils des Startladeprogramms in den Arbeitsspeicher,
- b) Das Ausführen dieses Programmteils im Arbeitsspeicher, zum Programmieren des freien Teils des Programmspeichers,
- c) Das Verifizieren eines beim Programmieren erreichten Programmzustandes, um die Programmfunktionalität zustandsabhängig ausführen zu können,
- d) Das Autorisieren der geänderten Funktionsweise des nachgeladenen Programms bei dessen Authentizität.
- a) copying a program part of the boot loader into the main memory,
- b) The execution of this program part in the main memory, for programming the free part of the program memory,
- c) verifying a program state achieved during programming in order to be able to execute the program functionality condition-dependent,
- d) Authorizing the changed functionality of the reloaded program with its authenticity.
Das Sicherheitsmodul wird somit während seiner Produktion mit Programmdaten programmiert und erhält eine Kennung für einen ersten Grundzustand. Nach dem Einschalten wird mittels eines Start up Programmes ein erster Programmteil aus dem Speicherbereich des Programmspeichers in den Arbeitsspeicher kopiert. Der erreichte Programmzustand wird verifiziert, um die Programmfunktionalität zustandsabhängig ausführen zu können. Eine Zustandsvariable für den erreichten Programmzustand kann beispielsweise im Programmspeicher oder in einem nichtflüchtigen Speicher des Sicherheitsmoduls gespeichert sein. Eine Lichtemitterdiode (LED) signalisiert, dass der Mikroprozessor einen zweiten Programmteil abarbeitet und auf die Änderung der Programmfunktionalität des freien Programmspeichers wartet. Über das im Sicherheitsmodul enthaltene Kommunikationsinterface werden mindestens Anwendungsprogrammdaten in einen freien bzw. nicht aktiven Speicherbereich des Programmspeichers geladen. Außerdem werden zugehörige Kennungsdaten und eine kryptographische Signatur des Anwendungsprogramms in einen nichtflüchtigen Speicher des Sicherheitsmoduls oder ebenfalls in ein und denselben oder anderen freien bzw. nicht aktiven Speicherbereich desselben Programmspeichers geladen. Hierzu verifiziert der durch das zweite Programmteil gesteuerte Mikroprozessor zunächst die Kennung des vorherig gespeicherten Programms. Die Kennung beschreibt die Eigenschaften der Programmdaten und ist auf einem Speicherplatz mit einer bestimmten Adresse gespeichert. Stellt die an dieser Adresse gespeicherte Kennung einen gültigen Vorgänger der Kennung der neuen Anwendungsprogrammdaten dar, so wird die in den Arbeitsspeicher kopierte Funktionalität des ersten Programmteils benutzt, um die über das Kommunikationsinterface erhaltenen Anwendungsprogrammdaten in den freien Speicherbereich des Programmspeichers zu laden. Vor jeder Programmierung des Programmspeichers wird zusätzlich sichergestellt, dass keine Daten in den z.Z. aktiven Bootloader-Speicher-Bereich gelangen können, um ein Überschreiben des Startladeprogramms (Bootloaders) zu verhindern. Nachdem auf diese Weise alle Anwendungsprogrammdaten in den freien Speicherbereich des Programmspeichers gespeichert wurden, wird bei Echtheit des Anwendungsprogramms dessen Anwendung freigegeben. Beispielsweise wird ein Zertifikatcode, vorzugsweise die kryptographische Signatur der geladenen Anwendungsprogrammdaten verifiziert und bei Erfolg wird das geladene Anwendungsprogramm durch ein Flag als gültig gekennzeichnet bzw. der erreichte Zustand des Anwendungsprogramms auf andere geeignete Weise fortgeschrieben. Außerdem wird die zugehörige Kennung gespeichert. Die Änderung der Funktionalität ist somit abgeschlossen. Nachdem das Sicherheitsmodul neu gebootet wurde, stellt nun das Startladeprogramm (Bootloader) fest, das der neue Programmzustand eine gültige Anwendungsprogrammfunktionalität anzeigt und führt diese nun aus. Dies wird zusätzlich durch eine andersfarbige LED angezeigt. Eine Änderung der jetzigen Funktionalität des Programmspeichers ist nun nicht mehr möglich solange der Programmzustand nicht wieder geeignet modifiziert wird.The security module is thus programmed with program data during its production and receives an identifier for a first basic state. After switching on, a first program part from the memory area of the program memory is copied into the main memory by means of a startup program. The achieved program state is verified in order to be able to execute the program functionality condition-dependent. A state variable for the achieved program state can be stored, for example, in the program memory or in a non-volatile memory of the security module. A light emitting diode (LED) signals that the microprocessor is processing a second part of the program and waiting for the change of the program functionality of the free program memory. The communication interface contained in the security module at least loads application program data into a free or inactive memory area of the program memory. In addition, associated identifier data and a cryptographic signature of the application program are loaded into a non-volatile memory of the security module or also into one and the same or other free or non-active memory area of the same program memory. For this purpose, the microprocessor controlled by the second program part first verifies the identifier of the previously stored program. The identifier describes the properties of the program data and is stored in a memory location with a specific address. If the identifier stored at this address constitutes a valid predecessor of the identifier of the new application program data, the functionality of the first program component copied into the main memory is used to load the application program data received via the communication interface into the free memory area of the program memory. Before each programming of the program memory, it is additionally ensured that no data can get into the currently active bootloader memory area in order to prevent an overwriting of the boot loader. After all application program data has been stored in the free memory area of the program memory in this way, the application of authenticity of the application is released. For example, a certificate code, preferably the cryptographic signature of the loaded application program data, is verified and, if successful, the loaded application program is flagged as valid by a flag, or the acquired state of the application program is updated in another suitable manner. In addition, the associated identifier is stored. The Modification of the functionality is thus completed. After the security module has been rebooted, the boot loader now determines that the new program state is displaying valid application program functionality and is now executing it. This is additionally indicated by a different colored LED. A change in the current functionality of the program memory is no longer possible as long as the program state is not suitably modified again.
Um diese Änderung der Programmfunktionalität weiterhin gewährleisten zu können, enthält jede nachgeladene Funktionalität ebenfalls ein Teilprogramm zum Kopieren und Ausführen von Programmieranweisungen in den Arbeitsspeicher. Diese Funktionalität kann ebenfalls über das im Sicherheitsmodul befindliche Kommunikationsinterface aufgerufen werden. Bei Aufruf ändert es die Zustandvariable derart, dass zwar die Kennung des Programms erhalten bleibt, beim nächsten Booten dem Bootloader jedoch kenntlich gemacht wird, dass die anwendungsspezifische Software jetzt wieder einen freien Programmspeicherbereich darstellt. Als Folge wird beim nächsten Booten der Bootloader wieder aktiv sein und Anwendungsprogrammdaten empfangen.To further ensure this change in program functionality, any reloaded functionality also includes a subprogram for copying and executing programming instructions into memory. This functionality can also be called via the communication interface located in the safety module. When called, it changes the state variable such that, although the program identifier is preserved, the next time the bootloader is booted it is indicated that the application-specific software is now again a free program memory area. As a result, the next time you boot the bootloader will be active again and receive application program data.
Die Erfindung geht weiterhin davon aus, dass mittels einem schnellen Mikroprozessor und weiteren teilweise bekannten Funktionseinheiten ein Sicherheitsmodul geschaffen wird, das allen Anforderungen genügt. Der schnelle Prozessor ermöglicht symmetrische und/oder asymmetrische Verschlüsselungsverfahren für unterschiedliche Einsatzfälle einzusetzen. Entsprechend dem jeweiligem Einsatzfall wird eine Echtzeitverarbeitung von Ereignissen sowie eine Aufzeichnung bzw. Buchung ermöglicht. Eine interne Batterie des Sicherheitsmoduls übernimmt die Spannungsversorgung für eine Echtzeituhr und für Bauelemente zur nichtflüchtigen Speicherung der Nutzdaten, zur permanenten Überwachung aller sicherheitsrelevanten Funktionen sowie der Betriebsbereitschaft des Sicherheitsmoduls bei ausgeschalteter Systemspannung des Gerätes. Im Fehlerfall und bei Entfernung des Sicherheitsmoduls wird eine Zustandsänderung abfragbar gespeichert. Der Status des Sicherheitsmoduls ist auch nach dem Löschen vom Gerät abfragbar. Zur Signalisierung des Zustandes kann eine vorhandene Anzeigeeinheit des Gerätes oder ein Signalisierungsmittel des Sicherheitsmoduls mitbenutzt werden.The invention further assumes that a security module is created by means of a fast microprocessor and other partially known functional units that meets all requirements. The fast processor enables symmetric and / or asymmetric encryption for different applications. Depending on the respective application, a real-time processing of events and a recording or booking is possible. An internal battery of the safety module takes over the power supply for a real-time clock and components for non-volatile storage of user data, for permanent monitoring of all safety-related functions and the operational readiness of the safety module when the system voltage is switched off. In the case of an error and when the security module is removed, a change of state is stored in a queryable manner. The status of the security module can also be queried by the device after it has been deleted. For signaling the state, an existing display unit of the device or a signaling means of the security module can be shared.
Vorteilhafte Weiterbildungen der Erfindung sind in den Unteransprüchen gekennzeichnet bzw. werden nachstehend zusammen mit der Beschreibung der bevorzugten Ausführung der Erfindung anhand der Figuren näher dargestellt. Es zeigen:
- Figur 1,
- Blockschaltbild des Sicherheitsmoduls,
- Figur 2,
- Darstellung der Mehrschicht-Programm Architektur,
- Figur 3,
- Flußplan zur Änderung der Funktionalität des Sicherheitsmoduls.
- FIG. 1,
- Block diagram of the security module,
- FIG. 2,
- Presentation of the multi-layer program architecture,
- FIG. 3,
- Flow chart for changing the functionality of the security module.
Die
einen Mikroprozessor 120 mit interner Echtzeituhr,einen Programmspeicher 128, zum Beispiel ein FLASH 512K x32,einen Arbeitsspeicher SRAM 121, zum Beispiel ein SRAM 64K x32,- zwei nichtflüchtige Speicher NVRAM I & NVRAM II,
- einen Arbeitsspeicher SRDI-RAM 122 (Secure Relevant Data Items) mit Lösch-Hardware und BUS-
Treibereinheit 127, - eine Langzeit-
Batterie 134, zum Beispiel eine Lithium-Batterie, - eine Leistungsverwaltungs-& Überwachungseinheit (Power Manager) 11
mit Spannungsüberwachungseinheit 12, mit Schnittstellen zur Zuführung der Systemspannung (Main Power Supply Interface) und zur Batteriespannungszuführung (Host Battery Interface), - Ereignisdetektoren(Event Detectors), einschließlich einer Zerstörungs-
Detektionseinheit 15, die mit einer ineiner Vergussmasse 105eingebetten Membrane 153 verbunden ist, und einer Ungestecktsein-Detektionseinheit 13, - einen speziellen Schaltkreis FPGA 160 mit einem I/
O Interface 150 zur Herstellung einer Kommunikationsverbindung mit einem Gerät.Das Kommunikationsinterface 150 enthält eine interne Steuerung und einen 8 Byte-Kommunikations-Puffer, aus welchem zuerst eingelesene Daten zuerst ausgelesen und weitergeleitet werden.
- a
microprocessor 120 with internal real time clock, - a
program memory 128, for example a FLASH 512K x32, - a
memory SRAM 121, for example a SRAM 64K x32, - two non-volatile memories NVRAM I & NVRAM II,
- a memory SRDI-RAM 122 (Secure Relevant Data Items) with erase hardware and
BUS driver unit 127, - a long-
term battery 134, for example a lithium battery, - a power management & monitoring unit (Power Manager) 11 with
voltage monitoring unit 12, with interfaces for supplying the system voltage (Main Power Supply Interface) and for the battery voltage supply (Host Battery Interface), - Event detectors, including a
destruction detection unit 15 connected to adiaphragm 153 buried in apotting compound 105, and anunplugged detection unit 13; - a
special circuit FPGA 160 with an I /O interface 150 for establishing a communication connection with a device. Thecommunication interface 150 includes an internal controller and an 8-byte communication buffer from which first read-in data is first read out and forwarded.
Das Herstellergerät liefert eine Systemspannung und optional eine zweite Batteriespannung. Das Sicherheitsmodul wird bei eingeschaltetem Herstellergerät mit Systemspannung betrieben. Zum Ändern der Funktionalität ist das Sicherheitsmodul 100 mit einem reprogrammierbaren FLash-Programmspeicher 128 ausgestattet, der ein Startladeprogramm speichert, und mit einem Mikroprozessor 120, der das Startladeprogramm teilweise in den Arbeitsspeicher SRAM 121 kopiert. Das integrierte Kommunikationsinterface 150 des speziellen Schaltkreises 160 ermöglicht die Herstellung einer Kommunikationsverbindung mit dem Herstellergerät, welches Anwendungsprogrammdaten für das Sicherheitsmodul bereit stellt. Der Mikroprozessor 120 steht über einen BUS mit dem Arbeitsspeicher SRAM 121, mit dem FLASH-Programmspeicher 128 und mit dem Kommunikationsinterface 150 in kommunikativer Verbindung. Es ist vorgesehen, dass das Kommunikationsinterface 150 zur Bereitstellung von Daten mindestens eines Teils eines Anwendungsprogramms, eines zugehörigen Zertifikatcodes und Kennungsdaten ausgebildet ist und dass der Mikroprozessor 120 durch das teilweise in den Arbeitsspeicher 121 kopierte Startladeprogramm programmiert ist, die Daten des Teils des Anwendungsprogramms auf einem freien Speicherplatz des FLASH-Programmspeichers zu speichern, wenn die Kennungsdaten einen Nachfolger zur gespeicherten Vorgängerkennung kennzeichnen, und die Authentizität des geladenen mindestens einen Teils des Anwendungsprogramms mittels des Zertifikatcodes zu überprüfen und bei Authentizität des geladenen Teils des Anwendungsprogramms letzteres als gültig zu speichern.The manufacturer device provides a system voltage and optionally a second battery voltage. The safety module is operated with system voltage when the manufacturer device is switched on. To change functionality, the
Der Mikroprozessor 120 stellt fest, ob die Kennungsdaten einen Nachfolger zur gespeicherten Vorgängerkennung kennzeichnen, indem die Kennungsdaten mit entsprechenden Vergleichsdaten verglichen werden, die in einem weiteren Speicherbereich des FLASH-Programmspeichers 128 gespeichert sind, in welchem Informationsdaten zu einem bereits geladenen Programm gelistet sind. Zu den Kennungsdaten gehören der Programmtyp, die Versions- und die Revisionsdaten. Vorteilhaft ist ein Mikroprozessor-Typ vorgesehen, der die Ausführung seines Programms in einem Arbeitsspeicher 121 ermöglicht, um den FLASH zu reprogrammieren. Damit kann auf den Einsatz eines teueren FLASH-Programmspeicher-Bausteins mit separaten Speicherbänken verzichtet werden.The
Die Leistungsverwaltungseinheit (Power Manager) 11 hat eine Vielzahl an Funktionseinheiten, die bei einem geringen Leistungsverbrauch die Betriebsfähigkeit des Sicherheitsmoduls auch bei abgeschaltetem Gerät sichern. Die Leistungsverwaltungseinheit 11 weist einen Gleichstrom/Gleichstrom-Wandler (nicht gezeigt) und einen Spannungsregler (nicht gezeigt) für die entsprechenden Betriebsspannungen (3V, 5V und 8V), eine Temperatur-und Spannungsüberwachungsschaltung (nicht gezeigt) auf. Die letzteren beiden können ein Reset-Signal erzeugen. Die gelieferte Systemspannung wird auf Über- bzw. Unterschreitung von Grenzwerten überwacht. Innerhalb letzterer sorgt ein Gleichstrom/Gleichstrom-Wandler für eine vorbestimmte Betriebsspannung UB. Eine Spannungsgenerierung sorgt für die Erzeugung aller notwendigen Spannungen, die die Funktionseinheiten des Sicherheitsmoduls benötigen.The power management unit (Power Manager) 11 has a plurality of functional units, which ensure the operability of the security module with a low power consumption even when the device is switched off. The
Bei ausgeschalteten Gerät werden neben den Überwachungsschaltungen und der Zerstörungs-Detektionseinheit nur eine Echtzeituhr RTC und die Arbeitsspeicher mit Batteriespannung versorgt. Eine ununterbrochene Versorgung der batteriebetriebenen Einheiten ist auch in
Alternativ zur internen Echtzeituhr kann eine separate Echtzeituhr RTC 124 angeschlossen werden. Der Mikroprozessor 120 ist beispielsweise vom Typ ARM7 und die separate Echtzeituhr vom Typ EPSON RTC-4543. Der Mikroprozessor 120 ist über einen BUS mit dem Programmspeicher FLASH 128, dem Arbeitsspeicher SRAM 121, dem Arbeitsspeicher SRDI-RAM 122 und dem speziellen Schaltkreis FPGA 160 verbunden. Der Bus ist mit breiten weißen Pfeilen dargestellt. Der spezielle Schaltkreis FPGA 160 ist ein anwerderspezifisch programmiertes FPGA (one time programmable). Der FPGA enthält eine Hardware-Abrechnungseinheit (nicht gezeigt), eine Ansteuerschaltung für zwei weitere Speicher NVRAM I und II sowie eine Ein/Ausgabe-Schnittstelle (digitale Interface des Sicherheitsmoduls nicht gezeigt) zum Gerät (nicht gezeigt). Der spezielle Schaltkreis FPGA 160 ist mit zwei nichtflüchtigen Speichern 114 (NVRAM I) & 116 (NVRAM II) verbunden, die unter anderem die postalisch relevanten Daten enthalten. Die beiden nichtflüchtigen Speicher NVRAM I und II sind physikalisch getrennt und in verschiedenen Technologien ausgeführt. Sie sind vom Prozessor schreibend und lesend ansprechbar, vom FPGA modifizierbar und von außerhalb des Sicherheitsmodules lesbar. Einer der nichtflüchtigen Speicher ist in einer gemischten EEPROM-SRAM-Technologie ausgeführt, der andere ist ein SRAM mit herkömmlicher Technologie.As an alternative to the internal real-time clock, a separate real-
Die Zuführung der Systemspannung (Main Power Supply Interface) und der Batteriespannungen zur Schnittstelle ist mit breiten schwarzen Pfeilen gekennzeichnet worden. Dünne schwarze Pfeile gekennzeichnen die Versorgung von Baugruppen mit einer entsprechenden Betriebsspannung aus der Leistungsverwaltungs-und Überwachungseinheit 11 bzw. aus der Überwachungseinheit 12. Dünne weiße Pfeile kennzeichnen Abfrage- und Steuerleitungen.The supply of the system voltage (Main Power Supply Interface) and the battery voltages to the interface has been marked with wide black arrows. Thin black arrows indicate the supply of components with a corresponding operating voltage from the power management and
Zur Lösch-Hardware gehören teilweise Mittel der Leistungsverwaltungs-& Überwachungseinheit, eine Steuerleitung CL und eine Bus-Treibereinheit 127. Die Steuerleitungen von der Zerstörungs-Detektionseinheit 15 und der Spannungsüberwachungseinheit 12 sind zu einer gemeinsamen Steuerleitung CL verschaltet, welche gestrichelt dargestellt ist. Die Einheiten 12 oder 15 steuern über die gemeinsame Steuerleitung CL einen elektronischen Umschalter S an, welcher wahlweise Betriebsspannung UB oder Löschspannung UC bzw. Massepotential UM an den VCC-Pin des SRDI-Arbeitsspeicher 122 anlegt. Dieser SRDI-RAM-Speicher ist nicht direkt an dem Prozessorbus angeschlossen. Alle digitalen Signale werden über Treiberschaltkreise der Bus-Treibereinheit 127 geführt, die über Ausgänge verfügen, die hochohmig geschaltet werden können. Damit kann der BUS vom SRDI-Arbeitsspeicher 122 entkoppelt werden. Die Bus-Treibereinheit 127 wird ebenfalls von der gemeinsamen Steuerleitung CL angesteuert.The erase hardware includes power management & monitoring unit means, a control line CL, and a
Folgende Detektor- und Überwachungsseinheiten überwachen den sachgemäßen Betrieb des Sicherheitsmoduls:
Spannungsüberwachungseinheit 12, die zur Batteriespannungsüberwachung mit Selbsthaltung ausgebildet ist,Zerstörungsdetektionseinheit 15 zur Detektion gegen mechanische Zerstörung des Sicherheitsmoduls mit Selbsthaltung,- Ungestecktsein-Detektioneinheit 13 (Host-System-Loop) mit Selbsthaltung.
- Temperatursensor und weitere
- Spannungsüberwachungseinheiten zur Überwachung aller Spannungen im System, insbesondere der Systemspannung.
-
Voltage monitoring unit 12, which is designed for battery voltage monitoring with latching, -
Destruction detection unit 15 for detection against mechanical destruction of the safety module with latching, - Disconnected detection unit 13 (host system loop) with latching.
- Temperature sensor and more
- Voltage monitoring units for monitoring all voltages in the system, in particular the system voltage.
Die beiden ersten führen bei Ansprechen (oder-Verknüpfung) zum Löschen der Daten im SRDI-Speicher.The first two cause the data in the SRDI memory to be cleared when triggered (or linked).
Der dritte Detektor kann nur einen Zustandswechsel hervorrufen und vom Prozessor während des Betriebes bzw. beim Systemstart vom Programm des Sicherheitsmoduls abgefragt werden.The third detector can only cause a state change and be interrogated by the processor during operation or at system startup by the program of the security module.
Der Temperatursensor überwacht die Betriebstemperatur des Moduls und löst einen Reset aus, wenn die Temperatur unter oder über einen vorherbestimmten Wert sinkt bzw. steigt. Auch damit wird ein unsachgemäßer Gebrauch verhindert und die Nutzerdaten gesichert. Ein Reset wird ebenfalls ausgelöst, wenn die Eingangsspannung des Moduls zu klein oder zu groß wird oder wenn die interne Betriebsspannung unter einen bestimmten Pegel sinkt. Der Zustand aller anderen Spannungen können von der Systemsoftware abgefragt werden. Das Sicherheitsmodul enthält - nicht gezeigte - LED zur Statusausgabe und wird mit einer harten, undurchsichtigen Vergußmasse 105 vergossen, in welche eine Sensor-Membrane 153 eingebettet ist. Einer der Ereignisdetektoren, die Zerstörungs-Detektioneinheit 15, ist mit Leiterschleifen der Sensor-Membrane 153 verbunden.The temperature sensor monitors the operating temperature of the module and triggers a reset if the temperature drops below or above a predetermined value. This also prevents improper use and protects the user data. A reset will also be triggered if the input voltage of the module becomes too low or too high, or if the internal operating voltage drops below a certain level. The status of all other voltages can be queried by the system software. The security module contains - not shown - LED for status output and is potted with a hard,
Die
In der mittleren Schicht befindet sich eine offene Sicherheitssockelschichtsammlung (Open Secure Socket Layer Library), welche die darüber liegenden Schichten (Pre Initializer & Application-Software) nutzen können. Die Sammlung (OpenSSL-Library) enthält eine große Anzahl an Sätzen von kryptographischen Algorithmen (DES, tripel-DES, RSA, DAS, SHA-1, HMAC, usw.) und solche PKCS- und ASN.1-Formatierungswerkzeuge, wie beispielsweise der X.509v3 Zertifizierungs-Standard. Die OpenSSL-Library enthält weiterhin eine kleine und effiziente Sammlung von Elliptic Curve Digital Signature Algorithms (ECDSA), welche eine Auswahl von ein oder mehreren verschiedenen elliptischen Kurven - die vom NIST empfohlen werden - gestattet.In the middle layer is an open Secure Socket Layer Library, which the layers above (Pre Initializer & Application Software) can use. The collection (OpenSSL Library) contains a large number of sets of cryptographic algorithms (DES, triple-DES, RSA, DAS, SHA-1, HMAC, etc.) and such PKCS and ASN.1 formatting tools as the X.509v3 certification standard. The OpenSSL Library also includes a small and efficient collection of Elliptic Curve Digital Signature Algorithms (ECDSA), which allows selection of one or more different elliptic curves recommended by the NIST.
Die untere Schicht enthält ein Startladeprogramm (boot loader) mit einem integrierten Code-Überprüfungsprogramm. Das Startladeprogramm unternimmt zuerst ein Laden des Vorinitalisierungsprogramms, welches erst einmal geladen und ausgeführt, nicht durch ein anderes Vorinitalisierungsprogramm ersetzt werden kann, sondern höchstens durch ein Teil des Anwendungsprogramms. Bevor das Startladeprogramm den Zustand eines geladenen Teils des Anwendungsprogramms als gültig speichert, wird letzteres mittels Zertifikatcode überprüft. Der Zertifikatcode wird zusammen mit jedem Teil des Anwendungsprogramms bereitgestellt. Zur Überprüfung wird ein Code-Überprüfungsschlüssel benötigt, welcher während der Herstellung im Rahmen einer Vorinitialisierung geladen wird.The bottom layer contains a boot loader with an integrated code checker. The boot loader first loads the pre-initialization program which once loaded and executed, can not be replaced by another pre-initialization program, but at most by a part of the application program. Before the bootstrap program stores the state of a loaded part of the application program as valid, the latter is checked by means of a certificate code. The certificate code is provided with each part of the application program. For verification, a code verification key is needed, which is loaded during production as part of a pre-initialization.
Aus den Daten des Anwendungsprogramms wird ein Hashwert gebildet, welcher beispielsweise mit einem Schlüssel nach dem bekannten DES-Verfahren (Data Encryption Standard) zu einem Message Authorization Code (MAC) verschlüsselt wird. Der MAC wird als Zertifikatcode dem Anwendungsprogramm beigefügt. Der Code-Überprüfungsschlüssel muß im Sicherheitsmodul jedoch auslesesicher gespeichert werden, wenn der Code-Überprüfungsschlüssel ein Schlüssel eines symmetrischen Verschlüsselungsverfahrens (DES) ist.From the data of the application program, a hash value is formed, which is encrypted, for example, with a key according to the known DES method (Data Encryption Standard) to a Message Authorization Code (MAC). The MAC is attached as a certificate code to the application program. However, the code verification key must be stored in the security module in a read-only manner if the code verification key is a key of a symmetric encryption method (DES).
Ein auslesesicheres Speichern entfällt, wenn ein öffentlicher Code-Überprüfungsschlüssel geladen wird. Vorzugsweise ist vorgesehen, dass der Code-Überprüfungsschlüssel ein öffentlicher Verifizierschlüssel ist, dass der öffentliche Verifizierschlüssel und ein zugehöriger geheimer Signierschlüssel ein Schlüsselpaar bilden sowie dass der Zertifikatcode mit Hilfe des geheimen Signierschlüssels vom Hersteller zugehörig zu den Daten mindestens eines Teils eines Anwendungsprogramms erzeugt wird. Aus den Daten des Anwendungsprogramms wird dazu ein Hashwert gebildet, welcher beispielsweise mit einem geheimen Signierschlüssel nach dem bekannten RSA-Verfahren (Rivest, Shamir und Adleman) zu einer digitalen Signatur verschlüsselt wird. Der Code-Überprüfungsschlüssel wird von von einer vertrauenswürdigen Zentrale des Herstellers generiert, gespeichert und ständig auf Echtheit überprüft, wobei der Hersteller eine weltweite Public Key Infrastrukture einsetzt. Zur verwendeten Public Key Infrastrukture existieren folgende Standards:
- [1] American National Standards Institute: Public Key Infrastructure-Practices and Policy Framework; ANSI X9.79, 2000
- [2] ISO/CCITT Directory Convergence Document: The Directory - Authentication Framework; CCITT Recommendation X.509 and ISO 9594-8, "Information Processing Systems - Open Systems Interconnection - the Directory-Authentication Framework".
- [3] ISO_9594-8a 95 ISO/IEC 9594-8: Information technology - Open Systems Interconnection - Specification - The Directory: Authentication framework; ISO/IEC International Standard, Second edition 15.09.1995.
- [4] ISO_10181-2 96 ISO/IEC 10181-2: Information technology - Open Systems Interconnection - Security frameworks for open systems: Authentication framework; ISO International Standard 10181-2, Ist edition, 96.05.15, 1996.
- [5]
Bruce Schneier: Applied Cryptography: Protocols, Algorithms, and Source Code in C; (2nd ed.) John Wiley & Sons, New York 1996, Chapter 24.9 - [6]
Simson Garfinkel, Gene Spafford: Web Security & Commerce (Section III Digital Certificates; O'Reilly & Associates, Cambridge 1997
- [1] American National Standards Institute: Public Key Infrastructure Practices and Policy Framework; ANSI X9.79, 2000
- [2] ISO / CCITT Directory Convergence Document: The Directory - Authentication Framework; CCITT Recommendation X.509 and ISO 9594-8, "Information Processing Systems - Open Systems Interconnection - the Directory-Authentication Framework".
- [3] ISO_9594-8a 95 ISO / IEC 9594-8: Information technology - Open Systems Interconnection - Specification - The Directory: Authentication framework; ISO / IEC international standard, second edition 15.09.1995.
- [4] ISO_10181-2 96 ISO / IEC 10181-2: Information technology - Open Systems Interconnection - Security frameworks for open systems: Authentication framework; ISO International Standard 10181-2, is edition, 96.05.15, 1996.
- [5]
Bruce Schneier: Applied Cryptography: Protocols, Algorithms, and Source Code in C; (2nd ed.) John Wiley & Sons, New York 1996, Chapter 24.9 - [6]
Simson Garfinkel, Gene Spafford: Web Security & Commerce (Section III Digital Certificates, O'Reilly & Associates, Cambridge 1997
In der
Nach dem Einschalten eines - nicht gezeigten - Herstellergerätes wird Energie zur Verfügung gestellt und im Schritt 200 wird geprüft, ob das Einschalten den beabsichtigten Erfolg hatte, so dass am Sicherheitsmodul eine Systemspannung anliegt. Falls nicht, dann wird auf eine Warteschleife verzweigt und die Abfrage ständig wiederholt. Falls am Sicherheitsmodul die Systemspannung anliegt, wird im Schritt 201 ein Start up Programm gestartet und in den Arbeitsspeicher SRAM 121 wird mindestens ein erster Teil des Startladeprogramms mit der Programmierfunktionalität kopiert. Der Mikroprozessor 120 ist durch das Startladeprogramm programmiert, dass derjenige Speicherbereich des FLASH-Programmspeichers, in welchem sich das Startladeprogramm befindet, nur kopiert aber nicht überschrieben werden kann. Informationen zu einem bereits geladenen Anwendungsprogramm können in einem weiteren Speicherbereich des FLASH-Programmspeichers 128 oder an anderer Stelle nichtflüchtig gespeichert sein. Die Infomationen schließen eine Zustandsvariable ein. Bei der anschließenden Programmausführung, stellt der Mikroprozessor im Schritt 202 anhand der vorgenannten Informationen fest, ob ein gültiger Zustand eines Anwendungsprogramms vorliegt.After switching on a - not shown - manufacturer device energy is provided and in
Ist letzteres der Fall, dann wird im Schritt 209 das Anwendungsprogramm gestartet. Anschließend wird ständig im Schritt 210 überprüft, ob im Kommunikationsinterface Daten zum Löschen des Anwendungsprogramms vorhanden sind. Ist das nicht der Fall, dann wird auf den Schritt 209 zurückverzweigt und das Anwendungsprogramm gestartet. Anderenfalls wird vom Schritt 210 auf einen Schritt 211 verzweigt, in welchem das vorhandene Anwendungsprogramm mittels einer Zustandsvariablen als 'ungültig' gekennzeichnet wird.If the latter is the case, then in
Beim nächsten Booten wird das Startladeprogramm (Bootloader) wieder aktiv und kann neue Anwendungsprogrammdaten speichern.On the next boot, the boot loader will be active again and can save new application program data.
Zunächst wird vom Mikroprozessor im Schritt 202 festgestellt, dass das vorhandene Anwendungsprogramm als 'ungültig' gekennzeichnet wurde bzw. kein gültiger Zustand des Anwendungsprogramms vorliegt, dann wird vom Schritt 202 auf einen Schritt 203 verzweigt, in welchem ein zweiter Teil des Startladeprogramms mit einer Kommunikationsschnittstellenabruf und Überprüfungsfunktionalität gestartet wird. In einem nachfolgenden Abfrageschritt 204 wird überprüft, ob Anwendungsprogrammdaten und Kennungsdaten in der Kommunikationsschnittstelle vorliegen. Falls das nicht der Fall ist, dann wird auf eine Warteschleife verzweigt und die Abfrage ständig wiederholt. Ist letzteres aber der Fall, dann wird auf einen Abfrageschritt 205 verzweigt, in welchem geprüft wird, ob die Kennungsdaten einen Nachfolger vom gespeicherten Vorgänger kennzeichnen. Der Mikroprozessor vergleicht dazu die gelieferten Kennungsdaten mit gespeicherten Kennungsdaten. Letztere können im vorgenannten weiteren Speicherbereich des FLASH-Programmspeichers, in welchem alle Informationen zu einem bereits geladenen Programm gelistet sind, gespeichert werden. An die Kommunikationsschnittstelle werden vom Hersteller auch zu den Anwendungsprogrammdaten zugehörige Informationsdaten geliefert, wie: Start- und Endadresse des Programmes, Überprüfungssumme (CRC), Programmtyp, Version, Revision. Zu den Kennungsdaten gehören der Programmtyp, die Versions- und die Revisionsdaten.First, the microprocessor determines in
Falls die in der Kommunikationsschnittstelle vorliegenden Kennungsdaten keinen Nachfolger vom gespeicherten Vorgänger betreffen, dann wird auf eine Warteschleife zum Schritt 204 zurückverzweigt. Falls die in der Kommunikationsschnittstelle vorliegenden Kennungsdaten einen Nachfolger vom gespeicherten Vorgänger kennzeichnen, dann wird auf einen Schritt 206 verzweigt. Der Mikroprozessor wird entsprechend dem o.g. ersten Teilprogramm des Startladeprogramms mit der Programmierfunktionalität gesteuert. Die kopierten Anwendungsprogrammdaten werden auf einen für das Anwendungsprogramm vorgesehenen Speicherplatz des Programmspeichers gespeichert.If the identifier data present in the communication interface does not relate to a successor to the stored predecessor, then a waiting loop is branched back to
Ein zum Anwendungsprogramm zugehöriges Echtheitszertifikat, beispielsweise eine kyptographische Signatur, wird im nachfolgenden Abfrageschritt 207 zur Überprüfung der Echtheit des Anwendungsprogramms benutzt. Liegt jedoch keine Echtheit vor, dann wird auf den Abfrageschritt 204 zurückverzweigt. Ein echtes Anwendungsprogramm veranlaßt im nachfolgenden Schritt 208, dass eine Information über einen gültigen Zustand nichtflüchtig gespeichert und dann zum Abfrageschritt 204 zurückverzweigt wird. Bei Authentizität des geladenen Programmteils, der mindestens einen Teil des Anwendungsprogramms einschließt, wird beispielsweise eine Zustandsvariable im nichtflüchtigen Speicher des Sicherheitsmoduls gespeichert oder auf den o.g. weiteren Speicherplatz für Informationsdaten eingeschrieben, die den vorgenannten geladenen Programmteil als gültig kennzeichnet. Vorzugsweise ist die Zustandsvariable ein Flag, mit welchem das geladene Anwendungsprogramm als gültig gekennzeichnet wird, nachdem eine kryptographische Signatur verifiziert wurde, welche die Authentizität des geladenen Anwendungsprogrammes beweist.A certificate of authenticity associated with the application program, for example a cryptographic signature, is used in the
Neue gültige Programmdaten, deren zugehörige Kennungsdaten einen Nachfolger kennzeichnen, werden nur dann auf einen Speicherplatz eingeschrieben, wenn das bereits vorhandene Programm zuvor im Schritt 211 mit der Zustandsvariablen 'ungütig' gekennzeichnet wurde. Letzteres setzt voraus, dass Daten zum Löschen des Anwendungsprogramms im Kommunikationsinterface vorhanden sind (Schritt 210).New valid program data whose associated identifier data characterize a successor are only written to a memory location if the already existing program was previously marked in
Aufgrund der dadurch möglichen Änderung seiner Funktionalität ist das Sicherheitsmodul an unterschiedliche Geräte anpaßbar und kann zur Lösung einer Vielfalt an Aufgaben eingesetzt werden.Due to the thus possible change in its functionality, the security module is adaptable to different devices and can be used to solve a variety of tasks.
Das Sicherheitsmodul, welches zum Einsatz in postalischen Geräten, insbesondere zum Einsatz in einer Frankiermaschine, bestimmt ist, wird als postalisches Sicherheitsmodul (Postal Security Device) oder als sicheres Abrechnungsgerät (Security Accounting Device) bezeichnet. Ein PSD beruht wie ein SAD auf einer gleichen Hardware. Das PSD nutzt einen asymmetrischen Verschlüsselungsalgorithmus (RSA, ECDSA), aber das SAD nutzt einen symmetrischen Verschlüsselungsalgorithmus (DES, triple-DES). Das Sicherheitsmodul kann auch eine andere Bauform aufweisen, die es ermöglicht, daß es in unterschiedlichen Geräten arbeiten kann. Somit wird es ermöglicht, dass es beispielsweise auf die Hauptplatine eines Personalcomputers gesteckt werden kann, der als PC-Frankierer einen handelsüblichen Drucker ansteuert.The security module, which is intended for use in postal devices, in particular for use in a franking machine, is referred to as a postal security module (Postal Security Device) or as a secure accounting device (Security Accounting Device). A PSD is based on the same hardware as an SAD. The PSD uses an asymmetric encryption algorithm (RSA, ECDSA), but the SAD uses a symmetric encryption algorithm (DES, triple-DES). The security module may also have another design that allows it to operate in different devices. Thus, it is possible that it can be plugged, for example, on the motherboard of a personal computer, which drives a commercial printer as a PC meter.
Die Erfindung ist nicht auf die vorliegenden Ausführungsform beschränkt, da offensichtlich weitere andere Anordnungen bzw. Ausführungen der Erfindung entwickelt bzw. eingesetzt werden können, die - vom gleichen Grundgedanken der Erfindung ausgehend - von den anliegenden Schutzansprüchen umfaßt werden.The invention is not limited to the present embodiment, since obviously other other arrangements or embodiments of the invention can be developed or used, which - based on the same basic idea of the invention - are encompassed by the attached claims.
Claims (13)
- An arrangement for changing the functionality of a security module having a microprocessor (120) and a reprogrammable program memory (128) that stores a start loading program that is in part copyable into a working memory (121), wherein the reprogrammable program memory (128) has a free memory space for a subsequently loadable application program in which a current application program is stored, wherein the security module has a special circuit (160) equipped with a communication interface (150) for establishing a communication connection with a manufacturer unit providing a system voltage and application program data for the security module, the microprocessor (120) being, via a BUS, in a communicative connection with the working memory (121), with the program memory (128) and with a communication interface (150), characterized in that the communication interface (150) is designed for providing data of at least part of an application program, of a related certificate code and identification data and that the microprocessor (120) is programmed by the start loading program partially copied into a working memory (121) to- verify the program status of the current application program on the basis of a status variable and verify its identification data,- store the data of the provided part of the subsequently loadable application program in the memory space of the program memory (128) free for the subsequently loadable application program when the status variable marks the program status of the current application program as invalid and the identification data of the at least one part of the modified application program loaded mark a successor to the stored previous identification,- check the authenticity of the at least one part loaded of the subsequently loadable application program by means of the certificate code and, in case of authenticity of the loaded part of the subsequently loadable application program, store the latter with the status variable as valid.
- An arrangement according to Claim 1, characterized in that the program memory (128) is a FLASH-type program memory, that the communication interface (150) includes an internal control and a communication buffer from which data read in first are read out and forwarded first and that there is provided a microprocessor type that allows the execution of its program in a working memory (121).
- A method for changing the functionality of a security module the program memory (128) of which is reprogrammable and has a free memory space for a subsequently loadable application program in which a current application program is stored, wherein the functionality is changed by reprogramming the program memory using a start load program stored in the program memory copied in part into a working memory for execution of a part of the program, characterized by the following steps:- execution of a program part partially copied into a working memory,- verification of a program status of the current application program reached by programming on the basis of a status variable, wherein the program status is stored in a non-volatile manner for being able to execute the program functionality in a status-dependent manner, and verification of the identification data of the current application program;- storing of the data of the part of the subsequently loadable application program in the memory space of the program memory (128) free for an application program when the status variable marks the program status of the current application program as invalid and when the identification data of the loaded at least one part of the subsequently loadable application program mark a successor to the stored previous identification,- authorization of the changed mode of functioning of the reloaded part of the subsequently loadable application program when it is authentic and storage of the loaded part of the new application program as valid when it is authentic and storage of the status variable.
- A method according to Claim 3, characterized in that data of at least part of an application program, a related certification code and related identification data are provided in a communication interface (150), and that the data of the at least one part of the application program are stored in a free memory space of the program memory when the identification data mark a successor to the stored predecessor identification, and that the authenticity of the loaded at least one part of the application program is checked by means of the certificate code, wherein the latter is stored as valid when the loaded at least one part of the application program is authentic.
- A method according to Claim 4, characterized in that, when the at least one part of the application program loaded is authentic, there is stored a status variable marking the above-mentioned loaded program part as valid.
- A method according to Claim 3, characterized in that there is provided a code verification key for verifying the authenticity of the part of the application program loaded.
- A method according to Claim 6, characterized in that the provision includes a loading of the code verification key that is loaded in the course of manufacturing within the scope of a pre-initialization, that the code verification key is stored in the security module in a readout-proof manner and is a secret key of a symmetrical encoding method.
- A method according to Claim 6, characterized in that the provision includes a loading of the code verification key that is loaded in the course of manufacturing within the scope of a pre-initialization, that the code verification key a public verification key, that the public verification key and a related secret signing key form a key pair, wherein the certificate code is generated by the manufacturer with the help of the secret signing key assigned to the data of the at least one part of an application program.
- A method according to Claim 4, characterized in that the microprocessor (120) determines whether the identification data mark a successor to the predecessor identification stored by comparing the identification data with respective reference data stored in a further memory area of the program memory (128) in which information data for an already loaded program are enlisted.
- A method according to Claim 9, characterized in that the information data are delivered by the manufacturer related to the application program data to the communication interface (150), said information data comprising the start and end address of the program, the checksum (CRC) and identification data.
- A method according to Claims 9 to 10, characterized in that the identification data include program type, version and revision data.
- A method according to Claims 3 to 5, characterized in that the status variable required for the verification of a program status reached upon programming is available stored in the program memory (128) or in a non-volatile memory of the security module.
- A method according to Claim 12, characterized in that the status variable is a flag by which the application program loaded is marked as valid after a cryptographic signature proving the authenticity of the application program loaded has been verified.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
DE10137505 | 2001-07-16 | ||
DE10137505A DE10137505B4 (en) | 2001-07-16 | 2001-07-16 | Arrangement and method for changing the functionality of a security module |
Publications (3)
Publication Number | Publication Date |
---|---|
EP1278164A2 EP1278164A2 (en) | 2003-01-22 |
EP1278164A3 EP1278164A3 (en) | 2004-01-14 |
EP1278164B1 true EP1278164B1 (en) | 2013-01-16 |
Family
ID=7693871
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
EP02090220A Expired - Lifetime EP1278164B1 (en) | 2001-07-16 | 2002-06-22 | System and method for changing the functionality of a security module |
Country Status (3)
Country | Link |
---|---|
US (1) | US7043631B2 (en) |
EP (1) | EP1278164B1 (en) |
DE (1) | DE10137505B4 (en) |
Families Citing this family (22)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8347078B2 (en) | 2004-10-18 | 2013-01-01 | Microsoft Corporation | Device certificate individualization |
US8621597B1 (en) * | 2004-10-22 | 2013-12-31 | Xilinx, Inc. | Apparatus and method for automatic self-erasing of programmable logic devices |
US8336085B2 (en) | 2004-11-15 | 2012-12-18 | Microsoft Corporation | Tuning product policy using observed evidence of customer behavior |
US20060174125A1 (en) * | 2005-01-31 | 2006-08-03 | Brookner George M | Multiple cryptographic key security device |
US8099324B2 (en) * | 2005-03-29 | 2012-01-17 | Microsoft Corporation | Securely providing advertising subsidized computer usage |
US20060236375A1 (en) * | 2005-04-15 | 2006-10-19 | Tarik Hammadou | Method and system for configurable security and surveillance systems |
US20060265736A1 (en) * | 2005-05-19 | 2006-11-23 | Gilbarco Inc. | Encryption system and method for legacy devices in a retail environment |
US8508607B2 (en) * | 2005-09-06 | 2013-08-13 | Its-7 | Method and system for a programmable camera for configurable security and surveillance systems |
US20070174910A1 (en) * | 2005-12-13 | 2007-07-26 | Zachman Frederick J | Computer memory security platform |
US8176567B2 (en) * | 2005-12-22 | 2012-05-08 | Pitney Bowes Inc. | Apparatus and method to limit access to selected sub-program in a software system |
US20070204323A1 (en) * | 2006-02-24 | 2007-08-30 | Rockwell Automation Technologies, Inc. | Auto-detection capabilities for out of the box experience |
DE102007011309B4 (en) | 2007-03-06 | 2008-11-20 | Francotyp-Postalia Gmbh | Method for authenticated transmission of a personalized data record or program to a hardware security module, in particular a franking machine |
DE102007016170A1 (en) | 2007-04-02 | 2008-10-09 | Francotyp-Postalia Gmbh | Security module for a franking machine |
DE102007039809A1 (en) * | 2007-08-23 | 2009-02-26 | Bayerische Motoren Werke Aktiengesellschaft | Control device software updating method for on-board supply system of motor vehicle, involves testing transferred user data by signed data record for authenticity of data record, and using user data as authentic user data |
EP2071898A1 (en) * | 2007-12-10 | 2009-06-17 | Telefonaktiebolaget LM Ericsson (publ) | Method for alteration of integrity protected data in a device, computer program product and device implementing the method |
US8201267B2 (en) * | 2008-10-24 | 2012-06-12 | Pitney Bowes Inc. | Cryptographic device having active clearing of memory regardless of state of external power |
DE102010017798A1 (en) | 2010-07-07 | 2012-01-12 | Turck Holding Gmbh | Parameterization adapter receives control parameters for electrically operated device from programming device through communication interface, and transmits control parameters to device through device interface |
WO2014030227A1 (en) * | 2012-08-22 | 2014-02-27 | 富士通株式会社 | Authentication method and authentication program |
JPWO2014049830A1 (en) * | 2012-09-28 | 2016-08-22 | 富士通株式会社 | Information processing apparatus and semiconductor device |
WO2014127536A1 (en) * | 2013-02-25 | 2014-08-28 | Intel Corporation | Method, apparatus, system, and machine readable storage medium for providing software security |
KR102537788B1 (en) * | 2018-11-28 | 2023-05-30 | 삼성전자주식회사 | Server and method for determining the integrity of the appliacion using thereof |
CN111475191B (en) * | 2020-04-04 | 2023-06-06 | 东风越野车有限公司 | Automobile controller software upgrading system and method based on multi-core technology |
Family Cites Families (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB2205667B (en) * | 1987-06-12 | 1991-11-06 | Ncr Co | Method of controlling the operation of security modules |
US5144659A (en) * | 1989-04-19 | 1992-09-01 | Richard P. Jones | Computer file protection system |
US5210854A (en) * | 1989-06-14 | 1993-05-11 | Digital Equipment Corporation | System for updating program stored in eeprom by storing new version into new location and updating second transfer vector to contain starting address of new version |
US5421006A (en) * | 1992-05-07 | 1995-05-30 | Compaq Computer Corp. | Method and apparatus for assessing integrity of computer system software |
US5359659A (en) * | 1992-06-19 | 1994-10-25 | Doren Rosenthal | Method for securing software against corruption by computer viruses |
US5386469A (en) * | 1993-08-05 | 1995-01-31 | Zilog, Inc. | Firmware encryption for microprocessor/microcomputer |
US5778070A (en) * | 1996-06-28 | 1998-07-07 | Intel Corporation | Method and apparatus for protecting flash memory |
US5844986A (en) * | 1996-09-30 | 1998-12-01 | Intel Corporation | Secure BIOS |
US6151657A (en) * | 1996-10-28 | 2000-11-21 | Macronix International Co., Ltd. | Processor with embedded in-circuit programming structures |
WO1998020461A2 (en) * | 1996-11-07 | 1998-05-14 | Ascom Hasler Mailing Systems, Inc. | System for protecting cryptographic processing and memory resources for postal franking machines |
EP1194850A1 (en) * | 1999-06-30 | 2002-04-10 | Microsoft Corporation | System and method for protecting shared system files |
US6640334B1 (en) * | 1999-09-27 | 2003-10-28 | Nortel Networks Limited | Method and apparatus of remotely updating firmware of a communication device |
US6622246B1 (en) * | 1999-11-12 | 2003-09-16 | Xerox Corporation | Method and apparatus for booting and upgrading firmware |
-
2001
- 2001-07-16 DE DE10137505A patent/DE10137505B4/en not_active Expired - Fee Related
-
2002
- 2002-06-22 EP EP02090220A patent/EP1278164B1/en not_active Expired - Lifetime
- 2002-07-11 US US10/193,043 patent/US7043631B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
US20030014673A1 (en) | 2003-01-16 |
US7043631B2 (en) | 2006-05-09 |
EP1278164A3 (en) | 2004-01-14 |
DE10137505B4 (en) | 2005-06-23 |
EP1278164A2 (en) | 2003-01-22 |
DE10137505A1 (en) | 2003-03-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP1278164B1 (en) | System and method for changing the functionality of a security module | |
DE69827405T2 (en) | SYSTEM AND METHOD FOR A MULTIPURPOSE CHIP CARD THAT ENABLES SUBSEQUENT STORAGE OF AN APPLICATION TO THIS CARD | |
EP0762337A2 (en) | Method and device for enhancing manipulation-proof of critical data | |
EP0762335B1 (en) | Method for changing data charged in memory cells of an electronic franking machine | |
CH675496A5 (en) | ||
DE19947827A1 (en) | Storing and maintaining data by erasing data from first storage device by overwriting with predetermined value when error is detected | |
DE102009013384A1 (en) | System and method for providing a secure application fragmentation environment | |
DE102013213314A1 (en) | Deposit at least one computable integrity measure in a memory area of a memory | |
EP1063619B1 (en) | Security module and method for protecting the postal register against manipulation | |
EP3337085B1 (en) | Reloading cryptographic program instructions | |
DE102007008651A1 (en) | Chip card and method for activating a chip card function | |
EP2299380A1 (en) | Computer with at least one connection for a removable storage medium and method of starting and operating of a computer with a removable storage medium | |
DE112019007421T5 (en) | STORAGE DEVICE WITH SECURE TEST MODE ENTRY | |
EP0969420B1 (en) | Method for secure transfer of service data to a terminal and arrangement for carrying out the same | |
DE19534530A1 (en) | Process for securing data and program code of an electronic franking machine | |
DE4315732C1 (en) | Personal computer software integrity booting and testing - conducting power-on self-test in ROM-BIOS, loading partition, loading boot sector of operating system partition, starting operating system and kernel, and using one=way hash function for cryptographic key and testing | |
DE102018211139A1 (en) | Control device and method for its operation | |
WO2006058828A2 (en) | Method for personalising chip cards | |
DE19534529C2 (en) | Process for increasing the security against manipulation of critical data | |
DE19534527C2 (en) | Process for increasing the security against manipulation of critical data | |
EP1857981A2 (en) | Assembly and method for generating a printed stamp | |
DE102022128289A1 (en) | POWER TUNING FOR ELECTRONIC CONTROL UNIT | |
US20010042054A1 (en) | Postage meter machine with access protection | |
DE102006054835A1 (en) | Portable data carrier e.g. smart card, for e.g. identification purpose, has blocking functionality irreversibly activatable by blocking event and provided for selective blockage of write accesses on electrically erasable programmable ROM | |
DE102022004836A1 (en) | Vehicle battery, cell module for a vehicle battery and method for producing and operating a vehicle battery |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PUAI | Public reference made under article 153(3) epc to a published international application that has entered the european phase |
Free format text: ORIGINAL CODE: 0009012 |
|
AK | Designated contracting states |
Kind code of ref document: A2 Designated state(s): AT BE CH CY DE DK ES FI FR GB GR IE IT LI LU MC NL PT SE TR |
|
AX | Request for extension of the european patent |
Free format text: AL;LT;LV;MK;RO;SI |
|
PUAL | Search report despatched |
Free format text: ORIGINAL CODE: 0009013 |
|
AK | Designated contracting states |
Kind code of ref document: A3 Designated state(s): AT BE CH CY DE DK ES FI FR GB GR IE IT LI LU MC NL PT SE TR |
|
AX | Request for extension of the european patent |
Extension state: AL LT LV MK RO SI |
|
RIC1 | Information provided on ipc code assigned before grant |
Ipc: 7G 07B 17/04 A Ipc: 7G 06F 1/00 B Ipc: 7G 06F 9/445 B |
|
AKX | Designation fees paid |
Designated state(s): CH DE FR GB IT LI |
|
17P | Request for examination filed |
Effective date: 20040202 |
|
17Q | First examination report despatched |
Effective date: 20050124 |
|
RAP1 | Party data changed (applicant data changed or rights of an application transferred) |
Owner name: FRANCOTYP-POSTALIA GMBH |
|
GRAP | Despatch of communication of intention to grant a patent |
Free format text: ORIGINAL CODE: EPIDOSNIGR1 |
|
GRAS | Grant fee paid |
Free format text: ORIGINAL CODE: EPIDOSNIGR3 |
|
GRAA | (expected) grant |
Free format text: ORIGINAL CODE: 0009210 |
|
AK | Designated contracting states |
Kind code of ref document: B1 Designated state(s): CH DE FR GB IT LI |
|
REG | Reference to a national code |
Ref country code: GB Ref legal event code: FG4D Free format text: NOT ENGLISH |
|
REG | Reference to a national code |
Ref country code: CH Ref legal event code: EP |
|
REG | Reference to a national code |
Ref country code: CH Ref legal event code: EP |
|
REG | Reference to a national code |
Ref country code: DE Ref legal event code: R096 Ref document number: 50215684 Country of ref document: DE Effective date: 20130314 |
|
REG | Reference to a national code |
Ref country code: GB Ref legal event code: 746 Effective date: 20130319 |
|
REG | Reference to a national code |
Ref country code: DE Ref legal event code: R084 Ref document number: 50215684 Country of ref document: DE Effective date: 20130314 |
|
PLBE | No opposition filed within time limit |
Free format text: ORIGINAL CODE: 0009261 |
|
STAA | Information on the status of an ep patent application or granted ep patent |
Free format text: STATUS: NO OPPOSITION FILED WITHIN TIME LIMIT |
|
26N | No opposition filed |
Effective date: 20131017 |
|
REG | Reference to a national code |
Ref country code: DE Ref legal event code: R097 Ref document number: 50215684 Country of ref document: DE Effective date: 20131017 |
|
REG | Reference to a national code |
Ref country code: DE Ref legal event code: R081 Ref document number: 50215684 Country of ref document: DE Owner name: FRANCOTYP-POSTALIA GMBH, DE Free format text: FORMER OWNER: FRANCOTYP-POSTALIA AG & CO., 16547 BIRKENWERDER, DE Effective date: 20130116 Ref country code: DE Ref legal event code: R081 Ref document number: 50215684 Country of ref document: DE Owner name: FRANCOTYP-POSTALIA GMBH, DE Free format text: FORMER OWNER: FRANCOTYP-POSTALIA GMBH, 16547 BIRKENWERDER, DE Effective date: 20150330 |
|
REG | Reference to a national code |
Ref country code: FR Ref legal event code: PLFP Year of fee payment: 15 |
|
REG | Reference to a national code |
Ref country code: FR Ref legal event code: PLFP Year of fee payment: 16 |
|
REG | Reference to a national code |
Ref country code: FR Ref legal event code: PLFP Year of fee payment: 17 |
|
PGFP | Annual fee paid to national office [announced via postgrant information from national office to epo] |
Ref country code: FR Payment date: 20210622 Year of fee payment: 20 Ref country code: DE Payment date: 20210506 Year of fee payment: 20 Ref country code: IT Payment date: 20210625 Year of fee payment: 20 |
|
PGFP | Annual fee paid to national office [announced via postgrant information from national office to epo] |
Ref country code: CH Payment date: 20210618 Year of fee payment: 20 Ref country code: GB Payment date: 20210625 Year of fee payment: 20 |
|
REG | Reference to a national code |
Ref country code: DE Ref legal event code: R071 Ref document number: 50215684 Country of ref document: DE |
|
REG | Reference to a national code |
Ref country code: GB Ref legal event code: PE20 Expiry date: 20220621 |
|
REG | Reference to a national code |
Ref country code: CH Ref legal event code: PL |
|
PG25 | Lapsed in a contracting state [announced via postgrant information from national office to epo] |
Ref country code: GB Free format text: LAPSE BECAUSE OF EXPIRATION OF PROTECTION Effective date: 20220621 |