EP0762338A2

Method for securing data and progam code of an electronic franking machine

Abstract

A summation is used for a starting check (1020) in the frame of the starting and initialisation routine (101) that runs before the printed date routine (1040) and the following system routine (200) for validating the programme code and certain data. The appropriate MAC is entered and the above routine is performed using a summation testing method from the OTP processor, with its algorithm and key. The franking machine is run in the same routine (200) of a similar validation is made, and the process is repeated for various manipulation or handling modes.

EP0762338A2, drawing sheet 1
Sheet 1 of 14

Term

Term ended

Projected expiry passed 6 September 2016, 10 years ago.

  1. Priority
  2. Filed
  3. Published
  4. Projected expiry
  5. Today

15 claims: 7 independent, 8 dependent

  1. 1
    Verfahren zur Absicherung von Daten und Programmcode einer elektronischen Frankiermaschine mit einem Mikroprozessor in einer Steuereinrichtung der Frankiermaschine zur Ausführung von Schritten für eine Start- und Initialisierungsroutine und nachfolgender Systemroutine mit einer Möglichkeit in einen Kommunikationsmodus mit einer entfernten Datenzentrale einzutreten sowie weiteren Eingabeschritten, um in einen Frankiermodus einzutreten von dem nach Ausführung einer Abrechnungs- und Druckroutine in die Systemroutine zurückverzweigt wird, wobei in den Schritten für die Start- und Initialisierungsroutine ein Übertragen eines extern gespeicherten vorbestimmten MAC-Wertes und ausgewählter Daten eines zu prüfenden Speicherinhaltes in einen Speicher der Frankiermaschine, ein Bilden einer MAC-Prüfsumme im OTP-Prozessor über den Inhalt desjenigen externen Speichers, welchem der MAC zugeordnet ist, eine Überprüfung auf Gültigkeit der Daten mittels eines ausgewählten Prüfsummenverfahrens innerhalb eines Prozessors durchgeführt wird, um bei Gültigkeit ein Frankieren zu erlauben, gekennzeichnet durch a) Übertragen eines extern gespeicherten vorbestimmten MAC-Wertes und ausgewählter Daten und Programmcode eines zu prüfenden Speicherinhaltes in den internen OTP-RAM zur flüchtigen Speicherung und ein Bilden einer MAC-Prüfsumme im OTP-Prozessor über den Inhalt desjenigen externen Speichers, welchem der MAC zugeordnet ist, für eine Startsicherheitsüberprüfung (1020) im Rahmen der Start- und Initialisierungsroutine (101), welche abläuft vor einer sicheren Druckdatenaufrufroutine (1040) und der nachfolgenden Systemroutine (200), zur Feststellung der Gültigkeit eines gültigen Programm-Code und von gültigen Daten im vorbestimmten Speicherplatz, wobei ein zugehöriger MAC (MESSAGE AUTHENTIFICATION CODE) im selben Speichermittel gespeichert vorliegt und wobei die Überprüfung auf gültigen Programm-Code und auf Gültigkeit der Daten mittels eines ausgewählten Prüfsummenverfahrens innerhalb eines OTP-Prozessors (ONE TIME PROGRAMMABLE) durchgeführt wird, der intern die entsprechenden Programmteile, einen Verschlüsselungs-Algorithmus und einem zugehörigen Schlüssel enthält und b) Überführung der Frankiermaschine in die vorgenannte Systemroutine (200) und Übertragen eines extern gespeicherten vorbestimmten MAC-Wertes und ausgewählter Daten und Programmcode eines zu prüfenden Speicherinhaltes in den internen OTP-RAM zur flüchtigen Speicherung und ein Bilden einer MAC-Prüfsumme im OTP-Prozessor über den Inhalt desjenigen externen Speichers, welchem der MAC zugeordnet ist, für eine kontinuierliche Überprüfung in jedem Durchlauf der Betriebsprogrammschleife, wobei vorschreitend über jeweils eine größere Anzahl von Programmspeicherzellen mittels eines kryptographischen Prüfsummenverfahrens ein relevanter MAC gebildet und mit dem jeweiligen gespeicherten, zum Zeitpunkt T1 gebildeten MAC verglichen werden kann, c) Ablaufen von Programmen, wobei alle wesentlichen Programmabläufe in das Innere des OTP-Prozessors verlegt ablaufen, wobei ein Überführung der Frankiermaschine in einen ersten Modus, wenn mindestens ein überprüftes Programm ungültig ist bzw. ein spezifisches Manipulationskriterium erfüllt ist, durch Schritte zum Verhindern des Frankierens bzw. Sperrens der Frankiermaschine und/oder Schritte zum Verhindern einer weiteren Programmausführung bzw. einer vom OTP-Prozessor nach extern führenden Programmverzweigung im Rahmen vorgenannter Systemroutine (200), und d) Wiederholung der Prüfung der Frankiermaschine auf Vorliegen einer Manipulation im Rahmen vorgenannter Systemroutine (200).
  2. 2
    Verfahren, nach Anspruch 1, dadurch gekennzeichnet , daß als ein spezifisches Manipulationskriterium das Intervall zwischen den Prüfsummenvergleichen mit einer zeitlichen Überwachung verknüpft wird, so daß ein Anhalten des Programms erkannt wird.
  3. 3
    Verfahren nach den Ansprüchen 1 bis 2, dadurch gekennzeichnet , daß die Frankiermaschine nach Zeitablauf ohne Frankierauslösung und/oder nach einer Anzahl von Programmschleifen-Durchläufen ohne Eingabe im Standby-Modus betrieben wird, wobei im Standby-Modus Sicherheitsüberprüfungen sicherheitsrelevanter Daten und Programme durchgeführt werden und im Fehlerfall eine Protokollierung und anschließende Blockierung der Frankiermaschine erfolgt.
  4. 4
    Verfahren nach einem der vorgenannten Ansprüche 1 bis 3, dadurch gekennzeichnet , daß eine Authentizitätsprüfung von mindestens den wesentlichsten Teilen des Programmcodes und den wesentlichsten Daten in Speicherbereichen eines Klischee-EPROM oder eines anderen externen EPROMs durchgeführt wird.
  5. 5
    Verfahren, nach Anspruch 1, dadurch gekennzeichnet , daß nach einer Gültigkeitsprüfung die Frankiermaschine in einen zweiten Modus überführt wird, wenn ein spezifisches Kriterium erfüllt ist, wobei die Schritte (201 bis 206), die nach dem Beginnpunkt s der Systemroutine (200) und vor dem Punkt t ablaufen, umfassend:- einen Schritt (201) zum Aufruf aktueller Daten - einen Schritt (202) zur Überprüfung der Daten mittels eines Entscheidungskriteriums und Eintritt bei Erfüllung des Kriteriums in den zweiten Modus (Schritte 203-206), um an den Benutzer der Frankiermaschine eine Warnung und Aufforderung zur Kommunikation mit der Datenzentrale abzugeben sowie gekennzeichnet durch eine Durchführung von Authentizitätsprüfungen in mindestens einem weiteren Modus, wobei zur Bildung des MAC ein im internen OTP-ROM sicher gespeicherter DES-Algorithmus zur Verschlüsselung verwendet wird und daß zugehörige Schlüssel im internen OTP-ROM sicher gespeichert vorliegen, wobei ein Schlüssel für die Absicherung aller Speicherinhalte oder eine Anzahl verschiedener Schlüssel für die Absicherung der unterschiedlichen Speicherinhalte verwendet wird.
  6. 6
    Verfahren, nach Anspruch 5, dadurch gekennzeichnet , daß der zweite Modus (Sleeping-Mode) eine Warnung vor der bevorstehenden automatischen Durchführung einer Kommunikation mit der Datenzentrale umfaßt und daß eine Authentizitätsprüfung von Registerwerten aus den Speicherbereichen eines nichtflüchtigen Speichers (NVRAM, EEPROM) bei der Startsicherheitsüberprüfung (1020) und im Frankiermodus durchgeführt wird.
  7. 7
    Verfahren, nach Anspruch 6, dadurch gekennzeichnet , daß für die Kommunikation mit einer Datenzentrale ein geheimer erster Schlüssel eingesetzt wird, der im nichtflüchtigen Speicher extern vom OTP-Prozessor in verschlüsselter Form gespeichert vorliegt, der mittels eines internen zweiten Schlüssels innerhalb des OTP-Prozessors entschlüsselt wird, daß der verschlüsselte erste Schlüssel in Verbindung mit dem DES-Algorithmus und dem vorgenannten zweiten Schlüssel entschlüsselt wird, welche im internen OTP-ROM sicher gespeichert vorliegen, daß der entschlüsselte erste Schlüssel in Verbindung mit dem DES-Algorithmus zur Sicherung der Kommunikation der Frankiermaschine mit der Datenzentrale eingesetzt wird.
  8. 8
    Verfahren nach Anspruch 7, gekennzeichnet dadurch , daß während der Kommunikation Transaktionen mit verschlüsselten Meldungen durchgeführt werden, um ein Guthaben und/oder weitere aktuelle Daten in die Frankiermaschine zu laden, sowie daß die Transaktionsdaten einzeln und seriell übertragen und durch einen MESSAGE AUTHENTIFICATION CODE (MAC) gesichert werden, wobei die MAC-Bildung intern im OTP-Prozessor erfolgt.
  9. 9
    Verfahren, nach Anspruch 8, dadurch gekennzeichnet , daß eine während der Kommunikation mit verschlüsselten Meldungen durchgeführte Transaktion einen Vorgabewert für einen Guthabennachladewert umfaßt, welcher der entfernten Datenzentrale übermittelt wird.
  10. 10
    Verfahren, nach Anspruch 8, dadurch gekennzeichnet , daß eine während der Kommunikation mit verschlüsselten Meldungen durchgeführte Transaktion eine spezifische Stückzahl S' für den Sleeping-Mode umfaßt.
  11. 11
    Verfahren nach einem der vorgenannten Ansprüche 1 bis 10, dadurch gekennzeichnet , daß im Betriebsmodus (290) ein Schritt (214) für eine Umschaltung in einen Anzeigemodus (215) zur Anzeige von Registerwerten zum Zwecke Ihrer Überprüfung vorgesehen ist, wobei zu Kontrollzwecken wahlweise Registerwerte mit dem frankiermaschinen-internen Drucker ausgedruckt werden können.
  12. 12
    Verfahren nach einem der vorgenannten Ansprüche 1 bis 11, dadurch gekennzeichnet , daß alle wesentlichen Programmabläufe in das Innere des OTP-Prozessors verlegt ablaufen und daß die Frankiermaschine auf Vorliegen einer Manipulation wiederholt geprüft wird.
  13. 13
    Verfahren zur Absicherung von Daten und Programmcode einer elektronischen Frankiermaschine gegen Manipulation mit einem Mikroprozessor in einer Steuereinheit der Frankiermaschine zur Ausführung von Schritten für eine Start- und Initialisierungsroutine und nachfolgender Systemroutine mit einer Möglichkeit in einen Kommunikationsmodus mit einer entfernten Datenzentrale einzutreten sowie weiteren Eingabeschritten, um in einen Frankiermodus einzutreten von dem nach Ausführung einer Abrechnungs- und Druckroutine in die Systemroutine zurückverzweigt wird, gekennzeichnet durch a) eine Startsicherheitsüberprüfung (1020) im Rahmen einer Start- und Initialisierungsroutine (101), welche abläuft vor einer sicheren Druckdatenaufrufroutine (1040) und der nachfolgenden Systemroutine (200), zur Feststellung der Gültigkeit eines Programm-Codes und/oder von Daten im vorbestimmten Speicherplatz und eines zugehörigen MAC (MESSAGE AUTHENTIFICATION CODE), welche im selben Speichermittel gespeichert vorliegen, wobei die Überprüfung auf gültigen Programm-Code und/oder auf gültige Daten mittels eines ausgewählten Prüfsummenverfahrens innerhalb eines OTP-Prozessors (ONE TIME PROGRAMMABLE) durchgeführt wird, der intern die entsprechenden Programmteile enthält und b) Überführung der Frankiermaschine in die vorgenannte Systemroutine (200) bei Gültigkeit der Daten oder Überführung der Frankiermaschine in einen ersten Modus, wenn die Daten ungültig sind bzw. ein spezifisches Manipulationskriterium erfüllt ist, durch Schritte zum Verhindern des Frankierens bzw. Sperrens der Frankiermaschine (1030) und/oder Schritte zum Verhindern einer weiteren Programmausführung bzw. einer vom OTP-Prozessor nach extern führenden Programmverzweigung im Rahmen vorgenannter Systemroutine (200). c) Durchführung von Authentizitätsprüfungen im Ergebnis der Druckdateneingabe in der Druckdatenaufrufroutine (1040) für Rahmen und/oder Fensterdaten während der Start- und Initialisierungsroutine (101) und im Schritt (209) für sicherheitsrelevante Fensterdaten, welche bei der Druckdateneingabe geändert wurden, wobei bei fehlender Authentizität Schritte zum Verhindern einer weiteren Programmausführung bzw. einer vom OTP-Prozessor nach extern führenden Programmverzweigung im Rahmen vorgenannter Systemroutine (200) und wobei bei bestehender Authentizität Schritte zur weiteren Programmausführung im Rahmen vorgenannter Systemroutine (200) durchgeführt werden.
  14. 14
    Verfahren zur Absicherung von Daten und Programmcode einer elektronischen Frankiermaschine gegen Manipulation mit einem Mikroprozessor in einer Steuereinheit der Frankiermaschine zur Ausführung von Schritten für eine Start- und Initialisierungsroutine und nachfolgender Systemroutine mit einer Möglichkeit in einen Kommunikationsmodus mit einer entfernten Datenzentrale einzutreten sowie weiteren Eingabeschritten, um in einen Frankiermodus einzutreten von dem nach Ausführung einer Abrechnungs- und Druckroutine in die Systemroutine zurückverzweigt wird, gekennzeichnet durch a) eine Startsicherheitsüberprüfung (1020) im Rahmen einer Start- und Initialisierungsroutine (101), welche abläuft vor einer sicheren Druckdatenaufrufroutine (1040) und der nachfolgenden Systemroutine (200), zur Feststellung der Gültigkeit eines Programm-Codes und/oder von Daten im vorbestimmten Speicherplatz, b) Überführung der Frankiermaschine in die vorgenannte Systemroutine (200) bei Gültigkeit der Daten oder Überführung der Frankiermaschine in einen ersten Modus, wenn die Daten ungültig sind bzw. ein spezifisches Manipulationskriterium erfüllt ist, c) kontinuierliche Programmüberwachung innerhalb der Systemroutine (200) und Überführung der Frankiermaschine in den ersten Modus, wenn die Daten ungültig sind bzw. ein spezifisches Manipulationskriterium erfüllt ist, wobei über jeden der Subblöcke SB eines Blocks B eine Prüfsumme oder MAC inkrementell berechnet wird, wobei eine kumulierte Prüfsumme bzw. MAC gebildet und ein Vergleich mit einem früher gespeicherten Wert für vorgenannte Prüfsumme bzw. MAC vorgenommen wird, um die Authentizität der Programmteile voranschreitend festzustellen.
  15. 15
    Verfahren, nach Anspruch 14, gekennzeichnet durch die Schritte:- Aufrufen der Codewörter des jeweiligen Subblocks SB des aktuellen Blocks B im Schritt (210-1), um darüber insgesamt eine Prüfsumme oder mittels DES-Verschlüssellung einen MAC zu bilden, wobei die Prüfsummen- bzw. die MAC-Berechnung für einen ganzen Block unterbrochen und im nächsten Durchlauf weitergeführt wird und wobei die Prüfsumme bei jedem Durchlauf kumuliert und dann gegebenenfalls wieder der inkrementell MAC gebildet wird, - Vorsehen eines Schrittes (210-2) zum Inkrementieren des Subblockzählers, um fortschreitend im nächsten Durchlauf wieder im Schritt (210-1) kumulieren zu können und um dann den jeweiligen inkrementellen MAC zu bilden, wobei nach dem Schritt (210-2) zum Inkrementieren des Subblockzählers über einen Prüfschritt (210-3) zum Punkt e der Systemroutine verzweigt wird, wenn der maximale Subblockzählerstand SBZmax noch nicht erreicht ist, oder wobei, wenn Endstand bei der Prüfsummenbildung bzw. bei der MAC-Bildung erreicht ist, nach dem Prüfschritt (210-3) in einem weiterem Schritt (210-4) die vorgenannte kumulierte Prüfsumme bzw. der MAC mit einem zugehörig gespeicherten Wert verglichen wird, wobei im nachfolgenden Prüfschritt (210-5) festgestellt wird, ob eine Identität oder ein Fehler vorliegt, - Verzweigen im Fehlerfall, wobei Flag gesetzt, welches in einem Schritt (409) des Frankiermodus (400) ausgewertet wird, oder - Abschluß der Autentifizierung und Durchführung eines Schrittes (210-6) zur Blockinkrementation und eines Schrittes (210-7) zur Rücksetzung des Subblockzählerstandes (SBZ := 0) und der Prüfsumme auf den Wert Null, Prüfen im Schritt (210-8), ob alle Blöcke abgearbeitetet wurden, um den Blockzähler im Schritt (210-9) wieder auf den ersten Block zu setzten (BZ := 0) und Verzweigung auf den Punkt e zur weiteren Abarbeitung der Systemroutine.
Independent claims15