DE10155092B4 - Freischaltverfahren für einen Nutzteil eines Computerprogramms und zugehörige Einrichtungen - Google Patents
Freischaltverfahren für einen Nutzteil eines Computerprogramms und zugehörige Einrichtungen Download PDFInfo
- Publication number
- DE10155092B4 DE10155092B4 DE10155092A DE10155092A DE10155092B4 DE 10155092 B4 DE10155092 B4 DE 10155092B4 DE 10155092 A DE10155092 A DE 10155092A DE 10155092 A DE10155092 A DE 10155092A DE 10155092 B4 DE10155092 B4 DE 10155092B4
- Authority
- DE
- Germany
- Prior art keywords
- computer
- code
- transponder
- condition
- activation
- 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
Links
- 230000004913 activation Effects 0.000 title claims abstract description 60
- 238000004590 computer program Methods 0.000 title claims abstract description 40
- 238000000034 method Methods 0.000 title claims abstract description 28
- 230000005284 excitation Effects 0.000 claims abstract description 50
- 238000012545 processing Methods 0.000 claims abstract description 31
- 230000015654 memory Effects 0.000 claims abstract description 28
- 238000012360 testing method Methods 0.000 claims abstract description 20
- 230000005540 biological transmission Effects 0.000 claims description 6
- 230000001419 dependent effect Effects 0.000 claims description 3
- 230000004044 response Effects 0.000 abstract 1
- 201000009032 substance abuse Diseases 0.000 description 5
- 230000008859 change Effects 0.000 description 3
- 238000012795 verification Methods 0.000 description 2
- 238000013459 approach Methods 0.000 description 1
- 230000002457 bidirectional effect Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 230000002427 irreversible effect Effects 0.000 description 1
- 230000008569 process Effects 0.000 description 1
- 230000000638 stimulation Effects 0.000 description 1
- 230000036962 time dependent Effects 0.000 description 1
- 238000011144 upstream manufacturing Methods 0.000 description 1
- 230000003936 working memory Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/10—Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
- G06F21/109—Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM] by using specially-adapted hardware at the client
Abstract
Freischaltverfahren
für einen
Nutzteil (7) eines Computerprogramms (5), das von einem Rechner abgearbeitet
wird,
– wobei der Rechner zumindest beim Aufruf des Computerprogramms (5) unter Abarbeitung eines Prüfteils (6) des Computerprogramms (5) einen mit dem Rechner verbundenen Sender (13) zum Aussenden eines Anregungssignals veranlasst,
– wobei ein vom Rechner getrennter Transponder (12) das Anregungssignal empfängt, einen transponderinternen Speicher (21) in Abhängigkeit von der Nutzung des Computerprogramms (5) irreversibel ändert, den transponderinternen Speicher (21) auf Erfüllen einer Speicherbedingung überprüft und, wenn die Speicherbedingung erfüllt ist, einen Freischaltcode (C2) aussendet,
– wobei ein mit dem Rechner verbundener Empfänger (13) den Freischaltcode (C2) empfängt und an den Rechner übermittelt,
– wobei der Rechner unter weiterer Abarbeitung des Prüfteils (6) den Freischaltcode (C2) auf Erfüllen einer Freischaltbedingung überprüft und die Abarbeitung des Nutzteils (7) nur dann aufnimmt, wenn die Freischaltbedingung erfüllt ist.
– wobei der Rechner zumindest beim Aufruf des Computerprogramms (5) unter Abarbeitung eines Prüfteils (6) des Computerprogramms (5) einen mit dem Rechner verbundenen Sender (13) zum Aussenden eines Anregungssignals veranlasst,
– wobei ein vom Rechner getrennter Transponder (12) das Anregungssignal empfängt, einen transponderinternen Speicher (21) in Abhängigkeit von der Nutzung des Computerprogramms (5) irreversibel ändert, den transponderinternen Speicher (21) auf Erfüllen einer Speicherbedingung überprüft und, wenn die Speicherbedingung erfüllt ist, einen Freischaltcode (C2) aussendet,
– wobei ein mit dem Rechner verbundener Empfänger (13) den Freischaltcode (C2) empfängt und an den Rechner übermittelt,
– wobei der Rechner unter weiterer Abarbeitung des Prüfteils (6) den Freischaltcode (C2) auf Erfüllen einer Freischaltbedingung überprüft und die Abarbeitung des Nutzteils (7) nur dann aufnimmt, wenn die Freischaltbedingung erfüllt ist.
Description
- Die vorliegende Erfindung betrifft ein Freischaltverfahren für einen Nutzteil eines Computerprogramms, das von einem Rechner abgearbeitet wird.
- Derartige Verfahren sind allgemein bekannt. Bei ihnen überprüft der Rechner zumindest beim Aufruf des Computerprogramms unter Abarbeitung eines Prüfteils des Computerprogramms einen Freischaltcode auf Erfüllen einer Freischaltbedingung und nimmt die Abarbeitung des Nutzteils nur dann auf, wenn die Freischaltbedingung erfüllt ist.
- Hierbei sind verschiedene Vorgehensweisen bekannt.
- Beispielsweise ist es bekannt, einen sogenannten Dongle auf eine Schnittstelle des Rechners aufzusetzen. Beim Aufruf des Computerprogramms steuert der Rechner dann unter Abarbeitung des Prüfteils die Schnittstelle an und liest aus dem Dongle den Freischaltcode aus. Nur wenn der Freischaltcode ordnungsgemäß ist, also die Freischaltbedingung erfüllt, wird die Abarbeitung des Nutzteils aufgenommen. Bei diesem Verfahren ist zum einen nachteilig, dass jeder Dongle eine Schnittstelle belegt. Ferner ist ein nicht unerheblicher Kostenaufwand für den Dongle als solchen erforderlich. Auch ist seine Fälschungssicherheit nur begrenzt.
- Ferner ist bekannt, dem Programm bei der Installation auf der Festplatte des Rechners oder zu einem späteren Zeitpunkt– manuell oder ferngeladen – den Freischaltcode zuzuführen. Bei manueller Eingabe ist die Eingabe umständlich und fehlerträchtig. Bei Fernladung des Freischaltcodes ist ein Netzanschluss erforderlich.
- Aus der WO-A-99/11022 ist ein Freischaltverfahren für einen Rechner bekannt. Bei diesem Freischaltverfahren veranlasst der Rechner einen mit dem Rechner verbundenen Sender zum Aussenden eines Anregungssignals. Ein vom Rechner getrennter Transponder empfängt das Anregungssignal und sendet daraufhin einen Freischaltcode aus. Ein mit dem Rechner verbundener Empfänger empfängt den Freischaltcode und übermittelt ihn an den Rechner. Der Rechner überprüft den Freischaltcode auf Erfüllen einer Freischaltbedingung und kommuniziert mit einem Nutzer, wenn die Freischaltbedingung erfüllt ist.
- Aus der US-A-5,870,726 ist ein Freischaltverfahren für einen Nutzteil eines Computerprogramms bekannt, das von einem Rechner abgearbeitet wird. Bei diesem Freischaltverfahren nimmt der Rechner zumindest beim Aufruf des Computerprogramms unter Abarbeitung eines Prüfteils des Computerprogramms eine Kommunikation mit einer Smartcard auf. Die Smartcard ändert daraufhin in Abhängigkeit von der Nutzung des Computerprogramms einen internen Speicher, prüft den Speicher auf Erfüllen einer Speicherbedingung und übermittelt dem Rechner gegebenenfalls ein Freischaltsignal. Der Rechner überprüft dann unter weiterer Abarbeitung des Prüfteils, ob ihm das Freischaltsignal übermittelt wurde, und nimmt gegebenenfalls die Abarbeitung des Nutzteils auf.
- Aus der US-A-5,761,609 ist ein nicht flüchtiger Speicher bekannt, dessen Inhalt irreversibel änderbar ist. Der Speicher kann mit einem Rechner derart verbunden werden, dass der Rechner nur für eine begrenzte Anzahl von Benutzungsvorgängen nutzbar ist.
- Die Aufgabe der vorliegenden Erfindung besteht darin, ein Freischaltverfahren und die korrespondierenden Einrichtungen zur Verfügung zustellen, mittels derer auf einfache, kostengünstige und sichere Weise ein zuverlässiges Freischalten des Nutzteils – insbesondere nur für begrenzte Zeit – möglich ist.
- Die Aufgabe wird durch ein Freischaltverfahren mit den Merkmalen des Anspruchs 1 gelöst.
- Vorzugsweise sollte mit dem Freischaltverfahren auch vermieden werden, dass das Programm auf verschiedenen Rechnern zugleich installiert wird und dann unter kurzzeitigem Zur-Verfügung-Stellen des Transponders nacheinander auf verschiedenen Rechnern gestartet wird. Einem derartigen Missbrauch ist vorgebeugt, wenn das Freischaltverfahren gemäß Merkmal 2 ausgestaltet ist.
- Wenn die Freischaltbedingung von der Absolutzeit, der Relativzeit und/oder von der Zahl der Aufrufe des Computerprogramms abhängig ist, ist auf einfache Weise eine Art Abonnement realisierbar. Beispielsweise vergleicht der Rechner den Freischaltcode mit einem Referenzcode, den er unter Heranziehung einer Absolutzeit ermittelt, die ihm von einem Uhrenbaustein des Rechners zur Verfügung gestellt wird. Auch kann der Rechner die Zahl der Aufrufe oder die Nutzungszeit (Relativzeit) des Computerprogramms intern speichern und unter Heranziehung dieser Größen den Freischaltcode auf Erfüllen der Freischaltbedingung überprüfen.
- Die Überprüfung der Freischaltbedingung erfolgt im Rechner. Von daher sind Manipulationen durch einen bösgläubigen Anwender des Rechners nicht mit Sicherheit ausschließbar. Derartige Manipulationen können aber durch das Überprüfen der Sendebedingung mit an Sicherheit grenzender Wahrscheinlichkeit ausgeschlossen werden.
- Das Überprüfen der Sendebedingung kann zusätzlich auch ein Überprüfen einer Absolutzeitbedingung umfassen. Die Absolutzeit kann dem Transponder dabei wahlweise von einem transponderinternen Zeitgeber oder vom Rechner vorgegeben werden.
- Wenn der Sender dem Transponder im Anregungssignal einen Anregungscode übermittelt, der Transponder den Anregungscode auf Erfüllen einer Anregungsbedingung überprüft und der Transponder den Freischaltcode nur dann aussendet, wenn die Anregungsbedingung erfüllt ist, arbeitet das Freischaltverfahren noch sicherer.
- Wenn der Rechner dem Sender den Anregungscode übermittelt, den der Sender dem Transponder übermitteln soll, ist der Sender flexibler betreibbar. Insbesondere ist es – durch Übermittlung verschiedener Anregungscodes – möglich, mittels ein und desselben Senders durch Aussenden des Anregungssignals auf ein und derselben Frequenz verschiedene Transponder selektiv anzusprechen, die verschiedene, verschiedenen Programmen zugeordnete Anregungscodes aufweisen.
- Wenn der Anregungscode personalisiert ist, ist der Code eindeutig nur für einen bestimmten Rechner und/oder einen bestimmten Benutzer spezifisch.
- Wenn der Rechner bei jeder Übermittlung des Freischaltcodes
- – den Freischaltcode auf Erfüllen mindestens einer Codebedingung überprüft,
- – bei Erfüllen der Codebedingung einen der Codebedingung zugeordneten Zähler inkrementiert,
- – bei Inkrementierung des Zählers diesen Zähler auf Erfüllen einer Zählerbedingung überprüft und
- – die Abarbeitung des Nutzteils nur dann aufnimmt bzw. fortsetzt, wenn die Zählerbedingung erfüllt ist.
- Wenn der Rechner dem Sender eine Sendefrequenz übermittelt, auf der der Sender das Anregungssignal aussenden soll, ist es mittels eines einzigen Senders möglich, mehrere verschiedene Transponder anzusprechen, die mittels verschiedener Frequenzen anregbar sind. Alternativ wäre ein breitbandiges Senden des Anregungssignals möglich.
- Wenn der Rechner dem Empfänger eine Empfangsfrequenz übermittelt, auf der der Empfänger den Freischaltcode empfangen soll, ist es in analoger Weise möglich, Freischaltcodes von verschiedenen Transpondern zu empfangen, die auf verschiedenen Frequenzen ihren Freischaltcode aussenden. Alternativ wäre ein breitbandiger Empfang mit nachgeordneter Signalanalyse möglich.
- Wenn auch der Freischaltcode personalisiert ist, ist auch der Transponder auf einen ganz bestimmten Rechner und/oder Nutzer zugeschnitten. Missbrauchsmöglichkeiten sind daher noch weiter eingeschränkt bwz. werden noch sicherer unterbunden.
- Wenn der Transponder einen Mikroprozessor aufweist, ist er besonders flexibel einsetzbar und programmierbar.
- Weitere Vorteile und Einzelheiten ergeben sich aus der nachfolgenden Beschreibung eines Ausführungsbeispiels in Verbindung mit den Zeichnungen. Dabei zeigen in Prinzipdarstellung
-
1 eine schematische Darstellung eines Rechners mit einem Transponder, -
2 eine schematische Darstellung des internen Aufbaus des Transponders von1 und -
3 –6 Ablaufdiagramme. - Gemäß
1 weist ein Rechner eine Haupteinheit1 auf. Die Haupteinheit1 weist intern eine Prozessoreinheit2 , einen Arbeitsspeicher3 und einen Massenspeicher4 auf. Der Massenspeicher4 ist in aller Regel als sogenannte Festplatte ausgebildet. Im Massenspeicher4 ist unter anderem ein Computerprogramm5 hinterlegt, das einen Prüfteil6 und einen Nutzteil7 aufweist. Der Rechner ist also mit dem Computerprogramm5 programmiert. - An die Haupteinheit
1 sind mindestens eine Eingabeeinrichtung8 (z. B. eine Tastatur oder eine Maus) und mindestens eine Ausgabeeinrichtung9 (z. B. ein Monitor) angeschlossen. Über die Eingabeeinrichtung8 und die Ausgabeeinrichtung9 ist eine interaktive Bedienung des Rechners1 durch einen Anwender10 möglich. Insbesondere ist es möglich, dass der Anwender10 durch entsprechende Eingaben das Computerprogramm5 aufruft. Mit einem Aufruf des Computerprogramms5 wird dieses vom Massenspeicher4 in den Arbeitsspeicher3 geladen und vom Rechner abgearbeitet. - Dem Rechner ist ferner ein Behälter
11 zugeordnet, der z. B. an der Haupteinheit1 befestigt sein kann. Im Behälter11 ist ein Transponder12 angeordnet. Der Transponder12 ist somit vom Rechner getrennt. - Der Rechner kann über einen Sendeempfänger
13 bidirektional mit dem Transponder12 kommunizieren. Der Sendeempfänger13 ist hierzu über eine Schnittstelle14 mit der Prozessoreinheit2 bzw. allgemein dem Rechner verbunden. Die Schnittstelle14 kann z. B. eine USB-Schnittstelle sein. - Damit eine Kommunikation des Sendeempfängers
13 mit dem Transponder12 erfolgen kann, ist der Behälter11 hochfrequenztransparent. Er ist ferner, wie in1 durch ein Auge15 symbolisch dargestellt ist, optisch transparent. Ferner ist der Behälter11 , wie in1 durch ein Vorhängeschloss16 symbolisch dargestellt ist, abschließbar. - Gemäß
2 weist der Transponder12 als zentrales Element einen Mikroprozessor17 auf. Die Arbeitsweise des Mikroprozessors17 wird von einem Festwertspeicher18 (ROM18 ) bestimmt. Der Mikroprozessor17 ist ferner mit einem Demodulator19 , einem Modulator20 und einem transponderinternen Speicher21 verbunden. Der transponderinterne Speicher21 ist vom Mikroprozessor17 sowohl lesbar als auch schreibbar. Schreibvorgänge, also Änderungen des transponderinternen Speichers21 , sind aber irreversibel. Der transponderinterne Speicher21 ist also als eine Art PROM ausgebildet. - Dem Demodulator
19 ist eine Empfangsspule22 vorgeschaltet, dem Modulator20 eine Sendespule23 nachgeschaltet. Die beiden Spulen22 ,23 können gegebenenfalls in einem gemeinsamen Element zusammengefasst sein. - Die Empfangsspule
22 ist ferner mit einer Energieversorgungseinrichtung24 verbunden. Mittels der Energieversorgungseinrichtung24 werden – bei Empfang eines Anregungssignals mittels der Empfangsspule22 – die übrigen Komponenten17 bis21 und23 mit Energie versorgt. Die einzelnen Energieversorgungsleitungen zu diesen Komponenten17 bis21 ,23 sind in2 der Übersichtlichkeit halber aber nicht dargestellt. - Die Betriebsweise des Rechners des Transponders
12 wird nunmehr nachstehend in Verbindung mit den3 bis6 näher erläutert. - Gemäß
3 wird beim Aufruf des Computerprogramms5 durch den Anwender10 zunächst in einem Schritt31 der Prüfteil6 ausgeführt. Auf die Einzelheiten des Prüfteils6 wird später in Verbindung mit4 noch eingegangen werden. Im Ergebnis wird im Schritt31 überprüft, ob ein Freischaltcode C2 eine Freischaltbedingung erfüllt. Nur wenn der Freischaltcode C2 die Freischaltbedingung erfüllt, werden weitere Schritte32 bis34 durchlaufen, ansonsten wird die Abarbeitung des Computerprogramms5 beendet. - Im Schritt
32 wird der Nutzteil7 abgearbeitet. Die Abarbeitung des Nutzteils7 wird aber immer wieder kurzzeitig unterbrochen, um in einem Schritt33 zu überprüfen, ob eine Wartezeit von z. B. einer Minute abgelaufen ist. Wenn ja, wird im Schritt33 zum Schritt31 zurückgesprungen. Der Rechner nimmt also auch aus der Abarbeitung des Nutzteils7 heraus von Zeit zu Zeit die Abarbeitung des Prüfteils6 wieder auf. Auch dann wird im Schritt31 selbstverständlich wieder der Freischaltcode C2 auf Erfüllen der Freischaltbedingung überprüft und die Abarbeitung des Nutzteils7 nur dann fortgesetzt, wenn der Freischaltcode erneut die Freischaltbedingung erfüllt. - Wenn im Schritt
33 der Zeitablauf nicht erfolgt ist, wird zum Schritt34 verzweigt und überprüft, ob vom Anwender10 ein Beendigungsbefehl eingegeben wurde. Wenn ja, wird die Abarbeitung des Computerprogramms5 beendet, ansonsten wird zum Schritt32 zurückgesprungen. - Die Details der Abarbeitung des Prüfteils
6 sind in4 dargestellt. Gemäß4 übermittelt der Rechner dem Sendeempfänger13 in einem Schritt35 eine Sendefrequenz f1, eine Empfangsfrequenz f2 und einen Anregungscode C1. Die Sendefrequenz f1 ist die Frequenz, auf der der Sendeempfänger13 ein Anregungssignal an den Transponder12 aussenden soll. Die Empfangsfrequenz f2 ist die Frequenz, auf der der Sendeempfänger13 vom Transponder12 den Freischaltcode C2 empfangen soll. Der Anregungscode C1 ist ein Code, den der Sendeempfänger13 im Anregungssignal an den Transponder12 übermitteln soll. - Der Anregungscode C1 kann prinzipiell beliebiger Natur sein. Vorzugsweise aber enthält er codierte Angaben zum einen bezüglich einer Absolutzeit T, die dem Rechner aufgrund eines internen Uhrenbausteins bekannt ist. Darüber hinaus enthält er codierte Angaben über den Rechner oder den Rechnertyp und/oder anwenderspezifische Angaben. Er ist also vorzugsweise personalisiert. Ferner kann der Anregungscode C1 auch eine Angabe darüber enthalten, ob die Abarbeitung des Prüfteils
6 beim Aufruf des Computerprogramms5 oder aus der Abarbeitung des Nutzteils7 heraus erfolgte. - Der Sendeempfänger
13 nimmt in einem Schritt36 die Frequenzen f1, f2 und den Anregungscode C1 entgegen. Sodann sendet er das Anregungssignal und im Anregungssignal den Anregungs code C1 in einem Schritt37 aus. Er wird also vom Rechner zum Aussenden des Anregungssignals veranlasst. - Der Transponder
12 empfängt in einem Schritt38 das Anregungssignal und demoduliert den Anregungscode C1 aus dem Anregungssignal. Der Mikroprozessor17 prüft dann in einem Schritt39 , ob der übermittelte Anregungscode C1 eine Anregungsbedingung erfüllt. Er überprüft also beispielsweise, ob die übermittelte Absolutzeit T größer als die letzte übermittelte Absolutzeit T ist (Plausibilitäts-/Manipulationsprüfung). Ferner überprüft er beispielsweise, ob die entsprechenden individuellen Codemerkmale, aufgrund derer der Anregungscode C1 personalisiert ist, erfüllt sind. - Nur wenn der Anregungscode C1 für ordnungsgemäß befunden wird, einen Anregungsbedingung also erfüllt ist, fährt der Mikroprozessor
17 mit weiteren Schritten fort. Ansonsten stellt er die weitere Abarbeitung seines im ROM18 hinterlegten Programms ein. Insbesondere sendet er in diesem Fall den Freischaltcode C2 nicht aus. - Falls der Anregungscode C1 die Anregungsbedingung erfüllt, bereitet der Mikroprozessor
17 die Überprüfung einer Sendebedingung vor. Hierzu ändert der Mikroprozessor17 in einem Schritt40 zunächst den transponderinternen Speicher21 . Die Änderung kann dabei beispielsweise bei jedem Empfangen eines ordnungsgemäßen Anregungscodes C1 oder nur beim Aufruf des Computerprogramms5 erfolgen. In beiden Fällen aber ist die Änderung des Speichers21 somit von der Nutzung des Computerprogramms5 abhängig. - Sodann überprüft der Mikroprozessor
17 in einem Schritt41 , ob der Speicher21 noch weiter änderbar ist. Er überprüft also, ob alle Speicherzellen des Speichers21 bereits geändert worden sind. Wenn bereits alle Speicherzellen des Speichers21 geändert worden sind, ist die zulässige Nutzung des Computerprogramms5 durch den Transponder12 beendet. In diesem Fall wird vom Transponder12 der Freischaltcode C2 nicht ausgesendet. Die Sendebedingung ist im vorliegenden Fall also nutzungsabhängig. Wenn hingegen noch Speicherzellen des Speichers21 änderbar sind, fährt der Mikroprozessor17 mit einem Schritt42 fort. - Im Schritt
42 überprüft der Mikroprozessor17 , ob die Absolutzeit T noch unterhalb einer Zeitgrenze Tmax liegt. Er überprüft also, ob eine Absolutzeitbedingung erfüllt ist. Wenn ja, ist die Gültigkeitsdauer des Transponders12 noch nicht abgelaufen. In diesem Fall wird in einem Schritt43 auf der Empfangsfrequenz f2 der Freischaltcode C2 ausgesendet. Die Sendebedingung ist im vorliegenden Fall also auch zeitabhängig. - Der gesendete Freischaltcode C2 wird vom Sendeempfänger
13 in einem Schritt44 empfangen, demoduliert und an den Rechner übermittelt. Der Rechner nimmt den Freischaltcode C2 in einem Schritt45 entgegen. In einem Schritt46 überprüft der Rechner dann den übermittelten Freischaltcode C2 auf Erfüllen der Freischaltbedingung. Dieser letzte Schritt46 entspricht der Ermittlung des Ergebnisses, anhand dessen dann im Schritt31 von3 entschieden wird, ob die Schritte32 bis24 durchlaufen werden oder nicht. - Gemäß
5 kann dieser letzte Schritt46 in mehrere Schritte47 bis50 unterteilt werden. Gemäß5 ist es beispielsweise möglich, dass der übermittelte Freischaltcode C2 in codierter Form die Zeitgrenze Tmax enthält. In diesem Fall kann, wie in5 im Schritt47 dargestellt, überprüft werden, ob die Absolutzeit T noch kleiner als die Zeitgrenze Tmax ist. - Auch kann der Freischaltcode C2 beispielsweise die Zahl der noch löschbaren Speicherzellen des Speichers
21 enthalten. In diesem Fall kann im Schritt48 überprüft werden, ob noch eine weitere Nutzung des Computerprogramms5 zulässig ist. Es kann also insbesondere überprüft werden, ob die übermittelte Anzahl größer oder gleich 0 ist. Je nach dem, ob die Änderung des Speichers21 im Schritt40 in Abhängigkeit von der Anzahl an Aufrufen des Computerprogramms5 oder in Abhängigkeit der Nutzungszeit erfolgte, stellt die Prüfung gemäß Schritt48 also eine Prüfung der Relativzeit oder der Zahl der Aufrufe des Computerprogramms5 dar. - Auch kann im Schritt
49 beispielsweise ein Code überprüft werden, der für den Anwender10 und/oder den Rechner spezifisch ist, falls der Freischaltcode C2 entsprechende Elemente enthält. Schließlich können im Schritt50 noch weitere Prüfungen erfolgen. - Nur wenn der Freischaltcode C2 in allen Schritten
47 bis50 der5 die jeweilige Prüfbedingung erfüllt hat, wird die Abarbeitung des Nutzteils7 aufgenommen bzw. fortgesetzt. Ansonsten ist der Freischaltcode C2 nicht ordnungsgemäß, so dass die Abarbeitung des Nutzteils7 nicht aufgenommen bzw. nicht fortgesetzt wird. - Gemäß
6 ist es mittels des erfindungsgemäßen Verfahrens sogar auf einfache Weise möglich, die Nutzung des Computerprogramms5 zu unterbinden, obwohl der übermittelte Freischaltcode C2 die Freischaltbedingung erfüllt, wenn gewisse andere Indizien für einen Missbrauch vorliegen. Die Zahl der möglichen Freischaltcodes C2 ist nämlich derart groß, dass bestimmte Codegruppen oder Codetypen gebildet werden können. Beispielsweise kann aufgrund des Freischaltcodes C2 erkennbar sein, dass der korrespondierende Transponder12 ein Transponder12 ist, zur probeweisen Nutzung des Computerprogramms5 kostenlos abgegeben wurde. Ein anderer Codetyp kann beispielsweise charakteristisch dafür sein, dass der Transponder12 ursprünglich einer Serviceperson für Servicezwecke ausgehändigt wurde. - Gemäß
6 wird vom Rechner nach dem Abarbeiten des Schrittes50 in einem Schritt51 zunächst der Codetyp aus dem Freischaltcode C2 extrahiert. In einem Schritt52 wird dann überprüft, ob der Transponder12 einer Gratislizenz zur probeweisen Nutzung des Computerprogramms5 entspricht, also eine erste Codebedingung erfüllt. Wenn ja, wird in einem Schritt53 ein korrespondierender Zähler Z1 inkrementiert. In einem Schritt54 wird dann überprüft, ob der Wert des Zählers Z1 eine Zählergrenze ZG1 überschreitet, also gegen eine Zählerbedingung verstößt. Wenn ja, ist dies ein Indiz dafür, dass der Anwender10 missbräuchlich Gratislizenztransponder12 gehortet hat und so versucht, den Erwerb einer kostenpflichtigen Lizenz zu umgehen. Wenn die Zählergrenze ZG1 durch den Zähler Z1 überschritten wird, wird daher trotz Erfüllen der Freischaltbedingung die Abarbeitung des Nutzteils7 nicht aufgenommen bzw. nicht fortgesetzt. - Falls der ermittelte Codetyp keiner Gratislizenz entspricht, wird in analoger Weise in einem Schritt
55 überprüft, ob der ermittelte Codetyp einer Servicelizenz entspricht, die üblicherweise nur kurzzeitig am Rechner1 ansteht. Wenn dies der Fall ist, wird in einem Schritt56 ein weiterer Zähler Z2 inkrementiert. Auch hier wird der Wert des Zählers Z2 in einem Schritt57 wieder mit einer weiteren Zählergrenze ZG2 verglichen. Wenn in diesem Fall ein Überschreiten der Zählergrenze ZG2 festgestellt wird, muss vermutet werden, dass eine Serviceperson wiederholt beim gleichen Rechner12 seine Servicelizenz sozusagen "absichtlich verloren" hat. Auch in diesem Fall wird daher – trotz Erfüllung der Freischaltbedingung– die Abarbeitung des Nutzteils7 nicht aufgenommen bzw. nicht fortgesetzt.
Claims (15)
- Freischaltverfahren für einen Nutzteil (
7 ) eines Computerprogramms (5 ), das von einem Rechner abgearbeitet wird, – wobei der Rechner zumindest beim Aufruf des Computerprogramms (5 ) unter Abarbeitung eines Prüfteils (6 ) des Computerprogramms (5 ) einen mit dem Rechner verbundenen Sender (13 ) zum Aussenden eines Anregungssignals veranlasst, – wobei ein vom Rechner getrennter Transponder (12 ) das Anregungssignal empfängt, einen transponderinternen Speicher (21 ) in Abhängigkeit von der Nutzung des Computerprogramms (5 ) irreversibel ändert, den transponderinternen Speicher (21 ) auf Erfüllen einer Speicherbedingung überprüft und, wenn die Speicherbedingung erfüllt ist, einen Freischaltcode (C2) aussendet, – wobei ein mit dem Rechner verbundener Empfänger (13 ) den Freischaltcode (C2) empfängt und an den Rechner übermittelt, – wobei der Rechner unter weiterer Abarbeitung des Prüfteils (6 ) den Freischaltcode (C2) auf Erfüllen einer Freischaltbedingung überprüft und die Abarbeitung des Nutzteils (7 ) nur dann aufnimmt, wenn die Freischaltbedingung erfüllt ist. - Freischaltverfahren nach Anspruch 1, dadurch gekennzeichnet, – dass der Rechner aus der Abarbeitung des Nutzteils (
7 ) heraus von Zeit zu Zeit die Abarbeitung des Prüfteils (6 ) aufnimmt und unter Abarbeitung des Prüfteils (6 ) erneut den Sender (13 ) zum Aussenden des Anregungssignals veranlasst, – dass der Transponder (12 ) erneut das Anregungssignal empfängt, erneut den transponderinternen Speicher (21 ) in Abhängigkeit von der Nutzung des Computerprogramms (5 ) irreversibel ändert, erneut den transponderinternen Speicher (21 ) auf Erfüllen der Speicherbedingung überprüft und, wenn die Speicherbedingung erfüllt ist, erneut den Freischaltcode (C2) aussendet, – dass der Empfänger (13 ) erneut den Freischaltcode (C2) empfängt und an den Rechner übermittelt, – dass der Rechner unter weiterer Abarbeitung des Prüfteils (6 ) erneut den Freischaltcode (C2) auf Erfüllen der Freischaltbedingung überprüft und die Abarbeitung des Nutzteils (7 ) nur dann fortsetzt, wenn der Freischaltcode (C2) erneut die Freischaltbedingung erfüllt. - Freischaltverfahren nach Anspruch 1 oder 2, dadurch gekennzeichnet, dass die Freischaltbedingung von der Absolutzeit (T), der Relativzeit und/oder von der Zahl der Aufrufe des Computerprogramms (
5 ) abhängig ist. - Freischaltverfahren nach Anspruch 1, 2 oder 3, dadurch gekennzeichnet, dass der Transponder (
12 ) bei Anregung durch das Anregungssignal auch eine Absolutzeitbedingung überprüft und den Freischaltcode (C2) nur dann aussendet, wenn die Absolutzeitbedingung erfüllt ist. - Freischaltverfahren nach einem der obigen Ansprüche, dadurch gekennzeichnet, dass der Sender (
13 ) dem Transponder (12 ) im Anregungssignal einen Anregungscode (C1) übermittelt, dass der Transponder (12 ) den Anregungscode (C1) auf Erfüllen einer Anregungsbedingung überprüft und dass der Transponder (12 ) den Freischaltcode (C2) nur dann aussendet, wenn die Anregungsbedingung erfüllt ist. - Freischaltverfahren nach Anspruch 5, dadurch gekennzeichnet, dass der Rechner dem Sender (
13 ) den Anregungscode (C1) übermittelt, den der Sender (13 ) dem Transponder (12 ) übermitteln soll. - Freischaltverfahren nach Anspruch 5 oder 6, dadurch gekennzeichnet, dass der Anregungscode (C1) personalisiert ist.
- Freischaltverfahren nach einem der obigen Ansprüche, dadurch gekennzeichnet, dass der Rechner bei jeder Übermittlung des Freischaltcodes (C2) – den Freischaltcode (C2) auf Erfüllen mindestens einer Codebedingung überprüft, – bei Erfüllen der Codebedingung einen der Codebedingung zugeordneten Zähler (Z1, Z2) inkrementiert, – bei Inkrementierung des Zählers (Z1, Z2) diesen Zähler (Z1, Z2) auf Erfüllen einer Zählerbedingung überprüft und – die Abarbeitung des Nutzteils (
7 ) nur dann aufnimmt bzw. fortsetzt, wenn die Zählerbedingung erfüllt ist. - Freischaltverfahren nach einem der obigen Ansprüche, dadurch gekennzeichnet, dass der Rechner dem Sender (
13 ) eine Sendefrequenz (f1) übermittelt, auf der der Sender (13 ) das Anregungssignal aussenden soll. - Freischaltverfahren nach einem der obigen Ansprüche, dadurch gekennzeichnet, dass der Rechner dem Empfänger (
13 ) eine Empfangsfrequenz (f2) übermittelt, auf der der Empfänger (13 ) den Freischaltcode (C2) empfangen soll. - Freischaltverfahren nach einem der obigen Ansprüche, dadurch gekennzeichnet, dass der Freischaltcode (C2) personalisiert ist.
- Transponder zur Durchführung eines Freischaltverfahrens nach einem der Ansprüche 1 bis 11.
- Transponder nach Anspruch 12, dadurch gekennzeichnet, dass er einen Mikroprozessor (
17 ) aufweist. - Kombination eines Computerprogramms (
5 ) für einen Rechner zur Durchführung eines Freischaltverfahrens nach einem der Ansprüche 1 bis 11 mit einem Transponder (12 ) nach Anspruch 12 oder 13. - Kombination eines mit einem Computerprogramm (
5 ) nach Anspruch 14 programmierten Rechners mit einem Transponder (12 ) nach Anspruch 12 oder 13.
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
DE10155092A DE10155092B4 (de) | 2001-11-09 | 2001-11-09 | Freischaltverfahren für einen Nutzteil eines Computerprogramms und zugehörige Einrichtungen |
JP2002323435A JP2003195970A (ja) | 2001-11-09 | 2002-11-07 | コンピュータプログラム製品の利用部分に対する分離方法および装置 |
US10/291,016 US7555654B2 (en) | 2001-11-09 | 2002-11-08 | Apparatus, transponder, computer program product and method for enabling an active part of a computer program |
CNB021502935A CN100426176C (zh) | 2001-11-09 | 2002-11-11 | 计算机程序产品应用部分的释放方法及相关装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
DE10155092A DE10155092B4 (de) | 2001-11-09 | 2001-11-09 | Freischaltverfahren für einen Nutzteil eines Computerprogramms und zugehörige Einrichtungen |
Publications (2)
Publication Number | Publication Date |
---|---|
DE10155092A1 DE10155092A1 (de) | 2003-05-28 |
DE10155092B4 true DE10155092B4 (de) | 2006-10-05 |
Family
ID=7705195
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE10155092A Expired - Lifetime DE10155092B4 (de) | 2001-11-09 | 2001-11-09 | Freischaltverfahren für einen Nutzteil eines Computerprogramms und zugehörige Einrichtungen |
Country Status (4)
Country | Link |
---|---|
US (1) | US7555654B2 (de) |
JP (1) | JP2003195970A (de) |
CN (1) | CN100426176C (de) |
DE (1) | DE10155092B4 (de) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE10211555A1 (de) | 2002-03-15 | 2003-10-02 | Imtm Inst Fuer Medizintechnolo | Verwendung der Inhibitoren von Enzymen mit Aktivitäten der Aminopeptidase N und/oder der Dipeptidylpeptidase IV und pharmazeutischen Zubereitungen daraus zur Therapie und Prävention dermatologischer Erkrankungen mit sebozytärer Hyperproliferation und veränderten Differenzierungszuständen |
DE102004014712B4 (de) * | 2004-03-25 | 2007-05-24 | Siemens Ag | Verfahren zur Freigabe oder Sperrung eines Betriebsmodus eines medizinischen Diagnosegeräts |
DE102006018039B4 (de) * | 2006-04-11 | 2010-11-25 | Michael Letterer | Verfahren zum Ausführen eines Programmcodes |
DE102006052417A1 (de) * | 2006-11-07 | 2008-05-08 | Printed Systems Gmbh | Verfahren und System sowie Kodekarte zum Herunterladen von digitalen Datenprodukten |
DE102007030180A1 (de) * | 2007-06-27 | 2009-01-02 | Filo-Tec Gmbh | Computersystem |
DE102009042049A1 (de) | 2009-09-17 | 2011-03-24 | Siemens Aktiengesellschaft | Instrumentensystem und Verfahren zum Einbringen eines medizinischen Instruments in einen Patienten |
US20110144431A1 (en) * | 2009-12-15 | 2011-06-16 | Rainer Graumann | System and method for controlling use of capsule endoscopes |
US9619618B2 (en) | 2015-03-18 | 2017-04-11 | Covidien Lp | Systems and methods for credit-based usage of surgical instruments and components thereof |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO1994026043A1 (en) * | 1993-04-27 | 1994-11-10 | Saab-Scania Combitech Aktiebolag | A system for wireless and encrypted transmission of information |
US5761609A (en) * | 1995-03-09 | 1998-06-02 | United Microelectronics Corporation | Limited use circuit |
US5870726A (en) * | 1994-05-25 | 1999-02-09 | Lorphelin; Vincent | Protected software rental using smart cards |
WO1999011022A1 (en) * | 1997-08-27 | 1999-03-04 | Xydis Thomas G | Computer access control |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3243331B2 (ja) * | 1993-05-14 | 2002-01-07 | 富士通株式会社 | ソフトウェア管理用階層媒体の作成方法,ソフトウェア管理用階層媒体の作成装置およびソフトウェア管理用階層媒体 |
JPH0746233A (ja) | 1993-08-03 | 1995-02-14 | Nippondenso Co Ltd | 不正使用防止機能を備えた発信装置 |
US5736935A (en) * | 1995-03-14 | 1998-04-07 | Trw Inc. | Keyless vehicle entry and engine starting system |
JP3324735B2 (ja) * | 1997-07-15 | 2002-09-17 | コナミ株式会社 | ゲームシステム及びゲーム用プログラムが記録されたコンピュータ読取可能な記録媒体 |
US6154136A (en) * | 1998-02-26 | 2000-11-28 | Van Eeden; Hendrik Lodewyk | Free running RF identification system with increasing average inter transmission intervals |
US7009516B2 (en) * | 1998-03-12 | 2006-03-07 | D.I.P.O. Sa | Electronic sensor system for monitoring activity of objects |
JP2000047866A (ja) | 1998-07-27 | 2000-02-18 | Nec Corp | プログラム実行プロテクト方法およびicカード、並びに記録媒体 |
US6449651B1 (en) * | 1998-11-19 | 2002-09-10 | Toshiba America Information Systems, Inc. | System and method for providing temporary remote access to a computer |
CN1115629C (zh) * | 1999-10-29 | 2003-07-23 | 深圳市中兴通讯股份有限公司 | 对软件中的各种资源进行检测的方法 |
US20040025035A1 (en) * | 2000-10-23 | 2004-02-05 | Rais Jean-Claude | Contactless electronic identification system |
US7134138B2 (en) * | 2001-02-15 | 2006-11-07 | Emc Corporation | Methods and apparatus for providing security for a data storage system |
-
2001
- 2001-11-09 DE DE10155092A patent/DE10155092B4/de not_active Expired - Lifetime
-
2002
- 2002-11-07 JP JP2002323435A patent/JP2003195970A/ja active Pending
- 2002-11-08 US US10/291,016 patent/US7555654B2/en active Active
- 2002-11-11 CN CNB021502935A patent/CN100426176C/zh not_active Expired - Lifetime
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO1994026043A1 (en) * | 1993-04-27 | 1994-11-10 | Saab-Scania Combitech Aktiebolag | A system for wireless and encrypted transmission of information |
US5870726A (en) * | 1994-05-25 | 1999-02-09 | Lorphelin; Vincent | Protected software rental using smart cards |
US5761609A (en) * | 1995-03-09 | 1998-06-02 | United Microelectronics Corporation | Limited use circuit |
WO1999011022A1 (en) * | 1997-08-27 | 1999-03-04 | Xydis Thomas G | Computer access control |
Also Published As
Publication number | Publication date |
---|---|
US7555654B2 (en) | 2009-06-30 |
JP2003195970A (ja) | 2003-07-11 |
DE10155092A1 (de) | 2003-05-28 |
CN100426176C (zh) | 2008-10-15 |
CN1417658A (zh) | 2003-05-14 |
US20030110260A1 (en) | 2003-06-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE3732615C2 (de) | ||
EP0811739B1 (de) | Vorrichtung und Verfahren zur Prüfung der Nutzungsberechtigung für Zugangskontrolleinrichtungen, insbesondere Schliesseinrichtungen für Fahrzeuge | |
DE10155092B4 (de) | Freischaltverfahren für einen Nutzteil eines Computerprogramms und zugehörige Einrichtungen | |
DE60212969T2 (de) | Verfahren und vorrichtung zum verfolgen des status eines betriebsmittels in einem system zur verwaltung der benutzung der betriebsmittel | |
EP1220075B1 (de) | System und Verfahren zum Erteilen der Laufberechtigung für ein auf einem Rechner installiertes Programm | |
DE60103596T2 (de) | Kommunikationsvorrichtung zum schnellen und gleichzeitigen beschreiben einer vielzahl von datenträgern und zugehörige datenträger | |
WO2011110603A1 (de) | Verfahren zur vergabe eines schlüssels an ein einem drahtlosen sensor-aktor-netz neu hinzuzufügendes teilnehmergerät | |
EP1314007A1 (de) | Waage und verfahren zum betreiben einer waage | |
EP3567557A1 (de) | Schliesssystem | |
DE102008047433A1 (de) | Verfahren zum Freischalten von Funktionen eines Tachographen | |
EP1240569A2 (de) | Verfahren und vorrichtung zur überprüfung einer datei | |
EP2038805B1 (de) | Verfahren zum delegieren von privilegien an eine niedriger-privilegierte instanz durch eine höher-privilegierte instanz | |
EP3032505B1 (de) | Verfahren zum Betreiben von Bezahlautomaten eines ID-basierten Zugangskontrollsystems für ein Post-Payment-Szenario | |
EP3039611B1 (de) | Verfahren und vorrichtung zur übertragung einer information | |
EP3186740B1 (de) | Verfahren zur installation einer zusätzlichen applikation in einem nicht-flüchtigen speicher einer chipkarte | |
DE19854137B4 (de) | Home-Banking-System und Verfahren dafür | |
EP3692457A1 (de) | Verfahren und system zum bereitstellen einer datentechnischen funktion mittels eines datenverarbeitungssystems eines spurgebundenen fahrzeugs | |
EP3306514B1 (de) | Verfahren und vorrichtung zum zertifizieren einer sicherheitskritischen funktionskette | |
DE10203224B4 (de) | Verwaltungsverfahren für Parametersätze für eine datentechnisch parametrierbare Einrichtung | |
DE102009058754A1 (de) | Verfahren zur Reprogrammierung eines oder mehrerer Steuergeräte eines Fahrzeugs und Steuergerät | |
DE102004013904B4 (de) | System, Vorrichtung und Verfahren zum Nachladen von verifiziertem Programmcode auf mobile Datenträger | |
EP3673614B1 (de) | Verfahren und validierungseinrichtung zum validieren eines digitalen zertifikats | |
EP3306507B1 (de) | Komponente für eine sicherheitskritische funktionskette | |
DE10130493B4 (de) | Verfahren zur Freigabe eines Zugriffs auf ein elektronisches Steuergerät | |
DE112014004227B4 (de) | Digitaler Tachograph |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
OP8 | Request for examination as to paragraph 44 patent law | ||
8364 | No opposition during term of opposition | ||
R084 | Declaration of willingness to licence | ||
R085 | Willingness to licence withdrawn | ||
R079 | Amendment of ipc main class |
Free format text: PREVIOUS MAIN CLASS: G06F0021220000 Ipc: G06F0021000000 |
|
R079 | Amendment of ipc main class |
Free format text: PREVIOUS MAIN CLASS: G06F0021220000 Ipc: G06F0021000000 Effective date: 20141104 |
|
R081 | Change of applicant/patentee |
Owner name: SIEMENS HEALTHCARE GMBH, DE Free format text: FORMER OWNER: SIEMENS AKTIENGESELLSCHAFT, 80333 MUENCHEN, DE |
|
R071 | Expiry of right |