DE4103173C5 - Device for protection against unauthorized use of software - Google Patents

Device for protection against unauthorized use of software Download PDF

Info

Publication number
DE4103173C5
DE4103173C5 DE4103173.3A DE4103173A DE4103173C5 DE 4103173 C5 DE4103173 C5 DE 4103173C5 DE 4103173 A DE4103173 A DE 4103173A DE 4103173 C5 DE4103173 C5 DE 4103173C5
Authority
DE
Germany
Prior art keywords
data
data generator
generator
computing system
software
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
DE4103173.3A
Other languages
German (de)
Other versions
DE4103173C2 (en
DE4103173C3 (en
DE4103173C4 (en
DE4103173A1 (en
Inventor
Wulf Harder
Bernd Peeters
Helmut Haese
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.)
Sia Soft Activation Lv
Original Assignee
Sia Soft Activation
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
Family has litigation
First worldwide family litigation filed litigation Critical https://patents.darts-ip.com/?family=6424261&utm_source=google_patent&utm_medium=platform_link&utm_campaign=public_patent_search&patent=DE4103173(C5) "Global patent litigation dataset” by Darts-ip is licensed under a Creative Commons Attribution 4.0 International License.
Application filed by Sia Soft Activation filed Critical Sia Soft Activation
Priority to DE4103173.3A priority Critical patent/DE4103173C5/en
Publication of DE4103173A1 publication Critical patent/DE4103173A1/en
Publication of DE4103173C2 publication Critical patent/DE4103173C2/en
Publication of DE4103173C3 publication Critical patent/DE4103173C3/en
Anticipated expiration legal-status Critical
Publication of DE4103173C4 publication Critical patent/DE4103173C4/en
Application granted granted Critical
Publication of DE4103173C5 publication Critical patent/DE4103173C5/en
Expired - Lifetime legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • G06F21/12Protecting executable software
    • G06F21/121Restricting unauthorised execution of programs
    • G06F21/123Restricting unauthorised execution of programs by using dedicated hardware, e.g. dongles, smart cards, cryptographic processors, global positioning systems [GPS] devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2211/00Indexing scheme relating to details of data-processing equipment not covered by groups G06F3/00 - G06F13/00
    • G06F2211/007Encryption, En-/decode, En-/decipher, En-/decypher, Scramble, (De-)compress

Abstract

Vorrichtung zum Schutz gegen unautorisierte Benutzung von Software, bei der mindestens ein mit einem Signaleingang eines Rechensystems (10) verbindbarer externer Datengenerator (11) Daten erzeugt, wobei die vom Datengenerator (11) ausgegebenen Daten von empfangenen Daten aus dem Rechensystem (10) abhängig sind und das Rechensystem in einen Fehlerzustand gebracht wird oder die Software im Rechensystem nicht zweckmäßig arbeitet, wenn das Rechensystem keine oder fehlerhafte Daten über den Signaleingang (13) empfängt, dadurch gekennzeichnet, daß der Datengenerator (11) nicht vorgesehene Daten oder Datenfolgen und/oder zeitlich nicht vorgesehene Daten oder Datenfolgen als Manipulationsversuche erkennt und bei erkanntem Manipulationsversuch den Inhalt eines Speichers im Datengenerator ändert und infolgedessen beim Empfang weiterer Daten keine oder fehlerhafte Daten ausgibt und/oder eine Benutzungsautorisierung verändert.Device for protection against unauthorized use of software, in which at least one external data generator (11) connectable to a signal input of a computing system (10) generates data, the data output by the data generator (11) being dependent on received data from the computing system (10) and the computing system is brought into an error state or the software in the computing system does not function properly when the computing system receives no or erroneous data via the signal input (13), characterized in that the data generator (11) does not provide any intended data or data sequences and / or time recognize unintentional data or sequences of data as manipulation attempts and changes the content of a memory in the data generator when a manipulation attempt is detected and consequently, when receiving further data, outputs no or erroneous data and / or modifies a user authorization.

Description

Der X. Zivilsenat des Bundesgerichtshofs hat auf die mündliche Verhandlung vom 13. September 2016 für Recht erkannt:
Auf die Berufung der Beklagten und unter Zurückweisung der weitergehenden Rechtsmittel der Parteien wird das Urteil des 2. Senats (Nichtigkeitssenats) des Bundespatentgerichts vom 23. Januar 2014 abgeändert.
Das deutsche Patent 41 03 173 wird im Umfang der Patentansprüche 1, 5 und 8 bis 13 dadurch teilweise für nichtig erklärt, dass Patentanspruch 1 und in den Patentansprüchen 5 und 8 bis 13 der unmittelbare oder mittelbare Rückbezug auf Patentanspruch 1 entfallen.
The X. Civil Senate of the Federal Court of Justice has recognized at the hearing of 13 September 2016 for law:
The judgment of the 2nd Senate (Nullity Senate) of the Federal Patent Court of 23 January 2014 is amended to appeal the defendants and refuse the further appeal of the parties.
The German Patent 41 03 173 is in the scope of the claims 1, 5 and 8 to 13 partially annulled that claim 1 and in the claims 5 and 8 to 13 of the direct or indirect return reference to claim 1 omitted.

Beschreibungdescription

Die Erfindung bezieht sich auf Vorrichtungen zum Schutz gegen unautorisierte Benutzung von Software nach dem Oberbegriff des Patentanspruchs 1.The invention relates to devices for protection against unauthorized use of software according to the preamble of patent claim 1.

Ein möglicher Schutz gegen die unautorisierte Benutzung von Software besteht darin, daß der Käufer eines Programmes zugleich ein Hardware-Bauteil, z. B. ein Steckerbauteil, mit erwirbt, das mit dem Rechner verbunden werden muß, damit das Programm genutzt werden kann. In einem einfachen Fall fragt der Rechner ab, ob das Hardware-Teil vorhanden ist. Falls nicht, wird der Programmablauf gestört. Als Hardware-Bauteil kann nach einer bekannten Vorrichtung ein externer Datengenerator verwendet werden.One possible protection against the unauthorized use of software is that the buyer of a program at the same time a hardware component, for. As a plug component, with acquires, which must be connected to the computer, so that the program can be used. In a simple case, the computer will ask if the hardware part is present. If not, the program flow is disturbed. As a hardware component, an external data generator can be used according to a known device.

Aus der DE-PS 39 14 233 und US-PS 4 446 519 ist ein Schutz bekannt, der verhindert, daß durch relativ einfache Modifikation im Programm die Abfrage des Hardware-Bauteils entfernt oder umgangen werden kann. Eine Konsistenzprüfstufe bildet mit einer Rechengröße des Programms und den Daten eines externen Datengenerators eine erste Verknüpfungsfunktion bzw. mit den Daten eines zweiten Datengenerators eine zweite Verknüpfungsfunktion, die eine Umkehrfunktion der ersten ist, wobei anschließend beide Funktionen über eine dritte Funktion verknüpft werden und das Ergebnis mit der ursprünglich zugrunde gelegten Rechengröße verglichen wird. Stimmt das Ergebnis der dritten Funktion nicht mit der Rechengröße überein, wird das Rechensystem in einen Fehlerzustand gebracht. Diese Vorrichtung macht eine Umgehung des Kopierschutzes sehr schwierig, sofern die Funktion des Steckerbauteils nicht bekannt ist. Diese ist z. B. ohne Kenntnis der Baupläne nicht zu verstehen. Die Funktion des Steckerbauteils bzw. des Datengenerators kann aber auch ohne Schaltpläne analysiert werden, indem eine Analyse des Ein-/Ausgabeverhaltens des Datengenerators vorgenommen wird.From the DE-PS 39 14 233 and U.S. Patent 4,446,519 For example, protection is known that prevents the hardware component from being removed or bypassed by relatively simple modification in the program. A consistency checking stage forms a first linking function with an arithmetic unit of the program and the data of an external data generator, or a second linking function with the data of a second data generator, which is an inverse function of the first, in which case both functions are linked via a third function and the result is included is compared to the original underlying calculation size. If the result of the third function does not match the computational size, the computing system is brought into an error state. This device makes circumvention of the copy protection very difficult, as long as the function of the plug component is not known. This is z. B. without understanding the blueprints. However, the function of the plug component or of the data generator can also be analyzed without circuit diagrams by carrying out an analysis of the input / output behavior of the data generator.

Das erfaßte Ein-/Ausgabeverhalten kann mit Hilfe von Logik-Minimierungsverfahren auf einfache Logikfunktionen reduziert werden. Diese Logik-Minimierungsverfahren können aufgrund ihrer ständigen Verbesserung schon relativ große Tabellen verarbeiten.The detected I / O behavior can be reduced to simple logic functions using logic minimization techniques. These logic minimization methods, because of their constant improvement, can already process relatively large tables.

Ein zweites Verfahren zur Analyse der Funktion eines Datengenerators kommt aus dem Bereich der künstlichen Intelligenz. Nach dem Modellbildungsverfahren wird eine Tabelle aus zunächst wenigen, zufälligen Eingaben und den dazugehörigen Ausgaben erstellt, mit der ein erstes Modell des Datengenerators gebildet wird. Tritt nun zwischen Datengenerator und Modell bei einer weiteren Ein- und Ausgabe ein Unterschied auf, wird diese Ein-/Ausgabe in die Tabelle aufgenommen und ein verbessertes Modell gebildet.A second method for analyzing the function of a data generator comes from the field of artificial intelligence. According to the modeling method, a table is first created from a few random inputs and the associated outputs, with which a first model of the data generator is formed. If a difference occurs between the data generator and the model for another input and output, this input / output is included in the table and an improved model is formed.

Die bekannten Schutzvorrichtungen gegen unautorisierte Benutzung von Software haben somit den Nachteil, daß die Funktion des Datengenerators analysiert werden kann. Ist dessen Funktion bekannt, kann z. B. durch entsprechende Modifikation im Programm ein ohne Steckerbauteil lauffähiges Programm erstellt werden, wobei das Abfragen des Steckerbauteils durch Aufruf einer Hilfsroutine ersetzt wird, welche das Steckerbauteil simuliert. Andererseits könnte das analysierte Steckerbauteil nachgebaut werden.The known protections against unauthorized use of software thus have the disadvantage that the function of the data generator can be analyzed. If its function is known, z. B. be created by appropriate modification in the program without plug component executable program, the queries of the connector component is replaced by calling an auxiliary routine that simulates the connector component. On the other hand, the analyzed connector component could be reconstructed.

Die DE-A1 33 47 483 betrifft die Sicherung geheimer Informationen im elektronischen Speichermedium. Dabei sollen geheime Daten vor dem Zugriff unbefugter Personen geschützt werden. Dafür ist das Gehäuse des Speichermediums mittels mindestens eines Detektorelements vor unbefugtem Zugriff gesichert. Der Schutz von Programmen gegen unautorisierte Benutzung ist von dieser Druckschrift nicht angesprochen.The DE-A1 33 47 483 concerns the protection of secret information in the electronic storage medium. Secret data should be protected from access by unauthorized persons. For this purpose, the housing of the storage medium is secured against unauthorized access by means of at least one detector element. The protection of programs against unauthorized use is not addressed by this document.

Die DE-A1-33 47 483 betrifft die Sicherung geheimer Informationen im elektronischen Speichermedium. Dabei sollen geheime Daten vor dem Zugriff unbefugter Personen geschützt werden. Dafür ist das Gehäuse des Speichermediums mittels mindestens eines Detektorelements vor unbefugtem Zugriff gesichert. Der Schutz von Programmen gegen unautorisierte Benutzung ist von dieser Druckschrift nicht angesprochen.The DE-A1-33 47 483 concerns the protection of secret information in the electronic storage medium. Secret data should be protected from access by unauthorized persons. For this purpose, the housing of the storage medium is secured against unauthorized access by means of at least one detector element. The protection of programs against unauthorized use is not addressed by this document.

Die DE-A1-33 15 992 befaßt sich ebenfalls nicht mit der unautorisierten Benutzung von Programmen auf frei kopierbaren Datenträgern. Vielmehr betrifft sie die Sicherung von Programmen gegen das unbefugte Lesen aus einem Speicher. Der vorbekannte Speicher ist verhältnismäßig einfach analysierbar: Die Ausgabe hängt lediglich von den beiden letzten Eingaben ab, so daß für sich jedes Ausgabebit eine Funktion der beiden letzten Adressen in Form einer Logik-Tabelle aufstellen läßt. Die Tabelle läßt sich mit Hilfe bekannter Logikminimierungsverfahren analysieren.The DE-A1-33 15 992 also does not deal with the unauthorized use of programs on freely duplicable media. Rather, it concerns the protection of programs against unauthorized reading from a memory. The prior art memory is relatively easy to analyze: The output depends only on the last two inputs, so that for each output bit a function of the last two addresses in shape a logic table. The table can be analyzed using known logic minimization techniques.

Bei dem Daten- und Software-Schutzsystem SAM der COM PRO TEC Hard- und Softwaresicherheitssysteme GmbH besteht das Schutzprinzip darin, Programmteile der zu schützenden Software, deren Opcodes verschlüsselt sind, auf einem zweiten Rechner abzuarbeiten. Die abzuarbeitenden Programmteile bestehen also aus Maschinenbefehlen, d. h. aus Opcodes und Adressen. Das SAM-Rechensystem kann erst durch Laden eines Programmes zu einem Datengenerator werden und kann lediglich das geladene Programm auf Fehler überprüfen. Der so hergestellte Datengenerator prüft jedoch nicht vom Rechensystem mit dem zu schützenden Programm empfangene Daten.In the case of the data and software protection system SAM of the COM PRO TEC hardware and software security systems GmbH, the protection principle consists of executing program parts of the software to be protected, whose opcodes are encrypted, on a second computer. The program parts to be processed thus consist of machine instructions, i. H. from opcodes and addresses. The SAM computing system can only become a data generator by loading a program and can only check the loaded program for errors. However, the data generator thus produced does not check data received from the computing system with the program to be protected.

Der Erfindung liegt daher die Aufgabe zugrunde, eine Vorrichtung zum Schutz gegen eine unautorisierte Benutzung von Software zu schaffen, die eine Analyse der Funktion des Datengenerators anhand seiner Ein- und Ausgaben bzw. nur seiner Ausgaben äußerst erschwert.The invention is therefore an object of the invention to provide a device for protection against unauthorized use of software, which makes an analysis of the function of the data generator on the basis of its inputs and outputs or only its expenditure extremely difficult.

Diese Aufgabe wird gelöst durch die Patentansprüche 1, 3, 4 oder 14.This object is achieved by the claims 1, 3, 4 or 14th

Unter der darin verwendeten Formulierung ”Manupulationsversuch” ist nachfolgend die Analyse der Funktion des Datengenerators zu verstehen.The term "manufaturation test" used therein is understood below to mean the analysis of the function of the data generator.

Die erfindungsgemäße Vorrichtung bezieht sich auf einen Datengenerator, der Manipulationsversuche erkennt, worauf nach einem oder mehreren solcher Versuche der Datengenerator keine oder fehlerhafte Daten ausgibt. Damit ist eine weitergehende Analyse der Funktion des Datengenerators ausgeschlossen. Eine Manipulation kann z. B. bei Empfang nicht vorgesehener Daten oder Datenfolgen oder Öffnung eines Gehäuses des Datengenerators erkannt werden. Neben der Ausgabe von fehlerhaften Daten oder der Nichtausgabe von Daten überhaupt bei erkannter Manipulation, kann ferner die Benutzungsautorisierung eingeschränkt werden, so daß z. B. keine weitere Zugriffsmöglichkeit mehr besteht. Eine weitere Erschwerung der Funktionsanalyse des Datengenerators wird dadurch erreicht, daß die Ausgabe von Daten abhängig gemacht wird von im Datengenerator gespeicherten Daten. Hierzu gibt es zahlreiche Möglichkeiten, die weiter unten erläutert werden.The device according to the invention relates to a data generator which detects manipulation attempts, whereupon after one or more such attempts the data generator outputs no or erroneous data. This precludes further analysis of the function of the data generator. A manipulation can z. B. upon receipt of unintended data or data sequences or opening of a housing of the data generator can be detected. In addition to the output of erroneous data or the non-output of data at all detected manipulation, also the user authorization can be restricted, so that z. B. no further accessibility exists. Further complication of the function analysis of the data generator is achieved by making the output of data dependent on data stored in the data generator. There are numerous possibilities for this, which are explained below.

Eine Möglichkeit zur Erfassung von Manipulationsversuchen ist gemäß der Erfindung dann gegeben, wenn nur bestimmte Daten oder Datenfolgen zugelassen sind bzw. Daten oder Datenfolgen nur in bestimmten Zeitintervallen. Die Analyseverfahren erzeugen zufällige oder iterative Folgen von Eingaben für den Datengenerator. Empfängt der Datengenerator solche zufälligen Daten, kann der Inhalt eines Speichers im Datengenerator so verändert werden, daß der Datengenerator keine oder fehlerhafte Daten erzeugt, so daß alle weiteren Ausgaben, die die Analyseverfahren verlangen, fehlerhaft sind.One possibility for detecting manipulation attempts is given according to the invention when only certain data or data sequences are permitted or data or data sequences only at certain time intervals. The analysis methods generate random or iterative sequences of inputs to the data generator. If the data generator receives such random data, the content of a memory in the data generator can be changed so that the data generator generates no or erroneous data, so that all further outputs which require the analysis methods are erroneous.

Manipulationsversuche, die ein Öffnen des Gehäuses des Datengenerators betreffen, können dadurch erkannt werden, daß z. B. die Stromversorgung durch das Öffnen des Gehäuses unterbrochen wird, so daß der Speicher des Datengenerators gelöscht wird.Manipulation attempts that affect an opening of the housing of the data generator can be detected by the fact that z. B. the power supply is interrupted by the opening of the housing, so that the memory of the data generator is deleted.

Nach einer Alternative der Erfindung, die – wie die anderen Alternativen – zugleich mit mindestens einer der weiteren Alternativen verwirklicht werden kann, weisen die vom Datengenerator erzeugten Ausgangsdaten eine nicht-deterministisch erzeugte Redundanz auf. Die z. B. mit einem Zufallszahlengenerator oder durch wahlfreien Zugriff auf einen integrierten Timer erzeugte Redundanz erhöht erheblich die Rechenzeit der Analyseverfahren. Damit bietet diese erfindungsgemäße Vorrichtung insbesondere einen Schutz gegen Analyse der durch das zu schützende Programm regulär erzeugten Eingaben und der entsprechenden Ausgaben, die sich relativ leicht an den Signaleingängen und Ausgängen des Rechensystems beobachten lassen.According to an alternative of the invention, which - like the other alternatives - can be realized simultaneously with at least one of the further alternatives, the output data generated by the data generator has a non-deterministically generated redundancy. The z. B. with a random number generator or random access to an integrated timer generated redundancy significantly increases the computational time of the analysis method. In particular, this device according to the invention thus provides protection against analysis of the inputs regularly generated by the program to be protected and the corresponding outputs, which can be observed relatively easily at the signal inputs and outputs of the computer system.

Ein guter Schutz gegen Analyseverfahren wird ferner mit einer alternativen Vorrichtung erzielt, in der der Datengenerator zwei Zustände besitzen kann. Der Datengenerator kann aus einem Zustand A in einen Zustand B übergehen durch aufeinanderfolgendes Annehmen von mindestens fünf weiteren Zuständen C. Wesentlich dabei ist, daß die vom Datengenerator ausgegebenen Daten nicht von den Zuständen C abhängen. Damit lassen sich über mehrere Eingaben hinweg keine direkten Schlüsse über die Zustände des Datengenerators ziehen, was z. B. eine Tabelle zur Verarbeitung mit einem Logik-Minimierungsprogramm sehr groß werden läßt, da viele mögliche Zustände in Betracht gezogen werden müssen. Die dafür erforderliche Speicherkapazität ist auf den meisten Personal-Computern nicht verfügbar.Good protection against analysis techniques is further achieved with an alternative device in which the data generator can have two states. The data generator may transition from a state A to a state B by successively accepting at least five other states C. The essential thing here is that the data output by the data generator does not depend on the states C. This makes it possible to draw no direct conclusions about the states of the data generator over several inputs, which is eg. For example, a table may be made very large for processing with a logic minimizer because many possible states must be considered. The required storage capacity is not available on most personal computers.

Nach einer weiteren Alternative der Erfindung ist vorgesehen, verschiedene Autorisierungsdaten zu speichern, die z. B. den Zugriff auf Programme oder Programmteile steuern, die Anwendung eines bestimmten Rechensystems vorschreiben oder andere Rechensystemtypen ausschließen. Der Zugriff auf Programme kann zeitlich begrenzt werden, so daß nach bestimmten Zeitintervallen ein Benutzer neue Codewörter zur Veränderung der Autorisierungsdaten eingeben kann, die er z. B. beim Hersteller des Programmes erfragen kann. Die Daten über die Autorisierung zur Benutzung der Software sind nach weiteren Ausgestaltungen der Erfindung veränderbar und werden ggfs. über die Signalleitung verändert.According to another alternative of the invention is provided to store various authorization data, the z. For example, controlling access to programs or program parts, requiring the use of a particular computing system, or excluding other computing system types. The access to programs can be limited in time, so that after certain time intervals a user can enter new codewords to change the authorization data that he z. B. can ask the manufacturer of the program. The data on the authorization to use the software can be changed according to further embodiments of the invention and, if necessary, be changed over the signal line.

Bei erkannten Manipulationsversuchen kann der Datengenerator auch so geschaltet werden, daß er Autorisierungen einschränkt, z. B. zeitlich, indem während einer gewissen Zeit nach Erkennen eines Manipulationsversuches keine oder fehlerhafte Daten ausgegeben werden, oder überhaupt keine Nutzung des Programms mehr möglich ist. Nach einer zeitlichen Blockierung oder nach Eingabe neuer Autorisierungsdaten ist der Datengenerator wieder funktionsfähig, so daß z. B. Datenübertragungsfehler, die als Manipulationsversuche interpretiert werden, nicht zu einer dauernden Funktionsuntüchtigkeit der erfindungsgemäßen Vorrichtung führen. When detected manipulation attempts, the data generator can also be switched so that it restricts authorizations, z. B. temporally by no or erroneous data are output during a certain time after detecting a manipulation attempt, or no use of the program is possible. After a timeout or after entering new authorization data, the data generator is functional again, so that z. As data transmission errors that are interpreted as manipulation attempts, not lead to a permanent inoperability of the device according to the invention.

Die Speicherung von unterschiedlichen Autorisierungen mit einem Datengenerator führt zu einem stark erhöhten Schutz gegen Analyseprogramme, weil es wesentlich schwieriger ist, einen Datengenerator mit mehreren Autorisierungsfunktionen zu analysieren, als mehrere physikalisch getrennte Datengeneratoren mit einfachen Autorisierungsfunktionen. Diese Ausgestaltung der Erfindung ist auch verkaufstechnisch akzeptabel, da die Autorisierungen erweitert oder eingeschränkt werden können, was z. B. bei einem Benutzerwechsel notwendig ist. So können z. B. benutzerspezifische Codewörter nach Erfragung beim Hersteller neu angegeben werden.Storing different authorizations with a data generator results in greatly increased protection against analysis programs because it is much more difficult to analyze a data generator with multiple authorization functions than several physically separate data generators with simple authorization functions. This embodiment of the invention is also technically acceptable, since the authorizations can be extended or restricted, which z. B. is necessary for a user change. So z. B. user-specific codewords can be renamed after inquiry at the manufacturer.

Eine im Datengenerator gespeicherte Benutzer-Identifikation und/oder Seriennummer gemäß einer weiteren Ausgestaltung, von der die Ausgaben des Datengenerators abhängen, dürften einen Raubkopierer abschrecken, Kopien des Datengenerators bzw. Simulationen zu erstellen bzw. zu verbreiten.A user identification and / or serial number stored in the data generator according to another embodiment on which the data generator outputs depend should discourage a pirate to make or distribute copies of the data generator or simulations.

Ein weiterer äußerst wirksamer Schutz gegen die Analyse der Funktion eines Datengenerators besteht darin, eine Vorrichtung zu schaffen, bei der die Daten von einem von-Neumann-Rechner erzeugt werden, d. h. durch einen Algorithmus. Dieser läßt sich nicht durch rein sequentielle, minimierte Logikfunktionen darstellen.Another extremely effective protection against the analysis of the function of a data generator is to provide a device in which the data is generated by a von Neumann computer, i. H. through an algorithm. This can not be represented by purely sequential, minimized logic functions.

Generell gilt, daß ein Schutz gegen Analyseprogramme mit steigender Anzahl der möglichen Zustände des Datengenerators wirksamer wird. Die Zahl solcher Zustände wird wesentlich erhöht, wenn der Inhalt eines im Datengenerator enthaltenen Speichers, z. B. eines RAM (Random Access Memory), erhalten wird. Da die äußere Stromversorgung des Datengenerators unterbrochen werden kann, ist der Inhalt des Speichers nur durch eine eigene Stromversorgung aufrecht zu erhalten. Eine solche eigene Stromversorgung ist nach einer weiteren Alternativen der Erfindung im Datengenerator angeordnet und erhöht somit den Schutz gegen Analyseverfahren.In general, protection against analysis programs becomes more effective as the number of possible states of the data generator increases. The number of such states is substantially increased if the content of a memory included in the data generator, e.g. B. a random access memory (RAM) is obtained. Since the external power supply of the data generator can be interrupted, the contents of the memory can only be maintained by its own power supply. Such a separate power supply is arranged according to a further alternative of the invention in the data generator and thus increases the protection against analysis methods.

Ferner kann bei einer anderen Lösung beim Öffnen des Gehäuses ein Signal an den Datengenerator ergehen, der dadurch in einen Zustand gebracht wird, in dem keine oder fehlerhafte Daten erzeugt werden.Further, in another solution, when opening the housing, a signal may be sent to the data generator which is thereby brought into a state in which no or erroneous data is generated.

Für die erfindungsgemäße Vorrichtung kann ferner mindestens ein zweiter Datengenerator vorgesehen sein, der über Signaleingänge und -ausgänge mit dem ersten Datengenerator verbindbar ist.Furthermore, at least one second data generator, which can be connected to the first data generator via signal inputs and outputs, can be provided for the device according to the invention.

Eine weitere Alternative sieht vor, daß die Ausgabe des Datengenerators und ggfs. die Eingabe in den Datengenerator über eine MIDI-Schnittstelle erfolgt. Eine MIDI(Musical instrumental digital interface)-Schnittstelle dient normalerweise der Übertragung von Daten an Musikgeräte und ist an vielen Computern vorhanden. Bei Datenübertragung über diese Schnittstelle können Daten an bzw. aus dem Datengenerator unter andere Daten gemischt sein, wodurch eine Analyse erschwert ist. Ein Analyseverfahren, das eine durch einen normalen Programmablauf erzeugte Datentabelle der Ein- und Ausgaben analysiert, muß auch die für die Musikinstrumente vorgesehenen Daten mit in die Analyse aufnehmen, da diese auf die Ausgaben des Datengenerators wirken könnten. Dies vergrößert den Analyseaufwand erheblich. Andererseits ist die Verwirklichung des Software-Schutzes hardwaremäßig vereinfacht. Diese Variante kommt besonders für den Schutz von Musikprogrammen in Betracht. Gemäß einer praktischen Weiterbildung kann der Datengenerator für den Anschluß eines Musikinstrumentes oder eines zusätzlichen Datengenerators eine weitere MIDI-Schnittstelle aufweisen.Another alternative provides that the output of the data generator and possibly the input to the data generator via a MIDI interface. A MIDI (musical instrumental digital interface) interface is typically used to transfer data to music devices and is present on many computers. When data is transmitted via this interface, data to or from the data generator may be mixed with other data, making analysis more difficult. An analysis method that analyzes a data table of inputs and outputs generated by a normal program flow must also include the data provided for the musical instruments in the analysis, since these could affect the outputs of the data generator. This considerably increases the analysis effort. On the other hand, the realization of the software protection is simplified in terms of hardware. This variant is particularly suitable for the protection of music programs. According to a practical development of the data generator for the connection of a musical instrument or an additional data generator having a further MIDI interface.

Ein Ausführungsbeispiel der Erfindung wird nachfolgend anhand einer Zeichnung näher erläutert.An embodiment of the invention will be explained in more detail with reference to a drawing.

Die einzige Figur zeigt ein Blockschaltbild einer Vorrichtung nach der Erfindung.The single figure shows a block diagram of a device according to the invention.

Ein Rechensystem 10 ist mit einem Datengenerator 11 über eine Datenleitung 12 verbunden, wobei der Datengenerator 11 an einen Signaleingang 13 des Rechensystems 10 angeschlossen ist. In dem Datengenerator ist eine Benutzeridentifikation oder eine Seriennummer und ggfs. Autorisierungsdaten gespeichert, wobei sich die Autorisierungsdaten verändern lassen und somit die Autorisierung erweiterbar oder einschränkbar ist. Bei einem Manipulationsversuch, der durch den Empfang einer nicht vorgesehenen Datenfolge oder durch Öffnen eines Gehäuses des Datengenerators 11 erkannt wird, wird der Datengenerator in einen Zustand gebracht, in dem er nur fehlerhafte Daten erzeugt. Dieser Zustand ist zeitlich begrenzt. Ferner kann der Datengenerator zwei Zustände A und B annehmen, wobei er durch aufeinanderfolgendes Annehmen von fünf weiteren Zuständen C aus dem Zustand A in den Zustand B gebracht wird. Die vom Datengenerator 11 ausgegebenen Daten sind nicht von den Zuständen C abhängig, so daß sich über mehrere Eingaben hinweg keine direkten Schlüsse über die Zustände des Datengenerators ziehen lassen.A computing system 10 is with a data generator 11 via a data line 12 connected, the data generator 11 to a signal input 13 of the computing system 10 connected. In the data generator, a user identification or a serial number and possibly authorization data is stored, wherein the authorization data can be changed and thus the authorization can be extended or limited. In a tampering attempt, by the receipt of an unintended data sequence or by opening a housing of the data generator 11 is detected, the data generator is brought into a state in which it generates only erroneous data. This condition is temporary. Further, the data generator may assume two states A and B, being brought from state A to state B by accepting five further states C in succession. The data generator 11 Data output is not dependent on the states C, so that no direct conclusions can be drawn about the states of the data generator over several inputs.

Damit ist ein sehr guter Schutz gegen Analyseverfahren gegeben, da viele Zustände in Betracht gezogen werden müssen, eine Tabelle zur Verarbeitung mit einem Logik-Minimierungsprogramm sehr groß werden muß, wodurch eine Speicherkapazität verlangt ist, die auf den meisten Personal-Computern nicht verfügbar ist.Thus, there is a very good protection against analysis methods, since many conditions must be considered, a table for processing with a logic minimization program must become very large, requiring a memory capacity that is not available on most personal computers.

Claims (15)

Vorrichtung zum Schutz gegen unautorisierte Benutzung von Software, bei der mindestens ein mit einem Signaleingang eines Rechensystems (10) verbindbarer externer Datengenerator (11) Daten erzeugt, wobei die vom Datengenerator (11) ausgegebenen Daten von empfangenen Daten aus dem Rechensystem (10) abhängig sind und das Rechensystem in einen Fehlerzustand gebracht wird oder die Software im Rechensystem nicht zweckmäßig arbeitet, wenn das Rechensystem keine oder fehlerhafte Daten über den Signaleingang (13) empfängt, dadurch gekennzeichnet, daß der Datengenerator (11) nicht vorgesehene Daten oder Datenfolgen und/oder zeitlich nicht vorgesehene Daten oder Datenfolgen als Manipulationsversuche erkennt und bei erkanntem Manipulationsversuch den Inhalt eines Speichers im Datengenerator ändert und infolgedessen beim Empfang weiterer Daten keine oder fehlerhafte Daten ausgibt und/oder eine Benutzungsautorisierung verändert.Device for protection against unauthorized use of software, in which at least one is connected to a signal input of a computer system ( 10 ) connectable external data generator ( 11 ) Generates data, whereby the data generator ( 11 ) output data from received data from the computing system ( 10 ) and the computing system is brought into an error state or the software in the computing system does not work properly if the computing system has no or erroneous data on the signal input ( 13 ), characterized in that the data generator ( 11 ) detects unintended data or sequences of data and / or data or data sequences that are not intended as manipulation attempts and if a manipulation attempt has been detected changes the content of a memory in the data generator and consequently outputs no or erroneous data upon receipt of further data and / or modifies a user authorization. Vorrichtung nach Anspruch 1, dadurch gekennzeichnet, daß der Datengenerator (11) sich in einem Gehäuse befindet und die Stromversorgung des Datengenerators durch Öffnen des Gehäuses unterbrochen wird, so daß der Speicher des Datengenerators gelöscht wird.Device according to Claim 1, characterized in that the data generator ( 11 ) is in a housing and the power supply of the data generator is interrupted by opening the housing, so that the memory of the data generator is deleted. Vorrichtung nach dem Oberbegriff des Anspruchs 1, ins besondere in Verbindung mit dem Kennzeichen des Anspruchs 1 und/oder 2, dadurch gekennzeichnet, daß die vom Datengenerator (11) generierten Daten eine nicht-deterministisch erzeugte Redundanz aufweisen.Device according to the preamble of claim 1, in particular in conjunction with the characterizing part of claim 1 and / or 2, characterized in that the data generator ( 11 ) generated data have a non-deterministic generated redundancy. Vorrichtung nach dem Oberbegriff des Anspruchs 1, insbesondere in Verbindung mit dem Kennzeichen des Anspruchs 1, 2 und/oder 3, dadurch gekennzeichnet, daß der Datengenerator (11) zwei Zustände A und B besitzt, von deren Annahme die vom Datengenerator ausgegebenen Daten abhängen, der Datengenerator aus dem Zustand A in den Zustand B nur durch mindestens fünf aufeinanderfolgende weitere Zustände C gebracht werden kann, die aufgrund empfangener Daten angenommen werden, und die vom Datengenerator ausgegebenen Daten nicht von den Zuständen C abhängen.Device according to the preamble of claim 1, in particular in conjunction with the characterizing part of claim 1, 2 and / or 3, characterized in that the data generator ( 11 ) has two states A and B, the assumption of which depends on the data output by the data generator, the data generator can be brought from state A to state B only by at least five consecutive further states C, which are assumed on the basis of received data, and those of Data generator output data does not depend on the states C. Vorrichtung nach einem der Ansprüche 1 bis 4, dadurch gekennzeichnet, daß im Datengenerator (11) Daten über die Autorisierung zur Benutzung der Software gespeichert sind und die Autorisierungsdaten den Zugriff auf bestimmte Programme und/oder Programmteile steuern, und/oder den Typ des Rechensystems (10) festlegen oder mindestens einen Typ ausschließen, und/oder den Zugriff zeitlich begrenzen, und/oder den Zugriff quantitativ steuern.Device according to one of Claims 1 to 4, characterized in that in the data generator ( 11 ) Data about the authorization to use the software are stored and the authorization data control the access to certain programs and / or program parts, and / or the type of the computing system ( 10 ) or at least exclude one type, and / or limit access, and / or control access quantitatively. Vorrichtung nach Anspruch 5, dadurch gekennzeichnet, daß die gespeicherten Daten über die Autorisierung zur Benutzung der Software veränderbar sind.Apparatus according to claim 5, characterized in that the stored data on the authorization to use the software are changeable. Vorrichtung nach Anspruch 6, dadurch gekennzeichnet, daß die gespeicherten Daten über die Autorisierung in Abhängigkeit von Daten, die über die Signalleitung (12) des Datengenerators (11) empfangen werden, verändert werden können.Apparatus according to claim 6, characterized in that the stored data on the authorization in dependence on data, which via the signal line ( 12 ) of the data generator ( 11 ) can be changed. Vorrichtung nach einem der Ansprüche 5 bis 7, dadurch gekennzeichnet, daß der Datengenerator (11) die Autorisierung einschränkt oder vollständig aufhebt, wobei dies zeitlich befristet sein kann, wenn nicht vorgesehene Daten oder Datenfolgen und/oder zeitlich nicht vorgesehene Daten oder Datenfolgen von dem Datengenerator (11) empfangen werden.Device according to one of Claims 5 to 7, characterized in that the data generator ( 11 ) restricts or completely removes the authorization, which may be limited in time, if unscheduled data or data sequences and / or unscheduled data or data sequences from the data generator ( 11 ) are received. Vorrichtung nach einem der Ansprüche 1 bis 8, dadurch gekennzeichnet, daß im Datengenerator (11) eine Benutzeridentifikation und/oder eine Seriennummer gespeichert ist.Device according to one of Claims 1 to 8, characterized in that in the data generator ( 11 ) a user identification and / or a serial number is stored. Vorrichtung nach einem der Ansprüche 1 bis 9, dadurch gekennzeichnet, daß der Datengenerator (11) ein Rechensystem enthält, das nach dem von-Neumann-Prinzip arbeitet.Device according to one of Claims 1 to 9, characterized in that the data generator ( 11 ) contains a computing system that works on the Von Neumann principle. Vorrichtung nach einem der Ansprüche 1 bis 10, dadurch gekennzeichnet, daß der Datengenerator (11) eine eigene Stromversorgung enthält zur Aufrechterhaltung eines Inhalts eines das Ein-/Ausgabeverhalten beeinflussenden flüchtigen Speichers.Device according to one of Claims 1 to 10, characterized in that the data generator ( 11 ) has its own power supply to maintain a content of the I / O behavior affecting volatile memory. Vorrichtung nach einem der Ansprüche 1 bis 11, dadurch gekennzeichnet, daß der Datengenerator (11) sich in einem Gehäuse befindet und durch Öffnen des Gehäuses ein Signal an den Datengenerator (11) gegeben wird, so daß der Datengenerator in einen Fehlerzustand gebracht wird, in dem er keine oder fehlerhafte Daten erzeugt.Device according to one of Claims 1 to 11, characterized in that the data generator ( 11 ) is in a housing and by opening the housing a signal to the data generator ( 11 ) is given, so that the data generator is brought into an error state in which it generates no or erroneous data. Vorrichtung nach einem der Ansprüche 1 bis 12, dadurch gekennzeichnet, daß mindestens ein zweiter Datengenerator über Signaleingänge und Signalausgänge mit dem Datengenerator (11) verbindbar ist.Device according to one of claims 1 to 12, characterized in that at least one second data generator via signal inputs and Signal outputs with the data generator ( 11 ) is connectable. Vorrichtung nach dem Oberbegriff des Anspruches 1, insbesondere in Verbindung mit dem Kennzeichen des Anspruches 1 bis 12 und/oder 13, dadurch gekennzeichnet, daß die Ausgabe des Datengenerators (11) und ggfs. die Eingabe in den Datengenerator über eine MIDI-Schnittstelle erfolgt.Device according to the preamble of claim 1, in particular in conjunction with the characterizing part of claims 1 to 12 and / or 13, characterized in that the output of the data generator ( 11 ) and, if necessary, the input to the data generator via a MIDI interface. Vorrichtung nach Anspruch 14, dadurch gekennzeichnet, daß der Datengenerator (11) eine weitere MIDI-Schnittstelle aufweist.Apparatus according to claim 14, characterized in that the data generator ( 11 ) has another MIDI interface.
DE4103173.3A 1991-02-02 1991-02-02 Device for protection against unauthorized use of software Expired - Lifetime DE4103173C5 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
DE4103173.3A DE4103173C5 (en) 1991-02-02 1991-02-02 Device for protection against unauthorized use of software

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE4103173.3A DE4103173C5 (en) 1991-02-02 1991-02-02 Device for protection against unauthorized use of software

Publications (5)

Publication Number Publication Date
DE4103173A1 DE4103173A1 (en) 1992-08-13
DE4103173C2 DE4103173C2 (en) 1993-09-30
DE4103173C3 DE4103173C3 (en) 1997-03-13
DE4103173C4 DE4103173C4 (en) 2017-03-16
DE4103173C5 true DE4103173C5 (en) 2017-07-20

Family

ID=6424261

Family Applications (1)

Application Number Title Priority Date Filing Date
DE4103173.3A Expired - Lifetime DE4103173C5 (en) 1991-02-02 1991-02-02 Device for protection against unauthorized use of software

Country Status (1)

Country Link
DE (1) DE4103173C5 (en)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE19538124C2 (en) * 1995-10-13 1998-10-08 Uwe Dipl Ing Seidel Method and device for protecting software against unauthorized use
DE102004056635A1 (en) * 2004-11-23 2006-05-24 MICON Verein zur Förderung der Mobilität im Internet und in Kommunikationsnetzen e.V. Software distribution method for e.g. communication application, involves executing code on distribution medium, where execution takes place over input/output module, if communication with host computer and user is necessary

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE3149279A1 (en) * 1981-12-12 1983-06-23 Nsm-Apparatebau Gmbh & Co Kg, 6530 Bingen Program coding
DE3315992A1 (en) * 1982-05-06 1983-11-10 N.V. Philips' Gloeilampenfabrieken, 5621 Eindhoven ARRANGEMENT FOR PROTECTING FROM UNAUTHORIZED READING PROGRAM WORDS TO BE WRITTEN IN A MEMORY
US4446519A (en) * 1981-05-26 1984-05-01 Corban International, Ltd. Method and apparatus for providing security for computer software
DE3347483A1 (en) * 1983-12-29 1985-07-11 GAO Gesellschaft für Automation und Organisation mbH, 8000 München DEVICE FOR SECURING SECRET INFORMATION
DE3914233C1 (en) * 1989-04-29 1990-07-26 Wulf 2054 Geesthacht De Harder Computer program protection device - has generator data output connected with consisting testing stage

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4446519A (en) * 1981-05-26 1984-05-01 Corban International, Ltd. Method and apparatus for providing security for computer software
DE3149279A1 (en) * 1981-12-12 1983-06-23 Nsm-Apparatebau Gmbh & Co Kg, 6530 Bingen Program coding
DE3315992A1 (en) * 1982-05-06 1983-11-10 N.V. Philips' Gloeilampenfabrieken, 5621 Eindhoven ARRANGEMENT FOR PROTECTING FROM UNAUTHORIZED READING PROGRAM WORDS TO BE WRITTEN IN A MEMORY
DE3347483A1 (en) * 1983-12-29 1985-07-11 GAO Gesellschaft für Automation und Organisation mbH, 8000 München DEVICE FOR SECURING SECRET INFORMATION
DE3914233C1 (en) * 1989-04-29 1990-07-26 Wulf 2054 Geesthacht De Harder Computer program protection device - has generator data output connected with consisting testing stage

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
IBM Technical Disclosure Bulletin Vol. 28, No. 6, November 1985, S. 2530 *
Prospektblatt der ComProTec Hard- und Software Sicherheitssysteme GmbH, "Security Application Microprocessorsystem SAM", Okt. 1989 *

Also Published As

Publication number Publication date
DE4103173C2 (en) 1993-09-30
DE4103173C3 (en) 1997-03-13
DE4103173C4 (en) 2017-03-16
DE4103173A1 (en) 1992-08-13

Similar Documents

Publication Publication Date Title
DE69531082T2 (en) Method and device with an encryption header, which makes it possible to test software
DE3407642C2 (en)
DE2615861C3 (en) Circuit arrangement for checking programs
EP0155399A2 (en) Protection circuit for the prevention of non-authorised execution of a programme
EP1099197A1 (en) Device for supplying output data in reaction to input data, method for checking authenticity and method for encrypted data transmission
DE102006004557A1 (en) Cryptographic logic circuit for simple power analysis (SPA) and differential power analysis (DPA) has first logic unit that executes logic operation for data, and second logic unit that executes logic operation for first logic unit results
EP0965076A1 (en) Electronic data processing device and system
DE19963471B4 (en) Apparatus and method for preventing piracy of computer programs
WO2010060985A2 (en) Method system and simulation or analysis model for data processing
DE4103173C5 (en) Device for protection against unauthorized use of software
DE10122505A1 (en) Method for protecting a computer against manipulation of register contents and computer for performing the method
WO2001046785A2 (en) Method and device for verifying a file
DE19962902A1 (en) Device for password-protected handling of an electronic document
WO2001059548A2 (en) Device for processing electronic data in an access-protected manner
EP2405317B1 (en) Method for entering parameters for a security device securely
EP0135888B1 (en) Process for preventing the execution of a programme in a computer which is not allowed to execute said programme
WO2000019386A1 (en) Data processing device and method for operating same which prevents a differential current consumption analysis
EP0321728B1 (en) Method and data carrier assembly for validating memory chips
WO2005064432A2 (en) Authorization code recovering method
WO2003067438A2 (en) Code management device for the encoded storage of digital data words
DE3518319C2 (en)
DE3914233C1 (en) Computer program protection device - has generator data output connected with consisting testing stage
EP1046131A1 (en) Data processing device and operating method for preventing a differential current consumption analysis
DE19755182A1 (en) Device and method for the protected output of electronically transmitted and stored documents
EP0560342B1 (en) Method for debugging HDL-programs

Legal Events

Date Code Title Description
OP8 Request for examination as to paragraph 44 patent law
8127 New person/name/address of the applicant

Owner name: HARDER, WULF, 2054 GEESTHACHT, DE PEETERS, BERND,

8181 Inventor (new situation)

Free format text: HARDER, WULF, 2054 GEESTHACHT, DE PEETERS, BERND, 2000 HAMBURG, DE HAESE, HELMUT, 2058 LAUENBURG, DE

D2 Grant after examination
8363 Opposition against the patent
8366 Restricted maintained after opposition proceedings
8305 Restricted maintenance of patent after opposition
D4 Patent maintained restricted
8327 Change in the person/name/address of the patent owner

Owner name: SIA SYNCROSOFT, RIGA, LT

8328 Change in the person/name/address of the agent

Representative=s name: PATENTANWAELTE HAUCK, GRAALFS, WEHNERT, DOERING, SIE

R071 Expiry of right
R081 Change of applicant/patentee

Owner name: SIA SOFT ACTIVATION, LV

Free format text: FORMER OWNER: SIA SYNCROSOFT, RIGA, LT

Effective date: 20111117

R082 Change of representative

Representative=s name: HAUCK PATENTANWALTSPARTNERSCHAFT MBB, DE

Effective date: 20111117

Representative=s name: HAUCK PATENT- UND RECHTSANWAELTE, DE

Effective date: 20111117

R008 Case pending at federal patent court
R039 Revocation action filed

Effective date: 20120706

R043 Patent's revocation in part now final
R206 Amended patent specification
R206 Amended patent specification