DE102006018039B4 - Method for executing a program code - Google Patents

Method for executing a program code Download PDF

Info

Publication number
DE102006018039B4
DE102006018039B4 DE200610018039 DE102006018039A DE102006018039B4 DE 102006018039 B4 DE102006018039 B4 DE 102006018039B4 DE 200610018039 DE200610018039 DE 200610018039 DE 102006018039 A DE102006018039 A DE 102006018039A DE 102006018039 B4 DE102006018039 B4 DE 102006018039B4
Authority
DE
Germany
Prior art keywords
data
program code
admissibility
supplementary
parts
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 - Fee Related
Application number
DE200610018039
Other languages
German (de)
Other versions
DE102006018039A1 (en
Inventor
Michael Letterer
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.)
Individual
Original Assignee
Individual
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Individual filed Critical Individual
Priority to DE200610018039 priority Critical patent/DE102006018039B4/en
Priority to PCT/EP2007/003124 priority patent/WO2007118627A1/en
Publication of DE102006018039A1 publication Critical patent/DE102006018039A1/en
Application granted granted Critical
Publication of DE102006018039B4 publication Critical patent/DE102006018039B4/en
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Technology Law (AREA)
  • Multimedia (AREA)
  • Remote Sensing (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Radar, Positioning & Navigation (AREA)
  • Storage Device Security (AREA)

Abstract

Verfahren zum Ausführen eines auf einem Computer installierten Programmcodes, der ein Basisteil und mehrere Ergänzungsteile aufweist, mit folgenden Schritten:
– ein Modul stellt fest, zu welchen Ergänzungsteilen bei der Ausführung des Basisteils des Programmcodes verzweigt werden darf,
– in einem Speicher sind die Zulässigkeitsdaten abgelegt,
– die Zulässigkeitsdaten zeigen dem Modul jeweils an, ob die Ausführung eines Ergänzungsteils zulässig ist oder nicht, und
– das Basisteil verzweigt bei der Ausführung des Programmcodes in den Ergänzungsteil, wenn dessen Ausführung von dem Modul als zulässig festgehalten wurde, sonst wird die Ausführung des Basisteils ohne Verzweigung fortgesetzt,
dadurch gekennzeichnet, dass
• die Zulässigkeitsdaten auch Teile des Programmcodes der Ergänzungsteile umfassen,
• der Speicher in einem Mobiltelefon vorgesehen ist und die Zulässigkeitsdaten über ein Funknetz auf das Mobiltelefon und über eine Schnittstelle von dem Mobiltelefon zu dem Computer übertragen werden,
• wobei die Zulässigkeitsdaten nach der...
A method of executing a program code installed on a computer comprising a base part and a plurality of supplementary parts, comprising the steps of:
A module determines which supplementary parts may be branched when executing the basic part of the program code,
The admissibility data are stored in a memory,
- the admissibility data indicate to the module whether or not the execution of a supplementary part is allowed, and
- The base part branches in the completion of the program code in the supplementary part, if its execution was held by the module as permissible, otherwise the execution of the base part is continued without branching,
characterized in that
• the admissibility data also include parts of the program code of the supplementary parts,
The memory is provided in a mobile telephone and the permissibility data are transmitted via a radio network to the mobile telephone and via an interface from the mobile telephone to the computer,
• where the admissibility data after the ...

Figure 00000001
Figure 00000001

Description

Die vorliegende Erfindung betrifft ein Verfahren zum Ausführen eines auf einem Computer installierten Programmcodes. Der Programmcode ist zerlegt in einen Basisteil und in einen oder mehrere Ergänzungsteile. Die Ergänzungsteile können je nach Aufbau des Programmcodes, der zugrundeliegenden Hardware sowie dem verwendeten Betriebssystem als Unterprogramme, Applets, parallel ausführbare Programmroutinen oder dergleichen ausgeführt sein.The The present invention relates to a method for carrying out a program codes installed on a computer. The program code is disassembled into a base part and into one or more supplementary parts. The supplementary parts can depending on the structure of the program code, the underlying hardware as well as the operating system used as subprograms, applets, parallel executable program routines or the like be.

Aus US 6,266,416 B1 ist ein Softwareschutz gegen eine unberechtigte Benutzung der Software bekannt. Zum Schutz der Software wird diese mit einem symmetrischen oder unsymmetrischen Verschlüsselungsverfahren verschlüsselt. Zusätzlich ist beim unsymmetrischen Verschlüsselungsverfahren vorgesehen, den Schlüssel zur Entschlüsselung in einer externen Einheit zu speichern. Die externe Einheit ist derart ausgelegt, dass sie an den Computer, auf dem der zu schützende Programmcode ausgeführt wird, die entschlüsselten Daten zur weiteren Ausführung des entsprechenden Programms zurückliefert. Bei der Ausführung des Programmcodes auf dem Computer werden also – sobald die Ausführung auf verschlüsselte Daten stößt – die verschlüsselten Daten an die externe Einheit übertragen, wo diese unter Verwendung des zweiten Schlüssels entschlüsselt und als entschlüsselte Daten von der externen Einheit zurück zum Computer übertragen werden, um hier dem Programmcode für die weitere Ausführung zur Verfügung zu stehen.Out US 6,266,416 B1 is a software protection against unauthorized use of the software known. To protect the software, it is encrypted with a symmetric or asymmetrical encryption method. In addition, the asymmetric encryption method is intended to store the key for decryption in an external unit. The external unit is designed to return to the computer on which the program code to be protected the decrypted data for further execution of the corresponding program. Thus, when executing the program code on the computer, as soon as the execution encounters encrypted data, the encrypted data is transmitted to the external unit, where it is decrypted using the second key and transmitted as decrypted data from the external unit back to the computer, to be available here for the program code for further execution.

Aus US 6,490,720 B1 ist ein Verfahren zur Sequenznummerierung bekannt, um die Ausführung von mehreren, untereinander abhängigen Smartcard-Anwendungen sicherzustellen. Hintergrund des Verfahrens ist, dass ein Programmcode auf einem Mehrprozessorcomputersystem ausgeführt werden soll. Hierzu wird ein Teil des Programmcodes in einem manipulationssicheren externen Gerät gespeichert, das mit dem Computer zum Austausch von Daten in Verbindung steht. Die auf dem externen Gerät gespeicherten Daten enthalten Sequenzdaten, die auf Vorgänger und Nachfolgerdaten verweisen. Anhand der Ablaufdaten verzweigt der Programmablauf abhängig von gesetzten Bedingungen zu den Datenblöcken in dem externen Gerät. Die Verzweigungsbedingungen auf dem Computer legen somit fest, ob die Ausführung eines Programmblocks auf dem externen Gerät erfolgen soll oder nicht.Out US Pat. No. 6,490,720 B1 For example, a method of sequence numbering is known to ensure the execution of multiple interdependent smart card applications. Background of the method is that a program code is to be executed on a multiprocessor computer system. For this purpose, a part of the program code is stored in a tamper-proof external device, which communicates with the computer for exchanging data. The data stored on the external device contains sequence data that references predecessor and successor data. Based on the expiration dates, the program flow branches depending on set conditions to the data blocks in the external device. The branch conditions on the computer thus determine whether or not to execute a program block on the external device.

Aus DE 101 19 549 A1 ist ein Verfahren zum Abrufen objektspezifischer Informationen bekannt. Bei dem Verfahren werden Identifikationsdaten gelesen und eine Anwendung lediglich bei Vorliegen der Identifikationsdaten freigegeben.Out DE 101 19 549 A1 For example, a method for retrieving object-specific information is known. In the method, identification data are read and an application released only in the presence of the identification data.

Aus DE 198 24 814 C2 ist eine Steuerung für eine Telefonanlage bekannt, bei der Zulässigkeitsparameter auf einem externen Kryptochip abgelegt sind, eine CPU-Telefonanlage greift auf die Daten des Kryptochips zurück, um die Steuerungssoftware der Telefonanlage zu konfigurieren.Out DE 198 24 814 C2 If a control system for a telephone system is known in which admissibility parameters are stored on an external crypto chip, a CPU telephone system uses the data of the crypto chip to configure the control software of the telephone system.

Aus DE 101 55 092 A1 ist bekannt, dass der Freischaltcode für das Netzteil einer Software von einem Transponder empfangen wird, wobei der Rechner mit einem Sensor ausgestattet ist, der das entsprechende Anregungssignal an den Transponder sendet.Out DE 101 55 092 A1 It is known that the activation code for the power supply of a software is received by a transponder, wherein the computer is equipped with a sensor that sends the corresponding excitation signal to the transponder.

Aus WO 2005/036854 A1 ist ein Sensor zur digitalen Rechteverwaltung bekannt, bei dem für einzelne Geräte und Dateien die Rechte zentral auf einem Mobiltelefon abgelegt wird.Out WO 2005/036854 A1 is a sensor for digital rights management is known in which for individual devices and files, the rights is stored centrally on a mobile phone.

Allgemein ist bekannt, dass beim Ausführen eines umfangreichen Programmcodes, beispielsweise von einigen Hundert Megabyte, in der Praxis immer wieder Probleme auftreten, wenn dieser Programmcode um einen zusätzlichen Programmteil oder neue Funktionen erweitert werden soll. Beispielsweise treten bei dem Wechsel von einem Standardprogramm zu einem Programm mit erweitertem Funktionsumfang immer wieder Probleme durch eine Neuinstallation der Software auf. Insbesondere ist eine erneute oder zusätzliche Installation auch lästig. Für den Hersteller erschwert dies häufig die Vermarktung der Software, da nicht die gewünschte Zuverlässigkeit erreicht werden kann.Generally It is known that when running a extensive program code, for example, of a few hundred Megabytes, in practice, problems occur again and again Program code by an additional Program part or new functions should be extended. For example occur when switching from a standard program to a program with extended functionality always problems due to a new installation the software. In particular, a new or additional Installation also annoying. For the manufacturer this often makes this difficult the marketing of the software, because not the desired reliability can be achieved.

Der Erfindung liegt die technische Aufgabe zugrunde, ein Verfahren bereitzustellen, das insbesondere bei umfangreichem Programmcode eine Neuinstallation des Programmcodes vermeidet, wenn zusätzliche Programmteile ausgeführt werden sollen, und das zugleich mit einfachen Mitteln eine flexible und sichere Verwendung und Vertrieb des Programmcodes, insbesondere von Ergänzungsteilen für den Programmcode, gestattet.Of the The invention is based on the technical object of providing a method especially with extensive program code a reinstallation the program code avoids, if additional program parts are to be executed, and at the same time with simple means, a flexible and secure Use and distribution of the program code, in particular of supplementary parts for the Program code allowed.

Erfindungsgemäß wird die Aufgabe durch ein Verfahren mit den Merkmalen aus Anspruch 1 gelöst. Vorteilhafte Ausgestaltungen bilden den Gegenstand der Unteransprüche.According to the invention Problem solved by a method having the features of claim 1. advantageous Embodiments form the subject of the dependent claims.

Das erfindungsgemäße Verfahren betrifft ein Verfahren zum Ausführen eines auf einem Computer installierten Programmcodes. Der Programmcode umfaßt einen Basisteil und einen oder mehrere Ergänzungsteile. Die Teile sind beispielsweise als ausführbarer Programmcode ausgebildet. Das erfindungsgemäße Verfahren umfaßt den Schritt, dass ein Modul feststellt, zu welchen Ergänzungsteilen bei der Ausführung des Basisteils des Programmcodes verzweigt werden darf. Zulässigkeitsdaten sind hierzu in einem Speicher abgelegt. Die Zulässigkeitsdaten zeigen dem Modul jeweils an, ob die Ausführung eines Ergänzungsteils zulässig ist oder nicht. Ferner umfassen die Zulässigkeitsdaten auch Teile des Programmcodes der Ergänzungsteile. Bei dem erfindungsgemäßen Verfahren wird bei der Ausführung des Programmcodes in den Ergänzungsteil verzweigt, wenn von dem Modul die Verzweigung als zulässig festgestellt wurde. Wird an der Verzweigungsstelle festgestellt, dass eine Verzweigung in den entsprechenden Ergänzungsteil nicht zulässig ist, so fährt das Programm mit der Ausführung des Programmcodes fort. Bei dem erfindungsgemäßen Verfahren wird für das Basisteil des Programmcodes also überprüft, ob die Bedingungen für eine Verzweigung in den Programmcode der Ergänzungsteile erfüllt sind oder nicht. Mit dem erfindungsgemäßen Verfahren wird es also möglich, bei der Installation des Programmcodes zusätzlich zu dem Basisteil bereits weitergehende Programmmerkmale und Eigenschaften als Ergänzungsteile mit zu installieren oder später hinzuzufügen. Bei der Installation der Grundversion sind dann zunächst fortgeschrittene Funktionen zwar installiert, aber nicht zur Ausführung durch das Programm freigegeben. Soll bei der Ausführung des Programmcodes auf eine Funktion oder ein Merkmal zurückgegriffen werden, das in einem Ergänzungsteil der Software codiert worden ist, so wird festgestellt, ob die Verzweigung des Programmcodes zu diesem zulässig ist. Wird bei der Ausführung des Programmcodes festgestellt, dass eine Verzweigung in den Ergänzungsteil nicht zulässig ist, so wird nicht die Ausführung des Programmcodes unterbrochen oder abgebrochen, sondern die Ausführung des Programmcodes des Basisteils wird fortgesetzt. Der Vorteil beim Fortsetzen der Ausführung liegt darin, dass auf diese Weise nicht freigeschaltete Ergänzungsteile, beispielsweise für zusätzliche Merkmale, den Programmablauf nicht behindern. Bei fehlender Freischaltung der Ergänzungsteile ist eine Ausführung des Basisteils gleichwohl möglich. Die Zulässigkeitsdaten umfassen auch Teile des Programmcodes. Gemeinsam mit den Zulässigkeitsdaten wird erfindungsgemäß auch ein Teil des Programmcodes eines Ergänzungsteils von dem Mobiltelefon auf den Computer übertragen. Dort wird der übertragene Teil des Programmcodes des Ergänzungsteils auf dem Computer zu einem ausführbaren Programmcode mit dem Basisteil gebunden.The method according to the invention relates to a method for executing a program code installed on a computer. The program code comprises a base part and one or more supplementary parts. The parts are designed, for example, as executable program code. The method according to the invention comprises the step of a module determining which supplementary parts may be branched in the execution of the basic part of the program code. Admissibility data are stored in a memory for this purpose. The admissibility data indicate to the module whether the execution a supplementary part is allowed or not. Furthermore, the admissibility data also includes parts of the program code of the supplementary parts. In the method according to the invention is branched in the execution of the program code in the supplementary part, if the branch was found to be permissible by the module. If it is determined at the branching point that a branch into the corresponding supplementary part is not permitted, the program continues with the execution of the program code. In the method according to the invention, it is thus checked for the base part of the program code whether the conditions for a branching into the program code of the supplementary parts are fulfilled or not. With the method according to the invention, it is thus possible to install in the installation of the program code in addition to the base part already more advanced program features and properties as supplementary parts with or added later. When installing the basic version, advanced functions are initially installed but not released for execution by the program. If, during the execution of the program code, a function or feature is used which has been coded in an additional part of the software, it is determined whether the branching of the program code is permissible for this purpose. If, during the execution of the program code, it is determined that a branch into the supplementary part is not permissible, the execution of the program code is not interrupted or aborted, but the execution of the program code of the basic part is continued. The advantage of continuing the execution is that in this way not unlocked supplementary parts, for example, for additional features, not hinder the program flow. In the absence of activation of the supplementary parts an execution of the base part is nevertheless possible. The admissibility data also includes parts of the program code. Together with the admissibility data, a part of the program code of an additional part is also transferred from the mobile telephone to the computer according to the invention. There, the transmitted part of the program code of the supplementary part is bound on the computer to an executable program code with the base part.

Das erfindungsgemäße Verfahren schafft die Möglichkeit, auch ein komplexes Softwaresystem in überschaubaren Portionen anzubieten. Die Ergänzungsteile werden zu einem späteren Zeitpunkt zur ergänzenden Installation angeboten. Dies bietet die Möglichkeit, dass sich ein komplexes Softwaresystem über die Zeit entwickelt und in seinen Merkmalen und Möglichkeiten ergänzt wird. Der Nachteil, der bei einer vollständigen Neuinstallation auftritt, tritt bei einer ergänzenden Installation nicht auf, da ein lauffähiger Programmcode installiert bleibt.The inventive method creates the opportunity also to offer a complex software system in manageable portions. The supplementary parts become a later one Time to supplement Installation offered. This offers the possibility of being a complex one Software system over the time evolves and in its features and possibilities added becomes. The downside that comes with a full reinstallation occurs at a supplementary Installation does not install because an executable program code is installed remains.

Der Benutzer hat zudem die Möglichkeit, nur einzelne ihn interessierende Ergänzungsteile zu erwerben, um so das Basisteil in der von ihm gewünschten Art und Weise zu erweitern. Der Hersteller hat den Vorteil, seine Software flexibel und zielgruppenspezifisch anzubieten.Of the User also has the option only to acquire individual parts of interest to him to so to expand the base part in the manner desired by him. The manufacturer has the advantage that his software is flexible and target group specific offer.

Bei dem erfindungsgemäßen Verfahrens ist der Speicher mit den Zulässigkeitsdaten in einem separaten elektronischen Gerät vorgesehen. Die räumliche Trennung der Zulässigkeitsdaten von dem Programmcode besitzt eine Reihe von Vorteilen. Hierdurch wird es beispielsweise für den Hersteller und Anbieter der Software sichergestellt, dass keine widerrechtliche Benutzung erfolgt. Zum anderen lassen sich durch die gerätemäßige Trennung Änderungen und Aktualisierungen der Zugangsberechtigungsdaten leichter vornehmen.at the method according to the invention is the memory with the admissibility data provided in a separate electronic device. The spatial Separation of admissibility data Of the program code has a number of advantages. hereby is it for example for the manufacturer and provider of the software ensured that no unlawful use. On the other hand can be through the device-related separation changes and Make updates to the conditional access data easier.

Grundsätzlich können eine Reihe von Varianten bei dem Ansprechen des Programmcodes und der Zulässigkeitsdaten auftreten. Im Hinblick auf den Programmcode sind die wichtigsten Varianten, dass der Basisteil auf dem PC gespeichert ist und die Ergänzungsteile erst später auf dem PC gespeichert werden. Die Zulässigkeitsdaten enthalten dabei Teile des Programmcodes der Ergänzungsteile.Basically, a Series of variants in addressing the program code and the admissibility of data occur. In terms of program code are the most important Variants that the base part is stored on the PC and the Supplementary parts later stored on the PC. The admissibility data is included Parts of the program code of the supplementary parts.

Bei dem erfindungsgemäßen Verfahren ist auch der Schritt vorgesehen sein, dass die Zulässigkeitsdaten von dem Speicher in den Computer übertragen werden. Das Modul prüft nach einem Übertragen der Daten die Zulässigkeit zur Ausführung der Ergänzungsteile anhand der übertragenen Zulässigkeitsdaten.at the method according to the invention is also the step provided that the admissibility data be transferred from the memory to the computer. The module checks for a transfer the data the admissibility for execution the supplementary parts based on the transmitted Admissibility of data.

Erfindungsgemäß werden nach einem Übertragen auf den Computer die Zulässigkeitsdaten aus dem Speicher gelöscht, so dass ein und dieselben Zulässigkeitsdaten nicht bei mehr als einem Computer die Ausführung der Ergänzungsteile zulassen können. Bei dem erfindungsgemäßen Verfahren kann zusätzlich vorgesehen werden, dass der Speicher für die Zulässigkeitsdaten mit Mitteln ausgestattet ist, die eine Vervielfältigung seiner Daten verhindert. Alternativ können die Zulässigkeitsdaten auch vervielfältigt werden, um sie an weitere externe Geräte zu übertragen. Hierbei ist dann allerdings vorgesehen, vor einer Benutzung dieser Daten beispielsweise eine externe Bestätigung zur Benutzung der kopierten Zulässigkeitsdaten einzuholen.According to the invention after a transfer on the computer the admissibility data deleted from memory, so that one and the same admissibility data not with more than one computer the execution of the supplementary parts can allow. In the inventive method can additionally be provided that the memory for the admissibility data with funds equipped to prevent duplication of its data. Alternatively you can the admissibility data also duplicated to transfer them to other external devices. This is then provided, however, before using this data, for example an external confirmation to use the copied admissibility data catch up.

Erfindungsgemäß ist der Speicher für die Zulässigkeitsdaten in einem Mobiltelefon vorgesehen, das über Funk Daten empfängt und sendet. Die empfangenen Daten des tragbaren Geräts werden über eine Schnittstelle mit dem Computer ausgetauscht, wobei es sich bei dem tragbaren Gerät um ein Mobiltelefon handelt. Die Zulässigkeitsdaten werden über ein Funknetz an das Mobiltelefon übertragen. Von dem Mobiltelefon werden die Daten dann auf andere Weise von dem Computer gelesen, beispielsweise über Bluetooth, Infrarot und Kabelschnittstelle oder dergleichen. Der besondere Sicherheitsaspekt hierbei ist, dass nach der Installation der Software auf einem Computer entsprechende Zulässigkeitsdaten zu der Software über Funk auf ein Mobiltelefon übertragen werden. Nach der Überprüfung bewirken diese dann die Freischaltung von gewissen Programmteilen. Somit kann beispielsweise über die Nummer des Mobiltelefons sichergestellt werden, dass der zugeordnete Programmcode nur einmal freigeschaltet wird.According to the invention, the memory for the admissibility data is provided in a mobile telephone which receives and transmits data via radio. The received data of the portable device is exchanged over an interface with the computer, wherein the portable device is a mobile phone. The admissibility data is transmitted to the mobile phone via a wireless network. From the mobile phone, the data is then read in another way from the computer, for example via Bluetooth, infrared and cable interface or the like. The special security aspect here is that after installation of the software on a computer corresponding permission data to the software are transmitted via wireless to a mobile phone. After verification, these then cause the activation of certain program parts. Thus, it can be ensured, for example via the number of the mobile phone, that the assigned program code is only activated once.

In einer bevorzugten Ausgestaltung können die Zulässigkeitsdaten eine begrenzte Gültigkeit besitzen. Hierzu kann beispielsweise eine zeitlich begrenzte Gültigkeit für die Zulässigkeitsdaten definiert sein, wobei die Zeit mit der ersten Benutzung der Zulässigkeitsdaten oder mit der Übertragung der Zulässigkeitsdaten zu laufen beginnt. Alternativ oder ergänzend zur zeitlich begrenzten Zulässigkeit kann auch die Gültigkeit auf eine gewisse Anzahl von Aufrufen der Zulässigkeitsdaten begrenzt sein. Somit bestehen flexible Möglichkeiten, Ergänzungsteile in einer Software einzusetzen.In In a preferred embodiment, the admissibility data a limited validity have. For this purpose, for example, a time-limited validity for the admissibility of data be defined, the time with the first use of the admissibility data or with the transmission the admissibility data starts to run. Alternatively or in addition to the temporary admissibility can also be the validity be limited to a certain number of calls the admissibility data. Thus there are flexible possibilities Supplementary parts to use in a software.

Die vorliegende Erfindung wird nachfolgend anhand eines Diagramms näher erläutert.The The present invention is explained in more detail below with reference to a diagram.

In der Figur dargestellt ist der grundsätzliche Aufbau und der Datenfluß, wie er sich aus der Sicht des Programms darstellt. Der Bereich des Anwenders ist als 10 dargestellt. Zu dem Bereich des Anwenders 10 gehört ein Mobiltelefon 12 und ein herkömmlicher PC 14. Wie in der Figur schematisch dargestellt, unterteilt sich der Programmcode des PCs 14 in einen Basisteil 16 und die Ergänzungsteile 18. Der Doppelpfeil 20 im Bereich 10 zeigt an, dass zwischen dem Mobiltelefon 12 und dem PC 14 bidirektional Daten ausgetauscht werden. Dem Bereich 10 des Benutzers übergeordnet ist ein Bereich 22 einer zentralen Verwaltung 24 für die Zulässigkeitsdaten. Die entsprechenden Zulässigkeitsdaten werden über die Verbindung 26, beispielsweise verschlüsselt, an das Mobiltelefon 12 übertragen.Shown in the figure is the basic structure and the data flow, as it presents itself from the perspective of the program. The area of the user is as 10 shown. To the area of the user 10 belongs a mobile phone 12 and a conventional PC 14 , As shown schematically in the figure, the program code of the PC is divided 14 in a base part 16 and the supplementary parts 18 , The double arrow 20 in the area 10 indicates that between the mobile phone 12 and the PC 14 bidirectional data exchange. The area 10 the parent of the user is an area 22 a central administration 24 for the admissibility data. The corresponding admissibility data will be sent via the connection 26 encrypted, for example, to the mobile phone 12 transfer.

In einem weiteren Bereich 28 werden abhängig von dem Programmcode Zulässigkeitsdaten 30 generiert und an die Verwaltung 24 über Verbindung 32 übertragen. Alternativ ist auch möglich, dass die Zulässigkeitsdaten von der zentralen Verwaltung 24 generiert und über Verbindung 32 an einen Vorrat von Zulässigkeitsdaten 30 übertragen werden. Anders als bei herkömmlichen Lizenzen, die beispielsweise einen 16-stelligen alphanumerischen Code umfassen, werden erfindungsgemäß einzelne Programmteile, Unterroutinen, Applets oder dergleichen, mit spezifischen Zulässigkeitsdaten versehen, sodass ein gesonderter Schritt bei der Erzeugung (Binden) des Programmcodes notwendig ist. Die generierten Zulässigkeitsdaten werden über die Verbindung 32 zur zentralen Verwaltung 24 der Zulässigkeitsdaten übertragen. In einem weiteren Schritt 34 wird der Programmcode in einen Basisteil und mehrere Ergänzungsteile zerlegt. Für die bereits von Anfang an ausführbaren Teile des Programmcodes werden in Schritt 36 die entsprechenden Zulässigkeitsdaten über Verbindung 38 aus der zentralen Verwaltung 24 gewonnen. Auf diese Weise liegen bei der zentralen Verwaltung 24 die entsprechenden Informationen vor, welche Programmteile bereits freigeschaltet sind und bei der Ausführung berücksichtigt werden sollen. Auf diese Weise kann die nachfolgende Übertragung 26 zur Zulässigkeit dieser Routinen entfallen.In another area 28 become dependent on the program code admissibility data 30 generated and sent to the administration 24 via connection 32 transfer. Alternatively, it is also possible that the admissibility data from the central administration 24 generated and via connection 32 to a stock of admissibility data 30 be transmitted. Unlike conventional licenses, which comprise, for example, a 16-digit alphanumeric code, according to the invention individual program parts, subroutines, applets or the like are provided with specific permissibility data, so that a separate step in the generation (binding) of the program code is necessary. The generated admissibility data will be sent over the connection 32 to the central administration 24 the admissibility data transmitted. In a further step 34 the program code is divided into a base part and several supplementary parts. For the already executable parts of the program code in step 36 the corresponding admissibility data via connection 38 from the central administration 24 won. In this way, the central administration 24 the corresponding information as to which parts of the program have already been released and should be taken into account during execution. In this way, the subsequent transmission 26 the admissibility of these routines is eliminated.

In einem nachfolgenden Schritt 40 wird insgesamt ein ausführbarer Programmcode hergestellt, der als Besonderheit besitzt, dass bei der Verzweigung zu einem Ergänzungsteil die Ausführung des Programms stets fortgesetzt werden kann, auch wenn die Verzweigung zu dem Ergänzungsteil nicht möglich ist. Der auf diese Weise fertiggestellte Programmcode, der möglicherweise einige Hundert Megabyte umfaßt, wird, wie durch Pfeil 42 dargestellt, auf herkömmliche Weise verkauft und nach dem Kauf auf dem PC 14 installiert.In a subsequent step 40 Overall, an executable program code is produced, which has as a special feature that when branching to a supplementary part, the execution of the program can always be continued, even if the branch to the supplementary part is not possible. The program code completed in this way, possibly covering several hundred megabytes, becomes, as by arrow 42 presented, sold in the conventional way and after the purchase on the PC 14 Installed.

Bei der praktischen Umsetzung des Verfahrens können auch größere Software-Pakete kundengerecht und in technisch einfacher Weise vertrieben werden. Ein Konsument kauft beispielsweise ein PC-Spiel, dessen Installation bereits einige Hundert Megabyte groß ist. Das Spiel besitzt in dem verkauften Umfang Spiellevel 1 bis 5. Die Spiellevel 6 bis 10 sowie beispielsweise Zusatzfunktionen für die Spiellevel 1 bis 5 stehen bei der Ausführung des Programms in der ersten Installation nicht zur Verfügung. Will der Benutzer nun die Funktionalität erweitern, so ist es möglich, die entsprechenden Zulässigkeitsdaten über Funk auf sein Mobiltelefon 12 herunterzuladen. Die Zulässigkeitsdaten werden über Verbindung 20 mit dem PC ausgetauscht, so dass bei der installierten Software auch die zusätzlichen Spielebenen und/oder Zusatzfunktionen ausgeführt werden können.In the practical implementation of the method and larger software packages can be customized and distributed in a technically simple manner. For example, a consumer buys a PC game whose installation is already several hundred megabytes in size. The game has game levels 1 to 5 in the scope sold. Game levels 6 to 10 and, for example, additional functions for game levels 1 to 5 are not available when executing the program in the first installation. If the user now wants to extend the functionality, it is possible to transmit the corresponding admissibility data via radio to his mobile telephone 12 download. The admissibility data are transmitted via connection 20 exchanged with the PC, so that the installed software and the additional game levels and / or additional functions can be performed.

Das Mobiltelefon 12 kann Daten mit einem PC über eine übliche Schnittstelle 20 – beispielsweise Blue Tooth, Infrarot, W-Lan oder NFC (near field communication) oder ein Datenkabel – austauschen.The mobile phone 12 can transfer data to a PC via a common interface 20 - For example, Blue Tooth, infrared, W-Lan or NFC (near field communication) or a data cable - exchange.

Neben dem im Ausführungsbeispiel angesprochenen PC 14 kann es sich auch um Spielkonsolen, PDAs (personal digital assistant) und sogenannte thin clients, d. h. flache Displays mit eingebautem Computer, handeln. Neben dem vorstehend angesprochenen Beispiel eines Spiels, kann das System beispielsweise auch auf Musik- und Videoinhalte erweitert werden. Bei diesen Inhalten sind die erweiterten Programmteile beispielsweise zusätzliche Video- oder Audiodaten, die nach Freischaltung durch die Zulässigkeitsdaten für den Verbraucher abspielbar sind.In addition to the mentioned in the exemplary embodiment PC 14 These can also be game consoles, PDAs (personal digital assistant) and so-called thin clients, ie flat displays with a built-in computer. In addition to the above-mentioned example of a game, the system can, for example, on music and video content he be extended. In the case of these contents, the extended program parts are, for example, additional video or audio data that can be played back to the consumer after being enabled by the admissibility data.

Claims (4)

Verfahren zum Ausführen eines auf einem Computer installierten Programmcodes, der ein Basisteil und mehrere Ergänzungsteile aufweist, mit folgenden Schritten: – ein Modul stellt fest, zu welchen Ergänzungsteilen bei der Ausführung des Basisteils des Programmcodes verzweigt werden darf, – in einem Speicher sind die Zulässigkeitsdaten abgelegt, – die Zulässigkeitsdaten zeigen dem Modul jeweils an, ob die Ausführung eines Ergänzungsteils zulässig ist oder nicht, und – das Basisteil verzweigt bei der Ausführung des Programmcodes in den Ergänzungsteil, wenn dessen Ausführung von dem Modul als zulässig festgehalten wurde, sonst wird die Ausführung des Basisteils ohne Verzweigung fortgesetzt, dadurch gekennzeichnet, dass • die Zulässigkeitsdaten auch Teile des Programmcodes der Ergänzungsteile umfassen, • der Speicher in einem Mobiltelefon vorgesehen ist und die Zulässigkeitsdaten über ein Funknetz auf das Mobiltelefon und über eine Schnittstelle von dem Mobiltelefon zu dem Computer übertragen werden, • wobei die Zulässigkeitsdaten nach der Übertragung auf den Computer aus dem Mobiltelefon gelöscht werden und die übertragenen Teile des Programmcodes der Ergänzungsteile auf dem Computer zu einem ausführbaren Programmcode gebunden werden.A method of executing a program code installed on a computer, comprising a base part and a plurality of supplementary parts, comprising the steps of: - a module determining which supplementary parts may be branched in executing the base part of the program code, - the allowance data is stored in a memory - the admissibility data indicates to the module whether the execution of a supplementary part is allowed or not, and - the basic part branches into the supplementary part when the program code is executed, if the execution of the program has been accepted as permissible, otherwise the execution of the Continued base without branching, characterized in that • the admissibility data also include parts of the program code of the supplementary parts, • the memory is provided in a mobile phone and the permissibility data via a wireless network to the mobile phone and an interface from the handset the authorization data are deleted from the mobile phone after being transferred to the computer and the transmitted parts of the program code of the supplementary parts on the computer are linked to an executable program code. Verfahren nach Anspruch 1, dadurch gekennzeichnet, dass das Modul nach dem Übertragen der Zulässigkeitsdaten und vor Ausführung des Programmcodes die Zulässigkeit anhand der übertragenen Zulässigkeitsdaten prüft.Method according to claim 1, characterized in that that the module after transferring the admissibility data and before execution of the program code the admissibility based on the transmitted admissibility of data reviewed. Verfahren nach einem der Ansprüche 1 bis 2, dadurch gekennzeichnet, dass der Speicher für die Zulässigkeitsdaten ferner mit Mitteln versehen ist, die eine Vervielfältigung seiner Daten verhindert.Method according to one of claims 1 to 2, characterized that memory for the admissibility data is further provided with means of duplication prevented his data. Verfahren nach einem der Ansprüche 1 bis 3, dadurch gekennzeichnet, dass die Zulässigkeitsdaten eine begrenzte Gültigkeit besitzen, wobei die Gültigkeitsdauer zeitlich und/oder nach Anzahl der Aufrufe der Ergänzungsteile begrenzt ist.Method according to one of claims 1 to 3, characterized that the admissibility data a limited validity own, with the validity period in time and / or according to the number of calls of the supplementary parts is limited.
DE200610018039 2006-04-11 2006-04-11 Method for executing a program code Expired - Fee Related DE102006018039B4 (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
DE200610018039 DE102006018039B4 (en) 2006-04-11 2006-04-11 Method for executing a program code
PCT/EP2007/003124 WO2007118627A1 (en) 2006-04-11 2007-04-05 Process for executing a program code

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE200610018039 DE102006018039B4 (en) 2006-04-11 2006-04-11 Method for executing a program code

Publications (2)

Publication Number Publication Date
DE102006018039A1 DE102006018039A1 (en) 2007-10-18
DE102006018039B4 true DE102006018039B4 (en) 2010-11-25

Family

ID=38283230

Family Applications (1)

Application Number Title Priority Date Filing Date
DE200610018039 Expired - Fee Related DE102006018039B4 (en) 2006-04-11 2006-04-11 Method for executing a program code

Country Status (2)

Country Link
DE (1) DE102006018039B4 (en)
WO (1) WO2007118627A1 (en)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE19824814C2 (en) * 1998-06-03 2000-06-21 Siemens Ag Device for determining functions to be released in a telecommunications system
DE10155092A1 (en) * 2001-11-09 2003-05-28 Siemens Ag Release or activation method for computer software, especially for time-limited software use, whereby a computer communicates with a separate transponder that provides an activation code for time limited use of a program component
WO2004059492A1 (en) * 2002-12-23 2004-07-15 Grundig Multimedia B.V. Release of functions of an entertainment electronics appliance using a release code
WO2005036854A1 (en) * 2003-10-14 2005-04-21 Telecom Italia S.P.A. Method, system and computer program for managing usage of digital contents.

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5956505A (en) * 1991-12-24 1999-09-21 Pitney Bowes Inc. Remote activation of software features in a data processing device
US20020124168A1 (en) * 2000-07-17 2002-09-05 Mccown Steven H. Method and system for upgrading a user environment
EP1288768A3 (en) * 2001-08-29 2004-01-02 Siemens AG Österreich Smart dongle
US7200760B2 (en) * 2002-12-31 2007-04-03 Protexis, Inc. System for persistently encrypting critical software data to control the operation of an executable software program

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE19824814C2 (en) * 1998-06-03 2000-06-21 Siemens Ag Device for determining functions to be released in a telecommunications system
DE10155092A1 (en) * 2001-11-09 2003-05-28 Siemens Ag Release or activation method for computer software, especially for time-limited software use, whereby a computer communicates with a separate transponder that provides an activation code for time limited use of a program component
WO2004059492A1 (en) * 2002-12-23 2004-07-15 Grundig Multimedia B.V. Release of functions of an entertainment electronics appliance using a release code
WO2005036854A1 (en) * 2003-10-14 2005-04-21 Telecom Italia S.P.A. Method, system and computer program for managing usage of digital contents.

Also Published As

Publication number Publication date
WO2007118627A1 (en) 2007-10-25
DE102006018039A1 (en) 2007-10-18

Similar Documents

Publication Publication Date Title
DE69130175T2 (en) SECURITY SYSTEM FOR ACTIVATING PERSONNEL COMPUTER PROGRAMS IN DISTANT LOCATIONS
DE69624501T2 (en) PERSONAL ACCESS MANAGEMENT SYSTEM
EP1184771B1 (en) Method and device for protection of computer software and/or computer-readable data
EP2691855A1 (en) Method for updating a data storage medium
EP2692157A2 (en) Updating a data storage medium application
EP2289225B1 (en) Method for personalizing a safety element of a mobile terminal device
DE102007005638A1 (en) Method for authorizing access to at least one automation component of a technical installation
DE10023820B4 (en) Software protection mechanism
DE10216384A1 (en) Access control network
EP2885907B1 (en) Method for installing of security relevant applications in a security element of a terminal
EP1220075B1 (en) System and method for authorising the execution of a software installed on a computer
DE102006018039B4 (en) Method for executing a program code
EP2987078B1 (en) Method for providing an application on a security module, and such a security module
EP2535834A2 (en) Method for performing a write protection operation, computer program product, computer system and chip card
DE19716015A1 (en) Introducing information on a chip card
AT509336B1 (en) CHIP CARD WITH AUTORUN FUNCTION
DE102012021719A1 (en) Method for preparation of chip implemented or implementable in mobile terminal for secure transmission of data elements to chip from remote server, involves encrypting root key with data key and storing root key on chip in encrypted form
EP1288768A2 (en) Smart dongle
DE19538124C2 (en) Method and device for protecting software against unauthorized use
EP3186740B1 (en) Method for installing an additional application in a non-volatile memory of a chip card
EP2524333A1 (en) Method for providing a secure counter on a terminal
EP2278515B1 (en) Method for activating a runtime environment of a microprocessor unit
DE102004013904B4 (en) Verified program code downloading system for JAVA smart card, has processing unit, and verifier to verify codes and provide codes to carrier, where unit and verifier are designed so that codes are loaded to carrier only after verification
DE102005063541B4 (en) Portable data carrier
DE102004024793A1 (en) Digital rights managing method, involves utilizing arithmetic and logic unit for protection of data and programs that are partly placed under protection of unit based on reliability level of digital rights management system

Legal Events

Date Code Title Description
OP8 Request for examination as to paragraph 44 patent law
8364 No opposition during term of opposition
R020 Patent grant now final

Effective date: 20110225

R084 Declaration of willingness to licence
R119 Application deemed withdrawn, or ip right lapsed, due to non-payment of renewal fee