WO1993023807A1 - Programmsicherungsverfahren zum schutz einer datenverarbeitungsanlage - Google Patents
Programmsicherungsverfahren zum schutz einer datenverarbeitungsanlage Download PDFInfo
- Publication number
- WO1993023807A1 WO1993023807A1 PCT/DE1993/000389 DE9300389W WO9323807A1 WO 1993023807 A1 WO1993023807 A1 WO 1993023807A1 DE 9300389 W DE9300389 W DE 9300389W WO 9323807 A1 WO9323807 A1 WO 9323807A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- program
- comparison
- vpz
- bus
- data processing
- Prior art date
Links
- 238000012545 processing Methods 0.000 title claims description 30
- 238000000034 method Methods 0.000 title claims description 17
- 230000015654 memory Effects 0.000 claims description 61
- 238000012360 testing method Methods 0.000 claims description 13
- 238000003336 Program assurance Methods 0.000 claims 2
- 230000006870 function Effects 0.000 abstract description 6
- 238000011161 development Methods 0.000 description 3
- 230000018109 developmental process Effects 0.000 description 3
- 230000002093 peripheral effect Effects 0.000 description 3
- 230000015572 biosynthetic process Effects 0.000 description 2
- 230000007274 generation of a signal involved in cell-cell signaling Effects 0.000 description 2
- 230000009993 protective function Effects 0.000 description 2
- 230000003936 working memory Effects 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 1
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000009434 installation Methods 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/10—Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
- G06F21/12—Protecting executable software
- G06F21/121—Restricting unauthorised execution of programs
Definitions
- the invention relates to a program backup method for protecting a data processing system against manipulated and / or not approved programs.
- Programs for data processing systems are produced with great economic effort. This great economic outlay is only justified if such a program can be sold on the market in sufficient numbers by the manufacturer.
- pirated copies are made and distributed by the programs which are regularly on the market.
- the program manufacturers sell hardware modules together with the program software. These hardware modules are connected to a standard interface of the data processing system. When the program runs, the hardware module is repeatedly addressed. If the hardware module is missing or does not work correctly, the program is interrupted before it can perform the desired function.
- the protection achieved with the hardware module is inadequate since, on the one hand, the parts of the program in which the protective functions are implemented can be found and removed with relatively little work.
- the functionality of the hardware module can also be analyzed and imitated. This is made particularly easy by the easy accessibility of the hardware module - it is located in the area of a standard interface.
- the underlying object of the invention is to provide a method un 'd a device for protecting a ver ⁇ processing system from manipulated and / or non conces- to show programs that have a high level of manipulation and functional security with low implementation effort.
- the program backup unit used in the method generates a check number from the program code with the aid of an algorithm from the program code during the loading process of a program, for example from the hard disk memory into the working memory.
- the algorithm is, for example, a conventional encryption algorithm, which is selected such that it is not possible to change the program by analyzing or trying it out with reasonable effort, so that the check number of the changed program remains the same as the check number of the unchanged program.
- the program security unit compares the generated check number with a comparison check number stored in the program security unit itself. This comparison check number was written into a security area of the program security unit, for example, in the initialization phase of the data processing system or in a similar process for the program to be protected.
- the check number matches the comparison check number, access to data and / or circuit parts that are absolutely necessary for the program sequence and are contained in the program security unit is enabled.
- the data and / or circuit parts to be released cause major control signals of the data processing system to be suppressed or blocked and thus prevent the execution of the protected program.
- a program to be protected during the program run deducts the comparison test number or a variable derived therefrom in the program security unit. The program is only executable if the query is successful. This prevents protected programs from running on a data processing system that is not equipped with a program security unit.
- FIG. 1 security-relevant components of a program security unit
- the security-relevant components of a program security unit shown in FIG. 1 are summarized below under the term program security circuit PSS and are connected to a data processing system via a system bus BUS.
- the system bus BUS has control lines ST, an address bus ABUS and a data bus DBUS.
- the program security circuit PSS consists of a unit for encrypting and summing the program code of a program to be protected, operating according to an algorithm ALG, a comparison check number register VPZ-REG, a check number register PZ-REG and a check number comparator PZ-KOMP.
- the program protection circuit PSS contains a function block DG for address decoding and control signal generation, which generates control signals for means necessary for the program sequence. These means are preferably part of the program security unit and are explained in more detail in connection with FIG. 2.
- the loading program of the data processing system which controls the loading process of the program to be protected, knows the area of a working memory belonging to the data processing system, into which this program to be protected is to be loaded.
- the loading program transfers the loading start address LSA and the loading end address LEA to the corresponding registers of the program protection circuit PSS.
- the program securing unit determines the program code of the program to be protected from the data transmitted on the system bus BUS.
- the program code determined in this way is processed in the unit, which contains an encryption and summation logic, according to the algorithm ALG available there.
- the loading program transmits a disable command to the program security circuit PSS, which ends the work of the encryption and summation logic and transfers the check number PZ generated by the algorithm ALG to the check number register PZ-REG.
- the check number PZ is then compared with the comparison check number VPZ in the comparison check number register VPZ-REG in the check number comparator PZ-KOMP. If the result of the comparison is positive, the function block DG, which undertakes address decoding and control signal generation for the means necessary for the program execution, is released.
- FIG. 2 shows components of a program security unit as used in a data processing system according to the Invention are provided.
- the data processing system is used as a checkout system.
- Such a data processing system cooperates with cash register-typical peripheral devices connected to the data processing system, such as cash register printers with receipt, journal and receipt printing, a keyboard, a customer display, a scanner and a cash drawer.
- the data processing system essentially consists of standard modules, such as a processor board with memory and interface modules, hard disks and floppy disk drives, a power supply unit and a monitor, and the program security unit, on which all the cash register-specific and security-specific ones Functions are summarized.
- Components of the program security unit are a revision memory RMEM, a fixed program memory FPMEM, a programmable fixed program memory PMEM, a local area network (LAN) controller CLAN, a LAN interface SLAN and an interface controller UART with associated
- the program protection circuit PSS which is also located on the program protection unit, is connected to the above-mentioned units via the system bus BUS.
- system bus BUS In order to ensure the transmission of data to be kept secret from one of the units of the program backup unit to the program backup circuit PSS, special precautions have been taken, which are explained in more detail in connection with FIG.
- the means belonging to the program security unit have the following tasks:
- the revision memory RMEM is a CMOS memory with an integrated battery, which keeps its content for several years even when the cash register is switched off and therefore for the secure storage of the configuration data and, above all, important cash register data, such as, for example Daily sum serves.
- the fixed program memory FPMEM is a uniquely programmable read memory, for example an electrical programmable read only memory (EPROM), which contains cash register-specific program parts.
- EPROM electrical programmable read only memory
- Such cash register-specific program parts include a device driver, special service programs and a so-called loader. With the help of the loader it is possible to leave the standard loader of the data processing system, the "ROM-BIOS", unchanged when using the data processing system as an electronic cash register.
- the LAN controller CLAN and the LAN interface SLAN are used to connect several cash registers to one another and / or to connect to a higher-level data processing system (e.g. branch computers).
- the UART interface controller and the SUART interface serve to connect the data processing system to the cash register-specific peripheral devices.
- An interface multiplexer is used between this SUART interface and the peripheral devices.
- the programmable fixed program memory PMEM is a reprogrammable EPROM, for example an Electrical Erasable PROM (EEPROM). Cash register-specific programs are stored in this memory PMEM, which differ depending on the installation, e.g. Parts of the user program to be protected.
- the programmable fixed program memory PMEM serves as a secret memory. The data required for the function of the programming security circuit PSS are stored in the secret memory.
- the programmable fixed program memory PMEM is a memory of a certain size in which an address is assigned to each memory location that can hold one byte.
- the individual addresses are assigned the following data.
- the memory locations with the addresses 0, 1 and 2 contain control bytes with which the functioning of the safety logic, For example, which algorithm ALG is used and the access to certain areas of the programmable fixed program memory PMEM itself are determined.
- Address 0 contains a so-called RAM control byte.
- This control byte determines the size of the memory areas of the programmable fixed program memory PMEM, which contain a password and the comparison check numbers VPZ. For example, bits 0 to 2 indicate the memory address of the last password byte. This limits the number of password bytes to seven. Since the first password byte is in the memory location with address 3, the value written in bits 0 to 2 of the RAM control byte - reduced by 2 - is equal to the length of the password in bytes. The maximum length of the password is 5
- Bits 0 to 7 of the RAM control byte indicate the address of the last comparison check number byte. Since the address area for the comparison check numbers VPZ adjoins the address area of the password and each comparison check number VPZ has a length of 2 bytes, for example, the number given in bits 3 to 7 of the RAM control byte is multiplied by the number 4 indicates the number of comparison test numbers VPZ which can be entered in the programmable fixed program memory PMEM.
- the RAM control byte thus defines the size of the secret memory, which extends from the memory location with address 2 of the programmable fixed program memory PMEM to the memory location whose address is entered in the RAM control byte.
- the secret memory can only be read by the program protection circuit PSS.
- Address 1 of the programmable fixed program memory PMEM contains a so-called RAM pointer byte.
- the last address of a read-only area in the programmable fixed program memory PMEM is determined with this byte.
- Address 2 of the programmable fixed program memory PMEM contains a byte, the content of which defines the protection mode of the program protection unit.
- Bit 0 identifies the check number protection: A 1 indicates that a check number check is required to release the program security unit. If the number is 0, the check number check is omitted.
- Bit 1 identifies the password protection: A 1 indicates that a password check is required in order to release the program security unit. If the number is 0, the password check is omitted.
- Bit positions 2 and 3 are always set to 0.
- Bit positions 4 to 7 contain a selection code for the type of algorithm ALG. With this, the algorithm ALG can be freely determined, or parameters determining it can be selected. This increases the level of security that can be achieved.
- All units of the program security unit with the exception of the interfaces SLAN, SUART, are connected to the system bus BUS of the data processing system.
- the interfaces SLAN, SUART are connected to the controller CLAN, UART assigned to them.
- control lines S are led from the program protection circuit PSS to the units connected to the system bus BUS, via which the functionally relevant control signals generated by the program protection circuit PSS to the
- Units of the program security unit are transferred.
- the data to be kept secret are transferred from the secret memory to the program security circuit PSS on the system bus BUS.
- special drivers T1, T2 are inserted into the address bus ABUS and the data bus DBUS.
- the memory cycles with which data are to be exchanged between the program protection circuit PSS and the secret memory contained in the programmable fixed program memory PMEM become central triggered by the data processing system, but the addressing of the memory locations in the secret memory is carried out by the program security circuit PSS.
- the program securing circuit PSS blocks the address driver T1 and the data bus driver T2 with the aid of control lines S1, S2, which lead to the drivers T1, T2. Neither the addresses of the memory locations in the secret memory nor the data of the secret memory thus appear on the unsecured part of the system bus BUS.
- the program protection circuit PSS and the programmable fixed program memory PMEM and the drivers T1, T2 are accommodated in a common housing.
- the program security circuit has an address counter.
- This address counter can be loaded either with bits 0 to 2 of the RAM control byte or with the entire RAM control byte.
- the RAM control byte thus addresses the end of the password area or the end of the comparison check number area.
- the address payer then counts down and thus addresses the entire area concerned up to the beginning.
- the program security circuit PSS can be made to perform all the necessary operations for the protective functions of the program security unit. Essentially, this is an initialization of the program security unit, the formation of a check number PZ and a comparison with a comparison check number VPZ, and a password check.
- the contents of the memory locations with the addresses 0 to 2 are defined in the programmable fixed program memory PMEM.
- PMEM programmable fixed program memory
- the size of the secret memory and the type of protection, ie whether a password protection, a check number protection or both are loaded.
- the initialization can only take place when the data processing system is started up for the first time or after a successful password check and / or a successful check number comparison.
- the command for checking the password initiates a comparison process in which the individual bytes of a password supplied by the data processing system are compared with the corresponding password bytes of the secret memory one after the other in the program security circuit PSS.
- the command for forming a check number PZ initiates the generation of a check number PZ using the algorithm ALG while a program to be protected is being loaded.
- the formation of the check number PZ can alternatively be ended either by a command to check the check number PZ or by a command to write a check number PZ.
- the command for checking the check number PZ initiates a comparison of a comparison check number VPZ in the secret memory with the check number PZ that has just been formed.
- the command for writing a test number is used to store a test number PZ of a new program to be protected in the future or a new version of an already protected program.
- the check number PZ generated with the command for forming a check number PZ is stored in the secret memory as a comparison check number VPZ.
- the command for writing a check number PZ can only be executed if the program protection circuit PSS has been enabled beforehand, for example by the prior correct loading of a protected program.
- all the comparison test numbers VPZ, the password and the control bytes are deleted. Since the control bytes are also deleted, any protection of the contents of the programmable fixed program memory PMEM is removed. This command can only be executed when the PSS program protection circuit is enabled.
- a command to query a comparison check number VPZ is used to check whether a program protection circuit PSS is present and whether it is enabled.
- the return value transferred to the program as a result of this command is part of one formed from all the password bytes Check number PZ, which can be modified by further bytes and can also be made dependent on previous check number queries.
- the program to be protected can only be executed if the query is satisfied.
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Computer Security & Cryptography (AREA)
- Theoretical Computer Science (AREA)
- Multimedia (AREA)
- Technology Law (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Storage Device Security (AREA)
Description
Programmsicherungsverfahren zum Schutz einer Datenverar- beitungsanlage
Die Erfindung betrifft ein Programmsicherungsverfahren zum Schutz einer Datenverarbeitungsanlage vor manipulierten und/oder nicht zugelassenen Programmen. Programme für Da- tenverarbeitungsanlagen werden mit großem wirtschaftlichem Aufwand produziert. Dieser große wirtschaftliche Aufwand ist nur dann gerechtfertigt, wenn ein solches Programm vom Hersteller in ausreichend großer Stückzahl am Markt abge¬ setzt werden kann. Es hat sich jedoch gezeigt, daß von den regulär am Markt befindlichen Programmen Raubkopien ange¬ fertigt und verbreitet werden. Um die Benutzung von Raub¬ kopien zu erschweren, werden von den Programmherstellern gemeinsam mit der Programmsoftware Hardwaremodule ver¬ kauft. Diese Hardwaremodule werden mit einer Standard- schnittsteile der Datenverarbeitungsanlage verbunden. Beim Ablauf des Programms wird das Hardwaremodul immer wieder angesprochen. Fehlt das Hardwaremodul oder arbeitet es nicht korrekt, wird das Programm unterbrochen, bevor es die gewünschte Funktion ausführen kann. Der mit dem Hard- waremodul erreichte Schutz ist jedoch unzureichend, da zum einen mit relativ geringem Arbeitsaufwand die Stellen des Programms, in der die Schutzfunktionen realisiert sind, gefunden und entfernt werden können. Zum anderen kann auch die Funktionsweise des Hardwaremoduls analysiert und nach- geahmt werden. Dies wird durch die leichte Zugänglichkeit des Hardwaremoduls - es befindet sich im Bereich einer Standardschnittstelle - besonders erleichtert.
Die der Erfindung zugrundeliegende Aufgabe ist es, ein Verfahren un'd eine Vorrichtung zum Schutz einer Datenver¬ arbeitungsanlage vor manipulierten und/oder nicht zuge-
lassenen Programmen aufzuzeigen, die bei geringem Reali¬ sierungsaufwand eine hohe Manipulations- und Funktionssi¬ cherheit aufweisen.
Diese Aufgabe wird erfindungsgemäß durch die im Patentan¬ spruch 1 angegebenen Merkmale gelöst. Eine Vorrichtung zur Durchführung des Verfahrens und Weiterbildungen und Ausge¬ staltungen der Erfindung sind in weiteren Ansprüchen ange¬ geben.
Die beim Verfahren verwendete Programmsicherungseinheit erzeugt während des Ladevorganges eines Programms, bei¬ spielsweise vom Festplattenspeicher in den Arbeitsspei¬ cher, mit Hilfe eines Algorithmus aus dem Programmcode eine Prüfzahl. Der Algorithmus ist beispielsweise ein üb¬ licher Verschlüsselungsalgorithmus, der so gewählt ist, daß es durch Analysieren oder Probieren mit vertretbarem Aufwand nicht möglich ist, das Programm so zu verändern, daß die Prüfzahl des veränderten Programms gleich der Prüfzahl des unveränderten Programms bleibt. Die Programm¬ sicherungseinheit vergleicht die erzeugte Prüfzahl mit einer in der Programmsicherungseinheit selbst gespeicher¬ ten Vergleichsprüfzahl. Diese Vergleichsprüfzahl ist bei¬ spielsweise in der Initialisierungsphase der Datenverar- beitungsanlage oder bei einem ähnlichen Vorgang speziell für das zu schützende Programm in einen Sicherheitsbereich der Programmsicherungseinheit eingeschrieben worden. Bei Übereinstimmung der Prüfzahl mit der Vergleichsprüfzahl wird der Zugriff auf für den Programmablauf unbedingt er- forderliche, in der Programmsicherungseinheit enthaltene Daten und/oder Schaltungsteile freigegeben. Die freizuge¬ benden Daten und/oder Schaltungsteile bewirken bei Nicht- freigabe eine Unterdrückung oder Sperrung wesentlicher Steuersignale des Datenverarbeitungssystems und verhindern damit die Ausführung des geschützten Programms. Gemäß einer Ausgestaltung und Weiterbildung der Erfindung fragt
ein zu schützendes Programm beim Programmlauf die Ver¬ gleichsprüfzahl oder eine davon abgeleitete Größe in der Programmsicherungseinheit ab. Nur bei erfolgreicher Abfra¬ ge ist das Programm ablauffähig. Damit wird verhindert, daß geschützte Programme auf einem Datenverarbeitungssy¬ stem ablaufen, das nicht mit einer Programmsicherungsein¬ heit ausgestattet ist.
Im folgenden wird die Erfindung anhand der Zeichnung näher erläutert. Dabei zeigen
Figur 1 sicherheitsrelevante Bestandteile einer Programm¬ sicherungseinheit,
Figur 2 Bestandteile einer Programmsicherungseinheit und
Figur 3 die Kopplung der sicherheitsrelevanten Bestandtei¬ le der Programmsicherungseinheit mit einem Geheimspeicher.
Die in Figur 1 gezeigten sicherheitsrelevanten Bestandtei¬ le einer Programmsicherungseinheit werden im folgenden un¬ ter dem Begriff Programmsicherungsschaltung PSS zusammen¬ gefaßt und sind über einen Systembus BUS mit einer Daten¬ verarbeitungsanlage verbunden. Der Systembus BUS verfügt über Steuerleitungen ST, einen Adreßbus ABUS und einen Da¬ tenbus DBUS. Die Programmsicheruπgsschaltung PSS besteht aus einer nach einem Algorithmus ALG arbeitenden Einheit zur Verschlüsselung und Summierung des Programmcodes eines zu schützenden Programmes, einem Vergleichsprüfzahiregi- ster VPZ-REG, einem Prüfzahlregister PZ-REG und einem Prüfzahlvergleicher PZ-KOMP. Um feststellen zu können, welche auf dem Systembus BUS transferierten Daten dem Pro¬ grammcode des zu schützenden Programmes zugehören, sind in der Programmsicherungsschaltung auch Register zur Aufnahme einer Lade-Start Adresse LSA und einer Lade-End-Adresse
LEA, sowie ein Lade-Start-Adreßvergleicher AKOMPS und ein Lade-End-Adreßvergleicher AKOMPE enthalten. Des weiteren enthält die Programmsicherungsschaltung PSS einen Funk¬ tionsblock DG zur Adreßdekodierung und Steuersignalgene- rierung, der Steuersignale für zum Programmablauf notwen¬ dige Mittel erzeugt. Diese Mittel sind vorzugsweise Be¬ standteil der Programmsicherungseinheit und werden im Zu¬ sammenhang mit Figur 2 näher erläutert. Dem Ladeprogramm der Datenverarbeitungsanlage, das den Ladevorgang des zu schützenden Programmes steuert, ist der Bereich eines der Datenverarbeitungsanlage zugehörigen Arbeitsspeichers be¬ kannt, in den dieses zu schützende Programm geladen werden soll. Das Ladeprogramm übergibt die Lade-Start-Adresse LSA und die Lade-End-Adresse LEA an die entsprechenden Regi- ster der Programmsicherungsschaltung PSS. Mit den diesen Registern zugeordneten Adreßvergleichern AKOMPS, AKOMPE ermittelt die Programmsicherungseinheit aus den auf dem Systembus BUS übertragenen Daten den Programmcode des zu schützenden Programmes. Der so ermittelte Programmcode wird in der Einheit, die eine Verschlüsselungs- und Sum¬ mierlogik enthält, nach dem dort verfügbaren Algorithmus ALG verarbeitet. Ist der Ladevorgang abgeschlossen, dann übermittelt das Ladeprogramm an die Programmsicherungs¬ schaltung PSS einen Disable-Befehl, der die Arbeit der Verschlüsselungs- und Summierlogik beendet und die durch den Algorithmus ALG erzeugte Prüfzahl PZ an das Prüfzahl¬ register PZ-REG übergibt. Die Prüfzahl PZ wird daraufhin mit der im Vergleichsprufzahlregister VPZ-REG vorliegenden Vergleichsprüfzahl VPZ im Prüfzahlvergleicher PZ-KOMP ver- glichen. Bei positivem Vergleichsergebnis wird der Funk¬ tionsblock DG, der eine Adreßdekodierung und Steuersignal- generierung für die zum Programmablauf notwendigen Mittel vornimmt, freigegeben.
Figur 2 zeigt Bestandteile einer Programmsicherungsein¬ heit, wie sie bei einer Datenverarbeitungsanlage gemäß der
Erfindung vorgesehen sind. Im vorliegenden Beispiel wird die Datenverarbeitungsanlage als Kassensystem verwendet. Eine solche Datenverarbeitungsanlage arbeitet mit an die Datenverarbeitungsanlage angeschlossenen kassentypischen Peripheriegeräten, wie z.B. Kassendrucker mit Bon-, Jour¬ nal- und Belegausdruck, einer Tastatur, einer Kundenanzei¬ ge, einem Scanner und einer Geldlade zusammen. Die Daten¬ verarbeitungsanlage besteht im wesentlichen aus Standard¬ baugruppen, wie z.B. Prozessorboard mit Speicher- und In- terfacebaugruppen, Festplatten und Floppy-Disk-Laufwerken, einem Netzteil und einem Bildschirm, sowie aus der Pro¬ grammsicherungseinheit, auf der alle kassenspezifischen und sicherheitsspezifischen Funktionen zusammengefaßt sind.
Bestandteile der Programmsicherungseinheit sind ein Revi¬ sionsspeicher RMEM, ein Festprogrammspeicher FPMEM, ein programmierbarer Festprogrammspeicher PMEM, ein Local Area Network (LAN)-Controller CLAN, eine LAN-Schnittstelle SLAN und ein Schnittstellen-Controller UART mit zugehöriger
Schnittstelle SUART. Die ebenfalls auf der Programmsiche¬ rungseinheit befindliche Programmsicherungsschaltung PSS ist über den Systembus BUS mit den oben angeführten Ein¬ heiten verbunden. Um die Übertragung geheimzuhaltender Da- ten von einem der Einheiten der Programmsicherungseinheit zur Programmsicherungsschaltung PSS zu gewährleisten, sind besondere Vorkehrungen getroffen, die im Zusammenhang mit Figur 3 näher erläutert werden.
Die zur Programmsicherungseinheit gehörigen Mittel haben folgende Aufgaben: Der Revisionsspeicher RMEM ist ein CMOS-Speicher mit integrierter Batterie, der seinen Inhalt auch bei abgeschalteter Kasse mehrere Jahre hält und des¬ halb für das sichere Speichern der Konfigurationsdaten und vor allem von wesentlichen Kasseπdaten, wie z.B. Tagessum-
men, dient. Der Festprogrammspeicher FPMEM ist ein einma¬ lig programmierbarer Lesespeicher, z.B. ein Electrical Programmable Read Only Memory (EPROM), der kassenspezifi¬ sche Programmteile enthält. Solche kassenspezifischen Pro¬ grammteile sind u.a. ein Gerätetreiber, spezielle Dienst¬ programme und ein sogenannter Lader. Mit Hilfe des Laders ist es möglich, den Standard-Lader der Datenverarbeitungs¬ anlage, die "ROM-BIOS", bei Verwendung der Datenverarbei¬ tungsanlage als elektronische Kasse unverändert zu lassen.
Der LAN-Controller CLAN und die LAN-Schnittstelle SLAN dienen der Verbindung mehrerer Kassen miteinander und/oder der Verbindung mit einer übergeordneten Datenverarbei¬ tungsanlage (z.B. Filialrechner). Der Schnittstellencon- troller UART und die Schnittstelle SUART dienen der Ver¬ bindung der Datenverarbeitungsanlage mit den kassenspezi¬ fischen Peripheriegeräten. Zwischen dieser Schnittstelle SUART und den Peripheriegeräten wird ein Schnittstellen- multiplexer eingesetzt.
Der programmierbare Festprogrammspeicher PMEM ist ein re¬ programmierbares EPROM, also beispielsweise ein Electrical Erasable PROM (EEPROM) . In diesem Speicher PMEM werden kassenspezifische Programme untergebracht, die installa- tionsabhängige Unterschiede aufweisen, also z.B. Teile des zu schützenden Anwenderprogramms. Darüber hinaus dient der programmierbare Festprogrammspeicher PMEM als Geheimspei¬ cher. Im Geheimspeicher sind die für die Funktion der Pro- gra miersicherungsschaltung PSS erforderlichen Daten ge- speichert.
Der programmierbare Festprogrammspeicher PMEM ist ein Speicher bestimmter Größe, in dem jedem Speicherplatz, der ein Byte aufnehmen kann, eine Adresse zugeordnet ist. Die einzelnen Adressen werden mit folgenden Daten belegt. Die Speicherplätze mit den Adressen 0, 1 und 2 enthalten Steu¬ erbytes, mit denen die Arbeitsweise der Sicherheitslogik,
z.B. welcher Algorithmus ALG verwendet wird, und der Zu¬ griff auf bestimmte Bereiche des programmierbaren Festpro¬ grammspeichers PMEM selbst bestimmt werden.
Adresse 0 enthält ein sogenanntes RAM-Control-Byte. Mit diesem Steuerbyte wird die Größe der Speicherbereiche des programmierbaren Festprogrammspeichers PMEM bestimmt, die ein Paßwort und die Vergleichsprüfzahlen VPZ enthalten. Dabei geben beispielsweise die Bits 0 bis 2 die Speicher- adresse des letzten Paßwortbytes an. Damit ist die Anzahl der Paßwortbytes auf sieben begrenzt. Da das erste Pa߬ wortbyte im Speicherplatz mit der Adresse 3 steht, ist der in Bit 0 bis 2 des RAM-Control-Bytes eingeschriebene Wert - um 2 vermindert - gleich der Länge des Paßwortes in Byte. Die maximale Länge des Paßwortes beträgt somit 5
Byte. Bit 0 bis 7 des RAM-Control-Byte geben die Adresse des letzten VergleichsprüfZahlenbytes an. Da sich der Adreßbereich für die Vergleichsprüfzahlen VPZ an den Adreßbereich des Paßwortes anschließt und jede Vergleichs- prüfzahl VPZ beispielsweise eine Länge von 2 Byte auf¬ weist, gibt die in den Bit 3 bis 7 des RAM-Control-Byte angegebene Zahl multipliziert mit der Zahl 4 die Anzahl der im programmierbaren Festprogrammspeicher PMEM eintrag¬ baren Vergleichsprüfzahlen VPZ an. Das RAM-Control-Byte legt somit die Größe des Geheimspeichers fest, der von dem Speicherplatz mit der Adresse 2 des programmierbaren Fest¬ programmspeichers PMEM bis zu dem Speicherplatz reicht, dessen Adresse im RAM-Control-Byte eingetragen ist. Der Geheimspeicher ist nur für die Programmsicherungsschaltung PSS lesbar.
Adresse 1 des programmierbaren Festprogrammspeichers PMEM enthält ein sogenanntes RAM-Pointer-Byte. Mit diesem Byte wird die letzte Adresse eines Read-Only-Bereichs im pro- grammierbaren Festprogrammspeicher PMEM bestimmt. Die
Größe dieses Bereichs ergibt sich als Differenz der Inhal¬ te des RAM-Pointer-Byte und des RAM-Control-Byte.
Adresse 2 des programmierbaren Festprogrammspeichers PMEM enthält ein Byte, dessen Inhalt den Schutzmode der Pro¬ grammsicherungseinheit festlegt. Bit 0 kennzeichnet den Prüfzahlenschutz: Eine 1 gibt an, daß eine Prüfzahlprüfung erforderlich ist, um die Programmsicherungseinheit freizu¬ geben. Bei einer 0 entfällt die Prüfzahlenprüfung. Bit 1 kennzeichnet den Paßwortschutz: Eine 1 gibt an, daß eine Paßwortprüfung erforderlich ist, um die Programmsiche¬ rungseinheit freizugeben. Bei einer 0 entfällt die Paß- wortprüfung. Die Bitstellen 2 und 3 sind stets 0 gesetzt. Die Bitstellen 4 bis 7 enthalten einen Auswahlcode für die Art des Algorithmus ALG. Hiermit kann der Algorithmus ALG frei bestimmt, bzw. können ihn bestimmende Parameter aus¬ gewählt werden. Dies bewirkt eine Erhöhung der erreichba- ren Sicherheit.
Sämtliche Einheiten der Programmsicherungseinheit mit Aus¬ nahme der Schnittstellen SLAN, SUART sind mit dem System¬ bus BUS der Datenverarbeitungsanlage verbunden. Die Schnittstellen SLAN, SUART sind mit dem ihnen jeweils zu¬ geordneten Controller CLAN, UART verbunden. Zusätzlich sind von der Programmsicherungsschaltung PSS zu den am Sy¬ stembus BUS angeschlossenen Einheiten Steuerleitungen S geführt^ über die die von der Programmsicherungsschaltung PSS erzeugten funktionsrelevanten Steuersignale zu den
Einheiten der Programmsicherungseinheit übertragen werden.
Auf dem Systembus BUS werden die geheimzuhaltenden Daten aus dem Geheimspeicher zur Programmsicherungsschaltung PSS übertragen. Um zu gewährleisten, daß die geheimen Daten nicht über den Systembus BUS der Datenverarbeitungsanlage bekannt gegeben werden, sind spezielle Treiber Tl, T2 (siehe Figur 3) in den Adreßbus ABUS und den Datenbus DBUS eingefügt. Die Speicherzyklen, mit denen Daten zwischen der Programmsicherungsschaltung PSS und dem im program¬ mierbaren Festprogrammspeicher PMEM enthaltenen Geheim¬ speicher ausgetauscht werden sollen, werden zwar zentral
von der Datenverarbeitungsanlage ausgelöst, die Adressie¬ rung der Speicherplätze im Geheimspeicher erfolgt jedoch durch die Programmsicherungsschaltung PSS. Findet eine Adressierung der geheimen Speicherplätze statt, dann sperrt die Programmsicherungsschaltung PSS mit Hilfe von Steuerleitungen Sl, S2, die zu den Treibern Tl, T2 geführt sind, den Adreßtreiber Tl und den Datenbustreiber T2. We¬ der die Adressen der Speicherplätze im Geheimspeicher noch die Daten des Geheimspeichers erscheinen somit auf dem un- gesicherten Teil des Systembus BUS. Zur Sicherheitserhö¬ hung werden die Programmsicherungsschaltung PSS und der programmierbare Festprogrammspeicher PMEM sowie die Trei¬ ber Tl, T2 in einem gemeinsamen Gehäuse untergebracht.
Zur Adressierung der Speicherplätze im Geheimspeicher ver¬ fügt die Programmsicherungsschaltung über einen Adreßzah¬ ler. Dieser Adreßzahler kann wahlweise mit den Bit 0 bis 2 des RAM-Control-Byte oder mit dem gesamten RAM-Control- Byte geladen werden. Das RAM-Control-Byte adressiert somit das Ende des Paßwortbereichs oder das Ende des Vergleichs- prüfzahlenbereichs. Der Adreßzahler zählt anschließend ab¬ wärts und adressiert somit den gesamten betreffenden Be¬ reich bis zum Anfang.
Mit einer Reihe von Befehlen kann die Programmsicherungs¬ schaltung PSS veranlaßt werden, alle notwendigen Operatio¬ nen für die Schutzfunktionen der Programmsicherungseinheit durchzuführen. Im wesentlichen sind das eine Initialisie¬ rung der Programmsicherungseinheit, die Bildung einer Prüfzahl PZ und der Vergleich mit einer Vergleichsprüfzahl VPZ sowie eine Paßwortüberprüfung.
Bei der Initialisierung werden die Inhalte der Speicher¬ plätze mit den Adressen 0 bis 2 im programmierbaren Fest- Programmspeicher PMEM festgelegt. Bei dieser Initialisie¬ rung werden die Größe des Geheimspeichers und die Schutz¬ art, ob also ein Paßwortschutz, ein Prüfzahlenschutz oder
beides vorgesehen ist, geladen. Die Initialisierung kann nur bei der ersten Inbetriebnahme der Datenverarbeitungs¬ anlage oder nach erfolgreicher Paßwortüberprüfung und/oder erfolgreichem Prüfzahlenvergleich erfolgen.
Der Befehl zur Überprüfung des Paßwortes leitet einen Ver¬ gleichsvorgang ein, bei dem in der Programmsicherungs¬ schaltung PSS nacheinander die einzelnen Bytes eines von der Datenverarbeitungsanlage gelieferten Paßwortes mit den entsprechenden Paßwortbytes des Geheimspeichers verglichen werden.
Mit dem Befehl zur Bildung einer Prüfzahl PZ wird die Ge¬ nerierung einer Prüfzahl PZ mit Hilfe des Algorithmus ALG während des Ladens eines zu schützenden Programms einge¬ leitet. Die Bildung der Prüfzahl PZ kann alternativ entwe¬ der durch einen Befehl zum Prüfen der Prüfzahl PZ oder durch einen Befehl zum Schreiben einer Prüfzahl PZ beendet werden. Der Befehl zum Prüfen der Prüfzahl PZ leitet einen Vergleich einer im Geheimspeicher stehenden Vergleichs¬ prüfzahl VPZ mit der soeben gebildeten Prüfzahl PZ ein.
Der Befehl zum Schreiben einer Prüfzahl dient zur Speiche¬ rung einer Prüfzahl PZ eines neuen, in Zukunft zu schüt- zenden Programms oder einer neuen Version eines bereits geschützten Programms. Die mit dem Befehl zum Bilden einer Prüfzahl PZ erzeugte Prüfzahl PZ wird als Vergleichsprüf¬ zahl VPZ im Geheimspeicher abgelegt. Der Befehl zum Schreiben einer Prüfzahl PZ ist nur ausführbar, wenn vor- her die Programmsicherungsschaltung PSS, beispielsweise durch das vorherige ordnungsgemäße Laden eines geschützten Programmes freigegeben ist.
Mit einem Befehl zum Löschen des Geheimspeichers wird der Geheimspeicher ausgehend vom letzten Byte des Bereichs, in dem die Vergleichsprüfzahlen VPZ abgelegt sind=, abwärts zählend bis zum ersten Speicherplatz mit der Adresse 0 des
programmierbaren Festprogrammspeichers PMEM gelöscht. Nach Befehlsausführung sind demnach sämtliche Vergleichsprüf¬ zahlen VPZ, das Paßwort und die Steuerbytes gelöscht. Da auch die Steuerbytes gelöscht werden, ist jeglicher Schutz des Inhalts des programmierbaren Festprogrammspeichers PMEM entfernt. Dieser Befehl ist nur bei freigegebener Programmsicherungsschaltung PSS ausführbar.
Mit einem Befehl zum Löschen einer einzelnen Vergleichs- prüfzahl VPZ können einzelne Vergleichsprüfzahlen VPZ im Geheimspeicher gelöscht werden. Dieser Befehl ist erfor¬ derlich, wenn einer Vergleichsprüfzahl VPZ zugehörige Pro¬ gramme nicht mehr geladen werden sollen, weil z.B. neuere Versionen vorliegen und verwendet werden. Auch dieser Be- fehl ist nur bei freigegebener Programmsicherungsschaltung PSS ausführbar.
Ein Befehl zum Abfragen einer Vergleichsprüfzahl VPZ dient zur Überprüfung, ob eine Programmsicherungsschaltung PSS vorhanden ist, und ob diese freigegeben ist. Um das Ergeb¬ nis dieser Abfrage nicht nachbilden zu können, um also dem abfragenden Programm nicht eine freigegebene Programmsi¬ cherungsschaltung PSS vortäuschen zu können, ist der in Folge dieses Befehls an das Programm übergebene Rückgabe- wert ein Teil einer aus sämtlichen Paßwortbytes gebilde¬ ten Prüfzahl PZ, die durch weitere Bytes modifiziert wer¬ den kann und auch von vorherigen Prüfzahlabfragen abhän¬ gig gemacht werden kann. Nur bei befriedigender Abfrage ist das zu schützende Programm ablauffähig.
Claims
1. Programmsicherungsverfahren zum Schutz einer Datenver¬ arbeitungsanlage vor manipulierten und/oder nicht zugelas- senen Programmen mit folgenden Verfahrensschritten
- eine Programmsicherungseinheit erzeugt während des Lade¬ vorganges eines Programms in die Datenverarbeitungsanla¬ ge mit Hilfe eines Algorithmus (ALG) aus dem Programm¬ code des jeweiligen Programms eine Prüfzahl (PZ) , - die Programmsicherungseinheit vergleicht die Prüfzahl
(PZ) mit einer in der Programmsicherungseinheit gespei¬ cherten Vergleichsprüfzahl (VPZ),
- bei Übereinstimmung der Prüfzahl (PZ) mit der Ver¬ gleichsprüfzahl (VPZ) wird der Zugriff auf für den Pro- gram ablauf unbedingt erforderliche, in der Programmsi¬ cherungseinheit enthaltene Daten und/oder Schaltungstei¬ le freigegeben.
2. Programmsicherungsverfahren nach Anspruch 1, d a - d u r c h g e k e n n z e i c h n e t , daß ein zu schützendes Programm beim Programmlauf eine Vergleichs¬ prüfzahl (VPZ) oder eine davon abgeleitete Größe in der Programmsicherungseinheit abfragt und nur bei erfolgrei¬ cher Abfrage ablauffähig ist.
3. Programmsicherungsverfahren nach einem der vorhergehen¬ den Ansprüche, d a d u r c h g e k e n n z e i c h ¬ n e t , daß ein der Datenverarbeitungsanlage zur Verfü¬ gung stehendes Paßwort in der Programmsicherungseinheit mit einem dort verfügbaren Vergleichspaßwort verglichen wird.
4. Programmsicherungsverfahren nach einem der vorhergehen- den Ansprüche, d a d u r c h g e k e n n z e i c h - n e t , daß bei freigegebenem Zugriff auf für den Pro¬ grammablauf unbedingt erforderliche Daten und/oder Schal¬ tungsteile ein weiteres Programm geladen, dessen Prüf- zahl (PZ) ermittelt und als Vergleichsprüfzahl (VPZ) in der Programmsicherungseinheit gespeichert wird.
5. Vorrichtung zur Durchführung des Programmsicherungsver- fahrens, bestehend aus
- einer Datenverarbeitungsanlage, deren Komponenten durch ein Bussystem (BUS) miteinander verbunden sind,
- einer mit dem Bussystem (BUS) verbundenen Programmsiche¬ rungseinheit, die - einen Geheimspeicher zur Aufnahme mindestens einer Ver¬ gleichsprüfzahl (VPZ),
- eine Einheit zur Bildung einer Prüfzahl (PZ),
- einen Vergleicher zum Vergleich der Prüfzahl (PZ) mit der Vergleichsprüfzahl (VPZ) und - zum Programmablauf notwendige Mittel enthält, auf die ein Zugriff nur nach positivem Vergleichergebnis erfol¬ gen kann.
6. Vorrichtung nach Anspruch 5, d a d u r c h g e - k e n n z e i c h n e t , daß zumindest die sicherheits¬ relevanten Bestandteile der Programmsicherungseinheit in einem Baustein als Programmsicherungsschaltung PSS inte¬ griert sind.
7. Vorrichtung nach Anspruch 6, d a d u r c h g e ¬ k e n n z e i c h n e t , daß die Programmsicherungs¬ schaltung (PSS), der Geheimspeicher und Bustreiber (Tl, T2), über die sowohl die Programmsicherungsschaltung (PSS) als auch der Geheimspeicher mit dem Systembus (BUS) ver- bunden sind, in einem gemeinsamen Gehäuse untergebracht sind.
8. Kassensystem mit einer Vorrichtung nach einem der vor¬ hergehenden Ansprüche 5 bis 7.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
DEP4215982.2920514 | 1992-05-14 | ||
DE4215982 | 1992-05-14 |
Publications (1)
Publication Number | Publication Date |
---|---|
WO1993023807A1 true WO1993023807A1 (de) | 1993-11-25 |
Family
ID=6458896
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/DE1993/000389 WO1993023807A1 (de) | 1992-05-14 | 1993-05-04 | Programmsicherungsverfahren zum schutz einer datenverarbeitungsanlage |
Country Status (1)
Country | Link |
---|---|
WO (1) | WO1993023807A1 (de) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
FR2718863A1 (fr) * | 1994-04-13 | 1995-10-20 | Arditti David | Procédé destiné à vérifier à distance la conformité d'un logiciel. |
EP0707270A3 (de) * | 1994-10-12 | 1996-09-04 | Ibm | Verfahren und Einrichtung zur Prüfung der Gültigkeit des Betriebs eines Systems |
FR2744540A1 (fr) * | 1996-02-07 | 1997-08-08 | Philips Electronics Nv | Systeme comportant un processeur et une memoire annexe et procede mis en oeuvre dans un tel systeme |
EP0962850A2 (de) * | 1998-06-01 | 1999-12-08 | Nokia Mobile Phones Ltd. | Verfaren zum Schutz von eingebetteter Systemsoftware und eingebettetes System |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0280035A2 (de) * | 1987-02-23 | 1988-08-31 | Siemens Nixdorf Informationssysteme Aktiengesellschaft | Verfahren zum Sichern von Programmen und zur Integritätskontrolle gesicherter Programme |
GB2205667A (en) * | 1987-06-12 | 1988-12-14 | Ncr Co | Method of controlling the operation of security modules |
EP0308219A2 (de) * | 1987-09-18 | 1989-03-22 | General Instrument Corporation | Mikrocomputer mit interner RAM-Sicherung während des externen Programmodus |
-
1993
- 1993-05-04 WO PCT/DE1993/000389 patent/WO1993023807A1/de active Application Filing
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0280035A2 (de) * | 1987-02-23 | 1988-08-31 | Siemens Nixdorf Informationssysteme Aktiengesellschaft | Verfahren zum Sichern von Programmen und zur Integritätskontrolle gesicherter Programme |
GB2205667A (en) * | 1987-06-12 | 1988-12-14 | Ncr Co | Method of controlling the operation of security modules |
EP0308219A2 (de) * | 1987-09-18 | 1989-03-22 | General Instrument Corporation | Mikrocomputer mit interner RAM-Sicherung während des externen Programmodus |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
FR2718863A1 (fr) * | 1994-04-13 | 1995-10-20 | Arditti David | Procédé destiné à vérifier à distance la conformité d'un logiciel. |
EP0678803A1 (de) * | 1994-04-13 | 1995-10-25 | France Telecom | Verfahren zum Fernprüfen der Übereinstimmung von Software |
EP0707270A3 (de) * | 1994-10-12 | 1996-09-04 | Ibm | Verfahren und Einrichtung zur Prüfung der Gültigkeit des Betriebs eines Systems |
US5734819A (en) * | 1994-10-12 | 1998-03-31 | International Business Machines Corporation | Method and apparatus for validating system operation |
FR2744540A1 (fr) * | 1996-02-07 | 1997-08-08 | Philips Electronics Nv | Systeme comportant un processeur et une memoire annexe et procede mis en oeuvre dans un tel systeme |
EP0962850A2 (de) * | 1998-06-01 | 1999-12-08 | Nokia Mobile Phones Ltd. | Verfaren zum Schutz von eingebetteter Systemsoftware und eingebettetes System |
EP0962850A3 (de) * | 1998-06-01 | 2003-01-29 | Nokia Corporation | Verfahren zum Schutz von eingebetteter Systemsoftware und eingebettetes System |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE69214080T2 (de) | Verfahren zum Schutz von Programmen durch Verwendung verschiedener Schlüssel gegen unberechtigte Durchführung | |
DE19612999C2 (de) | System zur Sicherung geschützter Software gegen unbefugte Benutzung in Rechnernetzwerken | |
DE69821426T2 (de) | Speicheranordung, und Datenverarbeitungssystem und -Verfahren | |
DE60001393T2 (de) | Verfahren zur überwachung des programmablaufs | |
DE112007003231B4 (de) | Programmierbare Anzeigevorrichtung und Steuersystem | |
DE4331703C2 (de) | Elektronische Einrichtung | |
DE69127025T2 (de) | Fehlererkennung und -beseitigung in einem Datenverarbeitungssystem | |
EP0011685B1 (de) | Programmierbare Speicherschutzeinrichtung für Mikroprozessorsysteme und Schaltungsanordnung mit einer derartigen Einrichtung | |
AT405466B (de) | Vorrichtung zum schutz eines elektronischen geräts | |
DE19963471B4 (de) | Vorrichtung und Verfahren zur Verhinderung von Raubkopien von Computerprogrammen | |
DE2758152A1 (de) | Speicherschutzanordnung | |
CH654943A5 (de) | Pruefeinrichtung fuer mikroprogramme. | |
EP0522332A1 (de) | Rechner für den Leitstand einer Maschine, insbesondere eine Druckmaschine | |
EP0280035B1 (de) | Verfahren zum Sichern von Programmen und zur Integritätskontrolle gesicherter Programme | |
DE19950249C1 (de) | Elektronisches Gerät mit Softwareschutz | |
EP1262856A2 (de) | Programmgesteuerte Einheit | |
DE69517256T2 (de) | System und Verfahren zur Versorgung des Zugriffsschutzes auf Informationsspeichereinrichtung | |
EP0813723A1 (de) | Chipkarte mit geschütztem betriebssystem | |
WO1993023807A1 (de) | Programmsicherungsverfahren zum schutz einer datenverarbeitungsanlage | |
EP0464320A2 (de) | Verfahren zum Erzeugen eines individuellen Datenträgerschutzes gegen eine unautorisierte Benutzung | |
DE60212169T2 (de) | Laden von software | |
WO1999028804A2 (de) | Verfahren und anordnung zum laden von daten für grundlegende systemroutinen eines datenverarbeitungssystems | |
DE10218835A1 (de) | Verfahren zum Herstellen eines elektronischen Sicherheitsmoduls | |
EP0977160B1 (de) | Verfahren und Datenverarbeitungsanordnung zum gesicherten Ausführen von Befehlen | |
DE4103173C2 (de) | Vorrichtung zum Schutz gegen unautorisierte Benutzung von Software |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AK | Designated states |
Kind code of ref document: A1 Designated state(s): US |
|
AL | Designated countries for regional patents |
Kind code of ref document: A1 Designated state(s): AT BE CH DE DK ES FR GB GR IE IT LU MC NL PT SE |
|
121 | Ep: the epo has been informed by wipo that ep was designated in this application | ||
122 | Ep: pct application non-entry in european phase |