EP1278164A2 - Anordnung und Verfahren zum Andern der Funktionalität eines Sicherheitsmoduls - Google Patents

Anordnung und Verfahren zum Andern der Funktionalität eines Sicherheitsmoduls Download PDF

Info

Publication number
EP1278164A2
EP1278164A2 EP02090220A EP02090220A EP1278164A2 EP 1278164 A2 EP1278164 A2 EP 1278164A2 EP 02090220 A EP02090220 A EP 02090220A EP 02090220 A EP02090220 A EP 02090220A EP 1278164 A2 EP1278164 A2 EP 1278164A2
Authority
EP
European Patent Office
Prior art keywords
program
data
memory
application program
stored
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.)
Granted
Application number
EP02090220A
Other languages
English (en)
French (fr)
Other versions
EP1278164A3 (de
EP1278164B1 (de
Inventor
Volker Baum
Dirk Rosenau
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.)
Francotyp Postalia GmbH
Original Assignee
Francotyp Postalia 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 Francotyp Postalia GmbH filed Critical Francotyp Postalia GmbH
Publication of EP1278164A2 publication Critical patent/EP1278164A2/de
Publication of EP1278164A3 publication Critical patent/EP1278164A3/de
Application granted granted Critical
Publication of EP1278164B1 publication Critical patent/EP1278164B1/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G07CHECKING-DEVICES
    • G07BTICKET-ISSUING APPARATUS; FARE-REGISTERING APPARATUS; FRANKING APPARATUS
    • G07B17/00Franking apparatus
    • G07B17/00733Cryptography or similar special procedures in a franking system
    • GPHYSICS
    • G07CHECKING-DEVICES
    • G07BTICKET-ISSUING APPARATUS; FARE-REGISTERING APPARATUS; FRANKING APPARATUS
    • G07B17/00Franking apparatus
    • G07B17/00185Details internally of apparatus in a franking system, e.g. franking machine at customer or apparatus at post office
    • G07B17/00193Constructional details of apparatus in a franking system
    • GPHYSICS
    • G07CHECKING-DEVICES
    • G07BTICKET-ISSUING APPARATUS; FARE-REGISTERING APPARATUS; FRANKING APPARATUS
    • G07B17/00Franking apparatus
    • G07B17/00185Details internally of apparatus in a franking system, e.g. franking machine at customer or apparatus at post office
    • G07B17/00193Constructional details of apparatus in a franking system
    • G07B2017/00258Electronic hardware aspects, e.g. type of circuits used
    • GPHYSICS
    • G07CHECKING-DEVICES
    • G07BTICKET-ISSUING APPARATUS; FARE-REGISTERING APPARATUS; FRANKING APPARATUS
    • G07B17/00Franking apparatus
    • G07B17/00733Cryptography or similar special procedures in a franking system
    • G07B2017/00959Cryptographic modules, e.g. a PC encryption board
    • G07B2017/00967PSD [Postal Security Device] as defined by the USPS [US Postal Service]

Definitions

  • the invention relates to an arrangement for changing the functionality of a Security module according to the preamble of claim 1 specified type and a corresponding method, according to the Preamble of claim 3 specified type.
  • Security modules works in a potentially unfriendly environment in ATMs, Ticket machines, cash registers, electronic purses, Computers for personal use (palmtops, notebooks, Organizers), cell phones and devices that have several of these features combine.
  • the modules are encapsulated with a potting compound.
  • In Form of a postal security module is an insert in one Postage meter or mailing machine or computer with Mail processing function (PC meter) possible.
  • Modern franking machines, or other means for franking of mail are using a printer to print the postmark on the mail, with a control to control the printing and the peripheral components of the franking machine, with a A réelleiser to bill postal fees in non-volatile stores and a unit for cryptographically securing the Postage fee data equipped.
  • a security module (EP 789 333 A2) may be a hardware canceling unit and / or the unit for securing printing the postal fee data.
  • the former as user circuit ASIC and the latter as OTP processor (One Time Programmable) can be realized.
  • An internal OTP memory stores read-safe sensitive data (cryptographic keys) that For example, to recharge a credit are required.
  • a Enclosing through a safety enclosure provides further protection.
  • flash EEPROMs In modern postal devices are already today as program memory so-called flash EEPROMs used. The latter permit a sectoral Deleting and saving data as well as byte-by-byte insertion of individual data in a memory area (sector). So it already became in EP 724 141 B1 a method for data input into a balance proposed, with the relevant memory areas in the flash EEPROM the balance should be cleared before re-programming is made, for example, a postage rate table at least partially change. The preferably via modem of a franking machine, For example, JetMail®, loaded data is stored in flash EEPROM stored compressed and decompressed before use and in one saved separate application memory.
  • modem of a franking machine For example, JetMail®
  • the first method has the disadvantage over the second method that a faulty program can no longer be replaced.
  • the second method adversely requires a device that own at least two different storage banks, what with him the o.g. strong restrictions on the use of storage space makes more expensive.
  • the postal security modules will be special Requirements, what the exchange or expandability of Functions.
  • the programming of o.a. program blocks may not be at any time and especially not by any operator can be executed.
  • the invention is based on the object with little effort the above mentioned special requirements, while avoiding the disadvantages, too and to provide an arrangement and method for a security module create a state of functionality exchange and functionality Authorized guaranteed.
  • the developed security module uses a microprocessor Use of the execution of his program in a working memory allows.
  • this memory is also a FLASH program memory for the application-specific program. Both memories are connected to the processor via the bus.
  • the security module is thus during its production with program data programmed and receives an identifier for a first Ground state. After switching on by means of a start up Program a first part of the program from the memory area of Program memory copied to the memory. The achieved program state is verified to state the program functionality to be able to execute. A state variable for the achieved Program state, for example, in the program memory or in stored in a nonvolatile memory of the security module. A light emitting diode (LED) signals that the microprocessor has a second program part and on the change of the program functionality the free program memory is waiting. About that in the security module included communication interface are at least Application program data in a free or inactive memory area the program memory loaded.
  • Each recharged functionality also includes a subprogram for copying and executing programming instructions in the working memory. This functionality can also be found in the Security module located communication interface are called. When called, it changes the state variable such that, although the Identification of the program is retained, the next boot the Bootloader, however, is indicated that the application specific Software now again a free program memory area represents. As a result, the bootloader will be active again the next time you boot and receive application program data.
  • the invention further assumes that by means of a fast Microprocessor and other partially known functional units Security module is created that meets all requirements.
  • the fast processor allows symmetric and / or asymmetric Use encryption methods for different applications.
  • a real-time processing of events as well as a record or booking.
  • a internal battery of the safety module takes over the power supply for a real-time clock and non-volatile memory devices the user data, for permanent monitoring of all safety-relevant Functions as well as the operational readiness of the safety module with the system voltage switched off.
  • a state change stored queryable In the case of an error and upon removal of the security module, a state change stored queryable.
  • the status of the security module is also after can be interrogated by the device. To signal the condition may be an existing display unit of the device or signaling means of the security module are shared.
  • the manufacturer device supplies a system voltage and optionally a second one Battery voltage.
  • the safety module is switched on with the manufacturer's device operated with system voltage.
  • the security module 100 with a reprogrammable FLash program memory 128, which stores a boot loader, and with a microprocessor 120, the boot loader partially copied to the RAM SRAM 121.
  • the integrated Communication interface 150 of the special circuit 160 allows the establishment of a communication link with the manufacturer's device, which application program data is available for the security module provides.
  • the microprocessor 120 is connected to the main memory via a BUS SRAM 121, with the FLASH program memory 128 and with the communication interface 150 in a communicative connection.
  • the communication interface 150 to provide of data from at least part of an application program, a associated certificate codes and identification data is formed and that the microprocessor 120 through the partially into the main memory 121 copied boot loader program is programmed, the data of the part of Application program on a free memory space of the FLASH program memory save if the identifier data is a successor to the stored predecessor identifier, and the authenticity the loaded at least part of the application program using the certificate code check and authenticity of the loaded Part of the application program to save the latter as valid.
  • the microprocessor 120 determines whether the tag data is a successor to mark the stored predecessor identifier by the Identification data are compared with corresponding comparison data, in another memory area of the FLASH program memory 128 are stored, in which information data to one already loaded program are listed.
  • the identification data includes the Program type, version and revision data.
  • the power management unit (Power Manager) 11 has a plurality of functional units that 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 unit When the unit is switched off, besides the monitoring circuits and the destruction detection unit only one real-time clock RTC and the Main memory supplied with battery voltage. An uninterrupted one Supply of the battery-operated units is also in DE 200 20 635 U1 has been notified. At least one of the post stores, some of the detectors and the SRDI memory. To the Security module can connect two independent batteries become. The first battery voltage comes from the internal battery 134, which are optionally supported by a second separate battery can.
  • a separate real-time clock RTC 124 are connected.
  • the microprocessor 120 is, for example of type ARM7 and the separate real-time clock of type EPSON RTC-4543.
  • the microprocessor 120 is over a BUS with the program memory FLASH 128, the main memory SRAM 121, the main memory SRDI-RAM 122 and the special circuit FPGA 160 connected.
  • the bus is shown with wide white arrows.
  • the special circuit FPGA 160 is a user-specific programmed FPGA (one-time programmable).
  • the FPGA contains a hardware accounting unit (not shown), a drive circuit for two more memory NVRAM I and II as well as an input / output interface (digital interface of the Security module not shown) to the device (not shown).
  • the special one Circuit FPGA 160 is connected to two nonvolatile memories 114 (NVRAM I) & 116 (NVRAM II), which among other things, the postal contain relevant data.
  • NVRAM I nonvolatile memory
  • NVRAM II nonvolatile memory 114
  • the two nonvolatile memory NVRAM I and II are physically separated and in different technologies executed. They are writeable and readable by the processor, from the FPGA modifiable and from outside the security module readable.
  • One of the nonvolatile memory is in a mixed one EEPROM SRAM technology is running, the other is using an SRAM conventional technology.
  • the supply of the system voltage (Main Power Supply Interface) and the battery voltages to the interface is with wide black arrows been marked.
  • Thin black arrows mark the Supply of modules with a corresponding operating voltage from the power management and monitoring unit 11 or from the Surveillance unit 12.
  • Thin white arrows indicate polling 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 lead in response (or link) to Clearing the data in the SRDI memory.
  • the third detector can only cause a change of state and from Processor during operation or at system startup from the program of the security module.
  • the temperature sensor monitors the operating temperature of the module and triggers a reset when the temperature is below or above a predetermined value decreases or increases. This will also be one prevent improper use and secure the user data.
  • One Reset is also triggered when the input voltage of the module too small or too big or if the internal operating voltage is below a certain level drops. The state of all other voltages can be queried by the system software.
  • the security module contains - not shown - LED for status output and comes with a hard, opaque encapsulant 105 potted, in which a Sensor diaphragm 153 is embedded.
  • One of the event detectors that Destruction detection unit 15, is with conductor loops of the sensor diaphragm 153 connected.
  • FIG. 2 shows a representation of the multi-layer program architecture.
  • a pre-initialization program In the top layer are a pre-initialization program and an application program.
  • the pre-initialization program will be after the Production of the hardware of the security module via a manufacturer application program loading interface (Manufacturing Application Programming Interface) and causes the generation of a public key pair, which creates a unique identity. The latter enables a recognition of the security module at any time.
  • the initial cryptographically unique identity can be later be replaced by the customer's cryptographic identity.
  • the Application program determines the regular functionality during the Operation of the safety module. She is above a nursery Application program interface (Operational Application Programming Interface) and can, for example, the PKCS # 11 or another cryptographic standard.
  • Open Secure Socket Layer 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, such as the X.509v3 certification standard.
  • the OpenSSL Library also includes a small and efficient collection Elliptic Curve Digital Signature Algorithms (ECDSA), which is a Selection of one or more different elliptic curves - the recommended by NIST - allowed.
  • EDSA Elliptic Curve Digital Signature Algorithms
  • the bottom layer contains a bootloader with a bootloader integrated code verification program.
  • the boot loader is taking action first a loading of the pre-initialization program, which first once loaded and executed, not by another pre-initialization program can be replaced, but at most by a part of the application program.
  • the state saves a loaded part of the application program as valid, the latter is checked by means of a certificate code.
  • the certificate code becomes provided along with each part of the application program. to Verification requires a code verification key which is loaded during manufacture as part of a pre-initialization.
  • a hash value is formed, which, for example, with a key according to the known DES method (Data Encryption Standard) to a message authorization Code (MAC) is encrypted.
  • the MAC is called the certificate code Application program attached.
  • the code verification key must However, in the security module, read-only memory can be saved if the Code verification key a key of a symmetric encryption method (DES) is.
  • DES symmetric encryption method
  • FIG 3 is a flow chart for changing the functionality of Security module shown.
  • step 200 After switching on a - not shown - manufacturer device is Energy is provided and in step 200 it is checked if the Turn on the intended success had, so on the security module a system voltage is applied. If not, then put on hold branches and the query is constantly repeated. If on the security module the system voltage is applied, in step 201, a start up Program is started and in RAM SRAM 121 becomes at least a first part of the boot loader with the programming functionality copied.
  • the microprocessor 120 is through the boot loader programmed that memory area of the FLASH program memory, where the boot loader is located, only copied but can not be overwritten. About an already loaded application program can in another Memory area of the FLASH program memory 128 or others Store non-volatile.
  • the information includes one State variable on. In the subsequent program execution, provides the microprocessor in step 202 based on the aforementioned information determines whether a valid state of an application program exists.
  • step 209 the application program started. Subsequently, it is constantly checked in step 210 whether in Communication Interface Data for deleting the application program available. If this is not the case, then step on 209 branches back and started the application program. Otherwise, is branched from step 210 to a step 211, in which the existing application program by means of a state variable as 'invalid' is marked.
  • the microprocessor determines in step 202 that the existing application program was marked as 'invalid' or there is no valid state of the application program, then branches from step 202 to a step 203, in which a second Part of the boot loader with a communication interface call and verification functionality is started.
  • a following Query step 204 checks whether application program data and Identification data present in the communication interface. If that is not the case, then it is branched to a waiting loop and the Query constantly repeated. But if the latter is the case, then it will turn to one Queries step 205 branches, in which is checked whether the identification data mark a successor to the stored predecessor. Of the Microprocessor compares the supplied identification data with stored Identification data.
  • the latter can in the aforementioned further memory area the FLASH program memory, in which all information saved to an already loaded program become.
  • To the communication interface are from the manufacturer too delivered to the application program data associated information data, as: start and end address of the program, checksum (CRC), program type, version, revision.
  • the identification data includes the program type, version and revision data.
  • Step 206 branches.
  • the microprocessor will be used according to the o.g. first part program of the boot loader with the programming functionality controlled.
  • the copied application program data will be set to one for the application program Memory space of the program memory is stored.
  • a certificate of authenticity associated with the application program for example a cryptographic signature, in the subsequent query step 207 verifying the authenticity of the application program used. However, if there is no authenticity, then the query step 204 branched back.
  • a genuine application program causes in subsequent step 208 that information about a valid State stored non-volatile and then to query step 204 is branched back.
  • the state variable a flag with which the loaded application program as is valid after a cryptographic signature verified the authenticity of the loaded application program proves.
  • New valid program data their associated identification data one Mark successors only to a storage location enrolled if the already existing program previously in step 211 was marked with the state variable 'invalid'. The latter requires that data for deleting the application program in Communication interface are present (step 210).
  • the security module which is used in postal devices, in particular for use in a franking machine, is determined as a postal security module (Postal Security Device) or as secure accounting device (Security Accounting Device).
  • Postal Security Device Postal Security Device
  • Secure Accounting Device One 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 can also have a different design which allows it to be used in different devices can work. Thus, it is possible, for example, on the Motherboard of a personal computer can be plugged, as a PC meter a commercially available printer controls.

Landscapes

  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Storage Device Security (AREA)

Abstract

Eine Anordnung und ein Verfahren zum Ändern der Funktionalität eines Sicherheitsmoduls verwenden ein im Flash-Programmspeicher (128) gespeichertes Startladeprogramm zur Reprogrammierung des Flash-Programmspeichers, indem es teilweise in einen Arbeitsspeicher (121) des Sicherheitsmoduls (100) kopiert wird. Im Kommunikationsinterface (160) des Sicherheitsmoduls (100) werden Daten mindestens eines Teils eines Anwendungsprogramms, ein zugehöriger Zertifikatcode und Kennungsdaten bereitgestellt. Die Daten des Teils des Anwendungsprogramms werden auf einem freien Speicherplatz des Flash-Programmspeichers (128) gespeichert, wenn die Kennungsdaten einen Folgezustand vom gespeicherten Zustand kennzeichnen. Die Authentizität des geladenen Teils des Anwendungsprogramms wird mittels des Zertifikatcodes überprüft, wobei bei Authentizität des geladenen Teils des Anwendungsprogramms letzteres als gültig gespeichert wird. <IMAGE>

Description

Die Erfindung betrifft eine Anordnung zum Ändern der Funktionalität eines Sicherheitsmoduls, gemäß der im Oberbegriff des Anspruchs 1 angegebenen Art und ein entsprechendes Verfahren, gemäß der im Oberbegriff 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.
Es ist bereits aus EP 417 447 B1 bekannt, in elektronischen Datenverarbeitungsanlagen besondere Module einzusetzen und mit Mitteln zum Schutz vor einem Einbruch in ihre Elektronik auszustatten. Solche Module zählen zu den Sicherheitsmodulen.
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 (EP 789 333 A2) kann eine Hardware-Abrecheneinheit und/oder die Einheit zum Absichern des Druckens der Postgebührendaten aufweisen. Beispielsweise kann ersterer als Anwenderschaltkreis ASIC und letzterer als OTP-Prozessor (One Time Programmable) realisiert werden. Ein interner OTP-Speicher speichert auslesesicher sensible Daten (kryptografische Schlüssel), die beispielsweise zum Nachladen eines Guthabens erforderlich sind. Eine Kapselung durch ein Sicherheitsgehäuse bietet einen weiteren Schutz.
Zum Schutz eines Sicherheitsmoduls vor einem Angriff, auf die in ihm gespeicherten Daten, wurden weitere Maßnahmen vorgeschlagen, in der DE 198 16 572 A1 mit dem Titel: Anordnung für ein Sicherheitsmodul und DE 198 16 571 A1 mit dem Titel: Anordnung für den Zugriffsschutz für Sicherheitsmodule, im EP 1 035 516 A2 mit dem Titel: Anordnung für ein Sicherheitsmodul, im EP 1 035 517 A2 und EP 1 035 518 A2 beide mit dem Titel: Verfahren zum Schutz eines Sicherheitsmoduls und Anordnung zur Durchführung des Verfahrens, im EP 1 035 513 A2 mit dem Titel: Sicherheitsmodul mit Statussignalisierung, sowie im deutschen Gebrauchsmuster DE 200 20 635 U1, mit dem Titel: Anordnung zur Stromversorgung für einen Sicherheitsbereich eines Gerätes.
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 (EP 1 035 518 A2 und DE 200 20 635 U1) können nur für die eine vorgesehene Anwendungsfunktionalität einen sichern Schutz vor Manipulation bieten.
Aus dem US 4.528.644 ist ein Verfahren zum kundenspezifischen Einstellen der Firmware einer elektronischen Frankiermaschine nach deren Zusammenbau bekannt, wobei eine Eingabe einer Konfigurationsmitteilung in einem nichtflüchtigen Speicher gespeichert wird und mit dem Betriebsprogramm zusammenwirkt, um die Frankiermaschine den Kundenwünschen anzupassen. Nach Abschluß der Konfigurierung wird der weitere Zugriff zum Konfigurationsprogramm verhindert. Außerhalb der sicheren Umgebung beim Hersteller ist es jedoch schwierig, einen sicheren Schutz vor Manipulation zu bieten. Deshalb werden außerhalb der sicheren Umgebung beim Hersteller keine sicherheitsrelevanten Programmdaten in Frankiermaschinen installiert, um eine unterschiedliche Anwendungsfunktionalität zu erreichen.
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 EP 724 141 B1 ein Verfahren zur Dateneingabe in eine Waage vorgeschlagen, wobei die betreffenden Speicherbereiche im Flash-EEPROM der Waage gelöscht werden, bevor eine Re-programmierung vorgenommen wird, beispielsweise um eine Portotariftabelle mindestens partiziell zuändern. Die vorzugsweise via Modem einer Frankiermaschine, beispielsweise JetMail®, geladenen Daten werden im Flash-EEPROM komprimiert gespeichert und vor Anwendung dekomprimiert und in einem separaten Anwendungsspeicher gespeichert. In der Waage ist außerdem ein programmierbares Sicherheitsmittel vorgesehen, dass ein unbefugtes Löschen von Datenblöcken in den Flash-EEPROM-Speicherbereichen verhindert. Für die Frankiermaschine sind Teilbilddateien und eine Steuerdatei bestimmt, welche zugleich mit den für die Waage bestimmten Daten von einer Datenzentrale in den Speicher der Frankiermaschine heruntergeladen werden. Neben einem Datensatz, der u.a. auch eine Versionsinformation enthält, wird auch der Bearbeitungsstatus gespeichert, um den erreichten Programmzustand bei Programmabbruch nichtflüchtig zu konservieren. Jedoch weder in der Frankiermaschine noch in der Waage werden scherheitsrelevante Programmdaten installiert.
Ein elektronisches Gerät mit Flash-Speicher und ein Verfahren zur Reprogrammierung des Flash-Programmspeichers wurde in der EP 788 115 A2 vorgeschlagen. Die Programmierung des Flash-Programmspeicher-Bausteins erfolgt durch die Abarbeitung eines für diesen Zweck in einer Speicher-Bank dieses Bausteins enthaltenen Teil-Programms, wobei die betreffenden Speicherbereiche der jeweils anderen Speicher-Bank gelöscht werden, bevor eine Reprogrammierung vorgenommen wird. Meist ist das Programm länger oder kürzer als der durch Löschung geschaffene freie Speichersektor, der somit nicht voll ausgenutzt werden kann. Neben der o.g.Einschränkung bezüglich der vollständigen Nutzung des Speicherplatzes ist ein solcher Baustein auch noch teuerer als ein vergleichbarer ohne mehrere Speicher-Bänke. Durch ein Überprüfen einer Checksumme wird festgestellt, ob die Reprogrammierung komplett abgeschlossen ist. Jedoch kann damit nicht ausgeschlossen werden, dass das Gerät mit manipulierten Daten reprogrammiert wurde.
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.
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.
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.
Die Aufgabe wird mit den Merkmalen der Anordnung nach Anspruch 1 bzw. mit den Merkmalen des Verfahrens nach Anspruch 3 gelöst.
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.
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.
  • 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.
    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.
    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.
    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.
    Die Figur 1 zeigt ein Blockschaltbild des Sicherheitsmoduls, umfassend die Baugruppen:
    • 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 in einer Vergussmasse 105 eingebetten 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.
    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.
    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.
    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.
    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 DE 200 20 635 U1 mitgeteilt worden. Zu letzteren gehört mindestens einer der Post-Speicher, einige der Detektoren und der SRDI-Speicher. An das Sicherheitsmodul können zwei unabhängige Batterien angeschlossen werden. Die erste Batteriespannung stammt aus der internen Batterie 134, welch optional durch eine zweite separate Batterie gestützt werden kann.
    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.
    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.
    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.
    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.
    Die beiden ersten führen bei Ansprechen (oder-Verknüpfung) zum Löschen der Daten im SRDI-Speicher.
    Der dritte Detektor kann nur einen Zustandswechsel hervorrufen und vom Prozessor während des Betriebes bzw. beim Systemstart vom Programm des Sicherheitsmoduls abgefragt werden.
    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.
    Die Figur 2 zeigt eine Darstellung der Mehrschicht-Programm-Architektur. In der obersten Schicht befinden sich ein Vorinitalisierungsprogramm und ein Anwendungsprogramm. Das Vorinitalisierungsprogramm wird nach der Herstellung der Hardware des Sicherheitsmoduls über eine Hersteller-Anwendungsprogramm-Lade-Schnittstelle (Manufacturing Application Programming Interface) geladen und veranlaßt die Generierung eines öffentlichen Schlüsselpaares, welches eine einzigartige Identität schafft. Letztere ermöglicht zu jeder Zeit eine Wiedererkennung des Sicherheitsmoduls. Die initiale kryptographisch einzigartige Identität kann später durch die kryptographische Identität des Kunden ersetzt werden. Das Anwendungsprogramm bestimmt die reguläre Funktionalität während des Betriebes des Sicherheitsmoduls. Sie steht über eine betiebsmäßige Anwendungsprogramm-Schnittstelle (Operational Application Programming Interface) zur Verfügung und kann beispielsweise dem PKCS#11 oder einem anderem kryptographischen Standard entsprechen.
    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.
    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.
    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.
    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.
  • In der Figur 3 ist ein Flußplan zur Änderung der Funktionalität des Sicherheitsmoduls dargestellt.
    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.
    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.
    Beim nächsten Booten wird das Startladeprogramm (Bootloader) wieder aktiv und kann neue Anwendungsprogrammdaten speichern.
    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.
    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.
    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.
    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).
    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.
    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.
    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.

    Claims (13)

    1. Anordnung zum Ändern der Funktionalität eines Sicherheitsmoduls, der einen Mikroprozessor (120) und einen reprogrammierbaren Programmspeicher (128) aufweist, der ein Startladeprogramm speichert, welches teilweise in einen Arbeitsspeicher (121) kopierbar ist, und der einen speziellen Schaltkreis (160) aufweist, der mit einem Kommunikationsinterface (150) zur Herstellung einer Kommunikationsverbindung mit einem Herstellergerät ausgestattet ist, welches eine Systemspannung und Anwendungsprogrammdaten für das Sicherheitsmodul bereitstellt, wobei der Mikroprozessor (120) über einen BUS mit dem Arbeitsspeicher (121), mit dem Programmspeicher (128) und mit einem Kommunikationsinterface (150) in kommunikativer Verbindung steht, dadurch gekennzeichnet, 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 einen Arbeitsspeicher (121) kopierte Startladeprogramm programmiert ist, die Daten des Teils des Anwendungsprogramms auf einem freien Speicherplatz des Programmspeichers (128) 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.
    2. Anordnung, nach Anspruch 1, dadurch gekennzeichnet, dass der Programmspeicher (128) ein FLASH-Programmspeicher ist, dass das Kommunikationsinterface (150) eine interne Steuerung und einen Kommunikations-Puffer einschließt, aus welchem zuerst eingelesene Daten zuerst ausgelesen und weitergeleitet werden sowie dass ein Mikroprozessor-Typ vorgesehen ist, der die Ausführung seines Programms in einem Arbeitsspeicher (121) ermöglicht.
    3. Verfahren zum Ändern der Funktionalität eines Sicherheitsmoduls, mittels Reprogrammierung eines Programmspeichers unter Verwendung eines im Programmspeicher gespeicherten Startladeprogramms, welches zum Ausführen eines Programmteils teilweise in einen Arbeitsspeicher kopiert wird, gekennzeichnet durch die Schritte:
      Verifizieren eines beim Programmieren erreichten Programmzustandes, der nichtflüchtig gespeichert ist, um die Programmfunktionalität zustandsabhängig ausführen zu können,
      Autorisieren der geänderten Funktionsweise des nachgeladenen Programms bei dessen Authentizität.
    4. Verfahren, nach Anspruch 3, dadurch gekennzeichnet, dass in einem Kommunikationsinterface (150) Daten mindestens eines Teils eines Anwendungsprogramms, ein zugehöriger Zertifikatcode und zugehörige Kennungsdaten bereitgestellt und dass die Daten mindestens des einen Teils des Anwendungsprogramms auf einem freien Speicherplatz des Programmspeichers gespeichert werden, wenn die Kennungsdaten einen Nachfolger zur gespeicherten Vorgängerkennung kennzeichnen, sowie dass die Authentizität des geladenen mindestens einen Teils des Anwendungsprogramms mittels des Zertifikatcodes überprüft wird, wobei bei Authentizität des geladenen mindestens einen Teils des Anwendungsprogramms letzteres als gültig gespeichert wird.
    5. Verfahren, nach Anspruch 4, dadurch gekennzeichnet, dass bei Authentizität des geladenen mindestens einen Teils des Anwendungsprogramms eine Zustandsvariable gespeichert wird, die vorgenannten geladenen Programmteil als gültig kennzeichnet.
    6. Verfahren, nach Anspruch 3, dadurch gekennzeichnet, dass ein Code-Überprüfungsschlüssel zur Überprüfung der Authentizität des geladenen Teils des Anwendungsprogramms bereitgestellt wird.
    7. Verfahren, nach Anspruch 6, dadurch gekennzeichnet, dass das Bereitstellen ein Laden des Code-Überprüfungsschlüssels einschließt, welcher während der Herstellung im Rahmen einer Vorinitialisierung geladen wird, dass der Code-Überprüfungsschlüssel im Sicherheitsmodul auslesesicher gespeichert wird und ein geheimer Schlüssel eines symmetrischen Verschlüsselungsverfahren ist.
    8. Verfahren, nach Anspruch 6, dadurch gekennzeichnet, dass das Bereitstellen ein Laden des Code-Überprüfungsschlüssels einschließt, welcher während der Herstellung im Rahmen einer Vorinitialisierung geladen wird, 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, wobei der Zertifikatcode mit Hilfe des geheimen Signierschlüssels vom Hersteller zugehörig zu den Daten mindestens eines Teils eines Anwendungsprogramms erzeugt wird.
    9. Verfahren, nach Anspruch 4, dadurch gekennzeichnet, dass der Mikroprozessor (120) feststellt, ob die Kennungsdaten einen Nachfolger zur gespeicherten Vorgängerkennung kennzeichnen, indem die Kennungsdaten mit entsprechenden Vergleichsdaten verglichen werden, die in einem weiteren Speicherbereich des Programmspeichers (128) gespeichert sind, in welchem Informationsdaten zu einem bereits geladenen Programm gelistet sind.
    10. Verfahren, nach Anspruch 9, dadurch gekennzeichnet, dass die Informationsdaten vom Hersteller zu den Anwendungsprogrammdaten zugehörig an die Kommunikationsschnittstelle (150) geliefert werden, wobei die Informationsdaten, die Start- und Endadresse des Programmes, Überprüfungssumme (CRC) und Kennungsdaten umfassen.
    11. Verfahren, nach den Ansprüchen 9 bis 10, dadurch gekennzeichnet, dass zu den Kennungsdaten der Programmtyp, die Versions- und die Revisionsdaten gehören.
    12. Verfahren, nach den Ansprüchen 3 bis 5, dadurch gekennzeichnet, dass die zum Verifizieren eines beim Programmieren erreichten Programmzustandes benötigte Zustandsvariable im Programmspeicher (128) oder in einem nichtflüchtigen Speicher des Sicherheitsmoduls gespeichert vorliegt.
    13. Verfahren, nach Anspruch 12, dadurch gekennzeichnet, dass die Zustandsvariable ein Flag ist, mit welchem das geladene Anwendungsprogramm als gültig gekennzeichnet wird, nachdem eine kryptographische Signatur verifiziert wurde, welche die Authentizität des geladenen Anwendungsprogrammes beweist.
    EP02090220A 2001-07-16 2002-06-22 Anordnung und Verfahren zum Andern der Funktionalität eines Sicherheitsmoduls Expired - Lifetime EP1278164B1 (de)

    Applications Claiming Priority (2)

    Application Number Priority Date Filing Date Title
    DE10137505A DE10137505B4 (de) 2001-07-16 2001-07-16 Anordnung und Verfahren zum Ändern der Funktionalität eines Sicherheitsmoduls
    DE10137505 2001-07-16

    Publications (3)

    Publication Number Publication Date
    EP1278164A2 true EP1278164A2 (de) 2003-01-22
    EP1278164A3 EP1278164A3 (de) 2004-01-14
    EP1278164B1 EP1278164B1 (de) 2013-01-16

    Family

    ID=7693871

    Family Applications (1)

    Application Number Title Priority Date Filing Date
    EP02090220A Expired - Lifetime EP1278164B1 (de) 2001-07-16 2002-06-22 Anordnung und Verfahren zum Andern der Funktionalität eines Sicherheitsmoduls

    Country Status (3)

    Country Link
    US (1) US7043631B2 (de)
    EP (1) EP1278164B1 (de)
    DE (1) DE10137505B4 (de)

    Cited By (1)

    * Cited by examiner, † Cited by third party
    Publication number Priority date Publication date Assignee Title
    WO2006124652A3 (en) * 2005-05-19 2007-06-28 Gilbarco Inc Encryption system and method for legacy devices in a retail environment

    Families Citing this family (21)

    * Cited by examiner, † Cited by third party
    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
    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 (de) 2007-03-06 2008-11-20 Francotyp-Postalia Gmbh Verfahren zur authentisierten Übermittlung eines personalisierten Datensatzes oder Programms an ein Hardware-Sicherheitsmodul, insbesondere einer Frankiermaschine
    DE102007016170A1 (de) * 2007-04-02 2008-10-09 Francotyp-Postalia Gmbh Sicherheitsmodul für eine Frankiermaschine
    DE102007039809A1 (de) * 2007-08-23 2009-02-26 Bayerische Motoren Werke Aktiengesellschaft Verfahren und Bordnetz zur Aktualisierung der Software in mindestens einem Steuergerät eines Kraftfahrzeugs mit einem USB-Speicherstick
    EP2071898A1 (de) * 2007-12-10 2009-06-17 Telefonaktiebolaget LM Ericsson (publ) Verfahren zur Veränderung integritätsgeschützter Daten in einem Gerät, Computerprogrammprodukt und Vorrichtung zur Implementierung des Verfahrens
    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 (de) 2010-07-07 2012-01-12 Turck Holding Gmbh Parametrieadapter und zugehörige Steuerschaltung für ein elektrisch betriebenes Gerät
    WO2014030227A1 (ja) * 2012-08-22 2014-02-27 富士通株式会社 認証方法及び認証プログラム
    WO2014049830A1 (ja) * 2012-09-28 2014-04-03 富士通株式会社 情報処理装置および半導体装置
    US9323541B2 (en) 2013-02-25 2016-04-26 Intel Corporation Method, apparatus, system, and machine readable storage medium for providing software security
    KR102537788B1 (ko) * 2018-11-28 2023-05-30 삼성전자주식회사 서버 및 이를 이용한 어플리케이션의 무결성 판단 방법
    CN111475191B (zh) * 2020-04-04 2023-06-06 东风越野车有限公司 基于多核技术的汽车控制器软件升级系统及方法

    Citations (1)

    * Cited by examiner, † Cited by third party
    Publication number Priority date Publication date Assignee Title
    EP1087294A2 (de) 1999-09-27 2001-03-28 Nortel Networks Limited Verfahren und Gerät zur Fernaktualisierung der Firmware eines Kommunikationsgerät

    Family Cites Families (13)

    * Cited by examiner, † Cited by third party
    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
    DE69736246T2 (de) * 1996-11-07 2007-05-16 Ascom Hasler Mailing Systems, Inc., Shelton Vorrichtung zur gesicherten Kryptographischen Datenverarbeitung und zum Schutz von Speicherermitteln für Frankiermaschinen
    WO2001001255A1 (en) * 1999-06-30 2001-01-04 Microsoft Corporation Methods and systems for reporting and resolving support incidents
    US6489386B1 (en) 1999-08-12 2002-12-03 E. I. Du Pont De Nemours And Company Method and composition for improving gas barrier properties of polymeric containers and films
    US6622246B1 (en) * 1999-11-12 2003-09-16 Xerox Corporation Method and apparatus for booting and upgrading firmware

    Patent Citations (1)

    * Cited by examiner, † Cited by third party
    Publication number Priority date Publication date Assignee Title
    EP1087294A2 (de) 1999-09-27 2001-03-28 Nortel Networks Limited Verfahren und Gerät zur Fernaktualisierung der Firmware eines Kommunikationsgerät

    Cited By (1)

    * Cited by examiner, † Cited by third party
    Publication number Priority date Publication date Assignee Title
    WO2006124652A3 (en) * 2005-05-19 2007-06-28 Gilbarco Inc Encryption system and method for legacy devices in a retail environment

    Also Published As

    Publication number Publication date
    DE10137505B4 (de) 2005-06-23
    DE10137505A1 (de) 2003-03-06
    EP1278164A3 (de) 2004-01-14
    EP1278164B1 (de) 2013-01-16
    US7043631B2 (en) 2006-05-09
    US20030014673A1 (en) 2003-01-16

    Similar Documents

    Publication Publication Date Title
    EP1278164B1 (de) Anordnung und Verfahren zum Andern der Funktionalität eines Sicherheitsmoduls
    DE69717063T2 (de) Verfahren und System zur sicheren Datenverarbeitung
    DE69733123T2 (de) Verfahren und vorrichtung zur verhinderung eines unbefugten schreibzugriffes zu einem geschützten nichtflüchtigen speicher
    DE3613007B4 (de) System zur Ermittlung von nicht-abgerechneten Drucken
    DE69028894T2 (de) Einrichtung zur notariellen Beglaubigung des Datums und der Zeit mittels öffentlichem Schlüssel
    DE69724946T2 (de) Programmvermietungssystem und Verfahren zur Vermietung von Programmen
    EP0762337A2 (de) Verfahren und Anordnung zur Erhöhung der Manipulationssicherheit von kritischen Daten
    EP0969422B1 (de) Verfahren und Anordnung zur Verbesserung der Sicherheit von Frankiermaschinen
    DE69815599T2 (de) Verfahren und Vorrichtung zum Schutz von Anwendungsdaten in sicheren Speicherbereichen
    DE69527773T2 (de) Schaltungsanordnung zur Überwachung der Benutzung von Funktionen in einem integrierten Schaltungkreis
    EP0762335A2 (de) Verfahren zur Veränderung der in Speicherzellen geladenen Daten einer elektronischen Frankiermaschine
    DE112023002184T5 (de) Sram physically unclonable function (puf) speicher zum erzeugen von schlüsseln basierend auf dem besitzer der vorrichtung
    EP3337085B1 (de) Nachladen kryptographischer programminstruktionen
    EP1399797B1 (de) Steuereinheit
    WO2020212051A1 (de) Industrielles automatisierungsgerät umfassend eine überwachungseinheit zur überprüfung und überwachung eines integritätszustandes des industriellen automatisierungsgerätes
    EP1063619B1 (de) Sicherheitsmodul und Verfahren zur Sicherung der Postregister vor Manipulation
    DE112019007421T5 (de) Speichergerät mit sicherer testmoduseingabe
    EP0930586A2 (de) Anordnung und Verfahren zum Datenaustausch zwischen einer Frankiermaschine und Chipkarten
    EP2541455A2 (de) Methode und Verfahren für PIN-Eingaben bei konsistentem Software-Stack auf Geldautomaten
    DE19534530A1 (de) Verfahren zur Absicherung von Daten und Programmcode einer elektronischen Frankiermaschine
    DE19830055A1 (de) Verfahren zur sicheren Übertragung von Dienstdaten an ein Endgerät und Anordnung zur Durchführung des Verfahrens
    DE102018211139A1 (de) Steuergerät sowie Verfahren zu dessen Betrieb
    DE19928061C2 (de) Sicherheitsmodul zur Überwachung der Systemsicherheit und Verfahren
    DE19534529C2 (de) Verfahren zur Erhöhung der Manipulationssicherheit von kritischen Daten
    US20010042054A1 (en) Postage meter machine with access protection

    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